/** * 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 4:27 PM */ package com.odoo.core.utils.drawer; import android.content.Context; import android.graphics.Typeface; import android.view.View; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; import com.odoo.SettingsActivity; import com.odoo.config.Addons; import com.odoo.core.account.Profile; import com.odoo.core.support.OUser; import com.odoo.core.support.addons.OAddon; import com.odoo.core.support.addons.fragment.IBaseFragment; import com.odoo.core.support.drawer.ODrawerItem; import com.odoo.core.utils.OControls; import com.odoo.core.utils.OPreferenceManager; import com.odoo.core.utils.OResource; import com.odoo.R; import com.odoo.news.News; import com.odoo.news.models.OdooNews; import java.util.ArrayList; import java.util.List; import odoo.zxing.handler.OdooMobileQRReader; public class DrawerUtils { public static List<ODrawerItem> getDrawerItems(Context context) { List<ODrawerItem> items = new ArrayList<>(); for (OAddon addon : new Addons().getAddons()) { IBaseFragment frag = (IBaseFragment) addon.get(); if (frag != null) { List<ODrawerItem> menus = frag.drawerMenus(context); if (menus != null) { items.addAll(menus); } } } items.addAll(DrawerUtils.baseSettingsItems(context)); return items; } public static List<ODrawerItem> baseSettingsItems(Context context) { String key = "base.settings"; OPreferenceManager pref = new OPreferenceManager(context); List<ODrawerItem> settings = new ArrayList<>(); settings.add(new ODrawerItem(key).setTitle(OResource.string(context, R.string.label_settings)) .setGroupTitle()); settings.add(new ODrawerItem(key).setTitle(OResource.string(context, R.string.title_profile)) .setInstance(Profile.class).setIcon(R.drawable.ic_action_user)); settings.add(new ODrawerItem(key).setTitle(OResource.string(context, R.string.label_settings)) .setIcon(R.drawable.ic_action_settings) .setInstance(SettingsActivity.class)); if (pref.getBoolean(Profile.CONNECT_WITH_ODOO, false)) settings.add(new ODrawerItem(key).setTitle(OResource.string(context, R.string.label_access_odoo_mobile)) .setInstance(OdooMobileQRReader.class).setIcon(R.drawable.ic_action_qrcode) .setExtra(OUser.current(context).getAsBundle())); OdooNews news = new OdooNews(context, null); if (!news.isEmptyTable()) { settings.add(new ODrawerItem(key).setTitle("Odoo News") .setInstance(new News()).setIcon(R.drawable.ic_odoo_o) ); } return settings; } public static View fillDrawerItemValue(View view, ODrawerItem item) { if (item.isGroupTitle()) { OControls.setText(view, R.id.group_title, item.getTitle()); } else { if (item.getIcon() > 0) OControls.setImage(view, R.id.icon, item.getIcon()); else view.findViewById(R.id.icon).setVisibility(View.GONE); OControls.setText(view, R.id.title, item.getTitle()); if (item.getCounter() > 0) { OControls.setText(view, R.id.counter, item.getCounter() + ""); } } return view; } public static IBaseFragment getDefaultDrawerFragment() { OAddon addon = new Addons().getDefaultAddon(); if (addon != null) { return (IBaseFragment) addon.get(); } return null; } public static ODrawerItem getStartableObject(Context context, IBaseFragment fragment) { List<ODrawerItem> items = fragment.drawerMenus(context); if (items != null) { for (ODrawerItem item : items) { if (!item.isGroupTitle() && item.getInstance() != null) { return item; } } } return null; } public static void focusOnView(Context context, View view, boolean focused) { ODrawerItem item = (ODrawerItem) view.getTag(); if (!item.isGroupTitle()) { ImageView icon = (ImageView) view.findViewById(R.id.icon); TextView title = (TextView) view.findViewById(R.id.title); TextView counter = (TextView) view.findViewById(R.id.counter); if (focused) { icon.setColorFilter(context.getResources().getColor(R.color.drawer_icon_tint_selected)); title.setTextColor(context.getResources().getColor(R.color.drawer_text_color_selected)); title.setTypeface(title.getTypeface(), Typeface.BOLD); counter.setTextColor(context.getResources().getColor(R.color.drawer_text_color_selected)); counter.setTypeface(title.getTypeface(), Typeface.BOLD); } else { icon.setColorFilter(context.getResources().getColor(R.color.drawer_icon_tint)); title.setTextColor(context.getResources().getColor(R.color.drawer_text_color)); title.setTypeface(null, Typeface.NORMAL); counter.setTextColor(context.getResources().getColor(R.color.drawer_text_color)); counter.setTypeface(null, Typeface.NORMAL); } } } public static Integer findItemIndex(ODrawerItem item, LinearLayout itemContainer) { for (int i = 0; i < itemContainer.getChildCount(); i++) { ODrawerItem dItem = (ODrawerItem) itemContainer.getChildAt(i).getTag(); if (dItem != null && dItem.getKey().equals(item.getKey())) { return i; } } return -1; } }