From 292950898e908073d204eccac46e7b13571ebf3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20P=C3=B6hn?= Date: Mon, 1 Apr 2019 22:41:44 +0200 Subject: [PATCH] replace prone useTor preference mirror value from FDroidApp with direct preference calls --- app/src/main/java/org/fdroid/fdroid/FDroidApp.java | 13 +++---------- app/src/main/java/org/fdroid/fdroid/data/Repo.java | 11 +++++++++-- .../fdroid/fdroid/views/ManageReposActivity.java | 3 ++- .../org/fdroid/fdroid/views/main/MainActivity.java | 2 +- 4 files changed, 15 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/org/fdroid/fdroid/FDroidApp.java b/app/src/main/java/org/fdroid/fdroid/FDroidApp.java index 5a4af4d7b..9d7e3a886 100644 --- a/app/src/main/java/org/fdroid/fdroid/FDroidApp.java +++ b/app/src/main/java/org/fdroid/fdroid/FDroidApp.java @@ -640,30 +640,23 @@ public class FDroidApp extends Application { } } - private static boolean useTor; - /** * Set the proxy settings based on whether Tor should be enabled or not. */ private static void configureTor(boolean enabled) { - useTor = enabled; - if (useTor) { + if (enabled) { NetCipher.useTor(); } else { NetCipher.clearProxy(); } } - public static void checkStartTor(Context context) { - if (useTor) { + public static void checkStartTor(Context context, Preferences preferences) { + if (preferences.isTorEnabled()) { OrbotHelper.requestStartTor(context); } } - public static boolean isUsingTor() { - return useTor; - } - public static Context getInstance() { return instance; } diff --git a/app/src/main/java/org/fdroid/fdroid/data/Repo.java b/app/src/main/java/org/fdroid/fdroid/data/Repo.java index 73faf88ad..658715f5c 100644 --- a/app/src/main/java/org/fdroid/fdroid/data/Repo.java +++ b/app/src/main/java/org/fdroid/fdroid/data/Repo.java @@ -28,6 +28,7 @@ import android.database.Cursor; import android.text.TextUtils; import com.fasterxml.jackson.annotation.JsonIgnore; import org.fdroid.fdroid.FDroidApp; +import org.fdroid.fdroid.Preferences; import org.fdroid.fdroid.Utils; import org.fdroid.fdroid.data.Schema.RepoTable.Cols; @@ -390,9 +391,12 @@ public class Repo extends ValueObject { * Get the number of available mirrors, including the canonical repo. */ public int getMirrorCount() { + + final boolean isTorEnabled = Preferences.get().isTorEnabled(); + int count = 0; for (String m : getMirrorList()) { - if (FDroidApp.isUsingTor()) { + if (isTorEnabled) { count++; } else if (!m.contains(".onion")) { count++; @@ -430,11 +434,14 @@ public class Repo extends ValueObject { } List shuffledMirrors = getMirrorList(); if (shuffledMirrors.size() > 0) { + + final boolean isTorEnabled = Preferences.get().isTorEnabled(); + Collections.shuffle(shuffledMirrors); for (String m : shuffledMirrors) { // Return a non default, and not last used mirror if (!m.equals(mirrorToSkip)) { - if (FDroidApp.isUsingTor()) { + if (isTorEnabled) { return m; } else { // Filter-out onion mirrors for non-tor connections diff --git a/app/src/main/java/org/fdroid/fdroid/views/ManageReposActivity.java b/app/src/main/java/org/fdroid/fdroid/views/ManageReposActivity.java index 77db5ffe0..d4fb83d8f 100644 --- a/app/src/main/java/org/fdroid/fdroid/views/ManageReposActivity.java +++ b/app/src/main/java/org/fdroid/fdroid/views/ManageReposActivity.java @@ -60,6 +60,7 @@ import android.widget.Toast; import org.fdroid.fdroid.AddRepoIntentService; import org.fdroid.fdroid.FDroidApp; import org.fdroid.fdroid.IndexUpdater; +import org.fdroid.fdroid.Preferences; import org.fdroid.fdroid.R; import org.fdroid.fdroid.UpdateService; import org.fdroid.fdroid.Utils; @@ -128,7 +129,7 @@ public class ManageReposActivity extends AppCompatActivity @Override protected void onResume() { super.onResume(); - FDroidApp.checkStartTor(this); + FDroidApp.checkStartTor(this, Preferences.get()); /* let's see if someone is trying to send us a new repo */ addRepoFromIntent(getIntent()); diff --git a/app/src/main/java/org/fdroid/fdroid/views/main/MainActivity.java b/app/src/main/java/org/fdroid/fdroid/views/main/MainActivity.java index c04116e63..ff7d1012a 100644 --- a/app/src/main/java/org/fdroid/fdroid/views/main/MainActivity.java +++ b/app/src/main/java/org/fdroid/fdroid/views/main/MainActivity.java @@ -209,7 +209,7 @@ public class MainActivity extends AppCompatActivity implements BottomNavigationB protected void onResume() { super.onResume(); - FDroidApp.checkStartTor(this); + FDroidApp.checkStartTor(this, Preferences.get()); if (getIntent().hasExtra(EXTRA_VIEW_UPDATES)) { getIntent().removeExtra(EXTRA_VIEW_UPDATES);