From 4debea9085440ca3b8f9f8a130c8515ec8121bfa Mon Sep 17 00:00:00 2001 From: tom hsu Date: Thu, 1 Dec 2022 20:40:20 +0800 Subject: [PATCH] [Regional Preference] Add new flag to SettingsProvider - Add a SettingsProvider flag to save the user's preference. Bug: b/259487708 Test: Maunal test passed Change-Id: Ic098c06fb59b11d4a5e836fe2b9531f4b2ee1c38 --- core/java/android/provider/Settings.java | 14 ++++++++++++++ .../provider/settings/backup/SystemSettings.java | 3 ++- .../validators/SystemSettingsValidators.java | 1 + 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java index b236d6632961a..718e212b61b79 100644 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -5588,6 +5588,19 @@ public final class Settings { @Readable public static final String DESKTOP_MODE = "desktop_mode"; + /** + * The information of locale preference. This records user's preference to avoid + * unsynchronized and existing locale preference in + * {@link Locale#getDefault(Locale.Category)}. + * + *

Note: The format follow the + * IETF BCP47 expression + * + * E.g. : und-u-ca-gregorian-hc-h23 + * @hide + */ + public static final String LOCALE_PREFERENCES = "locale_preferences"; + /** * IMPORTANT: If you add a new public settings you also have to add it to * PUBLIC_SETTINGS below. If the new setting is hidden you have to add @@ -5716,6 +5729,7 @@ public final class Settings { PRIVATE_SETTINGS.add(DISPLAY_COLOR_MODE); PRIVATE_SETTINGS.add(DISPLAY_COLOR_MODE_VENDOR_HINT); PRIVATE_SETTINGS.add(DESKTOP_MODE); + PRIVATE_SETTINGS.add(LOCALE_PREFERENCES); } /** diff --git a/packages/SettingsProvider/src/android/provider/settings/backup/SystemSettings.java b/packages/SettingsProvider/src/android/provider/settings/backup/SystemSettings.java index 1a76943102b1e..7c75bc42dbfc3 100644 --- a/packages/SettingsProvider/src/android/provider/settings/backup/SystemSettings.java +++ b/packages/SettingsProvider/src/android/provider/settings/backup/SystemSettings.java @@ -91,6 +91,7 @@ public class SystemSettings { Settings.System.WEAR_ACCESSIBILITY_GESTURE_ENABLED, Settings.System.CLOCKWORK_BLUETOOTH_SETTINGS_PREF, Settings.System.UNREAD_NOTIFICATION_DOT_INDICATOR, - Settings.System.AUTO_LAUNCH_MEDIA_CONTROLS + Settings.System.AUTO_LAUNCH_MEDIA_CONTROLS, + Settings.System.LOCALE_PREFERENCES }; } diff --git a/packages/SettingsProvider/src/android/provider/settings/validators/SystemSettingsValidators.java b/packages/SettingsProvider/src/android/provider/settings/validators/SystemSettingsValidators.java index 2ee890fdb68fd..bd43606f16789 100644 --- a/packages/SettingsProvider/src/android/provider/settings/validators/SystemSettingsValidators.java +++ b/packages/SettingsProvider/src/android/provider/settings/validators/SystemSettingsValidators.java @@ -210,5 +210,6 @@ public class SystemSettingsValidators { VALIDATORS.put(System.CLOCKWORK_BLUETOOTH_SETTINGS_PREF, BOOLEAN_VALIDATOR); VALIDATORS.put(System.UNREAD_NOTIFICATION_DOT_INDICATOR, BOOLEAN_VALIDATOR); VALIDATORS.put(System.AUTO_LAUNCH_MEDIA_CONTROLS, BOOLEAN_VALIDATOR); + VALIDATORS.put(System.LOCALE_PREFERENCES, ANY_STRING_VALIDATOR); } }