package com.lechucksoftware.proxy.proxysettings; import android.content.Context; import android.os.Build; import com.lechucksoftware.proxy.proxysettings.constants.NavigationAction; import com.lechucksoftware.proxy.proxysettings.ui.components.NavDrawerItem; import java.util.ArrayList; import java.util.List; import timber.log.Timber; /** * Created by mpagliar on 2/19/2015. */ public class NavigationManager { private final Context context; private ArrayList<NavigationAction> navigationActionsList; public NavigationManager(Context ctx) { context = ctx; initNavigationActionMap(); } public void initNavigationActionMap() { navigationActionsList = new ArrayList<>(); navigationActionsList.add(NavigationAction.WIFI_NETWORKS); navigationActionsList.add(NavigationAction.HTTP_PROXIES_LIST); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { navigationActionsList.add(NavigationAction.PAC_PROXIES_LIST); } navigationActionsList.add(NavigationAction.HELP); if (BuildConfig.DEBUG) { navigationActionsList.add(NavigationAction.DEVELOPER); } } public NavigationAction getAction(int position) { if (navigationActionsList.size() > position) return navigationActionsList.get(position); else return NavigationAction.NOT_DEFINED; } public List<NavDrawerItem> getNavigationDrawerItems() { List<NavDrawerItem> items = new ArrayList<>(); int wifiNetworksNum = 0; int staticProxyNum = 0; int pacProxyNum = 0; try { wifiNetworksNum = (int) App.getDBManager().getWifiApCount(); staticProxyNum = (int) App.getDBManager().getProxiesCount(); pacProxyNum = (int) App.getDBManager().getPacCount(); } catch (Exception e) { Timber.e(e, "Exception retrieving NavDrawersItems counters"); } for(int i=0; i<navigationActionsList.size(); i++) { NavigationAction action = navigationActionsList.get(i); NavDrawerItem navDrawerItem = null; switch (action) { case WIFI_NETWORKS: navDrawerItem = new NavDrawerItem(NavigationAction.WIFI_NETWORKS, context.getString(R.string.wifi_networks), R.drawable.ic_wifi_action_light, wifiNetworksNum); break; case HTTP_PROXIES_LIST: navDrawerItem = new NavDrawerItem(NavigationAction.HTTP_PROXIES_LIST, context.getString(R.string.static_proxies), R.drawable.ic_action_proxy_light, staticProxyNum); break; case PAC_PROXIES_LIST: navDrawerItem = new NavDrawerItem(NavigationAction.PAC_PROXIES_LIST, context.getString(R.string.pac_proxies), R.drawable.ic_action_pac_light, pacProxyNum); break; case HELP: navDrawerItem = new NavDrawerItem(NavigationAction.HELP, context.getString(R.string.help), R.drawable.ic_action_action_help_light); break; case DEVELOPER: navDrawerItem = new NavDrawerItem(NavigationAction.DEVELOPER, context.getString(R.string.developers_options), R.drawable.ic_action_developer_light); break; } items.add(navDrawerItem); } return items; } }