diff options
author | 2025-04-16 08:30:51 +0000 | |
---|---|---|
committer | 2025-04-18 15:49:25 -0700 | |
commit | bdd5bbbec8fcb271a25b6496fc2aaa1186668306 (patch) | |
tree | f51666a0c58e7fdf725d051085ae8c7d1a3c1b46 | |
parent | 31ee54a0ad363a5d9dad384d3458afa50a33e290 (diff) |
[B&R]Fix temperature unit not restored
1.Add measurement unit into B&R
2.Return filtered list due to u extension
Flag: EXEMPT bugfix
Bug: 403231848
Bug: 407886693
Test: atest SettingsHelperTest
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:bc3fc6158fffac4eba53f33f40c80fef39594eab)
Merged-In: I5070bc023090076c2a173327b855be212889a753
Change-Id: I5070bc023090076c2a173327b855be212889a753
-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 |