/** * Odoo, Open Source Management Solution * Copyright (C) 2012-today Odoo SA (<http:www.odoo.com>) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http:www.gnu.org/licenses/> * * Created on 30/12/14 3:12 PM */ package com.odoo.core.support.addons; import android.util.Log; import java.lang.reflect.Field; import java.util.ArrayList; import java.util.List; public class AddonsHelper { public static final String TAG = AddonsHelper.class.getSimpleName(); private List<OAddon> addons = new ArrayList<OAddon>(); private OAddon defaultAddon = null; public List<OAddon> getAddons() { if (addons.size() <= 0) { prepareAddons(); } return addons; } private void prepareAddons() { addons.clear(); for (Field addon : getClass().getDeclaredFields()) { if (addon.getType().isAssignableFrom(OAddon.class)) { addon.setAccessible(true); try { OAddon mAddon = (OAddon) addon.get(this); if (mAddon.isDefault()) { defaultAddon = mAddon; addons.add(0, defaultAddon); } else { addons.add(mAddon); } } catch (Exception e) { Log.e(TAG, e.getMessage()); } } } } public OAddon getDefaultAddon() { prepareAddons(); return defaultAddon; } }