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 27467c6a52a3e4fdb88b16ac7c8f1339d8233bd9..3fd87837663bb4108c27ae5b9031c5bdc2957f1c 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 @@ -300,8 +300,26 @@ public class SettingsFragment extends PreferenceFragmentCompat } private void setBlockedCountries() { - List countries = new ArrayList<>(asList(BLOCKED)); - countries.removeAll(asList(BRIDGES)); + List countryCodes = new ArrayList<>(asList(BLOCKED)); + countryCodes.removeAll(asList(BRIDGES)); + // Look up country names in the user's chosen language if available + Locale[] locales = Locale.getAvailableLocales(); + List countries = new ArrayList<>(countryCodes.size()); + for (String countryCode : countryCodes) { + boolean found = false; + for (Locale locale : locales) { + if (locale.getCountry().equalsIgnoreCase(countryCode)) { + countries.add(locale.getDisplayCountry()); + found = true; + break; + } + } + if (!found) { + if (LOG.isLoggable(INFO)) + LOG.info("No locale for " + countryCode); + countries.add(countryCode); + } + } Collections.sort(countries); String format = getString(R.string.tor_location_setting_hint_format); torBlocked.setSummary(String.format(format, join(countries, ", ")));