summaryrefslogtreecommitdiff
path: root/app/src/main/java/se/leap/bitmaskclient/base/fragments
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/se/leap/bitmaskclient/base/fragments')
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/base/fragments/AboutFragment.java4
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/base/fragments/EipFragment.java125
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/base/fragments/ExcludeAppsFragment.java2
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/base/fragments/GatewaySelectionFragment.java11
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/base/fragments/LogFragment.java11
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/base/fragments/NavigationDrawerFragment.java59
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/base/fragments/SettingsFragment.java4
7 files changed, 40 insertions, 176 deletions
diff --git a/app/src/main/java/se/leap/bitmaskclient/base/fragments/AboutFragment.java b/app/src/main/java/se/leap/bitmaskclient/base/fragments/AboutFragment.java
index 646637b9..e92aa703 100644
--- a/app/src/main/java/se/leap/bitmaskclient/base/fragments/AboutFragment.java
+++ b/app/src/main/java/se/leap/bitmaskclient/base/fragments/AboutFragment.java
@@ -18,7 +18,7 @@ import se.leap.bitmaskclient.R;
import static android.view.View.VISIBLE;
import static se.leap.bitmaskclient.R.string.about_fragment_title;
-import static se.leap.bitmaskclient.base.utils.ViewHelper.setActionBarTitle;
+import static se.leap.bitmaskclient.base.utils.ViewHelper.setActionBarSubtitle;
public class AboutFragment extends Fragment {
@@ -36,7 +36,7 @@ public class AboutFragment extends Fragment {
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.f_about, container, false);
unbinder = ButterKnife.bind(this, view);
- setActionBarTitle(this, about_fragment_title);
+ setActionBarSubtitle(this, about_fragment_title);
return view;
}
diff --git a/app/src/main/java/se/leap/bitmaskclient/base/fragments/EipFragment.java b/app/src/main/java/se/leap/bitmaskclient/base/fragments/EipFragment.java
index 02feafd3..409efcf0 100644
--- a/app/src/main/java/se/leap/bitmaskclient/base/fragments/EipFragment.java
+++ b/app/src/main/java/se/leap/bitmaskclient/base/fragments/EipFragment.java
@@ -16,7 +16,6 @@
*/
package se.leap.bitmaskclient.base.fragments;
-import static de.blinkt.openvpn.core.ConnectionStatus.LEVEL_NONETWORK;
import static se.leap.bitmaskclient.R.string.vpn_certificate_user_message;
import static se.leap.bitmaskclient.base.models.Constants.ASK_TO_CANCEL_VPN;
import static se.leap.bitmaskclient.base.models.Constants.EIP_ACTION_START;
@@ -36,16 +35,12 @@ import static se.leap.bitmaskclient.providersetup.ProviderAPI.UPDATE_INVALID_VPN
import static se.leap.bitmaskclient.providersetup.ProviderAPI.USER_MESSAGE;
import android.app.Activity;
-import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
-import android.content.ServiceConnection;
import android.content.SharedPreferences;
import android.graphics.drawable.Animatable;
-import android.graphics.drawable.Animatable2;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
-import android.os.IBinder;
import android.text.Spannable;
import android.text.SpannableString;
import android.text.TextUtils;
@@ -65,17 +60,13 @@ import androidx.core.content.ContextCompat;
import androidx.fragment.app.DialogFragment;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentTransaction;
-import androidx.vectordrawable.graphics.drawable.Animatable2Compat;
import androidx.vectordrawable.graphics.drawable.Animatable2Compat.AnimationCallback;
import androidx.vectordrawable.graphics.drawable.AnimatedVectorDrawableCompat;
import java.util.Observable;
import java.util.Observer;
-import java.util.concurrent.atomic.AtomicBoolean;
import de.blinkt.openvpn.core.ConnectionStatus;
-import de.blinkt.openvpn.core.IOpenVPNServiceInternal;
-import de.blinkt.openvpn.core.OpenVPNService;
import de.blinkt.openvpn.core.VpnStatus;
import de.blinkt.openvpn.core.connection.Connection;
import se.leap.bitmaskclient.R;
@@ -84,6 +75,7 @@ import se.leap.bitmaskclient.base.MainActivity;
import se.leap.bitmaskclient.base.models.Provider;
import se.leap.bitmaskclient.base.models.ProviderObservable;
import se.leap.bitmaskclient.base.utils.PreferenceHelper;
+import se.leap.bitmaskclient.base.utils.ViewHelper;
import se.leap.bitmaskclient.base.views.LocationButton;
import se.leap.bitmaskclient.base.views.MainButton;
import se.leap.bitmaskclient.databinding.FEipBinding;
@@ -129,10 +121,6 @@ public class EipFragment extends Fragment implements Observer {
//------------------------
AlertDialog alertDialog;
- private IOpenVPNServiceInternal mService;
- // We use this service connection to detect if openvpn is running without network
- private EipFragmentServiceConnection openVpnConnection;
-
@Override
public void onAttach(Context context) {
super.onAttach(context);
@@ -166,7 +154,6 @@ public class EipFragment extends Fragment implements Observer {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- openVpnConnection = new EipFragmentServiceConnection();
eipStatus = EipStatus.getInstance();
providerObservable = ProviderObservable.getInstance();
torStatusObservable = TorStatusObservable.getInstance();
@@ -178,8 +165,6 @@ public class EipFragment extends Fragment implements Observer {
}
gatewaysManager = new GatewaysManager(getContext());
-
-
}
@Override
@@ -192,6 +177,7 @@ public class EipFragment extends Fragment implements Observer {
mainDescription = binding.mainDescription;
subDescription = binding.subDescription;
stateView = binding.stateView;
+ ViewHelper.setActionBarTitle(this, R.string.app_name);
eipStatus.addObserver(this);
torStatusObservable.addObserver(this);
@@ -233,16 +219,14 @@ public class EipFragment extends Fragment implements Observer {
@Override
public void onResume() {
super.onResume();
- if (!eipStatus.isDisconnected()) {
- openVpnConnection.bindService();
- }
+ Log.d(TAG, "onResume");
handleNewState();
}
@Override
public void onPause() {
super.onPause();
- openVpnConnection.unbindService();
+ Log.d(TAG, "onPause");
}
@Override
@@ -270,10 +254,9 @@ public class EipFragment extends Fragment implements Observer {
@Override
public void onDestroyView() {
super.onDestroyView();
- Activity activity = getActivity();
- if (activity != null) {
- ((MainActivity) activity).setDefaultActivityBarColor();
- }
+ Log.d(TAG, "onDestroyView");
+
+ ViewHelper.setDefaultActivityBarColor(getActivity());
eipStatus.deleteObserver(this);
providerObservable.deleteObserver(this);
torStatusObservable.deleteObserver(this);
@@ -290,7 +273,7 @@ public class EipFragment extends Fragment implements Observer {
}
void handleIcon() {
- if (isOpenVpnRunningWithoutNetwork() || eipStatus.isConnected() || eipStatus.isConnecting() || eipStatus.isUpdatingVpnCert())
+ if (eipStatus.isVPNRunningWithoutNetwork() || eipStatus.isConnected() || eipStatus.isConnecting() || eipStatus.isUpdatingVpnCert())
handleSwitchOff();
else
handleSwitchOn();
@@ -326,7 +309,7 @@ public class EipFragment extends Fragment implements Observer {
}
private void handleSwitchOff() {
- if (isOpenVpnRunningWithoutNetwork() || eipStatus.isConnecting() || eipStatus.isUpdatingVpnCert()) {
+ if (eipStatus.isVPNRunningWithoutNetwork() || eipStatus.isConnecting() || eipStatus.isUpdatingVpnCert()) {
askPendingStartCancellation();
} else if (eipStatus.isConnected()) {
askToStopEIP();
@@ -420,13 +403,6 @@ public class EipFragment extends Fragment implements Observer {
eipStatus = (EipStatus) observable;
handleNewStateOnMain();
- if (eipStatus.isConnecting()) {
- openVpnConnection.bindService();
- }
- if ("NOPROCESS".equals(EipStatus.getInstance().getState())) {
- //assure that the Service is shutdown completely if openvpn was stopped
- openVpnConnection.unbindService();
- }
} else if (observable instanceof ProviderObservable) {
provider = ((ProviderObservable) observable).getCurrentProvider();
} else if (observable instanceof TorStatusObservable && EipStatus.getInstance().isUpdatingVpnCert()) {
@@ -444,11 +420,7 @@ public class EipFragment extends Fragment implements Observer {
}
private void setActivityBarColor(@ColorRes int primaryColor, @ColorRes int secondaryColor) {
- Activity activity = getActivity();
- if (activity == null) {
- return;
- }
- ((MainActivity) getActivity()).setActivityBarColor(primaryColor, secondaryColor, R.color.actionbar_connectivity_state_text_color_dark);
+ ViewHelper.setActivityBarColor(getActivity(), primaryColor, secondaryColor, R.color.actionbar_connectivity_state_text_color_dark);
}
private void handleNewState() {
@@ -480,7 +452,7 @@ public class EipFragment extends Fragment implements Observer {
}
background.setImageResource(R.drawable.bg_connecting);
animateState(R.drawable.state_connecting);
- mainButton.updateState(false, true, false);
+ mainButton.updateState(false, true);
setActivityBarColor(R.color.bg_connecting_top, R.color.bg_connecting_top_light_transparent);
} else if (eipStatus.isConnecting()) {
setMainButtonEnabled(true);
@@ -496,11 +468,11 @@ public class EipFragment extends Fragment implements Observer {
subDescription.setText(null);
background.setImageResource(R.drawable.bg_connecting);
animateState(R.drawable.state_connecting);
- mainButton.updateState(false, true, false);
+ mainButton.updateState(false, true);
setActivityBarColor(R.color.bg_connecting_top, R.color.bg_connecting_top_light_transparent);
} else if (eipStatus.isConnected()) {
setMainButtonEnabled(true);
- mainButton.updateState(true, false, false);
+ mainButton.updateState(true, false);
Connection.TransportType transportType = PreferenceHelper.getUseBridges(getContext()) ? Connection.TransportType.OBFS4 : Connection.TransportType.OPENVPN;
locationButton.setLocationLoad(PreferenceHelper.useObfuscationPinning(getContext()) ? GatewaysManager.Load.UNKNOWN : gatewaysManager.getLoadForLocation(VpnStatus.getLastConnectedVpnName(), transportType));
locationButton.setText(VpnStatus.getLastConnectedVpnName());
@@ -511,10 +483,10 @@ public class EipFragment extends Fragment implements Observer {
background.setImageResource(R.drawable.bg_connected);
animateState(R.drawable.state_connected);
setActivityBarColor(R.color.bg_running_top, R.color.bg_running_top_light_transparent);
- } else if(isOpenVpnRunningWithoutNetwork()) {
+ } else if(eipStatus.isVPNRunningWithoutNetwork()) {
Log.d(TAG, "eip fragment eipStatus - isOpenVpnRunningWithoutNetwork");
setMainButtonEnabled(true);
- mainButton.updateState(true, false, true);
+ mainButton.updateState(false, true);
locationButton.setText(VpnStatus.getCurrentlyConnectingVpnName());
locationButton.showBridgeIndicator(VpnStatus.isUsingBridges());
locationButton.showBridgeIndicator(VpnStatus.isUsingBridges());
@@ -525,6 +497,8 @@ public class EipFragment extends Fragment implements Observer {
animateState(R.drawable.state_connecting);
setActivityBarColor(R.color.bg_connecting_top, R.color.bg_connecting_top_light_transparent);
} else if (eipStatus.isDisconnected() && reconnectingWithDifferentGateway()) {
+ setMainButtonEnabled(true);
+ mainButton.updateState(false, true);
locationButton.setText(VpnStatus.getCurrentlyConnectingVpnName());
locationButton.setLocationLoad(UNKNOWN);
locationButton.showBridgeIndicator(false);
@@ -536,7 +510,7 @@ public class EipFragment extends Fragment implements Observer {
setActivityBarColor(R.color.bg_connecting_top, R.color.bg_connecting_top_light_transparent);
} else if (eipStatus.isDisconnecting()) {
setMainButtonEnabled(false);
- mainButton.updateState(false, false, false);
+ mainButton.updateState(false, false);
mainDescription.setText(R.string.eip_status_unsecured);
background.setImageResource(R.drawable.bg_disconnected);
if (previousEipLevel == EipStatus.EipLevel.CONNECTED) {
@@ -547,7 +521,7 @@ public class EipFragment extends Fragment implements Observer {
setActivityBarColor(R.color.bg_disconnected_top, R.color.bg_disconnected_top_light_transparent);
} else if (eipStatus.isBlocking()) {
setMainButtonEnabled(true);
- mainButton.updateState(false, true, true);
+ mainButton.updateState(false, true);
locationButton.setText(R.string.no_location);
locationButton.setLocationLoad(UNKNOWN);
locationButton.showBridgeIndicator(false);
@@ -560,7 +534,7 @@ public class EipFragment extends Fragment implements Observer {
} else {
locationButton.setText(R.string.vpn_button_turn_on);
setMainButtonEnabled(true);
- mainButton.updateState(false, false, false);
+ mainButton.updateState(false, false);
locationButton.setLocationLoad(UNKNOWN);
locationButton.showBridgeIndicator(false);
String city = getPreferredCity(getContext());
@@ -614,19 +588,6 @@ public class EipFragment extends Fragment implements Observer {
}
}
- private boolean isOpenVpnRunningWithoutNetwork() {
- boolean isRunning = false;
- try {
- isRunning = eipStatus.getLevel() == LEVEL_NONETWORK &&
- mService.isVpnRunning();
- } catch (Exception e) {
- //eat me
- e.printStackTrace();
- }
-
- return isRunning;
- }
-
private void updateInvalidVpnCertificate() {
eipStatus.setUpdatingVpnCert(true);
ProviderAPICommand.execute(getContext(), UPDATE_INVALID_VPN_CERTIFICATE, provider);
@@ -646,52 +607,6 @@ public class EipFragment extends Fragment implements Observer {
}
}
- private class EipFragmentServiceConnection implements ServiceConnection {
- private final AtomicBoolean bind = new AtomicBoolean(false);
-
- void bindService() {
- Activity activity = getActivity();
- if (activity == null) {
- Log.e(TAG, "activity is null when binding OpenVpn");
- return;
- }
- if (!bind.get()) {
- activity.runOnUiThread(() -> {
- Intent intent = new Intent(activity, OpenVPNService.class);
- intent.setAction(OpenVPNService.START_SERVICE);
-
- activity.bindService(intent, EipFragmentServiceConnection.this, Context.BIND_AUTO_CREATE);
- bind.set(true);
- });
- }
- }
-
- void unbindService() {
- Activity activity = getActivity();
- if (activity == null) {
- return;
- }
- if (bind.get()) {
- activity.runOnUiThread(() -> {
- activity.unbindService(EipFragmentServiceConnection.this);
- bind.set(false);
- });
- }
- }
-
- @Override
- public void onServiceConnected(ComponentName className,
- IBinder service) {
- mService = IOpenVPNServiceInternal.Stub.asInterface(service);
- handleNewState();
- }
-
- @Override
- public void onServiceDisconnected(ComponentName arg0) {
- mService = null;
- }
- }
-
public void showDonationReminderDialog() {
try {
FragmentTransaction fragmentTransaction = new FragmentManagerEnhanced(
diff --git a/app/src/main/java/se/leap/bitmaskclient/base/fragments/ExcludeAppsFragment.java b/app/src/main/java/se/leap/bitmaskclient/base/fragments/ExcludeAppsFragment.java
index 1574dbb0..98c2e438 100644
--- a/app/src/main/java/se/leap/bitmaskclient/base/fragments/ExcludeAppsFragment.java
+++ b/app/src/main/java/se/leap/bitmaskclient/base/fragments/ExcludeAppsFragment.java
@@ -312,7 +312,7 @@ public class ExcludeAppsFragment extends Fragment implements AdapterView.OnItemC
mListView.setOnItemClickListener(this);
mListView.setEmptyView(v.findViewById(R.id.loading_container));
- ViewHelper.setActionBarTitle(this, exclude_apps_fragment_title);
+ ViewHelper.setActionBarSubtitle(this, exclude_apps_fragment_title);
new Thread(() -> mListAdapter.populateList(getActivity())).start();
diff --git a/app/src/main/java/se/leap/bitmaskclient/base/fragments/GatewaySelectionFragment.java b/app/src/main/java/se/leap/bitmaskclient/base/fragments/GatewaySelectionFragment.java
index a2bfff7c..749ffd9f 100644
--- a/app/src/main/java/se/leap/bitmaskclient/base/fragments/GatewaySelectionFragment.java
+++ b/app/src/main/java/se/leap/bitmaskclient/base/fragments/GatewaySelectionFragment.java
@@ -52,7 +52,6 @@ import se.leap.bitmaskclient.eip.GatewaysManager;
import static android.content.Context.MODE_PRIVATE;
import static android.view.View.GONE;
import static android.view.View.VISIBLE;
-import static de.blinkt.openvpn.core.connection.Connection.TransportType.OBFS4;
import static de.blinkt.openvpn.core.connection.Connection.TransportType.OPENVPN;
import static de.blinkt.openvpn.core.connection.Connection.TransportType.PT;
import static se.leap.bitmaskclient.base.MainActivity.ACTION_SHOW_VPN_FRAGMENT;
@@ -60,7 +59,7 @@ import static se.leap.bitmaskclient.base.models.Constants.SHARED_PREFERENCES;
import static se.leap.bitmaskclient.base.models.Constants.USE_BRIDGES;
import static se.leap.bitmaskclient.base.utils.PreferenceHelper.getUseBridges;
import static se.leap.bitmaskclient.base.utils.PreferenceHelper.useBridges;
-import static se.leap.bitmaskclient.base.utils.ViewHelper.setActionBarTitle;
+import static se.leap.bitmaskclient.base.utils.ViewHelper.setActionBarSubtitle;
interface LocationListSelectionListener {
void onLocationManuallySelected(Location location);
@@ -90,16 +89,16 @@ public class GatewaySelectionFragment extends Fragment implements Observer, Loca
super.onCreate(savedInstanceState);
gatewaysManager = new GatewaysManager(getContext());
eipStatus = EipStatus.getInstance();
- eipStatus.addObserver(this);
preferences = getContext().getSharedPreferences(SHARED_PREFERENCES, MODE_PRIVATE);
- selectedTransport = getUseBridges(preferences) ? PT : OPENVPN;
- preferences.registerOnSharedPreferenceChangeListener(this);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
+ selectedTransport = getUseBridges(preferences) ? PT : OPENVPN;
+ preferences.registerOnSharedPreferenceChangeListener(this);
+ eipStatus.addObserver(this);
return inflater.inflate(R.layout.f_gateway_selection, container, false);
}
@@ -109,7 +108,7 @@ public class GatewaySelectionFragment extends Fragment implements Observer, Loca
initRecyclerView();
initRecommendedLocationEntry();
initBridgesHint(view);
- setActionBarTitle(this, R.string.gateway_selection_title);
+ setActionBarSubtitle(this, R.string.gateway_selection_title);
}
@Override
diff --git a/app/src/main/java/se/leap/bitmaskclient/base/fragments/LogFragment.java b/app/src/main/java/se/leap/bitmaskclient/base/fragments/LogFragment.java
index 6f0f29ef..8f73595d 100644
--- a/app/src/main/java/se/leap/bitmaskclient/base/fragments/LogFragment.java
+++ b/app/src/main/java/se/leap/bitmaskclient/base/fragments/LogFragment.java
@@ -5,6 +5,10 @@
package se.leap.bitmaskclient.base.fragments;
+import static de.blinkt.openvpn.core.OpenVPNService.humanReadableByteCount;
+import static se.leap.bitmaskclient.R.string.log_fragment_title;
+import static se.leap.bitmaskclient.base.utils.ViewHelper.setActionBarSubtitle;
+
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.ObjectAnimator;
@@ -59,10 +63,6 @@ import de.blinkt.openvpn.core.VpnStatus.StateListener;
import se.leap.bitmaskclient.R;
import se.leap.bitmaskclient.base.models.Constants;
-import static de.blinkt.openvpn.core.OpenVPNService.humanReadableByteCount;
-import static se.leap.bitmaskclient.R.string.log_fragment_title;
-import static se.leap.bitmaskclient.base.utils.ViewHelper.setActionBarTitle;
-
public class LogFragment extends ListFragment implements StateListener, SeekBar.OnSeekBarChangeListener, RadioGroup.OnCheckedChangeListener, VpnStatus.ByteCountListener {
public static final String TAG = LogFragment.class.getSimpleName();
private static final String LOGTIMEFORMAT = "logtimeformat";
@@ -533,7 +533,7 @@ public class LogFragment extends ListFragment implements StateListener, SeekBar.
if (mShowOptionsLayout)
mOptionsLayout.setVisibility(View.VISIBLE);
- setActionBarTitle(this, log_fragment_title);
+ setActionBarSubtitle(this, log_fragment_title);
return v;
}
@@ -557,7 +557,6 @@ public class LogFragment extends ListFragment implements StateListener, SeekBar.
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
-
}
diff --git a/app/src/main/java/se/leap/bitmaskclient/base/fragments/NavigationDrawerFragment.java b/app/src/main/java/se/leap/bitmaskclient/base/fragments/NavigationDrawerFragment.java
index fe36e00a..68435fec 100644
--- a/app/src/main/java/se/leap/bitmaskclient/base/fragments/NavigationDrawerFragment.java
+++ b/app/src/main/java/se/leap/bitmaskclient/base/fragments/NavigationDrawerFragment.java
@@ -38,9 +38,6 @@ import android.content.res.Configuration;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
-import android.text.Spannable;
-import android.text.SpannableString;
-import android.text.style.ForegroundColorSpan;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
@@ -48,15 +45,11 @@ import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
-import androidx.annotation.ColorRes;
import androidx.annotation.NonNull;
-import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.ActionBarDrawerToggle;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
-import androidx.appcompat.widget.ViewUtils;
-import androidx.core.content.ContextCompat;
import androidx.core.view.GravityCompat;
import androidx.drawerlayout.widget.DrawerLayout;
import androidx.fragment.app.Fragment;
@@ -70,7 +63,6 @@ import se.leap.bitmaskclient.base.FragmentManagerEnhanced;
import se.leap.bitmaskclient.base.MainActivity;
import se.leap.bitmaskclient.base.models.Provider;
import se.leap.bitmaskclient.base.models.ProviderObservable;
-import se.leap.bitmaskclient.base.utils.ViewHelper;
import se.leap.bitmaskclient.base.views.IconSwitchEntry;
import se.leap.bitmaskclient.base.views.IconTextEntry;
import se.leap.bitmaskclient.eip.EipStatus;
@@ -179,7 +171,6 @@ public class NavigationDrawerFragment extends Fragment implements SharedPreferen
this.drawerLayout.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START);
toolbar = this.drawerLayout.findViewById(R.id.toolbar);
- setupActionBar();
setupEntries();
setupActionBarDrawerToggle(activity);
@@ -240,7 +231,6 @@ public class NavigationDrawerFragment extends Fragment implements SharedPreferen
Bundle arguments = new Bundle();
arguments.putParcelable(PROVIDER_KEY, currentProvider);
fragment.setArguments(arguments);
- hideActionBarSubTitle();
fragmentManager.replace(R.id.main_container, fragment, MainActivity.TAG);
closeDrawer();
});
@@ -307,6 +297,10 @@ public class NavigationDrawerFragment extends Fragment implements SharedPreferen
manualGatewaySelection.setOnClickListener(v -> {
FragmentManagerEnhanced fragmentManager = new FragmentManagerEnhanced(getActivity().getSupportFragmentManager());
closeDrawer();
+ Fragment current = fragmentManager.findFragmentByTag(MainActivity.TAG);
+ if (current instanceof GatewaySelectionFragment) {
+ return;
+ }
Fragment fragment = new GatewaySelectionFragment();
fragmentManager.replace(R.id.main_container, fragment, MainActivity.TAG);
});
@@ -351,15 +345,7 @@ public class NavigationDrawerFragment extends Fragment implements SharedPreferen
}
}
- private ActionBar setupActionBar() {
- AppCompatActivity activity = (AppCompatActivity) getActivity();
- activity.setSupportActionBar(toolbar);
- final ActionBar actionBar = activity.getSupportActionBar();
- actionBar.setDisplayHomeAsUpEnabled(true);
- actionBar.setHomeButtonEnabled(true);
- actionBar.setDisplayShowTitleEnabled(true);
- return actionBar;
- }
+
@NonNull
private void closeDrawerWithDelay() {
@@ -421,14 +407,6 @@ public class NavigationDrawerFragment extends Fragment implements SharedPreferen
}
@Override
- public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
- if (drawerLayout != null && isDrawerOpen()) {
- showGlobalContextActionBar();
- }
- super.onCreateOptionsMenu(menu, inflater);
- }
-
- @Override
public boolean onOptionsItemSelected(MenuItem item) {
if (drawerToggle.onOptionsItemSelected(item)) {
return true;
@@ -442,33 +420,6 @@ public class NavigationDrawerFragment extends Fragment implements SharedPreferen
preferences.unregisterOnSharedPreferenceChangeListener(this);
}
- /**
- * Per the navigation drawer design guidelines, updates the action bar to show the global app
- * 'context', rather than just what's in the current screen.
- */
- private void showGlobalContextActionBar() {
- ActionBar actionBar = getActionBar();
- actionBar.setDisplayShowTitleEnabled(true);
- actionBar.setTitle(R.string.app_name);
- Activity activity = getActivity();
- if (activity == null) {
- return;
- }
- @ColorRes int titleColor = ((MainActivity) activity).getActionBarTitleColor();
- ViewHelper.setActionBarTextColor(actionBar, titleColor);
- }
-
- private ActionBar getActionBar() {
- return ((AppCompatActivity) getActivity()).getSupportActionBar();
- }
-
- private void hideActionBarSubTitle() {
- ActionBar actionBar = getActionBar();
- if (actionBar != null) {
- actionBar.setSubtitle(null);
- }
- }
-
public void refresh() {
Provider currentProvider = ProviderObservable.getInstance().getCurrentProvider();
account.setText(currentProvider.getName());
diff --git a/app/src/main/java/se/leap/bitmaskclient/base/fragments/SettingsFragment.java b/app/src/main/java/se/leap/bitmaskclient/base/fragments/SettingsFragment.java
index f7d20aa9..d5bbd2c5 100644
--- a/app/src/main/java/se/leap/bitmaskclient/base/fragments/SettingsFragment.java
+++ b/app/src/main/java/se/leap/bitmaskclient/base/fragments/SettingsFragment.java
@@ -24,7 +24,7 @@ import static se.leap.bitmaskclient.base.utils.PreferenceHelper.setUseObfuscatio
import static se.leap.bitmaskclient.base.utils.PreferenceHelper.useBridges;
import static se.leap.bitmaskclient.base.utils.PreferenceHelper.useObfuscationPinning;
import static se.leap.bitmaskclient.base.utils.PreferenceHelper.useSnowflake;
-import static se.leap.bitmaskclient.base.utils.ViewHelper.setActionBarTitle;
+import static se.leap.bitmaskclient.base.utils.ViewHelper.setActionBarSubtitle;
import android.app.AlertDialog;
import android.content.Context;
@@ -90,7 +90,7 @@ public class SettingsFragment extends Fragment implements SharedPreferences.OnSh
initGatewayPinningEntry(view);
initExperimentalTransportsEntry(view);
initObfuscationPinningEntry(view);
- setActionBarTitle(this, advanced_settings);
+ setActionBarSubtitle(this, advanced_settings);
return view;
}