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/AlwaysOnDialog.java2
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/base/fragments/DonationReminderDialog.java12
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/base/fragments/EipFragment.java26
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/base/fragments/ExcludeAppsFragment.java4
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/base/fragments/GatewaySelectionFragment.java20
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/base/fragments/LogFragment.java8
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/base/fragments/MainActivityErrorDialog.java10
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/base/fragments/NavigationDrawerFragment.java21
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/base/fragments/ObfuscationProxyDialog.java23
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/base/fragments/SettingsFragment.java50
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/base/fragments/TetheringDialog.java12
11 files changed, 81 insertions, 107 deletions
diff --git a/app/src/main/java/se/leap/bitmaskclient/base/fragments/AlwaysOnDialog.java b/app/src/main/java/se/leap/bitmaskclient/base/fragments/AlwaysOnDialog.java
index 7d457406..e68ba170 100644
--- a/app/src/main/java/se/leap/bitmaskclient/base/fragments/AlwaysOnDialog.java
+++ b/app/src/main/java/se/leap/bitmaskclient/base/fragments/AlwaysOnDialog.java
@@ -68,7 +68,7 @@ public class AlwaysOnDialog extends AppCompatDialogFragment {
builder.setView(view)
.setPositiveButton(android.R.string.ok, (dialog, id) -> {
if (doNotShowAgainCheckBox.isChecked()) {
- saveShowAlwaysOnDialog(getContext(), false);
+ saveShowAlwaysOnDialog(false);
}
Intent intent = new Intent("android.net.vpn.SETTINGS");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
diff --git a/app/src/main/java/se/leap/bitmaskclient/base/fragments/DonationReminderDialog.java b/app/src/main/java/se/leap/bitmaskclient/base/fragments/DonationReminderDialog.java
index c39386fc..08346791 100644
--- a/app/src/main/java/se/leap/bitmaskclient/base/fragments/DonationReminderDialog.java
+++ b/app/src/main/java/se/leap/bitmaskclient/base/fragments/DonationReminderDialog.java
@@ -67,13 +67,11 @@ public class DonationReminderDialog extends AppCompatDialogFragment {
} catch (ActivityNotFoundException e) {
e.printStackTrace();
}
- PreferenceHelper.putString(getContext(), LAST_DONATION_REMINDER_DATE,
- DateHelper.getCurrentDateString());
+ PreferenceHelper.lastDonationReminderDate(DateHelper.getCurrentDateString());
dismiss();
});
btnLater.setOnClickListener(v -> {
- PreferenceHelper.putString(getContext(), LAST_DONATION_REMINDER_DATE,
- DateHelper.getCurrentDateString());
+ PreferenceHelper.lastDonationReminderDate(DateHelper.getCurrentDateString());
dismiss();
});
@@ -100,9 +98,9 @@ public class DonationReminderDialog extends AppCompatDialogFragment {
return false;
}
- String firstTimeUserDate = PreferenceHelper.getString(context, FIRST_TIME_USER_DATE, null);
+ String firstTimeUserDate = PreferenceHelper.getFirstTimeUserDate();
if (firstTimeUserDate == null) {
- PreferenceHelper.putString(context, FIRST_TIME_USER_DATE, DateHelper.getCurrentDateString());
+ PreferenceHelper.firstTimeUserDate(DateHelper.getCurrentDateString());
return false;
}
@@ -114,7 +112,7 @@ public class DonationReminderDialog extends AppCompatDialogFragment {
return false;
}
- String lastDonationReminderDate = PreferenceHelper.getString(context, LAST_DONATION_REMINDER_DATE, null);
+ String lastDonationReminderDate = PreferenceHelper.getLastDonationReminderDate();
if (lastDonationReminderDate == null) {
return true;
}
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 a8d11869..f50b69a5 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
@@ -20,7 +20,6 @@ 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;
import static se.leap.bitmaskclient.base.models.Constants.EIP_EARLY_ROUTES;
-import static se.leap.bitmaskclient.base.models.Constants.EIP_RESTART_ON_BOOT;
import static se.leap.bitmaskclient.base.models.Constants.PROVIDER_KEY;
import static se.leap.bitmaskclient.base.models.Constants.REQUEST_CODE_CONFIGURE_LEAP;
import static se.leap.bitmaskclient.base.models.Constants.REQUEST_CODE_LOG_IN;
@@ -36,7 +35,6 @@ import static se.leap.bitmaskclient.providersetup.ProviderAPI.USER_MESSAGE;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
-import android.content.SharedPreferences;
import android.graphics.drawable.Animatable;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
@@ -93,8 +91,6 @@ public class EipFragment extends Fragment implements Observer {
public final static String TAG = EipFragment.class.getSimpleName();
-
- private SharedPreferences preferences;
private Provider provider;
AppCompatImageView background;
@@ -156,12 +152,6 @@ public class EipFragment extends Fragment implements Observer {
eipStatus = EipStatus.getInstance();
providerObservable = ProviderObservable.getInstance();
torStatusObservable = TorStatusObservable.getInstance();
- Activity activity = getActivity();
- if (activity != null) {
- preferences = PreferenceHelper.getSharedPreferences(activity);
- } else {
- Log.e(TAG, "activity is null in onCreate - no preferences set!");
- }
gatewaysManager = new GatewaysManager(getContext());
}
@@ -274,7 +264,7 @@ public class EipFragment extends Fragment implements Observer {
}
private void saveStatus(boolean restartOnBoot) {
- preferences.edit().putBoolean(EIP_RESTART_ON_BOOT, restartOnBoot).apply();
+ PreferenceHelper.restartOnBoot(restartOnBoot);
}
void handleIcon() {
@@ -438,7 +428,7 @@ public class EipFragment extends Fragment implements Observer {
Log.d(TAG, "eip fragment eipStatus state: " + eipStatus.getState() + " - level: " + eipStatus.getLevel() + " - is reconnecting: " + eipStatus.isReconnecting());
if (eipStatus.isUpdatingVpnCert()) {
setMainButtonEnabled(true);
- String city = getPreferredCity(getContext());
+ String city = getPreferredCity();
String locationName = VpnStatus.getCurrentlyConnectingVpnName() != null ?
VpnStatus.getCurrentlyConnectingVpnName() :
city == null ? getString(R.string.gateway_selection_recommended_location) : city;
@@ -461,7 +451,7 @@ public class EipFragment extends Fragment implements Observer {
setActivityBarColor(R.color.bg_connecting_top, R.color.bg_connecting_top_light_transparent);
} else if (eipStatus.isConnecting()) {
setMainButtonEnabled(true);
- String city = getPreferredCity(getContext());
+ String city = getPreferredCity();
String locationName = VpnStatus.getCurrentlyConnectingVpnName() != null ?
VpnStatus.getCurrentlyConnectingVpnName() :
city == null ? getString(R.string.gateway_selection_recommended_location) : city;
@@ -478,11 +468,11 @@ public class EipFragment extends Fragment implements Observer {
} else if (eipStatus.isConnected()) {
setMainButtonEnabled(true);
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));
+ Connection.TransportType transportType = PreferenceHelper.getUseBridges() ? Connection.TransportType.OBFS4 : Connection.TransportType.OPENVPN;
+ locationButton.setLocationLoad(PreferenceHelper.useObfuscationPinning() ? GatewaysManager.Load.UNKNOWN : gatewaysManager.getLoadForLocation(VpnStatus.getLastConnectedVpnName(), transportType));
locationButton.setText(VpnStatus.getLastConnectedVpnName());
locationButton.showBridgeIndicator(VpnStatus.isUsingBridges());
- locationButton.showRecommendedIndicator(getPreferredCity(getContext()) == null);
+ locationButton.showRecommendedIndicator(getPreferredCity() == null);
mainDescription.setText(R.string.eip_status_secured);
subDescription.setText(null);
background.setImageResource(R.drawable.bg_connected);
@@ -495,7 +485,7 @@ public class EipFragment extends Fragment implements Observer {
locationButton.setText(VpnStatus.getCurrentlyConnectingVpnName());
locationButton.showBridgeIndicator(VpnStatus.isUsingBridges());
locationButton.showBridgeIndicator(VpnStatus.isUsingBridges());
- locationButton.showRecommendedIndicator(getPreferredCity(getContext())== null);
+ locationButton.showRecommendedIndicator(getPreferredCity()== null);
mainDescription.setText(R.string.eip_state_connected);
subDescription.setText(R.string.eip_state_no_network);
background.setImageResource(R.drawable.bg_connecting);
@@ -542,7 +532,7 @@ public class EipFragment extends Fragment implements Observer {
mainButton.updateState(false, false);
locationButton.setLocationLoad(UNKNOWN);
locationButton.showBridgeIndicator(false);
- String city = getPreferredCity(getContext());
+ String city = getPreferredCity();
locationButton.setText(city == null ? getString(R.string.gateway_selection_recommended_location) : city);
locationButton.showRecommendedIndicator(false);
mainDescription.setText(R.string.eip_status_unsecured);
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 98c2e438..89b167f3 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
@@ -255,7 +255,7 @@ public class ExcludeAppsFragment extends Fragment implements AdapterView.OnItemC
@Override
public void onDestroy() {
- PreferenceHelper.setExcludedApps(this.getActivity().getApplicationContext(), apps);
+ PreferenceHelper.setExcludedApps(apps);
super.onDestroy();
}
@@ -263,7 +263,7 @@ public class ExcludeAppsFragment extends Fragment implements AdapterView.OnItemC
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- apps = PreferenceHelper.getExcludedApps(this.getContext());
+ apps = PreferenceHelper.getExcludedApps();
setHasOptionsMenu(true);
}
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 793c6407..dc7f64e1 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
@@ -73,7 +73,6 @@ public class GatewaySelectionFragment extends Fragment implements Observer, Loca
private SelectLocationEntry recommendedLocation;
private GatewaysManager gatewaysManager;
private EipStatus eipStatus;
- private SharedPreferences preferences;
private Connection.TransportType selectedTransport;
private AppCompatTextView bridgesHint;
private AppCompatTextView disableBridges;
@@ -87,15 +86,14 @@ public class GatewaySelectionFragment extends Fragment implements Observer, Loca
super.onCreate(savedInstanceState);
gatewaysManager = new GatewaysManager(getContext());
eipStatus = EipStatus.getInstance();
- preferences = PreferenceHelper.getSharedPreferences(getContext());
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
- selectedTransport = getUseBridges(preferences) ? PT : OPENVPN;
- preferences.registerOnSharedPreferenceChangeListener(this);
+ selectedTransport = getUseBridges() ? PT : OPENVPN;
+ PreferenceHelper.registerOnSharedPreferenceChangeListener(this);
eipStatus.addObserver(this);
return inflater.inflate(R.layout.f_gateway_selection, container, false);
}
@@ -113,7 +111,7 @@ public class GatewaySelectionFragment extends Fragment implements Observer, Loca
public void onDestroyView() {
super.onDestroyView();
eipStatus.deleteObserver(this);
- preferences.unregisterOnSharedPreferenceChangeListener(this);
+ PreferenceHelper.unregisterOnSharedPreferenceChangeListener(this);
}
private void initRecyclerView() {
@@ -140,17 +138,17 @@ public class GatewaySelectionFragment extends Fragment implements Observer, Loca
private void initBridgesHint(@NonNull View view) {
bridgesHint = view.findViewById(R.id.manual_subtitle);
- bridgesHint.setVisibility(getUseBridges(getContext()) ? VISIBLE : GONE);
+ bridgesHint.setVisibility(getUseBridges() ? VISIBLE : GONE);
disableBridges = view.findViewById(R.id.disable_bridges);
- disableBridges.setVisibility(getUseBridges(getContext()) ? VISIBLE : GONE);
+ disableBridges.setVisibility(getUseBridges() ? VISIBLE : GONE);
disableBridges.setOnClickListener(v -> {
- useBridges(getContext(), false);
+ useBridges(false);
});
}
private void updateRecommendedLocation() {
Location location = new Location();
- boolean isManualSelection = PreferenceHelper.getPreferredCity(getContext()) != null;
+ boolean isManualSelection = PreferenceHelper.getPreferredCity() != null;
if (!isManualSelection && eipStatus.isConnected()) {
try {
location = gatewaysManager.getLocation(VpnStatus.getCurrentlyConnectingVpnName()).clone();
@@ -171,7 +169,7 @@ public class GatewaySelectionFragment extends Fragment implements Observer, Loca
if (context == null) {
return;
}
- PreferenceHelper.setPreferredCity(context, preferredCity);
+ PreferenceHelper.setPreferredCity(preferredCity);
EipCommand.startVPN(context, false);
try {
Intent intent = new Intent(context, MainActivity.class);
@@ -207,7 +205,7 @@ public class GatewaySelectionFragment extends Fragment implements Observer, Loca
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
if (key.equals(USE_BRIDGES)) {
- boolean showBridges = getUseBridges(sharedPreferences);
+ boolean showBridges = getUseBridges();
selectedTransport = showBridges ? PT : OPENVPN;
gatewaysManager.updateTransport(selectedTransport);
locationListAdapter.updateTransport(selectedTransport, gatewaysManager);
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 8f73595d..c7dd25da 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
@@ -22,7 +22,6 @@ import android.os.Bundle;
import android.os.Handler;
import android.os.Handler.Callback;
import android.os.Message;
-import android.preference.PreferenceManager;
import android.text.SpannableString;
import android.text.format.DateFormat;
import android.view.LayoutInflater;
@@ -56,12 +55,11 @@ import de.blinkt.openvpn.core.ConnectionStatus;
import de.blinkt.openvpn.core.LogItem;
import de.blinkt.openvpn.core.OpenVPNManagement;
import de.blinkt.openvpn.core.OpenVPNService;
-import de.blinkt.openvpn.core.Preferences;
import de.blinkt.openvpn.core.VpnStatus;
import de.blinkt.openvpn.core.VpnStatus.LogListener;
import de.blinkt.openvpn.core.VpnStatus.StateListener;
import se.leap.bitmaskclient.R;
-import se.leap.bitmaskclient.base.models.Constants;
+import se.leap.bitmaskclient.base.utils.PreferenceHelper;
public class LogFragment extends ListFragment implements StateListener, SeekBar.OnSeekBarChangeListener, RadioGroup.OnCheckedChangeListener, VpnStatus.ByteCountListener {
public static final String TAG = LogFragment.class.getSimpleName();
@@ -511,9 +509,9 @@ public class LogFragment extends ListFragment implements StateListener, SeekBar.
}
mClearLogCheckBox = v.findViewById(R.id.clearlogconnect);
- mClearLogCheckBox.setChecked(PreferenceManager.getDefaultSharedPreferences(getActivity()).getBoolean(Constants.CLEARLOG, true));
+ mClearLogCheckBox.setChecked(PreferenceHelper.getClearLog());
mClearLogCheckBox.setOnCheckedChangeListener((buttonView, isChecked) ->
- Preferences.getDefaultSharedPreferences(getActivity()).edit().putBoolean(Constants.CLEARLOG, isChecked).apply());
+ PreferenceHelper.setClearLog(isChecked));
mSpeedView = v.findViewById(R.id.speed);
diff --git a/app/src/main/java/se/leap/bitmaskclient/base/fragments/MainActivityErrorDialog.java b/app/src/main/java/se/leap/bitmaskclient/base/fragments/MainActivityErrorDialog.java
index ae25c61c..3dbdbe64 100644
--- a/app/src/main/java/se/leap/bitmaskclient/base/fragments/MainActivityErrorDialog.java
+++ b/app/src/main/java/se/leap/bitmaskclient/base/fragments/MainActivityErrorDialog.java
@@ -134,22 +134,22 @@ public class MainActivityErrorDialog extends DialogFragment {
stopVoidVpnIntent.setAction(EIP_ACTION_STOP_BLOCKING_VPN);
getContext().startService(stopVoidVpnIntent);
});
- if (getPreferredCity(applicationContext) != null) {
+ if (getPreferredCity() != null) {
builder.setPositiveButton(R.string.warning_option_try_best, (dialog, which) -> {
new Thread(() -> {
- setPreferredCity(applicationContext, null);
+ setPreferredCity(null);
EipCommand.startVPN(applicationContext, false);
}).start();
});
} else if (provider.supportsPluggableTransports()) {
- if (getUseBridges(applicationContext)) {
+ if (getUseBridges()) {
builder.setPositiveButton(warning_option_try_ovpn, ((dialog, which) -> {
- useBridges(applicationContext, false);
+ useBridges(false);
EipCommand.startVPN(applicationContext, false);
}));
} else {
builder.setPositiveButton(warning_option_try_pt, ((dialog, which) -> {
- useBridges(applicationContext, true);
+ useBridges(true);
EipCommand.startVPN(applicationContext, false);
}));
}
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 f51fd342..9a8c9d00 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
@@ -17,7 +17,6 @@
package se.leap.bitmaskclient.base.fragments;
-import static android.content.Context.MODE_PRIVATE;
import static android.view.View.GONE;
import static android.view.View.VISIBLE;
import static se.leap.bitmaskclient.base.models.Constants.DONATION_URL;
@@ -31,6 +30,7 @@ import static se.leap.bitmaskclient.base.utils.PreferenceHelper.getSaveBattery;
import static se.leap.bitmaskclient.base.utils.PreferenceHelper.saveBattery;
import android.app.Activity;
+import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.res.Configuration;
@@ -38,8 +38,6 @@ import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.view.LayoutInflater;
-import android.view.Menu;
-import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
@@ -99,8 +97,6 @@ public class NavigationDrawerFragment extends Fragment implements SharedPreferen
private volatile boolean wasPaused;
private volatile boolean shouldCloseOnResume;
- private SharedPreferences preferences;
-
private final static String KEY_SHOW_SAVE_BATTERY_ALERT = "KEY_SHOW_SAVE_BATTERY_ALERT";
private volatile boolean showSaveBattery = false;
AlertDialog alertDialog;
@@ -108,10 +104,7 @@ public class NavigationDrawerFragment extends Fragment implements SharedPreferen
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- // Reads in the flag indicating whether or not the user has demonstrated awareness of the
- // drawer. See PREF_USER_LEARNED_DRAWER for details.
- preferences = PreferenceHelper.getSharedPreferences(getContext());
- preferences.registerOnSharedPreferenceChangeListener(this);
+ PreferenceHelper.registerOnSharedPreferenceChangeListener(this);
}
@Override
@@ -260,7 +253,7 @@ public class NavigationDrawerFragment extends Fragment implements SharedPreferen
private void initSaveBatteryEntry() {
saveBattery = drawerView.findViewById(R.id.battery_switch);
saveBattery.showSubtitle(false);
- saveBattery.setChecked(getSaveBattery(getContext()));
+ saveBattery.setChecked(getSaveBattery());
saveBattery.setOnCheckedChangeListener(((buttonView, isChecked) -> {
if (!buttonView.isPressed()) {
return;
@@ -268,7 +261,7 @@ public class NavigationDrawerFragment extends Fragment implements SharedPreferen
if (isChecked) {
showSaveBatteryAlert();
} else {
- saveBattery(getContext(), false);
+ saveBattery(false);
}
}));
boolean enableEntry = !TetheringObservable.getInstance().getTetheringState().isVpnTetheringRunning();
@@ -288,7 +281,7 @@ public class NavigationDrawerFragment extends Fragment implements SharedPreferen
return;
}
manualGatewaySelection = drawerView.findViewById(R.id.manualGatewaySelection);
- String preferredGateway = getPreferredCity(getContext());
+ String preferredGateway = getPreferredCity();
String subtitle = preferredGateway != null ? preferredGateway : getString(R.string.gateway_selection_recommended_location);
manualGatewaySelection.setSubtitle(subtitle);
boolean show = ProviderObservable.getInstance().getCurrentProvider().hasGatewaysInDifferentLocations();
@@ -388,7 +381,7 @@ public class NavigationDrawerFragment extends Fragment implements SharedPreferen
.setTitle(activity.getString(R.string.save_battery))
.setMessage(activity.getString(R.string.save_battery_message))
.setPositiveButton((android.R.string.yes), (dialog, which) -> {
- saveBattery(getContext(), true);
+ saveBattery(true);
})
.setNegativeButton(activity.getString(android.R.string.no), (dialog, which) -> saveBattery.setCheckedQuietly(false))
.setOnDismissListener(dialog -> showSaveBattery = false)
@@ -417,7 +410,7 @@ public class NavigationDrawerFragment extends Fragment implements SharedPreferen
@Override
public void onDestroy() {
super.onDestroy();
- preferences.unregisterOnSharedPreferenceChangeListener(this);
+ PreferenceHelper.unregisterOnSharedPreferenceChangeListener(this);
}
public void refresh() {
diff --git a/app/src/main/java/se/leap/bitmaskclient/base/fragments/ObfuscationProxyDialog.java b/app/src/main/java/se/leap/bitmaskclient/base/fragments/ObfuscationProxyDialog.java
index 2c0fdd69..948d764f 100644
--- a/app/src/main/java/se/leap/bitmaskclient/base/fragments/ObfuscationProxyDialog.java
+++ b/app/src/main/java/se/leap/bitmaskclient/base/fragments/ObfuscationProxyDialog.java
@@ -48,23 +48,23 @@ public class ObfuscationProxyDialog extends AppCompatDialogFragment {
cancelButton = binding.buttonCancel;
kcpSwitch = binding.kcpSwitch;
- ipField.setText(PreferenceHelper.getObfuscationPinningIP(getContext()));
- portField.setText(PreferenceHelper.getObfuscationPinningPort(getContext()));
- certificateField.setText(PreferenceHelper.getObfuscationPinningCert(getContext()));
- kcpSwitch.setChecked(PreferenceHelper.getObfuscationPinningKCP(getContext()));
+ ipField.setText(PreferenceHelper.getObfuscationPinningIP());
+ portField.setText(PreferenceHelper.getObfuscationPinningPort());
+ certificateField.setText(PreferenceHelper.getObfuscationPinningCert());
+ kcpSwitch.setChecked(PreferenceHelper.getObfuscationPinningKCP());
GatewaysManager gatewaysManager = new GatewaysManager(getContext());
saveButton.setOnClickListener(v -> {
String ip = TextUtils.isEmpty(ipField.getText()) ? null : ipField.getText().toString();
- PreferenceHelper.setObfuscationPinningIP(v.getContext(), ip);
+ PreferenceHelper.setObfuscationPinningIP(ip);
String port = TextUtils.isEmpty(portField.getText()) ? null : portField.getText().toString();
- PreferenceHelper.setObfuscationPinningPort(v.getContext(), port);
+ PreferenceHelper.setObfuscationPinningPort(port);
String cert = TextUtils.isEmpty(certificateField.getText()) ? null : certificateField.getText().toString();
- PreferenceHelper.setObfuscationPinningCert(v.getContext(), cert);
- PreferenceHelper.setObfuscationPinningKCP(v.getContext(), kcpSwitch.isChecked());
- PreferenceHelper.setUseObfuscationPinning(v.getContext(), ip != null && port != null && cert != null);
- PreferenceHelper.setObfuscationPinningGatewayLocation(v.getContext(), gatewaysManager.getLocationNameForIP(ip, v.getContext()));
+ PreferenceHelper.setObfuscationPinningCert(cert);
+ PreferenceHelper.setObfuscationPinningKCP(kcpSwitch.isChecked());
+ PreferenceHelper.setUseObfuscationPinning(ip != null && port != null && cert != null);
+ PreferenceHelper.setObfuscationPinningGatewayLocation(gatewaysManager.getLocationNameForIP(ip, v.getContext()));
dismiss();
});
@@ -78,8 +78,7 @@ public class ObfuscationProxyDialog extends AppCompatDialogFragment {
cancelButton.setOnClickListener(v -> {
boolean allowPinning = !TextUtils.isEmpty(ipField.getText()) && !TextUtils.isEmpty(portField.getText()) && !TextUtils.isEmpty(certificateField.getText());
- PreferenceHelper.setUseObfuscationPinning(
- v.getContext(), allowPinning);
+ PreferenceHelper.setUseObfuscationPinning(allowPinning);
dismiss();
});
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 f36b17ad..c8c994a5 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
@@ -11,6 +11,7 @@ import static se.leap.bitmaskclient.base.models.Constants.USE_OBFUSCATION_PINNIN
import static se.leap.bitmaskclient.base.utils.ConfigHelper.ObfsVpnHelper.useObfsVpn;
import static se.leap.bitmaskclient.base.utils.ConfigHelper.isCalyxOSWithTetheringSupport;
import static se.leap.bitmaskclient.base.utils.PreferenceHelper.allowExperimentalTransports;
+import static se.leap.bitmaskclient.base.utils.PreferenceHelper.getExcludedApps;
import static se.leap.bitmaskclient.base.utils.PreferenceHelper.getPreferUDP;
import static se.leap.bitmaskclient.base.utils.PreferenceHelper.getShowAlwaysOnDialog;
import static se.leap.bitmaskclient.base.utils.PreferenceHelper.getUseBridges;
@@ -60,8 +61,6 @@ import se.leap.bitmaskclient.firewall.FirewallManager;
public class SettingsFragment extends Fragment implements SharedPreferences.OnSharedPreferenceChangeListener {
private FirewallManager firewallManager;
- private SharedPreferences preferences;
-
private IconTextEntry tethering;
private IconSwitchEntry firewall;
IconSwitchEntry useUdpEntry;
@@ -69,8 +68,7 @@ public class SettingsFragment extends Fragment implements SharedPreferences.OnSh
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- preferences = PreferenceHelper.getSharedPreferences(getContext());
- preferences.registerOnSharedPreferenceChangeListener(this);
+ PreferenceHelper.registerOnSharedPreferenceChangeListener(this);
firewallManager = new FirewallManager(getContext().getApplicationContext(), false);
}
@@ -94,20 +92,20 @@ public class SettingsFragment extends Fragment implements SharedPreferences.OnSh
@Override
public void onDestroy() {
+ PreferenceHelper.unregisterOnSharedPreferenceChangeListener(this);
super.onDestroy();
- preferences.unregisterOnSharedPreferenceChangeListener(this);
}
private void initUseBridgesEntry(View rootView) {
IconSwitchEntry useBridges = rootView.findViewById(R.id.bridges_switch);
if (ProviderObservable.getInstance().getCurrentProvider().supportsPluggableTransports()) {
useBridges.setVisibility(VISIBLE);
- useBridges.setChecked(getUseBridges(getContext()));
+ useBridges.setChecked(getUseBridges());
useBridges.setOnCheckedChangeListener((buttonView, isChecked) -> {
if (!buttonView.isPressed()) {
return;
}
- useBridges(getContext(), isChecked);
+ useBridges(isChecked);
if (VpnStatus.isVPNActive()) {
EipCommand.startVPN(getContext(), false);
Toast.makeText(getContext(), R.string.reconnecting, Toast.LENGTH_LONG).show();
@@ -116,7 +114,7 @@ public class SettingsFragment extends Fragment implements SharedPreferences.OnSh
//We check the UI state of the useUdpEntry here as well, in order to avoid a situation
//where both entries are disabled, because both preferences are enabled.
//bridges can be enabled not only from here but also from error handling
- boolean useUDP = getPreferUDP(getContext()) && useUdpEntry.isEnabled();
+ boolean useUDP = getPreferUDP() && useUdpEntry.isEnabled();
useBridges.setEnabled(!useUDP);
useBridges.setSubtitle(getString(useUDP ? R.string.disabled_while_udp_on : R.string.nav_drawer_subtitle_obfuscated_connection));
} else {
@@ -127,12 +125,12 @@ public class SettingsFragment extends Fragment implements SharedPreferences.OnSh
private void initUseSnowflakeEntry(View rootView) {
IconSwitchEntry useSnowflake = rootView.findViewById(R.id.snowflake_switch);
useSnowflake.setVisibility(VISIBLE);
- useSnowflake.setChecked(hasSnowflakePrefs(getContext()) && getUseSnowflake(getContext()));
+ useSnowflake.setChecked(hasSnowflakePrefs() && getUseSnowflake());
useSnowflake.setOnCheckedChangeListener((buttonView, isChecked) -> {
if (!buttonView.isPressed()) {
return;
}
- useSnowflake(getContext(), isChecked);
+ useSnowflake(isChecked);
});
}
@@ -141,7 +139,7 @@ public class SettingsFragment extends Fragment implements SharedPreferences.OnSh
IconTextEntry alwaysOnVpn = rootView.findViewById(R.id.always_on_vpn);
alwaysOnVpn.setVisibility(VISIBLE);
alwaysOnVpn.setOnClickListener((buttonView) -> {
- if (getShowAlwaysOnDialog(getContext())) {
+ if (getShowAlwaysOnDialog()) {
showAlwaysOnDialog();
} else {
Intent intent = new Intent("android.net.vpn.SETTINGS");
@@ -155,18 +153,18 @@ public class SettingsFragment extends Fragment implements SharedPreferences.OnSh
private void initPreferUDPEntry(View rootView) {
useUdpEntry = rootView.findViewById(R.id.prefer_udp);
useUdpEntry.setVisibility(VISIBLE);
- useUdpEntry.setChecked(getPreferUDP(getContext()));
+ useUdpEntry.setChecked(getPreferUDP());
useUdpEntry.setOnCheckedChangeListener((buttonView, isChecked) -> {
if (!buttonView.isPressed()) {
return;
}
- preferUDP(getContext(), isChecked);
+ preferUDP(isChecked);
if (VpnStatus.isVPNActive()) {
EipCommand.startVPN(getContext(), false);
Toast.makeText(getContext(), R.string.reconnecting, Toast.LENGTH_LONG).show();
}
});
- boolean bridgesEnabled = getUseBridges(getContext());
+ boolean bridgesEnabled = getUseBridges();
useUdpEntry.setEnabled(!bridgesEnabled);
useUdpEntry.setSubtitle(getString(bridgesEnabled ? R.string.disabled_while_bridges_on : R.string.prefer_udp_subtitle));
}
@@ -174,7 +172,7 @@ public class SettingsFragment extends Fragment implements SharedPreferences.OnSh
private void initExcludeAppsEntry(View rootView) {
IconTextEntry excludeApps = rootView.findViewById(R.id.exclude_apps);
excludeApps.setVisibility(VISIBLE);
- Set<String> apps = PreferenceHelper.getExcludedApps(this.getContext());
+ Set<String> apps = getExcludedApps();
if (apps != null) {
updateExcludeAppsSubtitle(excludeApps, apps.size());
}
@@ -196,12 +194,12 @@ public class SettingsFragment extends Fragment implements SharedPreferences.OnSh
private void initFirewallEntry(View rootView) {
firewall = rootView.findViewById(R.id.enableIPv6Firewall);
- firewall.setChecked(PreferenceHelper.useIpv6Firewall(getContext()));
+ firewall.setChecked(PreferenceHelper.useIpv6Firewall());
firewall.setOnCheckedChangeListener((buttonView, isChecked) -> {
if (!buttonView.isPressed()) {
return;
}
- PreferenceHelper.setUseIPv6Firewall(getContext(), isChecked);
+ PreferenceHelper.setUseIPv6Firewall(isChecked);
if (VpnStatus.isVPNActive()) {
if (isChecked) {
firewallManager.startIPv6Firewall();
@@ -235,7 +233,7 @@ public class SettingsFragment extends Fragment implements SharedPreferences.OnSh
if (context == null) {
return;
}
- String pinnedGateway = PreferenceHelper.getPinnedGateway(rootView.getContext());
+ String pinnedGateway = PreferenceHelper.getPinnedGateway();
gatewayPinning.setSubtitle(pinnedGateway != null ? pinnedGateway : "Connect to a specific Gateway for debugging purposes");
gatewayPinning.setOnClickListener(v -> {
@@ -249,10 +247,10 @@ public class SettingsFragment extends Fragment implements SharedPreferences.OnSh
if (gatewayPinningEditText.getText() != null) {
String editTextInput = gatewayPinningEditText.getText().toString();
if (!TextUtils.isEmpty(editTextInput)) {
- PreferenceHelper.setPreferredCity(context, null);
- PreferenceHelper.pinGateway(context, editTextInput);
+ PreferenceHelper.setPreferredCity(null);
+ PreferenceHelper.pinGateway(editTextInput);
} else {
- PreferenceHelper.pinGateway(context, null);
+ PreferenceHelper.pinGateway(null);
}
}
})
@@ -268,16 +266,16 @@ public class SettingsFragment extends Fragment implements SharedPreferences.OnSh
return;
}
obfuscationPinning.setVisibility(VISIBLE);
- boolean useBridges = getUseBridges(getContext());
+ boolean useBridges = getUseBridges();
obfuscationPinning.setEnabled(useBridges);
obfuscationPinning.setSubtitle(useBridges ? "Connect to a specific obfuscation proxy for debugging purposes" : "Enable Bridges to use this option");
- obfuscationPinning.setChecked(useObfuscationPinning(getContext()));
+ obfuscationPinning.setChecked(useObfuscationPinning());
obfuscationPinning.setOnCheckedChangeListener((buttonView, isChecked) -> {
if (!buttonView.isPressed()) {
return;
}
if (!isChecked) {
- setUseObfuscationPinning(getContext(), false);
+ setUseObfuscationPinning(false);
} else {
showObfuscationPinningDialog();
}
@@ -306,12 +304,12 @@ public class SettingsFragment extends Fragment implements SharedPreferences.OnSh
IconSwitchEntry experimentalTransports = rootView.findViewById(R.id.experimental_transports);
if (useObfsVpn() && ProviderObservable.getInstance().getCurrentProvider().supportsExperimentalPluggableTransports()) {
experimentalTransports.setVisibility(VISIBLE);
- experimentalTransports.setChecked(allowExperimentalTransports(this.getContext()));
+ experimentalTransports.setChecked(allowExperimentalTransports());
experimentalTransports.setOnCheckedChangeListener((buttonView, isChecked) -> {
if (!buttonView.isPressed()) {
return;
}
- setAllowExperimentalTransports(getContext(), isChecked);
+ setAllowExperimentalTransports(isChecked);
});
} else {
experimentalTransports.setVisibility(GONE);
diff --git a/app/src/main/java/se/leap/bitmaskclient/base/fragments/TetheringDialog.java b/app/src/main/java/se/leap/bitmaskclient/base/fragments/TetheringDialog.java
index e747d5b4..eb9d149f 100644
--- a/app/src/main/java/se/leap/bitmaskclient/base/fragments/TetheringDialog.java
+++ b/app/src/main/java/se/leap/bitmaskclient/base/fragments/TetheringDialog.java
@@ -155,9 +155,9 @@ public class TetheringDialog extends AppCompatDialogFragment implements Observer
builder.setView(view)
.setPositiveButton(android.R.string.ok, (dialog, id) -> {
- PreferenceHelper.allowWifiTethering(getContext(), dataset[0].checked);
- PreferenceHelper.allowUsbTethering(getContext(), dataset[1].checked);
- PreferenceHelper.allowBluetoothTethering(getContext(), dataset[2].checked);
+ PreferenceHelper.allowWifiTethering(dataset[0].checked);
+ PreferenceHelper.allowUsbTethering(dataset[1].checked);
+ PreferenceHelper.allowBluetoothTethering(dataset[2].checked);
TetheringObservable.allowVpnWifiTethering(dataset[0].checked);
TetheringObservable.allowVpnUsbTethering(dataset[1].checked);
TetheringObservable.allowVpnBluetoothTethering(dataset[2].checked);
@@ -247,15 +247,15 @@ public class TetheringDialog extends AppCompatDialogFragment implements Observer
dataset = new DialogListAdapter.ViewModel[] {
new DialogListAdapter.ViewModel(getContext().getResources().getDrawable(R.drawable.ic_wifi),
getContext().getString(R.string.tethering_wifi),
- PreferenceHelper.isWifiTetheringAllowed(getContext()),
+ PreferenceHelper.isWifiTetheringAllowed(),
TetheringObservable.getInstance().isWifiTetheringEnabled()),
new DialogListAdapter.ViewModel(getContext().getResources().getDrawable(R.drawable.ic_usb),
getContext().getString(R.string.tethering_usb),
- PreferenceHelper.isUsbTetheringAllowed(getContext()),
+ PreferenceHelper.isUsbTetheringAllowed(),
TetheringObservable.getInstance().isUsbTetheringEnabled()),
new DialogListAdapter.ViewModel(getContext().getResources().getDrawable(R.drawable.ic_bluetooth),
getContext().getString(R.string.tethering_bluetooth),
- PreferenceHelper.isBluetoothTetheringAllowed(getContext()),
+ PreferenceHelper.isBluetoothTetheringAllowed(),
TetheringObservable.getInstance().isUsbTetheringEnabled())
};
}