package com.lechucksoftware.proxy.proxysettings.ui.activities; import android.content.Intent; import android.os.AsyncTask; import android.os.Bundle; import android.support.v4.app.FragmentManager; import android.support.v4.widget.DrawerLayout; import android.support.v7.app.ActionBar; import com.lechucksoftware.proxy.proxysettings.App; import com.lechucksoftware.proxy.proxysettings.R; import com.lechucksoftware.proxy.proxysettings.constants.NavigationAction; import com.lechucksoftware.proxy.proxysettings.tasks.AsyncStartupActions; import com.lechucksoftware.proxy.proxysettings.test.DeveloperOptionsActivity; import com.lechucksoftware.proxy.proxysettings.ui.base.BaseWifiActivity; import com.lechucksoftware.proxy.proxysettings.ui.fragments.HelpPrefsFragment; import com.lechucksoftware.proxy.proxysettings.ui.fragments.NavDrawFragment; import com.lechucksoftware.proxy.proxysettings.ui.fragments.PacListFragment; import com.lechucksoftware.proxy.proxysettings.ui.fragments.ProxyListFragment; import com.lechucksoftware.proxy.proxysettings.ui.fragments.WiFiApListFragment; import com.lechucksoftware.proxy.proxysettings.utils.FragmentsUtils; public class MasterActivity extends BaseWifiActivity implements NavDrawFragment.NavigationDrawerCallbacks { private static final String TAG = MasterActivity.class.getSimpleName(); /** * Fragment managing the behaviors, interactions and presentation of the navigation drawer. */ private NavDrawFragment mNavigationDrawerFragment; /** * Used to store the last screen title. For use in {@link #restoreActionBar()}. */ private CharSequence mTitle; private AsyncStartupActions asyncStartupActionsTask; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_master); mNavigationDrawerFragment = (NavDrawFragment) getSupportFragmentManager().findFragmentById(R.id.navigation_drawer); mTitle = getTitle(); // Set up the drawer. mNavigationDrawerFragment.setUp(R.id.navigation_drawer, (DrawerLayout) findViewById(R.id.drawer_layout)); asyncStartupActionsTask = new AsyncStartupActions(this); asyncStartupActionsTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); } @Override public void onNavigationDrawerItemSelected(int position) { // update the main content by replacing fragments FragmentManager fragmentManager = this.getSupportFragmentManager(); NavigationAction navigationAction = App.getNavigationManager().getAction(position); switch (navigationAction) { case WIFI_NETWORKS: case NOT_DEFINED: default: FragmentsUtils.changeFragment(fragmentManager, R.id.fragment_container, WiFiApListFragment.newInstance(position), false); break; case HTTP_PROXIES_LIST: FragmentsUtils.changeFragment(fragmentManager, R.id.fragment_container, ProxyListFragment.newInstance(position), false); break; case PAC_PROXIES_LIST: FragmentsUtils.changeFragment(fragmentManager, R.id.fragment_container, PacListFragment.newInstance(position), false); break; case HELP: FragmentsUtils.changeFragment(fragmentManager, R.id.fragment_container, HelpPrefsFragment.newInstance(position), false); break; case DEVELOPER: Intent testIntent = new Intent(getApplicationContext(), DeveloperOptionsActivity.class); startActivity(testIntent); break; } } public void onSectionAttached(int number) { NavigationAction navigationAction = App.getNavigationManager().getAction(number); switch (navigationAction) { case WIFI_NETWORKS: case NOT_DEFINED: default: mTitle = getString(R.string.wifi_networks); break; case HTTP_PROXIES_LIST: mTitle = getString(R.string.static_proxies); break; case PAC_PROXIES_LIST: mTitle = getString(R.string.pac_proxies); break; case HELP: mTitle = getString(R.string.help); break; } } public void restoreActionBar() { ActionBar actionBar = getSupportActionBar(); actionBar.setDisplayShowTitleEnabled(true); actionBar.setTitle(mTitle); } public boolean isDrawerOpen() { return mNavigationDrawerFragment.isDrawerOpen(); } }