summaryrefslogtreecommitdiff
path: root/app/src/main/java/se/leap/bitmaskclient/drawer/NavigationDrawerFragment.java
diff options
context:
space:
mode:
authorfupduck <fupduck@riseup.net>2018-01-21 08:56:46 -0800
committerfupduck <fupduck@riseup.net>2018-01-21 08:56:46 -0800
commitdf8b1fcf1ecc55f15229935294a337c897960ff4 (patch)
tree1b7279bd85200b04478f9bfe2933f9075385b703 /app/src/main/java/se/leap/bitmaskclient/drawer/NavigationDrawerFragment.java
parentdbda5fbf23ccad615e932be6b8869fe34a6b440d (diff)
parent1393b75a17d1c7a60b9ca72a874535824d63db2d (diff)
Merge branch '8811_rename_vpn_to_provider_name' into '0.9.8'
8811 rename vpn to provider name See merge request leap/bitmask_android!26
Diffstat (limited to 'app/src/main/java/se/leap/bitmaskclient/drawer/NavigationDrawerFragment.java')
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/drawer/NavigationDrawerFragment.java74
1 files changed, 25 insertions, 49 deletions
diff --git a/app/src/main/java/se/leap/bitmaskclient/drawer/NavigationDrawerFragment.java b/app/src/main/java/se/leap/bitmaskclient/drawer/NavigationDrawerFragment.java
index 84c407d7..dbe99dce 100644
--- a/app/src/main/java/se/leap/bitmaskclient/drawer/NavigationDrawerFragment.java
+++ b/app/src/main/java/se/leap/bitmaskclient/drawer/NavigationDrawerFragment.java
@@ -6,7 +6,6 @@ import android.content.Intent;
import android.content.SharedPreferences;
import android.content.res.Configuration;
import android.os.Bundle;
-import android.preference.PreferenceManager;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.view.GravityCompat;
@@ -27,15 +26,14 @@ import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
+import se.leap.bitmaskclient.ConfigHelper;
import se.leap.bitmaskclient.ConfigurationWizard;
-import se.leap.bitmaskclient.Provider;
import se.leap.bitmaskclient.R;
import se.leap.bitmaskclient.VpnFragment;
import se.leap.bitmaskclient.fragments.AboutFragment;
import se.leap.bitmaskclient.fragments.LogFragment;
-import se.leap.bitmaskclient.userstatus.User;
-import se.leap.bitmaskclient.userstatus.UserStatusFragment;
+import static android.content.Context.MODE_PRIVATE;
import static se.leap.bitmaskclient.BitmaskApp.getRefWatcher;
import static se.leap.bitmaskclient.Constants.REQUEST_CODE_SWITCH_PROVIDER;
import static se.leap.bitmaskclient.Constants.SHARED_PREFERENCES;
@@ -48,11 +46,6 @@ import static se.leap.bitmaskclient.Constants.SHARED_PREFERENCES;
public class NavigationDrawerFragment extends Fragment {
/**
- * Remember the position of the selected item.
- */
- private static final String STATE_SELECTED_POSITION = "selected_navigation_drawer_position";
-
- /**
* Per the design guidelines, you should show the drawer on launch until the user manually
* expands it. This shared preference tracks this.
*/
@@ -68,8 +61,8 @@ public class NavigationDrawerFragment extends Fragment {
private ListView mDrawerSettingsListView;
private ListView mDrawerAccountsListView;
private View mFragmentContainerView;
+ private ArrayAdapter<String> accountListAdapter;
- private int mCurrentSelectedPosition = 0;
private boolean mFromSavedInstanceState;
private boolean mUserLearnedDrawer;
@@ -86,20 +79,8 @@ public class NavigationDrawerFragment extends Fragment {
// Read in the flag indicating whether or not the user has demonstrated awareness of the
// drawer. See PREF_USER_LEARNED_DRAWER for details.
- SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(getActivity());
- mUserLearnedDrawer = sp.getBoolean(PREF_USER_LEARNED_DRAWER, false);
-
- preferences = getActivity().getSharedPreferences(SHARED_PREFERENCES, Context.MODE_PRIVATE);
-
- if (savedInstanceState != null) {
- mCurrentSelectedPosition = savedInstanceState.getInt(STATE_SELECTED_POSITION);
- mFromSavedInstanceState = true;
- }
-
- // Select either the default item (0) or the last selected item.
- if (mDrawerSettingsListView != null) {
- selectItem(mDrawerSettingsListView, mCurrentSelectedPosition);
- }
+ preferences = getContext().getSharedPreferences(SHARED_PREFERENCES, MODE_PRIVATE);
+ mUserLearnedDrawer = preferences.getBoolean(PREF_USER_LEARNED_DRAWER, false);
}
@Override
@@ -143,12 +124,10 @@ public class NavigationDrawerFragment extends Fragment {
android.R.layout.simple_list_item_activated_1,
android.R.id.text1,
new String[]{
- getString(R.string.vpn_fragment_title),
getString(R.string.switch_provider_menu_option),
getString(R.string.log_fragment_title),
getString(R.string.about_fragment_title),
}));
- mDrawerSettingsListView.setItemChecked(mCurrentSelectedPosition, true);
mDrawerAccountsListView = mDrawerView.findViewById(R.id.accountList);
mDrawerAccountsListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@@ -158,14 +137,21 @@ public class NavigationDrawerFragment extends Fragment {
}
});
- mDrawerAccountsListView.setAdapter(new ArrayAdapter<String>(
- actionBar.getThemedContext(),
+
+
+ accountListAdapter = new ArrayAdapter<>(actionBar.getThemedContext(),
android.R.layout.simple_list_item_activated_1,
- android.R.id.text1,
- new String[]{
- User.userName(),
- }));
- mDrawerAccountsListView.setItemChecked(mCurrentSelectedPosition, true);
+ android.R.id.text1);
+
+ String providerName = ConfigHelper.getCurrentProviderName(preferences);
+ if (providerName == null) {
+ //TODO: ADD A header to the ListView containing a useful message.
+ //TODO 2: disable switchProvider
+ } else {
+ accountListAdapter.add(providerName);
+ }
+
+ mDrawerAccountsListView.setAdapter(accountListAdapter);
mFragmentContainerView = activity.findViewById(fragmentId);
mDrawerLayout = drawerLayout;
@@ -205,9 +191,7 @@ public class NavigationDrawerFragment extends Fragment {
// The user manually opened the drawer; store this flag to prevent auto-showing
// the navigation drawer automatically in the future.
mUserLearnedDrawer = true;
- SharedPreferences sp = PreferenceManager
- .getDefaultSharedPreferences(getActivity());
- sp.edit().putBoolean(PREF_USER_LEARNED_DRAWER, true).apply();
+ preferences.edit().putBoolean(PREF_USER_LEARNED_DRAWER, true).apply();
}
getActivity().invalidateOptionsMenu(); // calls onPrepareOptionsMenu()
@@ -229,11 +213,9 @@ public class NavigationDrawerFragment extends Fragment {
});
mDrawerLayout.addDrawerListener(mDrawerToggle);
- selectItem(mDrawerSettingsListView, 0);
}
private void selectItem(AdapterView<?> list, int position) {
- mCurrentSelectedPosition = position;
if (list != null) {
((ListView) list).setItemChecked(position, true);
}
@@ -256,7 +238,6 @@ public class NavigationDrawerFragment extends Fragment {
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
- outState.putInt(STATE_SELECTED_POSITION, mCurrentSelectedPosition);
}
@Override
@@ -314,31 +295,26 @@ public class NavigationDrawerFragment extends Fragment {
Fragment fragment = null;
if (parent == mDrawerAccountsListView) {
- mTitle = User.userName();
- fragment = new UserStatusFragment();
- Bundle bundle = new Bundle();
- bundle.putBoolean(Provider.ALLOW_REGISTRATION, new Provider().allowsRegistration());
- fragment.setArguments(bundle);
+ mTitle = getString(R.string.vpn_fragment_title);
+ fragment = new VpnFragment();
} else {
Log.d("Drawer", String.format("Selected position %d", position));
switch (position) {
- case 1:
+ case 0:
// TODO STOP VPN
// if (provider.hasEIP()) eip_fragment.stopEipIfPossible();
preferences.edit().clear().apply();
startActivityForResult(new Intent(getActivity(), ConfigurationWizard.class), REQUEST_CODE_SWITCH_PROVIDER);
break;
- case 2:
+ case 1:
mTitle = getString(R.string.log_fragment_title);
fragment = new LogFragment();
break;
- case 3:
+ case 2:
mTitle = getString(R.string.about_fragment_title);
fragment = new AboutFragment();
break;
default:
- mTitle = getString(R.string.vpn_fragment_title);
- fragment = new VpnFragment();
break;
}
}