diff options
-rw-r--r-- | packages/SettingsProvider/src/com/android/providers/settings/SettingsHelper.java | 7 | ||||
-rw-r--r-- | packages/SettingsProvider/test/src/com/android/providers/settings/SettingsHelperTest.java | 28 |
2 files changed, 30 insertions, 5 deletions
diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsHelper.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsHelper.java index 5bbfdf7bab81..ac4701342c7b 100644 --- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsHelper.java +++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsHelper.java @@ -68,6 +68,7 @@ public class SettingsHelper { private static final String UNICODE_LOCALE_EXTENSION_FW = "fw"; private static final String UNICODE_LOCALE_EXTENSION_MU = "mu"; private static final String UNICODE_LOCALE_EXTENSION_NU = "nu"; + private static final String UNICODE_LOCALE_EXTENSION_MS = "ms"; private static final float FLOAT_TOLERANCE = 0.01f; /** See frameworks/base/core/res/res/values/config.xml#config_longPressOnPowerBehavior **/ @@ -147,6 +148,7 @@ public class SettingsHelper { static { UNICODE_LOCALE_SUPPORTED_EXTENSIONS.add(UNICODE_LOCALE_EXTENSION_FW); UNICODE_LOCALE_SUPPORTED_EXTENSIONS.add(UNICODE_LOCALE_EXTENSION_MU); + UNICODE_LOCALE_SUPPORTED_EXTENSIONS.add(UNICODE_LOCALE_EXTENSION_MS); } private interface SettingsLookup { @@ -702,11 +704,6 @@ public class SettingsHelper { filtered.add(restoredLocaleWithExtension); } } - - if (filtered.size() == current.size()) { - return current; // Nothing added to current locale list. - } - return new LocaleList(filtered.toArray(new Locale[filtered.size()])); } diff --git a/packages/SettingsProvider/test/src/com/android/providers/settings/SettingsHelperTest.java b/packages/SettingsProvider/test/src/com/android/providers/settings/SettingsHelperTest.java index 2160d3164b17..0c3c58d8de86 100644 --- a/packages/SettingsProvider/test/src/com/android/providers/settings/SettingsHelperTest.java +++ b/packages/SettingsProvider/test/src/com/android/providers/settings/SettingsHelperTest.java @@ -400,6 +400,34 @@ public class SettingsHelperTest { new String[] { "en-US" , "zh-Hans-TW" , "en-UK", "en-GB", "zh-Hans-HK", "fr-FR" })); + + assertEquals(LocaleList.forLanguageTags("en-US-u-ms-uksystem-mu-celsius"), + SettingsHelper.resolveLocales( + // restore + LocaleList.forLanguageTags("en-US-u-ms-uksystem-mu-celsius"), + + // current + LocaleList.forLanguageTags("en-US"), + + // supported + new String[] { + "en-US" + })); + + assertEquals(LocaleList.forLanguageTags( + "en-US-u-ms-uksystem-mu-celsius,fr-FR-u-ms-uksystem-mu-celsius"), + SettingsHelper.resolveLocales( + // restore + LocaleList.forLanguageTags( + "en-US-u-ms-uksystem-mu-celsius,fr-FR-u-ms-uksystem-mu-celsius"), + + // current + LocaleList.forLanguageTags("en-US"), + + // supported + new String[] { + "en-US", "fr-FR" + })); } @Test |