From 732bf6d4ec0b941691e691704ceca1bc1d222c0a Mon Sep 17 00:00:00 2001 From: akwizgran <michael@briarproject.org> Date: Wed, 1 Aug 2018 11:42:12 +0100 Subject: [PATCH] Show countries where Tor is blocked. --- .../briar/android/settings/SettingsFragment.java | 14 ++++++++++++++ briar-android/src/main/res/values/strings.xml | 2 +- briar-android/src/main/res/xml/settings.xml | 1 - 3 files changed, 15 insertions(+), 2 deletions(-) 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 fbd69b7f89..27467c6a52 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 @@ -43,6 +43,7 @@ import org.briarproject.briar.android.util.UiUtils; import org.briarproject.briar.android.util.UserFeedback; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import java.util.Locale; import java.util.logging.Logger; @@ -67,15 +68,19 @@ import static android.provider.Settings.EXTRA_CHANNEL_ID; import static android.provider.Settings.System.DEFAULT_NOTIFICATION_URI; import static android.support.v4.view.ViewCompat.LAYOUT_DIRECTION_LTR; import static android.widget.Toast.LENGTH_SHORT; +import static java.util.Arrays.asList; import static java.util.logging.Level.INFO; import static java.util.logging.Level.WARNING; import static org.briarproject.bramble.api.plugin.BluetoothConstants.PREF_BT_ENABLE; import static org.briarproject.bramble.api.plugin.TorConstants.PREF_TOR_DISABLE_BLOCKED; import static org.briarproject.bramble.api.plugin.TorConstants.PREF_TOR_NETWORK; import static org.briarproject.bramble.api.plugin.TorConstants.PREF_TOR_NETWORK_ALWAYS; +import static org.briarproject.bramble.plugin.tor.CircumventionProvider.BLOCKED; +import static org.briarproject.bramble.plugin.tor.CircumventionProvider.BRIDGES; import static org.briarproject.bramble.util.LogUtils.logDuration; import static org.briarproject.bramble.util.LogUtils.logException; import static org.briarproject.bramble.util.LogUtils.now; +import static org.briarproject.bramble.util.StringUtils.join; import static org.briarproject.briar.android.TestingConstants.FEATURE_FLAG_DARK_THEME; import static org.briarproject.briar.android.TestingConstants.FEATURE_FLAG_SIGN_IN_REMINDER; import static org.briarproject.briar.android.TestingConstants.IS_DEBUG_BUILD; @@ -154,6 +159,7 @@ public class SettingsFragment extends PreferenceFragmentCompat enableBluetooth = (ListPreference) findPreference("pref_key_bluetooth"); torNetwork = (ListPreference) findPreference("pref_key_tor_network"); torBlocked = (CheckBoxPreference) findPreference(TOR_LOCATION); + setBlockedCountries(); CheckBoxPreference notifySignIn = (CheckBoxPreference) findPreference(NOTIFY_SIGN_IN); notifyPrivateMessages = (CheckBoxPreference) findPreference( @@ -293,6 +299,14 @@ public class SettingsFragment extends PreferenceFragmentCompat return direction == LAYOUT_DIRECTION_LTR; } + private void setBlockedCountries() { + List<String> countries = new ArrayList<>(asList(BLOCKED)); + countries.removeAll(asList(BRIDGES)); + Collections.sort(countries); + String format = getString(R.string.tor_location_setting_hint_format); + torBlocked.setSummary(String.format(format, join(countries, ", "))); + } + private void loadSettings() { listener.runOnDbThread(() -> { try { diff --git a/briar-android/src/main/res/values/strings.xml b/briar-android/src/main/res/values/strings.xml index d51576c290..086ff8c3fe 100644 --- a/briar-android/src/main/res/values/strings.xml +++ b/briar-android/src/main/res/values/strings.xml @@ -349,7 +349,7 @@ <string name="tor_network_setting_wifi">Only when using Wi-Fi</string> <string name="tor_network_setting_always">When using Wi-Fi or mobile data</string> <string name="tor_location_setting_title">Disable Tor based on location</string> - <string name="tor_location_setting_hint">Disable Tor in countries where it is likely to be blocked</string> + <string name="tor_location_setting_hint_format">Disable Tor in countries where it is likely to be blocked (%1$s)</string> <!-- Settings Security and Panic --> <string name="security_settings_title">Security</string> diff --git a/briar-android/src/main/res/xml/settings.xml b/briar-android/src/main/res/xml/settings.xml index 6d78bbc697..7f943ba89e 100644 --- a/briar-android/src/main/res/xml/settings.xml +++ b/briar-android/src/main/res/xml/settings.xml @@ -48,7 +48,6 @@ android:defaultValue="true" android:key="pref_key_tor_location" android:persistent="false" - android:summary="@string/tor_location_setting_hint" android:title="@string/tor_location_setting_title"/> </PreferenceCategory> -- GitLab