From 71b0408fe6c7114de01e7e641d11760d3e5a86c6 Mon Sep 17 00:00:00 2001 From: akwizgran Date: Wed, 29 Jan 2020 14:31:14 +0000 Subject: [PATCH] Remove "don't connect" option from Tor network setting. This has been replaced by the enable/disable setting and no longer works. --- .../bramble/api/plugin/TorConstants.java | 1 + .../android/settings/SettingsFragment.java | 20 +++++++++++++++++-- briar-android/src/main/res/values/arrays.xml | 2 -- 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/bramble-api/src/main/java/org/briarproject/bramble/api/plugin/TorConstants.java b/bramble-api/src/main/java/org/briarproject/bramble/api/plugin/TorConstants.java index a9ae3c5ae..3a4432d8c 100644 --- a/bramble-api/src/main/java/org/briarproject/bramble/api/plugin/TorConstants.java +++ b/bramble-api/src/main/java/org/briarproject/bramble/api/plugin/TorConstants.java @@ -21,6 +21,7 @@ public interface TorConstants { int PREF_TOR_NETWORK_AUTOMATIC = 0; int PREF_TOR_NETWORK_WITHOUT_BRIDGES = 1; int PREF_TOR_NETWORK_WITH_BRIDGES = 2; + // TODO: Remove when settings migration code is removed int PREF_TOR_NETWORK_NEVER = 3; // Reason codes returned by Plugin#getReasonDisabled() diff --git a/briar-android/src/main/java/org/briarproject/briar/android/settings/SettingsFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/settings/SettingsFragment.java index cbf21ad40..9d1d8da7f 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/settings/SettingsFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/settings/SettingsFragment.java @@ -72,9 +72,11 @@ import static android.widget.Toast.LENGTH_SHORT; import static androidx.core.view.ViewCompat.LAYOUT_DIRECTION_LTR; import static java.util.logging.Level.INFO; import static java.util.logging.Level.WARNING; +import static org.briarproject.bramble.api.plugin.Plugin.PREF_PLUGIN_ENABLE; import static org.briarproject.bramble.api.plugin.TorConstants.PREF_TOR_MOBILE; import static org.briarproject.bramble.api.plugin.TorConstants.PREF_TOR_NETWORK; import static org.briarproject.bramble.api.plugin.TorConstants.PREF_TOR_NETWORK_AUTOMATIC; +import static org.briarproject.bramble.api.plugin.TorConstants.PREF_TOR_NETWORK_NEVER; import static org.briarproject.bramble.api.plugin.TorConstants.PREF_TOR_ONLY_WHEN_CHARGING; import static org.briarproject.bramble.util.LogUtils.logDuration; import static org.briarproject.bramble.util.LogUtils.logException; @@ -341,7 +343,8 @@ public class SettingsFragment extends PreferenceFragmentCompat try { long start = now(); settings = settingsManager.getSettings(SETTINGS_NAMESPACE); - torSettings = settingsManager.getSettings(TOR_NAMESPACE); + torSettings = migrateTorSettings( + settingsManager.getSettings(TOR_NAMESPACE)); settingsLoaded = true; logDuration(LOG, "Loading settings", start); displaySettings(); @@ -351,6 +354,19 @@ public class SettingsFragment extends PreferenceFragmentCompat }); } + // TODO: Remove after a reasonable migration period (added 2020-01-29) + private Settings migrateTorSettings(Settings s) { + int network = s.getInt(PREF_TOR_NETWORK, PREF_TOR_NETWORK_AUTOMATIC); + if (network == PREF_TOR_NETWORK_NEVER) { + s.putInt(PREF_TOR_NETWORK, PREF_TOR_NETWORK_AUTOMATIC); + s.putBoolean(PREF_PLUGIN_ENABLE, false); + // We don't need to save the migrated settings - the Tor plugin is + // responsible for that. This code just handles the case where the + // settings are loaded before the plugin migrates them. + } + return s; + } + private void displaySettings() { listener.runOnUiThreadUnlessDestroyed(() -> { // due to events, we might try to display before a load completed @@ -669,7 +685,7 @@ public class SettingsFragment extends PreferenceFragmentCompat displaySettings(); } else if (namespace.equals(TOR_NAMESPACE)) { LOG.info("Tor settings updated"); - torSettings = s.getSettings(); + torSettings = migrateTorSettings(s.getSettings()); displaySettings(); } } diff --git a/briar-android/src/main/res/values/arrays.xml b/briar-android/src/main/res/values/arrays.xml index a9dc6aed6..8a7313b73 100644 --- a/briar-android/src/main/res/values/arrays.xml +++ b/briar-android/src/main/res/values/arrays.xml @@ -4,13 +4,11 @@ @string/tor_network_setting_automatic @string/tor_network_setting_without_bridges @string/tor_network_setting_with_bridges - @string/tor_network_setting_never 0 1 2 - 3