diff --git a/onionwrapper-core/src/main/java/org/briarproject/onionwrapper/LocationUtils.java b/onionwrapper-core/src/main/java/org/briarproject/onionwrapper/LocationUtils.java index 0e27df4e12e7f33f8850f9d14c0e1425c3ac3e65..637f515b85e8584382d69e34932400222cf83a88 100644 --- a/onionwrapper-core/src/main/java/org/briarproject/onionwrapper/LocationUtils.java +++ b/onionwrapper-core/src/main/java/org/briarproject/onionwrapper/LocationUtils.java @@ -2,6 +2,8 @@ package org.briarproject.onionwrapper; import org.briarproject.nullsafety.NotNullByDefault; +import java.util.Locale; + @NotNullByDefault public interface LocationUtils { @@ -13,4 +15,20 @@ public interface LocationUtils { * https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2">ISO 3166-1 alpha 2</a>. */ String getCurrentCountry(); + + /** + * Returns the name of the country for display in the UI + * or the isoCode if none could be found. + * + * @param isoCode The result from {@link #getCurrentCountry()}. + */ + static String getCountryDisplayName(String isoCode) { + for (Locale locale : Locale.getAvailableLocales()) { + if (locale.getCountry().equalsIgnoreCase(isoCode)) { + return locale.getDisplayCountry(); + } + } + // Name is unknown + return isoCode; + } }