diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java index f75dd88c9cacc..f96da25b5a6dc 100644 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -16307,18 +16307,19 @@ public final class Settings { public static final int RETAIL_MODE_RETAIL = 1; /** - * The play store availability. + * The play store availability on companion phone. * @hide */ - public static final String PLAY_STORE_AVAILABILITY = "play_store_availability"; + public static final String PHONE_PLAY_STORE_AVAILABILITY = + "phone_play_store_availability"; - // Possible play store availability states + // Possible phone play store availability states /** @hide */ - public static final int PLAY_STORE_AVAILABILITY_UNKNOWN = 0; + public static final int PHONE_PLAY_STORE_AVAILABILITY_UNKNOWN = 0; /** @hide */ - public static final int PLAY_STORE_AVAILABLE = 1; + public static final int PHONE_PLAY_STORE_AVAILABLE = 1; /** @hide */ - public static final int PLAY_STORE_UNAVAILABLE = 2; + public static final int PHONE_PLAY_STORE_UNAVAILABLE = 2; /** * Whether the bug report is enabled. @@ -16720,6 +16721,62 @@ public final class Settings { * @hide */ public static final String UNGAZE_ENABLED = "ungaze_enabled"; + + /** + * The device's battery saver mode, which can be one of the following: + * -{@link BATTERY_SAVER_MODE_NONE} + * -{@link BATTERY_SAVER_MODE_LIGHT} + * -{@link BATTERY_SAVER_MODE_TRADITIONAL_WATCH} + * -{@link BATTERY_SAVER_MODE_TIME_ONLY} + * -{@link BATTERY_SAVER_MODE_CUSTOM} + * @hide + */ + public static final String BATTERY_SAVER_MODE = "battery_saver_mode"; + + /** + * Not in Battery Saver Mode + * @hide + */ + public static final int BATTERY_SAVER_MODE_NONE = 0; + /** + * In Lightweight Battery Saver Mode + * @hide + */ + public static final int BATTERY_SAVER_MODE_LIGHT = 1; + /** + * In Traditional Watch Mode Battery Saver Mode + * @hide + */ + public static final int BATTERY_SAVER_MODE_TRADITIONAL_WATCH = 2; + /** + * In Time-only Mode Battery Saver Mode + * @hide + */ + public static final int BATTERY_SAVER_MODE_TIME_ONLY = 3; + /** + * Partner's Battery Saver implementation is being used + * @hide + */ + public static final int BATTERY_SAVER_MODE_CUSTOM = 4; + + /** + * The maximum ambient mode duration when an activity is allowed to auto resume. + * @hide + */ + public static final String WEAR_ACTIVITY_AUTO_RESUME_TIMEOUT_MS = + "wear_activity_auto_resume_timeout_ms"; + + /** + * If burn in protection is enabled. + * @hide + */ + public static final String BURN_IN_PROTECTION_ENABLED = "burn_in_protection"; + + /** + * Whether the device has combined location setting enabled. + * @hide + */ + public static final String COMBINED_LOCATION_ENABLED = "combined_location_enable"; } } diff --git a/packages/SettingsProvider/src/android/provider/settings/validators/GlobalSettingsValidators.java b/packages/SettingsProvider/src/android/provider/settings/validators/GlobalSettingsValidators.java index ab6a8a9dc56d9..9ac90f12bc7e6 100644 --- a/packages/SettingsProvider/src/android/provider/settings/validators/GlobalSettingsValidators.java +++ b/packages/SettingsProvider/src/android/provider/settings/validators/GlobalSettingsValidators.java @@ -20,6 +20,7 @@ import static android.media.AudioFormat.SURROUND_SOUND_ENCODING; import static android.provider.settings.validators.SettingsValidators.ANY_INTEGER_VALIDATOR; import static android.provider.settings.validators.SettingsValidators.ANY_STRING_VALIDATOR; import static android.provider.settings.validators.SettingsValidators.BOOLEAN_VALIDATOR; +import static android.provider.settings.validators.SettingsValidators.NON_NEGATIVE_INTEGER_VALIDATOR; import static android.provider.settings.validators.SettingsValidators.PACKAGE_NAME_VALIDATOR; import static android.provider.settings.validators.SettingsValidators.PERCENTAGE_INTEGER_VALIDATOR; import static android.view.Display.HdrCapabilities.HDR_TYPES; @@ -159,12 +160,12 @@ public class GlobalSettingsValidators { String.valueOf(Global.Wearable.RETAIL_MODE_RETAIL) })); VALIDATORS.put( - Global.Wearable.PLAY_STORE_AVAILABILITY, + Global.Wearable.PHONE_PLAY_STORE_AVAILABILITY, new DiscreteValueValidator( new String[] { - String.valueOf(Global.Wearable.PLAY_STORE_AVAILABLE), - String.valueOf(Global.Wearable.PLAY_STORE_UNAVAILABLE), - String.valueOf(Global.Wearable.PLAY_STORE_AVAILABILITY_UNKNOWN) + String.valueOf(Global.Wearable.PHONE_PLAY_STORE_AVAILABLE), + String.valueOf(Global.Wearable.PHONE_PLAY_STORE_UNAVAILABLE), + String.valueOf(Global.Wearable.PHONE_PLAY_STORE_AVAILABILITY_UNKNOWN) })); VALIDATORS.put( Global.Wearable.BUG_REPORT, @@ -296,6 +297,21 @@ public class GlobalSettingsValidators { VALIDATORS.put(Global.Wearable.OEM_SETUP_VERSION, ANY_INTEGER_VALIDATOR); VALIDATORS.put(Global.Wearable.MASTER_GESTURES_ENABLED, BOOLEAN_VALIDATOR); VALIDATORS.put(Global.Wearable.UNGAZE_ENABLED, BOOLEAN_VALIDATOR); + VALIDATORS.put( + Global.Wearable.BATTERY_SAVER_MODE, + new DiscreteValueValidator( + new String[] { + String.valueOf(Global.Wearable.BATTERY_SAVER_MODE_NONE), + String.valueOf(Global.Wearable.BATTERY_SAVER_MODE_LIGHT), + String.valueOf(Global.Wearable.BATTERY_SAVER_MODE_TRADITIONAL_WATCH), + String.valueOf(Global.Wearable.BATTERY_SAVER_MODE_TIME_ONLY), + String.valueOf(Global.Wearable.BATTERY_SAVER_MODE_CUSTOM) + })); + VALIDATORS.put( + Global.Wearable.WEAR_ACTIVITY_AUTO_RESUME_TIMEOUT_MS, + NON_NEGATIVE_INTEGER_VALIDATOR); + VALIDATORS.put(Global.Wearable.BURN_IN_PROTECTION_ENABLED, BOOLEAN_VALIDATOR); + VALIDATORS.put(Global.Wearable.COMBINED_LOCATION_ENABLED, 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 9e7daf49eaaba..294399e754dfd 100644 --- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java +++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java @@ -5215,8 +5215,8 @@ public class SettingsProvider extends ContentProvider { initGlobalSettingsDefaultValForWearLocked( Global.Wearable.RETAIL_MODE, Global.Wearable.RETAIL_MODE_CONSUMER); initGlobalSettingsDefaultValForWearLocked( - Global.Wearable.PLAY_STORE_AVAILABILITY, - Global.Wearable.PLAY_STORE_AVAILABILITY_UNKNOWN); + Global.Wearable.PHONE_PLAY_STORE_AVAILABILITY, + Global.Wearable.PHONE_PLAY_STORE_AVAILABILITY_UNKNOWN); initGlobalSettingsDefaultValForWearLocked( Global.Wearable.BUG_REPORT, "user".equals(Build.TYPE) // is user build? @@ -5380,6 +5380,20 @@ public class SettingsProvider extends ContentProvider { initGlobalSettingsDefaultValForWearLocked( Settings.Global.Wearable.COMPANION_OS_VERSION, Settings.Global.Wearable.COMPANION_OS_VERSION_UNDEFINED); + final boolean defaultBurnInProtectionEnabled = + getContext() + .getResources() + .getBoolean( + com.android + .internal + .R + .bool + .config_enableBurnInProtection); + final boolean forceBurnInProtection = + SystemProperties.getBoolean("persist.debug.force_burn_in", false); + initGlobalSettingsDefaultValForWearLocked( + Settings.Global.Wearable.BURN_IN_PROTECTION_ENABLED, + defaultBurnInProtectionEnabled || forceBurnInProtection); // TODO(b/164398026): add necessary initialization logic for all entries. currentVersion = 204; diff --git a/packages/SettingsProvider/test/src/android/provider/SettingsBackupTest.java b/packages/SettingsProvider/test/src/android/provider/SettingsBackupTest.java index f78d3b4c2c01a..75aba391416f1 100644 --- a/packages/SettingsProvider/test/src/android/provider/SettingsBackupTest.java +++ b/packages/SettingsProvider/test/src/android/provider/SettingsBackupTest.java @@ -592,6 +592,8 @@ public class SettingsBackupTest { Settings.Global.CACHED_APPS_FREEZER_ENABLED, Settings.Global.APP_INTEGRITY_VERIFICATION_TIMEOUT, Settings.Global.KEY_CHORD_POWER_VOLUME_UP, + Settings.Global.Wearable.BATTERY_SAVER_MODE, + Settings.Global.Wearable.COMBINED_LOCATION_ENABLED, Settings.Global.Wearable.HAS_PAY_TOKENS, Settings.Global.Wearable.GMS_CHECKIN_TIMEOUT_MIN, Settings.Global.Wearable.HOTWORD_DETECTION_ENABLED, @@ -599,7 +601,7 @@ public class SettingsBackupTest { Settings.Global.Wearable.DEFAULT_VIBRATION, Settings.Global.Wearable.OBTAIN_PAIRED_DEVICE_LOCATION, Settings.Global.Wearable.RETAIL_MODE, - Settings.Global.Wearable.PLAY_STORE_AVAILABILITY, + Settings.Global.Wearable.PHONE_PLAY_STORE_AVAILABILITY, Settings.Global.Wearable.BUG_REPORT, Settings.Global.Wearable.SMART_ILLUMINATE_ENABLED, Settings.Global.Wearable.CLOCKWORK_AUTO_TIME, @@ -656,7 +658,9 @@ public class SettingsBackupTest { Settings.Global.Wearable.SETUP_LOCALE, Settings.Global.Wearable.OEM_SETUP_VERSION, Settings.Global.Wearable.MASTER_GESTURES_ENABLED, - Settings.Global.Wearable.UNGAZE_ENABLED); + Settings.Global.Wearable.UNGAZE_ENABLED, + Settings.Global.Wearable.WEAR_ACTIVITY_AUTO_RESUME_TIMEOUT_MS, + Settings.Global.Wearable.BURN_IN_PROTECTION_ENABLED); private static final Set BACKUP_DENY_LIST_SECURE_SETTINGS = newHashSet(