summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/base/fragments/CensorshipCircumventionFragment.java22
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/base/fragments/SettingsFragment.java12
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/base/models/Constants.java1
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/base/utils/PreferenceHelper.java13
4 files changed, 30 insertions, 18 deletions
diff --git a/app/src/main/java/se/leap/bitmaskclient/base/fragments/CensorshipCircumventionFragment.java b/app/src/main/java/se/leap/bitmaskclient/base/fragments/CensorshipCircumventionFragment.java
index 269286cd..ed64ab00 100644
--- a/app/src/main/java/se/leap/bitmaskclient/base/fragments/CensorshipCircumventionFragment.java
+++ b/app/src/main/java/se/leap/bitmaskclient/base/fragments/CensorshipCircumventionFragment.java
@@ -2,11 +2,13 @@ package se.leap.bitmaskclient.base.fragments;
import static se.leap.bitmaskclient.base.utils.PreferenceHelper.getObfuscationPinningKCP;
import static se.leap.bitmaskclient.base.utils.PreferenceHelper.getUseObfs4;
+import static se.leap.bitmaskclient.base.utils.PreferenceHelper.getUseObfs4Kcp;
import static se.leap.bitmaskclient.base.utils.PreferenceHelper.getUsePortHopping;
import static se.leap.bitmaskclient.base.utils.PreferenceHelper.getUseSnowflake;
import static se.leap.bitmaskclient.base.utils.PreferenceHelper.hasSnowflakePrefs;
import static se.leap.bitmaskclient.base.utils.PreferenceHelper.setObfuscationPinningKCP;
import static se.leap.bitmaskclient.base.utils.PreferenceHelper.setUseObfs4;
+import static se.leap.bitmaskclient.base.utils.PreferenceHelper.setUseObfs4Kcp;
import static se.leap.bitmaskclient.base.utils.PreferenceHelper.setUsePortHopping;
import static se.leap.bitmaskclient.base.utils.PreferenceHelper.useSnowflake;
import static se.leap.bitmaskclient.base.utils.ViewHelper.setActionBarSubtitle;
@@ -72,13 +74,11 @@ public class CensorshipCircumventionFragment extends Fragment {
noneRadioButton.setChecked(!(hasSnowflakePrefs() && getUseSnowflake()) && !ProviderObservable.getInstance().getCurrentProvider().hasIntroducer());
binding.discoveryRadioGroup.addView(noneRadioButton);
- if (hasSnowflakePrefs()) {
- RadioButton snowflakeRadioButton = new RadioButton(binding.getRoot().getContext());
- snowflakeRadioButton.setText(getText(R.string.snowflake));
- snowflakeRadioButton.setId(DISCOVERY_SNOWFLAKE);
- snowflakeRadioButton.setChecked(hasSnowflakePrefs() && getUseSnowflake());
- binding.discoveryRadioGroup.addView(snowflakeRadioButton);
- }
+ RadioButton snowflakeRadioButton = new RadioButton(binding.getRoot().getContext());
+ snowflakeRadioButton.setText(getText(R.string.snowflake));
+ snowflakeRadioButton.setId(DISCOVERY_SNOWFLAKE);
+ snowflakeRadioButton.setChecked(hasSnowflakePrefs() && getUseSnowflake());
+ binding.discoveryRadioGroup.addView(snowflakeRadioButton);
if (ProviderObservable.getInstance().getCurrentProvider().hasIntroducer()){
RadioButton inviteProxyRadioButton = new RadioButton(binding.getRoot().getContext());
@@ -116,19 +116,19 @@ public class CensorshipCircumventionFragment extends Fragment {
RadioButton obfs4KcpRadioButton = new RadioButton(binding.getRoot().getContext());
obfs4KcpRadioButton.setText(getText(R.string.tunnelling_obfs4_kcp));
obfs4KcpRadioButton.setId(TUNNELING_OBFS4_KCP);
- obfs4KcpRadioButton.setChecked(getObfuscationPinningKCP());
+ obfs4KcpRadioButton.setChecked(getUseObfs4Kcp());
binding.tunnelingRadioGroup.addView(obfs4KcpRadioButton);
}
binding.tunnelingRadioGroup.setOnCheckedChangeListener((group, checkedId) -> {
if (checkedId == TUNNELING_NONE) {
- setObfuscationPinningKCP(false);
+ setUseObfs4Kcp(false);
setUseObfs4(false);
} else if (checkedId == TUNNELING_OBFS4) {
- setObfuscationPinningKCP(false);
+ setUseObfs4Kcp(false);
setUseObfs4(true);
} else if (checkedId == TUNNELING_OBFS4_KCP) {
- setObfuscationPinningKCP(true);
+ setUseObfs4Kcp(true);
setUseObfs4(false);
}
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 1a63e145..52b2cc5e 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
@@ -22,10 +22,12 @@ import static se.leap.bitmaskclient.base.utils.PreferenceHelper.hasSnowflakePref
import static se.leap.bitmaskclient.base.utils.PreferenceHelper.preferUDP;
import static se.leap.bitmaskclient.base.utils.PreferenceHelper.setAllowExperimentalTransports;
import static se.leap.bitmaskclient.base.utils.PreferenceHelper.setUseObfs4;
+import static se.leap.bitmaskclient.base.utils.PreferenceHelper.setUseObfs4Kcp;
import static se.leap.bitmaskclient.base.utils.PreferenceHelper.setUseObfuscationPinning;
import static se.leap.bitmaskclient.base.utils.PreferenceHelper.setUsePortHopping;
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.usesManualBridges;
import static se.leap.bitmaskclient.base.utils.ViewHelper.setActionBarSubtitle;
import android.app.AlertDialog;
@@ -96,14 +98,14 @@ public class SettingsFragment extends Fragment implements SharedPreferences.OnSh
private void initAutomaticCircumventionEntry(View rootView) {
IconSwitchEntry automaticCircumvention = rootView.findViewById(R.id.bridge_automatic_switch);
- automaticCircumvention.setChecked(!hasManualCircumventionConfig());
+ automaticCircumvention.setChecked(!usesManualBridges());
automaticCircumvention.setOnCheckedChangeListener((buttonView, isChecked) -> {
if (!buttonView.isPressed()) {
return;
}
if (isChecked){
useBridges(false);
- setUseObfuscationPinning(false);
+ setUseObfs4Kcp(false);
setUseObfs4(false);
setUsePortHopping(false);
}
@@ -112,7 +114,7 @@ public class SettingsFragment extends Fragment implements SharedPreferences.OnSh
private void initManualCircumventionEntry(View rootView) {
IconSwitchEntry manualConfiguration = rootView.findViewById(R.id.bridge_manual_switch);
- manualConfiguration.setChecked(hasManualCircumventionConfig());
+ manualConfiguration.setChecked(usesManualBridges());
manualConfiguration.setOnCheckedChangeListener((buttonView, isChecked) -> {
if (!buttonView.isPressed()) {
return;
@@ -128,10 +130,6 @@ public class SettingsFragment extends Fragment implements SharedPreferences.OnSh
fragmentManager.replace(R.id.main_container, fragment, MainActivity.TAG);
}
- private boolean hasManualCircumventionConfig() {
- return getUseSnowflake() || getUseObfs4() || getObfuscationPinningKCP() || getUsePortHopping();
- }
-
@Override
public void onDestroy() {
PreferenceHelper.unregisterOnSharedPreferenceChangeListener(this);
diff --git a/app/src/main/java/se/leap/bitmaskclient/base/models/Constants.java b/app/src/main/java/se/leap/bitmaskclient/base/models/Constants.java
index 535cd474..c24feda5 100644
--- a/app/src/main/java/se/leap/bitmaskclient/base/models/Constants.java
+++ b/app/src/main/java/se/leap/bitmaskclient/base/models/Constants.java
@@ -56,6 +56,7 @@ public interface Constants {
String CUSTOM_PROVIDER_DOMAINS = "custom_provider_domains";
String USE_PORT_HOPPING = "use_port_hopping";
String USE_OBSF4 = "use_obsf4";
+ String USE_OBSF4_KCP = "use_obsf4_kcp";
//////////////////////////////////////////////
diff --git a/app/src/main/java/se/leap/bitmaskclient/base/utils/PreferenceHelper.java b/app/src/main/java/se/leap/bitmaskclient/base/utils/PreferenceHelper.java
index 1f7b2597..407976c3 100644
--- a/app/src/main/java/se/leap/bitmaskclient/base/utils/PreferenceHelper.java
+++ b/app/src/main/java/se/leap/bitmaskclient/base/utils/PreferenceHelper.java
@@ -41,6 +41,7 @@ import static se.leap.bitmaskclient.base.models.Constants.USE_BRIDGES;
import static se.leap.bitmaskclient.base.models.Constants.USE_IPv6_FIREWALL;
import static se.leap.bitmaskclient.base.models.Constants.USE_OBFUSCATION_PINNING;
import static se.leap.bitmaskclient.base.models.Constants.USE_OBSF4;
+import static se.leap.bitmaskclient.base.models.Constants.USE_OBSF4_KCP;
import static se.leap.bitmaskclient.base.models.Constants.USE_PORT_HOPPING;
import static se.leap.bitmaskclient.base.models.Constants.USE_SNOWFLAKE;
import static se.leap.bitmaskclient.base.models.Constants.USE_SYSTEM_PROXY;
@@ -582,6 +583,18 @@ public class PreferenceHelper {
putBoolean(USE_OBSF4, useObsf4);
}
+ public static void setUseObfs4Kcp(boolean useObfs4Kcp) {
+ putBoolean(USE_OBSF4_KCP, useObfs4Kcp);
+ }
+
+ public static boolean getUseObfs4Kcp() {
+ return getBoolean(USE_OBSF4_KCP, false);
+ }
+
+ public static boolean usesManualBridges(){
+ return getUseSnowflake() || getUseObfs4() || getUseObfs4Kcp() || getUsePortHopping();
+ }
+
public static boolean useIpv6Firewall() {
return getBoolean(USE_IPv6_FIREWALL, false);
}