diff options
author | cyBerta <cyberta@riseup.net> | 2021-11-06 02:52:38 +0100 |
---|---|---|
committer | cyBerta <cyberta@riseup.net> | 2021-11-06 02:52:38 +0100 |
commit | eb434ae79f45dfd5c14c0901c414a287221442d4 (patch) | |
tree | 73b4c8553940127021f8e888a897f707d62b6281 | |
parent | 8a7b455f011842d17de687b7cbb2b6589b78ac3f (diff) |
fix tor provider setup fallback mechanism
3 files changed, 13 insertions, 19 deletions
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 663e339e..7bbd032e 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 @@ -35,6 +35,7 @@ import static se.leap.bitmaskclient.base.models.Constants.SHARED_PREFERENCES; import static se.leap.bitmaskclient.base.models.Constants.SHOW_EXPERIMENTAL; import static se.leap.bitmaskclient.base.models.Constants.USE_IPv6_FIREWALL; import static se.leap.bitmaskclient.base.models.Constants.USE_BRIDGES; +import static se.leap.bitmaskclient.base.models.Constants.USE_TOR; /** * Created by cyberta on 18.03.18. @@ -152,11 +153,18 @@ public class PreferenceHelper { public static void useBridges(Context context, boolean isEnabled) { putBoolean(context, USE_BRIDGES, isEnabled); + putBoolean(context, USE_TOR, isEnabled); if (!isEnabled) { TorStatusObservable.setProxyPort(-1); } } + // in contrast to USE_BRIDGES, USE_TOR in enabled by default + // This way the initial provider setup can rely on tor as fallback circumvention mechanism + public static Boolean getUseTor(SharedPreferences preferences) { + return preferences.getBoolean(USE_TOR, true); + } + public static void saveBattery(Context context, boolean isEnabled) { putBoolean(context, DEFAULT_SHARED_PREFS_BATTERY_SAVER, isEnabled); } @@ -221,18 +229,6 @@ public class PreferenceHelper { putString(context, PREFERRED_CITY, city); } - /* public static Boolean useTor(SharedPreferences preferences) { - return preferences.getBoolean(USE_TOR, true); - } - - public static boolean useTor(Context context) { - return getBoolean(context, USE_TOR, true); - } - - public static void setUseTor(Context context, boolean useTor) { - putBoolean(context, USE_TOR, useTor); - }*/ - public static JSONObject getEipDefinitionFromPreferences(SharedPreferences preferences) { JSONObject result = new JSONObject(); try { diff --git a/app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderApiManagerBase.java b/app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderApiManagerBase.java index 555eb21d..c385c4c4 100644 --- a/app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderApiManagerBase.java +++ b/app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderApiManagerBase.java @@ -191,7 +191,9 @@ public abstract class ProviderApiManagerBase { } try { - startTorProxy(); + if (PreferenceHelper.getUseBridges(preferences)) { + startTorProxy(); + } } catch (InterruptedException | IllegalStateException e) { e.printStackTrace(); return; @@ -301,8 +303,8 @@ public abstract class ProviderApiManagerBase { } protected boolean startTorProxy() throws InterruptedException, IllegalStateException, TimeoutException { - if (PreferenceHelper.getUseBridges(preferences) && - EipStatus.getInstance().isDisconnected() && + if (EipStatus.getInstance().isDisconnected() && + PreferenceHelper.getUseTor(preferences) && serviceCallback.isConnectedToWifi() ) { serviceCallback.startTorService(); diff --git a/app/src/production/java/se/leap/bitmaskclient/providersetup/ProviderApiManager.java b/app/src/production/java/se/leap/bitmaskclient/providersetup/ProviderApiManager.java index ceb3be3e..dfd1bfbf 100644 --- a/app/src/production/java/se/leap/bitmaskclient/providersetup/ProviderApiManager.java +++ b/app/src/production/java/se/leap/bitmaskclient/providersetup/ProviderApiManager.java @@ -329,8 +329,6 @@ public class ProviderApiManager extends ProviderApiManagerBase { if (tries == 0 && responseString != null && responseString.contains(ERRORS) && - PreferenceHelper.getUseBridges(preferences) && - EipStatus.getInstance().isDisconnected() && TorStatusObservable.getStatus() == OFF && startTorProxy() ) { @@ -373,8 +371,6 @@ public class ProviderApiManager extends ProviderApiManagerBase { if (tries == 0 && responseString != null && responseString.contains(ERRORS) && - PreferenceHelper.getUseBridges(preferences) && - EipStatus.getInstance().isDisconnected() && TorStatusObservable.getStatus() == OFF && startTorProxy() ) { |