summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Allen Su <allenwtsu@google.com> 2025-04-16 08:30:51 +0000
committer Android Build Coastguard Worker <android-build-coastguard-worker@google.com> 2025-04-18 15:49:25 -0700
commitbdd5bbbec8fcb271a25b6496fc2aaa1186668306 (patch)
treef51666a0c58e7fdf725d051085ae8c7d1a3c1b46
parent31ee54a0ad363a5d9dad384d3458afa50a33e290 (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.java7
-rw-r--r--packages/SettingsProvider/test/src/com/android/providers/settings/SettingsHelperTest.java28
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