Loading mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoRuntimeSettings.java +21 −15 Original line number Diff line number Diff line Loading @@ -22,7 +22,7 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.LinkedHashMap; import java.util.ArrayList; import java.util.Locale; import org.mozilla.gecko.EventDispatcher; import org.mozilla.gecko.GeckoSystemStateListener; Loading Loading @@ -790,23 +790,29 @@ public final class GeckoRuntimeSettings extends RuntimeSettings { } private String computeAcceptLanguages() { final LinkedHashMap<String, String> locales = new LinkedHashMap<>(); final ArrayList<String> locales = new ArrayList<String>(); // Explicitly-set app prefs come first: if (mRequestedLocales != null) { for (final String locale : mRequestedLocales) { locales.put(locale.toLowerCase(Locale.ROOT), locale); // In Desktop, these are defined in the `intl.accept_languages` localized property. // At some point we should probably use the same values here, but for now we use a simple // strategy which will hopefully result in reasonable acceptLanguage values. if (mRequestedLocales != null && mRequestedLocales.length > 0) { String locale = mRequestedLocales[0].toLowerCase(Locale.ROOT); // No need to include `en-us` twice. if (!locale.equals("en-us")) { locales.add(locale); if (locale.contains("-")) { String lang = locale.split("-")[0]; // No need to include `en` twice. if (!lang.equals("en")) { locales.add(lang); } } // OS prefs come second: for (final String locale : getDefaultLocales()) { final String localeLowerCase = locale.toLowerCase(Locale.ROOT); if (!locales.containsKey(localeLowerCase)) { locales.put(localeLowerCase, locale); } } locales.add("en-us"); locales.add("en"); return TextUtils.join(",", locales.values()); return TextUtils.join(",", locales); } private static String[] getDefaultLocales() { Loading Loading
mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoRuntimeSettings.java +21 −15 Original line number Diff line number Diff line Loading @@ -22,7 +22,7 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.LinkedHashMap; import java.util.ArrayList; import java.util.Locale; import org.mozilla.gecko.EventDispatcher; import org.mozilla.gecko.GeckoSystemStateListener; Loading Loading @@ -790,23 +790,29 @@ public final class GeckoRuntimeSettings extends RuntimeSettings { } private String computeAcceptLanguages() { final LinkedHashMap<String, String> locales = new LinkedHashMap<>(); final ArrayList<String> locales = new ArrayList<String>(); // Explicitly-set app prefs come first: if (mRequestedLocales != null) { for (final String locale : mRequestedLocales) { locales.put(locale.toLowerCase(Locale.ROOT), locale); // In Desktop, these are defined in the `intl.accept_languages` localized property. // At some point we should probably use the same values here, but for now we use a simple // strategy which will hopefully result in reasonable acceptLanguage values. if (mRequestedLocales != null && mRequestedLocales.length > 0) { String locale = mRequestedLocales[0].toLowerCase(Locale.ROOT); // No need to include `en-us` twice. if (!locale.equals("en-us")) { locales.add(locale); if (locale.contains("-")) { String lang = locale.split("-")[0]; // No need to include `en` twice. if (!lang.equals("en")) { locales.add(lang); } } // OS prefs come second: for (final String locale : getDefaultLocales()) { final String localeLowerCase = locale.toLowerCase(Locale.ROOT); if (!locales.containsKey(localeLowerCase)) { locales.put(localeLowerCase, locale); } } locales.add("en-us"); locales.add("en"); return TextUtils.join(",", locales.values()); return TextUtils.join(",", locales); } private static String[] getDefaultLocales() { Loading