summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcyBerta <cyberta@riseup.net>2021-11-06 02:52:38 +0100
committercyBerta <cyberta@riseup.net>2021-11-06 02:52:38 +0100
commiteb434ae79f45dfd5c14c0901c414a287221442d4 (patch)
tree73b4c8553940127021f8e888a897f707d62b6281
parent8a7b455f011842d17de687b7cbb2b6589b78ac3f (diff)
fix tor provider setup fallback mechanism
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/base/utils/PreferenceHelper.java20
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderApiManagerBase.java8
-rw-r--r--app/src/production/java/se/leap/bitmaskclient/providersetup/ProviderApiManager.java4
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()
) {