From e4457a190d088dcac7241d6113b4fc837d2a9b97 Mon Sep 17 00:00:00 2001 From: Josh Yang Date: Tue, 28 Mar 2023 14:57:27 -0700 Subject: [PATCH] DO NOT MERGE[Wear] CP wear setting keys in a batch. This CL upstreams wear settings keys from tm-wear-dev branch to the master branch. 1. Add/update/delete Settings wear keys to match the latest code in tm-wear-dev branch. 2. Update back up/restore setup. 3. Rebase SettingsProvider version to ensure that version conflict is resolved. A new version 216 is added and is used to resolve wear version conflicts. This change should have no effect on other builds that are already on the master branch. See go/wear-1pg-settings-key-upstream for detailed design. Bug: 270226977 Test: flash the build on a watch and manually test Test: atest SettingsBackupTest Change-Id: I8ceb4b5b7dc5ee238f1a8d084d2ca74ef12e9fad --- core/java/android/provider/Settings.java | 226 +++++++++++++---- core/res/res/values/config.xml | 6 + core/res/res/values/symbols.xml | 2 + .../SettingsProvider/res/values/defaults.xml | 2 + .../settings/backup/GlobalSettings.java | 2 + .../validators/GlobalSettingsValidators.java | 29 ++- .../providers/settings/SettingsProvider.java | 231 ++++++++++-------- .../android/provider/SettingsBackupTest.java | 14 +- 8 files changed, 357 insertions(+), 155 deletions(-) diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java index c473d3f818239..97112e90079c8 100644 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -18124,12 +18124,6 @@ public final class Settings { */ public static final String WEAR_OS_VERSION_STRING = "wear_os_version_string"; - /** - * Whether the physical button has been set. - * @hide - */ - public static final String BUTTON_SET = "button_set"; - /** * Whether there is a side button. * @hide @@ -18301,6 +18295,12 @@ public final class Settings { /** @hide */ public static final int COMPANION_OS_VERSION_UNDEFINED = -1; + /** + * The companion App name. + * @hide + */ + public static final String COMPANION_APP_NAME = "wear_companion_app_name"; + /** * A boolean value to indicate if we want to support all languages in LE edition on * wear. 1 for supporting, 0 for not supporting. @@ -18413,10 +18413,13 @@ public final class Settings { public static final String BURN_IN_PROTECTION_ENABLED = "burn_in_protection"; /** - * Whether the device has combined location setting enabled. + * + * @deprecated Use LocationManager as the source of truth for all location states. + * * @hide */ + @Deprecated public static final String COMBINED_LOCATION_ENABLED = "combined_location_enable"; /** @@ -18482,67 +18485,36 @@ public final class Settings { public static final String CLOCKWORK_LONG_PRESS_TO_ASSISTANT_ENABLED = "clockwork_long_press_to_assistant_enabled"; - /* + /** * Whether the device has Cooldown Mode enabled. * @hide */ public static final String COOLDOWN_MODE_ON = "cooldown_mode_on"; - /* + /** * Whether the device has Wet Mode/ Touch Lock Mode enabled. * @hide */ public static final String WET_MODE_ON = "wet_mode_on"; - /* + /** * Whether the RSB wake feature is enabled. * @hide */ public static final String RSB_WAKE_ENABLED = "rsb_wake_enabled"; - /* + /** * Whether the screen-unlock (keyguard) sound is enabled. * @hide */ public static final String SCREEN_UNLOCK_SOUND_ENABLED = "screen_unlock_sound_enabled"; - /* + /** * Whether charging sounds are enabled. * @hide */ public static final String CHARGING_SOUNDS_ENABLED = "wear_charging_sounds_enabled"; - /** The status of the early updates process. - * @hide - */ - public static final String EARLY_UPDATES_STATUS = "early_updates_status"; - - /** - * Early updates not started - * @hide - */ - public static final int EARLY_UPDATES_STATUS_NOT_STARTED = 0; - /** - * Early updates started and in progress - * @hide - */ - public static final int EARLY_UPDATES_STATUS_STARTED = 1; - /** - * Early updates completed and was successful - * @hide - */ - public static final int EARLY_UPDATES_STATUS_SUCCESS = 2; - /** - * Early updates skipped - * @hide - */ - public static final int EARLY_UPDATES_STATUS_SKIPPED = 3; - /** - * Early updates aborted due to timeout - * @hide - */ - public static final int EARLY_UPDATES_STATUS_ABORTED = 4; - /** * Whether dynamic color theming (e.g. Material You) is enabled for apps which support * it. @@ -18669,6 +18641,174 @@ public final class Settings { * @hide */ public static final int UPGRADE_DATA_MIGRATION_DONE = 2; + + /** + * Whether to disable AOD while plugged. + * (0 = false, 1 = true) + * @hide + */ + public static final String DISABLE_AOD_WHILE_PLUGGED = "disable_aod_while_plugged"; + + /** + * Whether the user has consented for network location provider (NLP). + * This setting key will only be used once during OOBE to set NLP initial value through + * the companion app ToS. This setting key will be synced over from Companion and + * corresponding toggle in GMS will be enabled. + * @hide + */ + public static final String NETWORK_LOCATION_OPT_IN = "network_location_opt_in"; + + /** + * The custom foreground color. + * @hide + */ + public static final String CUSTOM_COLOR_FOREGROUND = "custom_foreground_color"; + + /** + * The custom background color. + * @hide + */ + public static final String CUSTOM_COLOR_BACKGROUND = "custom_background_color"; + + /** The status of the phone switching process. + * @hide + */ + public static final String PHONE_SWITCHING_STATUS = "phone_switching_status"; + + /** + * Phone switching not started + * @hide + */ + public static final int PHONE_SWITCHING_STATUS_NOT_STARTED = 0; + + /** + * Phone switching started + * @hide + */ + public static final int PHONE_SWITCHING_STATUS_STARTED = 1; + + /** + * Phone switching completed and was successful + * @hide + */ + public static final int PHONE_SWITCHING_STATUS_SUCCESS = 2; + + /** + * Phone switching was cancelled + * @hide + */ + public static final int PHONE_SWITCHING_STATUS_CANCELLED = 3; + + /** + * Phone switching failed + * @hide + */ + public static final int PHONE_SWITCHING_STATUS_FAILED = 4; + + /** + * Phone switching is in progress of advertising to new companion device. + * @hide + */ + public static final int PHONE_SWITCHING_STATUS_IN_PROGRESS_ADVERTISING = 5; + + /** + * Phone switching successfully bonded with new companion device. + * @hide + */ + public static final int PHONE_SWITCHING_STATUS_IN_PROGRESS_BONDED = 6; + + /** + * Phone switching successfully completed on phone side. + * @hide + */ + public static final int PHONE_SWITCHING_STATUS_IN_PROGRESS_PHONE_COMPLETE = 7; + + /** + * Connection config migration in progress. + * @hide + */ + public static final int PHONE_SWITCHING_STATUS_IN_PROGRESS_MIGRATION = 8; + + /** + * Connection config migration failed. + * @hide + */ + public static final int PHONE_SWITCHING_STATUS_IN_PROGRESS_MIGRATION_FAILED = 9; + + /** + * Connection config migration cancellation in progress. + * @hide + */ + public static final int PHONE_SWITCHING_STATUS_IN_PROGRESS_MIGRATION_CANCELLED = 10; + + /** + * Connection config migration success. + * @hide + */ + public static final int PHONE_SWITCHING_STATUS_IN_PROGRESS_MIGRATION_SUCCESS = 11; + + + /** + * Whether the device has enabled the feature to reduce motion and animation + * (0 = false, 1 = true) + * @hide + */ + public static final String REDUCE_MOTION = "reduce_motion"; + + /** + * Whether RTL swipe-to-dismiss is enabled by developer options. + * (0 = false, 1 = true) + * @hide + */ + public static final String RTL_SWIPE_TO_DISMISS_ENABLED_DEV = + "rtl_swipe_to_dismiss_enabled_dev"; + + /** + * Tethered Configuration state. + * @hide + */ + public static final String TETHER_CONFIG_STATE = "tethered_config_state"; + + /** + * Tethered configuration state is unknown. + * @hide + */ + public static final int TETHERED_CONFIG_UNKNOWN = 0; + + /** + * Device is set into standalone mode. + * @hide + */ + public static final int TETHERED_CONFIG_STANDALONE = 1; + + /** + * Device is set in tethered mode. + * @hide + */ + public static final int TETHERED_CONFIG_TETHERED = 2; + + + /** + * Whether phone switching is supported. + * + * (0 = false, 1 = true) + * @hide + */ + public static final String PHONE_SWITCHING_SUPPORTED = "phone_switching_supported"; + + /** + * Setting indicating the name of the Wear OS package that hosts the Media Controls UI. + * + * @hide + */ + public static final String WEAR_MEDIA_CONTROLS_PACKAGE = "wear_media_controls_package"; + + /** + * Setting indicating the name of the Wear OS package responsible for bridging media. + * + * @hide + */ + public static final String WEAR_MEDIA_SESSIONS_PACKAGE = "wear_media_sessions_package"; } } diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml index 3ff63519572f0..e4d74b5373e0c 100644 --- a/core/res/res/values/config.xml +++ b/core/res/res/values/config.xml @@ -6067,6 +6067,12 @@ + + + + + + @bool/config_windowIsRound diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml index 7b582da836aa0..cb021336c7cb7 100644 --- a/core/res/res/values/symbols.xml +++ b/core/res/res/values/symbols.xml @@ -4865,6 +4865,8 @@ + + diff --git a/packages/SettingsProvider/res/values/defaults.xml b/packages/SettingsProvider/res/values/defaults.xml index 59cd7a051fadb..a93cd62e6301d 100644 --- a/packages/SettingsProvider/res/values/defaults.xml +++ b/packages/SettingsProvider/res/values/defaults.xml @@ -43,6 +43,8 @@ false 3 + + 1 true true true diff --git a/packages/SettingsProvider/src/android/provider/settings/backup/GlobalSettings.java b/packages/SettingsProvider/src/android/provider/settings/backup/GlobalSettings.java index e50f52229a16e..41ce58eb7b4e7 100644 --- a/packages/SettingsProvider/src/android/provider/settings/backup/GlobalSettings.java +++ b/packages/SettingsProvider/src/android/provider/settings/backup/GlobalSettings.java @@ -103,5 +103,7 @@ public class GlobalSettings { Settings.Global.Wearable.UPGRADE_DATA_MIGRATION_STATUS, Settings.Global.HDR_CONVERSION_MODE, Settings.Global.HDR_FORCE_CONVERSION_TYPE, + Settings.Global.Wearable.RTL_SWIPE_TO_DISMISS_ENABLED_DEV, + Settings.Global.Wearable.REDUCE_MOTION, }; } diff --git a/packages/SettingsProvider/src/android/provider/settings/validators/GlobalSettingsValidators.java b/packages/SettingsProvider/src/android/provider/settings/validators/GlobalSettingsValidators.java index d5386c1d75acc..a1c01723ad553 100644 --- a/packages/SettingsProvider/src/android/provider/settings/validators/GlobalSettingsValidators.java +++ b/packages/SettingsProvider/src/android/provider/settings/validators/GlobalSettingsValidators.java @@ -285,7 +285,6 @@ public class GlobalSettingsValidators { })); VALIDATORS.put(Global.Wearable.MUTE_WHEN_OFF_BODY_ENABLED, BOOLEAN_VALIDATOR); VALIDATORS.put(Global.Wearable.SIDE_BUTTON, BOOLEAN_VALIDATOR); - VALIDATORS.put(Global.Wearable.BUTTON_SET, BOOLEAN_VALIDATOR); VALIDATORS.put(Global.Wearable.ANDROID_WEAR_VERSION, ANY_INTEGER_VALIDATOR); VALIDATORS.put(Global.Wearable.SYSTEM_CAPABILITIES, ANY_INTEGER_VALIDATOR); VALIDATORS.put(Global.Wearable.SYSTEM_EDITION, ANY_INTEGER_VALIDATOR); @@ -345,6 +344,7 @@ public class GlobalSettingsValidators { String.valueOf(Global.Wearable.HFP_CLIENT_DISABLED) })); VALIDATORS.put(Global.Wearable.COMPANION_OS_VERSION, ANY_INTEGER_VALIDATOR); + VALIDATORS.put(Global.Wearable.COMPANION_APP_NAME, ANY_STRING_VALIDATOR); VALIDATORS.put(Global.Wearable.ENABLE_ALL_LANGUAGES, BOOLEAN_VALIDATOR); VALIDATORS.put(Global.Wearable.OEM_SETUP_VERSION, ANY_INTEGER_VALIDATOR); VALIDATORS.put( @@ -404,16 +404,6 @@ public class GlobalSettingsValidators { VALIDATORS.put(Global.Wearable.CHARGING_SOUNDS_ENABLED, BOOLEAN_VALIDATOR); VALIDATORS.put(Global.Wearable.BEDTIME_MODE, BOOLEAN_VALIDATOR); VALIDATORS.put(Global.Wearable.BEDTIME_HARD_MODE, BOOLEAN_VALIDATOR); - VALIDATORS.put( - Global.Wearable.EARLY_UPDATES_STATUS, - new DiscreteValueValidator( - new String[] { - String.valueOf(Global.Wearable.EARLY_UPDATES_STATUS_NOT_STARTED), - String.valueOf(Global.Wearable.EARLY_UPDATES_STATUS_STARTED), - String.valueOf(Global.Wearable.EARLY_UPDATES_STATUS_SUCCESS), - String.valueOf(Global.Wearable.EARLY_UPDATES_STATUS_SKIPPED), - String.valueOf(Global.Wearable.EARLY_UPDATES_STATUS_ABORTED), - })); VALIDATORS.put(Global.Wearable.DYNAMIC_COLOR_THEME_ENABLED, BOOLEAN_VALIDATOR); VALIDATORS.put(Global.Wearable.SCREENSHOT_ENABLED, BOOLEAN_VALIDATOR); VALIDATORS.put(Global.Wearable.UPGRADE_DATA_MIGRATION_STATUS, @@ -423,5 +413,22 @@ public class GlobalSettingsValidators { String.valueOf(Global.Wearable.UPGRADE_DATA_MIGRATION_PENDING), String.valueOf(Global.Wearable.UPGRADE_DATA_MIGRATION_DONE) })); + VALIDATORS.put(Global.Wearable.DISABLE_AOD_WHILE_PLUGGED, BOOLEAN_VALIDATOR); + VALIDATORS.put(Global.Wearable.NETWORK_LOCATION_OPT_IN, BOOLEAN_VALIDATOR); + VALIDATORS.put(Global.Wearable.PHONE_SWITCHING_STATUS, + new InclusiveIntegerRangeValidator( + Global.Wearable.PHONE_SWITCHING_STATUS_NOT_STARTED, + Global.Wearable.PHONE_SWITCHING_STATUS_IN_PROGRESS_MIGRATION_SUCCESS)); + VALIDATORS.put(Global.Wearable.REDUCE_MOTION, BOOLEAN_VALIDATOR); + VALIDATORS.put(Global.Wearable.RTL_SWIPE_TO_DISMISS_ENABLED_DEV, BOOLEAN_VALIDATOR); + VALIDATORS.put( + Global.Wearable.TETHER_CONFIG_STATE, + new DiscreteValueValidator( + new String[] { + String.valueOf(Global.Wearable.TETHERED_CONFIG_UNKNOWN), + String.valueOf(Global.Wearable.TETHERED_CONFIG_STANDALONE), + String.valueOf(Global.Wearable.TETHERED_CONFIG_TETHERED) + })); + VALIDATORS.put(Global.Wearable.PHONE_SWITCHING_SUPPORTED, BOOLEAN_VALIDATOR); } } diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java index b0a19270018ac..284b06b86cb6e 100644 --- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java +++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java @@ -3748,7 +3748,7 @@ public class SettingsProvider extends ContentProvider { } private final class UpgradeController { - private static final int SETTINGS_VERSION = 217; + private static final int SETTINGS_VERSION = 218; private final int mUserId; @@ -5334,74 +5334,73 @@ public class SettingsProvider extends ContentProvider { if (currentVersion == 203) { // Version 203: initialize entries migrated from wear settings provide. - initGlobalSettingsDefaultValForWearLocked( + initGlobalSettingsDefaultValLocked( Global.Wearable.HAS_PAY_TOKENS, false); - initGlobalSettingsDefaultValForWearLocked( + initGlobalSettingsDefaultValLocked( Global.Wearable.GMS_CHECKIN_TIMEOUT_MIN, 6); - initGlobalSettingsDefaultValForWearLocked( + initGlobalSettingsDefaultValLocked( Global.Wearable.HOTWORD_DETECTION_ENABLED, getContext() .getResources() .getBoolean(R.bool.def_wearable_hotwordDetectionEnabled)); - initGlobalSettingsDefaultValForWearLocked( + initGlobalSettingsDefaultValLocked( Global.Wearable.SMART_REPLIES_ENABLED, true); Setting locationMode = getSecureSettingsLocked(userId).getSettingLocked(Secure.LOCATION_MODE); - initGlobalSettingsDefaultValForWearLocked( + initGlobalSettingsDefaultValLocked( Global.Wearable.OBTAIN_PAIRED_DEVICE_LOCATION, !locationMode.isNull() && !Integer.toString(Secure.LOCATION_MODE_OFF) .equals(locationMode.getValue())); - initGlobalSettingsDefaultValForWearLocked( + initGlobalSettingsDefaultValLocked( Global.Wearable.PHONE_PLAY_STORE_AVAILABILITY, Global.Wearable.PHONE_PLAY_STORE_AVAILABILITY_UNKNOWN); - initGlobalSettingsDefaultValForWearLocked( + initGlobalSettingsDefaultValLocked( Global.Wearable.BUG_REPORT, "user".equals(Build.TYPE) // is user build? ? Global.Wearable.BUG_REPORT_DISABLED : Global.Wearable.BUG_REPORT_ENABLED); - initGlobalSettingsDefaultValForWearLocked( + initGlobalSettingsDefaultValLocked( Global.Wearable.SMART_ILLUMINATE_ENABLED, getContext() .getResources() .getBoolean(R.bool.def_wearable_smartIlluminateEnabled)); - initGlobalSettingsDefaultValForWearLocked( + initGlobalSettingsDefaultValLocked( Global.Wearable.CLOCKWORK_AUTO_TIME, Global.Wearable.SYNC_TIME_FROM_PHONE); - initGlobalSettingsDefaultValForWearLocked( + initGlobalSettingsDefaultValLocked( Global.Wearable.CLOCKWORK_AUTO_TIME_ZONE, Global.Wearable.SYNC_TIME_ZONE_FROM_PHONE); - initGlobalSettingsDefaultValForWearLocked( + initGlobalSettingsDefaultValLocked( Global.Wearable.CLOCKWORK_24HR_TIME, false); - initGlobalSettingsDefaultValForWearLocked(Global.Wearable.AUTO_WIFI, true); - initGlobalSettingsDefaultValForWearLocked( + initGlobalSettingsDefaultValLocked(Global.Wearable.AUTO_WIFI, true); + initGlobalSettingsDefaultValLocked( Global.Wearable.WIFI_POWER_SAVE, getContext() .getResources() .getInteger( R.integer .def_wearable_offChargerWifiUsageLimitMinutes)); - initGlobalSettingsDefaultValForWearLocked( + initGlobalSettingsDefaultValLocked( Global.Wearable.ALT_BYPASS_WIFI_REQUIREMENT_TIME_MILLIS, 0L); - initGlobalSettingsDefaultValForWearLocked( + initGlobalSettingsDefaultValLocked( Global.Wearable.SETUP_SKIPPED, Global.Wearable.SETUP_SKIPPED_UNKNOWN); - initGlobalSettingsDefaultValForWearLocked( + initGlobalSettingsDefaultValLocked( Global.Wearable.LAST_CALL_FORWARD_ACTION, Global.Wearable.CALL_FORWARD_NO_LAST_ACTION); - initGlobalSettingsDefaultValForWearLocked( + initGlobalSettingsDefaultValLocked( Global.Wearable.MUTE_WHEN_OFF_BODY_ENABLED, getContext() .getResources() .getBoolean(R.bool.def_wearable_muteWhenOffBodyEnabled)); - initGlobalSettingsDefaultValForWearLocked( + initGlobalSettingsDefaultValLocked( Global.Wearable.WEAR_OS_VERSION_STRING, ""); - initGlobalSettingsDefaultValForWearLocked(Global.Wearable.BUTTON_SET, false); - initGlobalSettingsDefaultValForWearLocked( + initGlobalSettingsDefaultValLocked( Global.Wearable.SIDE_BUTTON, getContext() .getResources() .getBoolean(R.bool.def_wearable_sideButtonPresent)); - initGlobalSettingsDefaultValForWearLocked( + initGlobalSettingsDefaultValLocked( Global.Wearable.ANDROID_WEAR_VERSION, Long.parseLong( getContext() @@ -5410,55 +5409,55 @@ public class SettingsProvider extends ContentProvider { final int editionGlobal = 1; final int editionLocal = 2; boolean isLe = getContext().getPackageManager().hasSystemFeature("cn.google"); - initGlobalSettingsDefaultValForWearLocked( + initGlobalSettingsDefaultValLocked( Global.Wearable.SYSTEM_EDITION, isLe ? editionLocal : editionGlobal); - initGlobalSettingsDefaultValForWearLocked( + initGlobalSettingsDefaultValLocked( Global.Wearable.SYSTEM_CAPABILITIES, getWearSystemCapabilities(isLe)); - initGlobalSettingsDefaultValForWearLocked( + initGlobalSettingsDefaultValLocked( Global.Wearable.WEAR_PLATFORM_MR_NUMBER, SystemProperties.getInt("ro.cw_build.platform_mr", 0)); - initGlobalSettingsDefaultValForWearLocked( + initGlobalSettingsDefaultValLocked( Settings.Global.Wearable.MOBILE_SIGNAL_DETECTOR, getContext() .getResources() .getBoolean(R.bool.def_wearable_mobileSignalDetectorAllowed)); - initGlobalSettingsDefaultValForWearLocked( + initGlobalSettingsDefaultValLocked( Global.Wearable.AMBIENT_ENABLED, getContext() .getResources() .getBoolean(R.bool.def_wearable_ambientEnabled)); - initGlobalSettingsDefaultValForWearLocked( + initGlobalSettingsDefaultValLocked( Global.Wearable.AMBIENT_TILT_TO_WAKE, getContext() .getResources() .getBoolean(R.bool.def_wearable_tiltToWakeEnabled)); - initGlobalSettingsDefaultValForWearLocked( + initGlobalSettingsDefaultValLocked( Global.Wearable.AMBIENT_LOW_BIT_ENABLED_DEV, false); - initGlobalSettingsDefaultValForWearLocked( + initGlobalSettingsDefaultValLocked( Global.Wearable.AMBIENT_TOUCH_TO_WAKE, getContext() .getResources() .getBoolean(R.bool.def_wearable_touchToWakeEnabled)); - initGlobalSettingsDefaultValForWearLocked( + initGlobalSettingsDefaultValLocked( Global.Wearable.AMBIENT_TILT_TO_BRIGHT, getContext() .getResources() .getBoolean(R.bool.def_wearable_tiltToBrightEnabled)); - initGlobalSettingsDefaultValForWearLocked( + initGlobalSettingsDefaultValLocked( Global.Wearable.DECOMPOSABLE_WATCHFACE, false); - initGlobalSettingsDefaultValForWearLocked( + initGlobalSettingsDefaultValLocked( Settings.Global.Wearable.AMBIENT_FORCE_WHEN_DOCKED, SystemProperties.getBoolean("ro.ambient.force_when_docked", false)); - initGlobalSettingsDefaultValForWearLocked( + initGlobalSettingsDefaultValLocked( Settings.Global.Wearable.AMBIENT_LOW_BIT_ENABLED, SystemProperties.getBoolean("ro.ambient.low_bit_enabled", false)); - initGlobalSettingsDefaultValForWearLocked( + initGlobalSettingsDefaultValLocked( Settings.Global.Wearable.AMBIENT_PLUGGED_TIMEOUT_MIN, SystemProperties.getInt("ro.ambient.plugged_timeout_min", -1)); - initGlobalSettingsDefaultValForWearLocked( + initGlobalSettingsDefaultValLocked( Settings.Global.Wearable.PAIRED_DEVICE_OS_TYPE, Settings.Global.Wearable.PAIRED_DEVICE_OS_TYPE_UNKNOWN); - initGlobalSettingsDefaultValForWearLocked( + initGlobalSettingsDefaultValLocked( Settings.Global.Wearable.USER_HFP_CLIENT_SETTING, Settings.Global.Wearable.HFP_CLIENT_UNSET); Setting disabledProfileSetting = @@ -5468,7 +5467,7 @@ public class SettingsProvider extends ContentProvider { disabledProfileSetting.isNull() ? 0 : Long.parseLong(disabledProfileSetting.getValue()); - initGlobalSettingsDefaultValForWearLocked( + initGlobalSettingsDefaultValLocked( Settings.Global.Wearable.COMPANION_OS_VERSION, Settings.Global.Wearable.COMPANION_OS_VERSION_UNDEFINED); final boolean defaultBurnInProtectionEnabled = @@ -5482,17 +5481,17 @@ public class SettingsProvider extends ContentProvider { .config_enableBurnInProtection); final boolean forceBurnInProtection = SystemProperties.getBoolean("persist.debug.force_burn_in", false); - initGlobalSettingsDefaultValForWearLocked( + initGlobalSettingsDefaultValLocked( Settings.Global.Wearable.BURN_IN_PROTECTION_ENABLED, defaultBurnInProtectionEnabled || forceBurnInProtection); - initGlobalSettingsDefaultValForWearLocked( + initGlobalSettingsDefaultValLocked( Settings.Global.Wearable.CLOCKWORK_SYSUI_PACKAGE, getContext() .getResources() .getString( com.android.internal.R.string.config_wearSysUiPackage)); - initGlobalSettingsDefaultValForWearLocked( + initGlobalSettingsDefaultValLocked( Settings.Global.Wearable.CLOCKWORK_SYSUI_MAIN_ACTIVITY, getContext() .getResources() @@ -5622,63 +5621,16 @@ public class SettingsProvider extends ContentProvider { currentVersion = 210; } if (currentVersion == 210) { - final SettingsState secureSettings = getSecureSettingsLocked(userId); - final Setting currentSetting = secureSettings.getSettingLocked( - Secure.STATUS_BAR_SHOW_VIBRATE_ICON); - if (currentSetting.isNull()) { - final int defaultValueVibrateIconEnabled = getContext().getResources() - .getInteger(R.integer.def_statusBarVibrateIconEnabled); - secureSettings.insertSettingOverrideableByRestoreLocked( - Secure.STATUS_BAR_SHOW_VIBRATE_ICON, - String.valueOf(defaultValueVibrateIconEnabled), - null /* tag */, true /* makeDefault */, - SettingsState.SYSTEM_PACKAGE_NAME); - } + // Unused. Moved to version 217. currentVersion = 211; } if (currentVersion == 211) { - // Version 211: Set default value for - // Secure#LOCK_SCREEN_SHOW_ONLY_UNSEEN_NOTIFICATIONS - final SettingsState secureSettings = getSecureSettingsLocked(userId); - final Setting lockScreenUnseenSetting = secureSettings - .getSettingLocked(Secure.LOCK_SCREEN_SHOW_ONLY_UNSEEN_NOTIFICATIONS); - if (lockScreenUnseenSetting.isNull()) { - final boolean defSetting = getContext().getResources() - .getBoolean(R.bool.def_lock_screen_show_only_unseen_notifications); - secureSettings.insertSettingOverrideableByRestoreLocked( - Secure.LOCK_SCREEN_SHOW_ONLY_UNSEEN_NOTIFICATIONS, - defSetting ? "1" : "0", - null /* tag */, - true /* makeDefault */, - SettingsState.SYSTEM_PACKAGE_NAME); - } - + // Unused. Moved to version 217. currentVersion = 212; } if (currentVersion == 212) { - final SettingsState globalSettings = getGlobalSettingsLocked(); - final SettingsState secureSettings = getSecureSettingsLocked(userId); - - final Setting bugReportInPowerMenu = globalSettings.getSettingLocked( - Global.BUGREPORT_IN_POWER_MENU); - - if (!bugReportInPowerMenu.isNull()) { - Slog.i(LOG_TAG, "Setting bugreport_in_power_menu to " - + bugReportInPowerMenu.getValue() + " in Secure settings."); - secureSettings.insertSettingLocked( - Secure.BUGREPORT_IN_POWER_MENU, - bugReportInPowerMenu.getValue(), null /* tag */, - false /* makeDefault */, SettingsState.SYSTEM_PACKAGE_NAME); - - // set global bug_report_in_power_menu setting to null since it's deprecated - Slog.i(LOG_TAG, "Setting bugreport_in_power_menu to null" - + " in Global settings since it's deprecated."); - globalSettings.insertSettingLocked( - Global.BUGREPORT_IN_POWER_MENU, null /* value */, null /* tag */, - true /* makeDefault */, SettingsState.SYSTEM_PACKAGE_NAME); - } - + // Unused. Moved to version 217. currentVersion = 213; } @@ -5804,6 +5756,89 @@ public class SettingsProvider extends ContentProvider { currentVersion = 217; } + if (currentVersion == 217) { + // Version 217: merge and rebase wear settings init logic. + + final SettingsState secureSettings = getSecureSettingsLocked(userId); + final SettingsState globalSettings = getGlobalSettingsLocked(); + + // Following init logic is moved from version 210 to this version in order to + // resolve version conflict with wear branch. + final Setting currentSetting = secureSettings.getSettingLocked( + Secure.STATUS_BAR_SHOW_VIBRATE_ICON); + if (currentSetting.isNull()) { + final int defaultValueVibrateIconEnabled = getContext().getResources() + .getInteger(R.integer.def_statusBarVibrateIconEnabled); + secureSettings.insertSettingOverrideableByRestoreLocked( + Secure.STATUS_BAR_SHOW_VIBRATE_ICON, + String.valueOf(defaultValueVibrateIconEnabled), + null /* tag */, true /* makeDefault */, + SettingsState.SYSTEM_PACKAGE_NAME); + } + + // Set default value for Secure#LOCK_SCREEN_SHOW_ONLY_UNSEEN_NOTIFICATIONS + // Following init logic is moved from version 211 to this version in order to + // resolve version conflict with wear branch. + final Setting lockScreenUnseenSetting = secureSettings + .getSettingLocked(Secure.LOCK_SCREEN_SHOW_ONLY_UNSEEN_NOTIFICATIONS); + if (lockScreenUnseenSetting.isNull()) { + final boolean defSetting = getContext().getResources() + .getBoolean(R.bool.def_lock_screen_show_only_unseen_notifications); + secureSettings.insertSettingOverrideableByRestoreLocked( + Secure.LOCK_SCREEN_SHOW_ONLY_UNSEEN_NOTIFICATIONS, + defSetting ? "1" : "0", + null /* tag */, + true /* makeDefault */, + SettingsState.SYSTEM_PACKAGE_NAME); + } + + // Following init logic is moved from version 212 to this version in order to + // resolve version conflict with wear branch. + final Setting bugReportInPowerMenu = globalSettings.getSettingLocked( + Global.BUGREPORT_IN_POWER_MENU); + + if (!bugReportInPowerMenu.isNull()) { + Slog.i(LOG_TAG, "Setting bugreport_in_power_menu to " + + bugReportInPowerMenu.getValue() + " in Secure settings."); + secureSettings.insertSettingLocked( + Secure.BUGREPORT_IN_POWER_MENU, + bugReportInPowerMenu.getValue(), null /* tag */, + false /* makeDefault */, SettingsState.SYSTEM_PACKAGE_NAME); + + // set global bug_report_in_power_menu setting to null since it's deprecated + Slog.i(LOG_TAG, "Setting bugreport_in_power_menu to null" + + " in Global settings since it's deprecated."); + globalSettings.insertSettingLocked( + Global.BUGREPORT_IN_POWER_MENU, null /* value */, null /* tag */, + true /* makeDefault */, SettingsState.SYSTEM_PACKAGE_NAME); + } + + // Following init logic is rebased from wear OS branch. + // Initialize default value of tether configuration to unknown. + initGlobalSettingsDefaultValLocked( + Settings.Global.Wearable.TETHER_CONFIG_STATE, + Global.Wearable.TETHERED_CONFIG_UNKNOWN); + // Init paired device location setting from resources. + initGlobalSettingsDefaultValLocked( + Global.Wearable.OBTAIN_PAIRED_DEVICE_LOCATION, + getContext() + .getResources() + .getInteger(R.integer.def_paired_device_location_mode)); + // Init media packages from resources. + final String mediaControlsPackage = getContext().getResources().getString( + com.android.internal.R.string.config_wearMediaControlsPackage); + final String mediaSessionsPackage = getContext().getResources().getString( + com.android.internal.R.string.config_wearMediaSessionsPackage); + initGlobalSettingsDefaultValLocked( + Global.Wearable.WEAR_MEDIA_CONTROLS_PACKAGE, + mediaControlsPackage); + initGlobalSettingsDefaultValLocked( + Global.Wearable.WEAR_MEDIA_SESSIONS_PACKAGE, + mediaSessionsPackage); + + currentVersion = 218; + } + // vXXX: Add new settings above this point. if (currentVersion != newVersion) { @@ -5821,19 +5856,19 @@ public class SettingsProvider extends ContentProvider { return currentVersion; } - private void initGlobalSettingsDefaultValForWearLocked(String key, boolean val) { - initGlobalSettingsDefaultValForWearLocked(key, val ? "1" : "0"); + private void initGlobalSettingsDefaultValLocked(String key, boolean val) { + initGlobalSettingsDefaultValLocked(key, val ? "1" : "0"); } - private void initGlobalSettingsDefaultValForWearLocked(String key, int val) { - initGlobalSettingsDefaultValForWearLocked(key, String.valueOf(val)); + private void initGlobalSettingsDefaultValLocked(String key, int val) { + initGlobalSettingsDefaultValLocked(key, String.valueOf(val)); } - private void initGlobalSettingsDefaultValForWearLocked(String key, long val) { - initGlobalSettingsDefaultValForWearLocked(key, String.valueOf(val)); + private void initGlobalSettingsDefaultValLocked(String key, long val) { + initGlobalSettingsDefaultValLocked(key, String.valueOf(val)); } - private void initGlobalSettingsDefaultValForWearLocked(String key, String val) { + private void initGlobalSettingsDefaultValLocked(String key, String val) { final SettingsState globalSettings = getGlobalSettingsLocked(); Setting currentSetting = globalSettings.getSettingLocked(key); if (currentSetting.isNull()) { diff --git a/packages/SettingsProvider/test/src/android/provider/SettingsBackupTest.java b/packages/SettingsProvider/test/src/android/provider/SettingsBackupTest.java index 19f1a86ec90c4..a202e1614b67c 100644 --- a/packages/SettingsProvider/test/src/android/provider/SettingsBackupTest.java +++ b/packages/SettingsProvider/test/src/android/provider/SettingsBackupTest.java @@ -627,7 +627,6 @@ public class SettingsBackupTest { Settings.Global.Wearable.STEM_3_DATA, Settings.Global.Wearable.STEM_3_DEFAULT_DATA, Settings.Global.Wearable.WEAR_OS_VERSION_STRING, - Settings.Global.Wearable.BUTTON_SET, Settings.Global.Wearable.SIDE_BUTTON, Settings.Global.Wearable.ANDROID_WEAR_VERSION, Settings.Global.Wearable.SYSTEM_CAPABILITIES, @@ -643,6 +642,7 @@ public class SettingsBackupTest { Settings.Global.Wearable.PAIRED_DEVICE_OS_TYPE, Settings.Global.Wearable.COMPANION_BLE_ROLE, Settings.Global.Wearable.COMPANION_NAME, + Settings.Global.Wearable.COMPANION_APP_NAME, Settings.Global.Wearable.USER_HFP_CLIENT_SETTING, Settings.Global.Wearable.COMPANION_OS_VERSION, Settings.Global.Wearable.ENABLE_ALL_LANGUAGES, @@ -662,13 +662,21 @@ public class SettingsBackupTest { Settings.Global.Wearable.SCREEN_UNLOCK_SOUND_ENABLED, Settings.Global.Wearable.BEDTIME_MODE, Settings.Global.Wearable.BEDTIME_HARD_MODE, - Settings.Global.Wearable.EARLY_UPDATES_STATUS, Settings.Global.Wearable.RSB_WAKE_ENABLED, Settings.Global.Wearable.LOCK_SCREEN_STATE, Settings.Global.Wearable.ACCESSIBILITY_VIBRATION_WATCH_ENABLED, Settings.Global.Wearable.ACCESSIBILITY_VIBRATION_WATCH_TYPE, Settings.Global.Wearable.ACCESSIBILITY_VIBRATION_WATCH_SPEED, - Settings.Global.Wearable.SCREENSHOT_ENABLED); + Settings.Global.Wearable.SCREENSHOT_ENABLED, + Settings.Global.Wearable.DISABLE_AOD_WHILE_PLUGGED, + Settings.Global.Wearable.NETWORK_LOCATION_OPT_IN, + Settings.Global.Wearable.CUSTOM_COLOR_FOREGROUND, + Settings.Global.Wearable.CUSTOM_COLOR_BACKGROUND, + Settings.Global.Wearable.PHONE_SWITCHING_STATUS, + Settings.Global.Wearable.TETHER_CONFIG_STATE, + Settings.Global.Wearable.PHONE_SWITCHING_SUPPORTED, + Settings.Global.Wearable.WEAR_MEDIA_CONTROLS_PACKAGE, + Settings.Global.Wearable.WEAR_MEDIA_SESSIONS_PACKAGE); private static final Set BACKUP_DENY_LIST_SECURE_SETTINGS = newHashSet(