diff options
author | cyBerta <cyberta@riseup.net> | 2019-10-20 18:35:33 +0200 |
---|---|---|
committer | cyBerta <cyberta@riseup.net> | 2019-10-20 18:35:33 +0200 |
commit | 3440d95fbb00a530a7e4d977bbef553135232f70 (patch) | |
tree | d2c8583862c04fb4ec166b02553b143056031b68 /app/src/main/java/se/leap/bitmaskclient/drawer | |
parent | 30b3f419c1c0f9c5d74453e51d5300c8c108872b (diff) |
show dialog if end of provider's gateway list is reached (#8964)
Diffstat (limited to 'app/src/main/java/se/leap/bitmaskclient/drawer')
-rw-r--r-- | app/src/main/java/se/leap/bitmaskclient/drawer/NavigationDrawerFragment.java | 17 |
1 files changed, 16 insertions, 1 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 7f52911b..dea54a18 100644 --- a/app/src/main/java/se/leap/bitmaskclient/drawer/NavigationDrawerFragment.java +++ b/app/src/main/java/se/leap/bitmaskclient/drawer/NavigationDrawerFragment.java @@ -47,6 +47,7 @@ import android.view.ViewGroup; import java.util.Set; import de.blinkt.openvpn.core.VpnStatus; +import se.leap.bitmaskclient.Constants; import se.leap.bitmaskclient.EipFragment; import se.leap.bitmaskclient.FragmentManagerEnhanced; import se.leap.bitmaskclient.MainActivity; @@ -87,7 +88,7 @@ import static se.leap.bitmaskclient.utils.PreferenceHelper.usePluggableTransport * See the <a href="https://developer.android.com/design/patterns/navigation-drawer.html#Interaction"> * design guidelines</a> for a complete explanation of the behaviors implemented here. */ -public class NavigationDrawerFragment extends Fragment { +public class NavigationDrawerFragment extends Fragment implements SharedPreferences.OnSharedPreferenceChangeListener { /** * Per the design guidelines, you should show the drawer on launch until the user manually @@ -127,6 +128,7 @@ public class NavigationDrawerFragment extends Fragment { // drawer. See PREF_USER_LEARNED_DRAWER for details. preferences = getContext().getSharedPreferences(SHARED_PREFERENCES, MODE_PRIVATE); userLearnedDrawer = preferences.getBoolean(PREF_USER_LEARNED_DRAWER, false); + preferences.registerOnSharedPreferenceChangeListener(this); } @Override @@ -164,6 +166,8 @@ public class NavigationDrawerFragment extends Fragment { wasPaused = true; } + + /** * Users of this fragment must call this method to set up the navigation drawer interactions. * @@ -272,6 +276,9 @@ public class NavigationDrawerFragment extends Fragment { useBridges.setVisibility(VISIBLE); useBridges.setChecked(getUsePluggableTransports(getContext())); useBridges.setOnCheckedChangeListener((buttonView, isChecked) -> { + if (!buttonView.isPressed()) { + return; + } usePluggableTransports(getContext(), isChecked); if (VpnStatus.isVPNActive()) { EipCommand.startVPN(getContext(), true); @@ -499,6 +506,7 @@ public class NavigationDrawerFragment extends Fragment { public void onDestroy() { super.onDestroy(); getRefWatcher(getActivity()).watch(this); + preferences.unregisterOnSharedPreferenceChangeListener(this); } /** @@ -550,4 +558,11 @@ public class NavigationDrawerFragment extends Fragment { updateExcludeAppsSubtitle(excludeApps, number); } } + + @Override + public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { + if (key.equals(Constants.USE_PLUGGABLE_TRANSPORTS)) { + initUseBridgesEntry(); + } + } } |