diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java index f36098d77f9fb..c9a692213c352 100644 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -16191,6 +16191,252 @@ public final class Settings { * @hide */ public static final String RESTRICTED_NETWORKING_MODE = "restricted_networking_mode"; + + /** + * Settings migrated from Wear OS settings provider. + * @hide + */ + public static class Wearable { + /** + * Whether the user has any pay tokens on their watch. + * @hide + */ + public static final String HAS_PAY_TOKENS = "has_pay_tokens"; + + /** + * Gcm checkin timeout in minutes. + * @hide + */ + public static final String GMS_CHECKIN_TIMEOUT_MIN = "gms_checkin_timeout_min"; + + /** + * If hotword detection should be enabled. + * @hide + */ + public static final String HOTWORD_DETECTION_ENABLED = "hotword_detection_enabled"; + + /** + * Whether Smart Replies are enabled within Wear. + * @hide + */ + public static final String SMART_REPLIES_ENABLED = "smart_replies_enabled"; + + /** + * The default vibration pattern. + * @hide + */ + public static final String DEFAULT_VIBRATION = "default_vibration"; + + /** + * If FLP should obtain location data from the paired device. + * @hide + */ + public static final String OBTAIN_PAIRED_DEVICE_LOCATION = + "obtain_paired_device_location"; + + /** + * Whether the device is in retail mode. + * @hide + */ + public static final String RETAIL_MODE = "retail_mode"; + + // Possible retail mode states + /** @hide */ + public static final int RETAIL_MODE_CONSUMER = 0; + /** @hide */ + public static final int RETAIL_MODE_RETAIL = 1; + + /** + * The play store availability. + * @hide + */ + public static final String PLAY_STORE_AVAILABILITY = "play_store_availability"; + + // Possible play store availability states + /** @hide */ + public static final int PLAY_STORE_AVAILABILITY_UNKNOWN = 0; + /** @hide */ + public static final int PLAY_STORE_AVAILABLE = 1; + /** @hide */ + public static final int PLAY_STORE_UNAVAILABLE = 2; + + /** + * Whether the bug report is enabled. + * @hide + */ + public static final String BUG_REPORT = "bug_report"; + + // Possible bug report states + /** @hide */ + public static final int BUG_REPORT_DISABLED = 0; + /** @hide */ + public static final int BUG_REPORT_ENABLED = 1; + + /** + * The enabled/disabled state of the SmartIlluminate. + * @hide + */ + public static final String SMART_ILLUMINATE_ENABLED = "smart_illuminate_enabled"; + + /** + * Whether automatic time is enabled on the watch. + * @hide + */ + public static final String CLOCKWORK_AUTO_TIME = "clockwork_auto_time"; + + // Possible clockwork auto time states + /** @hide */ + public static final int SYNC_TIME_FROM_PHONE = 0; + /** @hide */ + public static final int SYNC_TIME_FROM_NETWORK = 1; + /** @hide */ + public static final int AUTO_TIME_OFF = 2; + /** @hide */ + public static final int INVALID_AUTO_TIME_STATE = 3; + + + /** + * Whether automatic time zone is enabled on the watch. + * @hide + */ + public static final String CLOCKWORK_AUTO_TIME_ZONE = "clockwork_auto_time_zone"; + + // Possible clockwork auto time zone states + /** @hide */ + public static final int SYNC_TIME_ZONE_FROM_PHONE = 0; + /** @hide */ + public static final int SYNC_TIME_ZONE_FROM_NETWORK = 1; + /** @hide */ + public static final int AUTO_TIME_ZONE_OFF = 2; + /** @hide */ + public static final int INVALID_AUTO_TIME_ZONE_STATE = 3; + + /** + * Whether 24 hour time format is enabled on the watch. + * @hide + */ + public static final String CLOCKWORK_24HR_TIME = "clockwork_24hr_time"; + + /** + * Whether the auto wifi toggle setting is enabled. + * @hide + */ + public static final String AUTO_WIFI = "auto_wifi"; + + /** + * The number of minutes after the WiFi enters power save mode. + * @hide + */ + public static final String WIFI_POWER_SAVE = "wifi_power_save"; + + /** + * The time at which we should no longer skip the wifi requirement check (we skip the + * wifi requirement until this time). The time is in millis since epoch. + * @hide + */ + public static final String ALT_BYPASS_WIFI_REQUIREMENT_TIME_MILLIS = + "alt_bypass_wifi_requirement_time_millis"; + + /** + * Wireless debug settings for wear. + * @hide + */ + public static final String WIRELESS_DEBUG_MODE = "wireless_debug_mode"; + + // Possible wireless debug settings. + /** @hide */ + public static final int WIRELESS_DEBUG_OFF = 0; + /** @hide */ + public static final int WIRELESS_DEBUG_BLUETOOTH = 1 << 0; + /** @hide */ + public static final int WIRELESS_DEBUG_WIFI = 1 << 1; + + /** + * Wifi debug port for wear. + * @hide + */ + public static final String WIFI_DEBUG_PORT = "wireless_debug_wifi_port"; + + /** + * Whether or not Up/Down Gestures are enabled. + * @hide + */ + public static final String UPDOWN_GESTURES_ENABLED = "updown_gestures_enabled"; + + /** + * Whether the setup was skipped. + * @hide + */ + public static final String SETUP_SKIPPED = "setup_skipped"; + + // Possible setup_skipped states + /** @hide */ + public static final int SETUP_SKIPPED_UNKNOWN = 0; + /** @hide */ + public static final int SETUP_SKIPPED_YES = 1; + /** @hide */ + public static final int SETUP_SKIPPED_NO = 2; + + /** + * The last requested call forwarding action. + * @hide + */ + public static final String LAST_CALL_FORWARD_ACTION = "last_call_forward_action"; + + // Possible call forwarding actions + /** @hide */ + public static final int CALL_FORWARD_ACTION_ON = 1; + /** @hide */ + public static final int CALL_FORWARD_ACTION_OFF = 2; + /** @hide */ + public static final int CALL_FORWARD_NO_LAST_ACTION = -1; + + // Stem button settings. + /** @hide */ + public static final String STEM_1_TYPE = "STEM_1_TYPE"; + /** @hide */ + public static final String STEM_1_DATA = "STEM_1_DATA"; + /** @hide */ + public static final String STEM_1_DEFAULT_DATA = "STEM_1_DEFAULT_DATA"; + /** @hide */ + public static final String STEM_2_TYPE = "STEM_2_TYPE"; + /** @hide */ + public static final String STEM_2_DATA = "STEM_2_DATA"; + /** @hide */ + public static final String STEM_2_DEFAULT_DATA = "STEM_2_DEFAULT_DATA"; + /** @hide */ + public static final String STEM_3_TYPE = "STEM_3_TYPE"; + /** @hide */ + public static final String STEM_3_DATA = "STEM_3_DATA"; + /** @hide */ + public static final String STEM_3_DEFAULT_DATA = "STEM_3_DEFAULT_DATA"; + + // Stem types + /** @hide */ + public static final int STEM_TYPE_UNKNOWN = -1; + /** @hide */ + public static final int STEM_TYPE_APP_LAUNCH = 0; + /** @hide */ + public static final int STEM_TYPE_CONTACT_LAUNCH = 1; + + /** + * If the device should be muted when off body. + * @hide + */ + public static final String MUTE_WHEN_OFF_BODY_ENABLED = "obtain_mute_when_off_body"; + + /** + * Wear OS version string. + * @hide + */ + public static final String WEAR_OS_VERSION_STRING = "wear_os_version_string"; + + /** + * If an alternate launcher is enabled. + * @hide + */ + public static final String ALTERNATE_LAUNCHER_ENABLED = "alternate_launcher_enabled"; + } } /** diff --git a/packages/SettingsProvider/res/values-mcc466/defaults.xml b/packages/SettingsProvider/res/values-mcc466/defaults.xml new file mode 100644 index 0000000000000..fdeda8881dccd --- /dev/null +++ b/packages/SettingsProvider/res/values-mcc466/defaults.xml @@ -0,0 +1,5 @@ + + + + false + diff --git a/packages/SettingsProvider/res/values/defaults.xml b/packages/SettingsProvider/res/values/defaults.xml index 218067df51b26..c4c34ae0d6bb3 100644 --- a/packages/SettingsProvider/res/values/defaults.xml +++ b/packages/SettingsProvider/res/values/defaults.xml @@ -263,4 +263,21 @@ false + + + + false + + true + + 120 + + + false + + + true + + + true diff --git a/packages/SettingsProvider/src/android/provider/settings/validators/GlobalSettingsValidators.java b/packages/SettingsProvider/src/android/provider/settings/validators/GlobalSettingsValidators.java index c1ac9a9797fa9..96e89e8d01953 100644 --- a/packages/SettingsProvider/src/android/provider/settings/validators/GlobalSettingsValidators.java +++ b/packages/SettingsProvider/src/android/provider/settings/validators/GlobalSettingsValidators.java @@ -143,6 +143,111 @@ public class GlobalSettingsValidators { /* last= */Global.ONE_HANDED_KEYGUARD_SIDE_RIGHT)); VALIDATORS.put(Global.DISABLE_WINDOW_BLURS, BOOLEAN_VALIDATOR); VALIDATORS.put(Global.DEVICE_CONFIG_SYNC_DISABLED, BOOLEAN_VALIDATOR); + + VALIDATORS.put(Global.Wearable.HAS_PAY_TOKENS, BOOLEAN_VALIDATOR); + VALIDATORS.put(Global.Wearable.GMS_CHECKIN_TIMEOUT_MIN, ANY_INTEGER_VALIDATOR); + VALIDATORS.put(Global.Wearable.HOTWORD_DETECTION_ENABLED, BOOLEAN_VALIDATOR); + VALIDATORS.put(Global.Wearable.SMART_REPLIES_ENABLED, BOOLEAN_VALIDATOR); + VALIDATORS.put(Global.Wearable.OBTAIN_PAIRED_DEVICE_LOCATION, BOOLEAN_VALIDATOR); + VALIDATORS.put( + Global.Wearable.RETAIL_MODE, + new DiscreteValueValidator( + new String[] { + String.valueOf(Global.Wearable.RETAIL_MODE_CONSUMER), + String.valueOf(Global.Wearable.RETAIL_MODE_RETAIL) + })); + VALIDATORS.put( + Global.Wearable.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) + })); + VALIDATORS.put( + Global.Wearable.BUG_REPORT, + new DiscreteValueValidator( + new String[] { + String.valueOf(Global.Wearable.BUG_REPORT_ENABLED), + String.valueOf(Global.Wearable.BUG_REPORT_DISABLED) + })); + VALIDATORS.put(Global.Wearable.SMART_ILLUMINATE_ENABLED, BOOLEAN_VALIDATOR); + VALIDATORS.put( + Global.Wearable.CLOCKWORK_AUTO_TIME, + new DiscreteValueValidator( + new String[] { + String.valueOf(Global.Wearable.SYNC_TIME_FROM_PHONE), + String.valueOf(Global.Wearable.SYNC_TIME_FROM_NETWORK), + String.valueOf(Global.Wearable.AUTO_TIME_OFF), + String.valueOf(Global.Wearable.INVALID_AUTO_TIME_STATE) + })); + VALIDATORS.put( + Global.Wearable.CLOCKWORK_AUTO_TIME_ZONE, + new DiscreteValueValidator( + new String[] { + String.valueOf(Global.Wearable.SYNC_TIME_ZONE_FROM_PHONE), + String.valueOf(Global.Wearable.SYNC_TIME_ZONE_FROM_NETWORK), + String.valueOf(Global.Wearable.AUTO_TIME_ZONE_OFF), + String.valueOf(Global.Wearable.INVALID_AUTO_TIME_ZONE_STATE) + })); + VALIDATORS.put(Global.Wearable.CLOCKWORK_24HR_TIME, BOOLEAN_VALIDATOR); + VALIDATORS.put(Global.Wearable.AUTO_WIFI, BOOLEAN_VALIDATOR); + VALIDATORS.put(Global.Wearable.WIFI_POWER_SAVE, ANY_INTEGER_VALIDATOR); + VALIDATORS.put( + Global.Wearable.ALT_BYPASS_WIFI_REQUIREMENT_TIME_MILLIS, + ANY_INTEGER_VALIDATOR); + VALIDATORS.put( + Global.Wearable.WIRELESS_DEBUG_MODE, + new DiscreteValueValidator( + new String[] { + String.valueOf(Global.Wearable.WIRELESS_DEBUG_OFF), + String.valueOf(Global.Wearable.WIRELESS_DEBUG_WIFI), + String.valueOf(Global.Wearable.WIRELESS_DEBUG_BLUETOOTH) + })); + VALIDATORS.put(Global.Wearable.WIFI_DEBUG_PORT, ANY_INTEGER_VALIDATOR); + VALIDATORS.put(Global.Wearable.UPDOWN_GESTURES_ENABLED, BOOLEAN_VALIDATOR); + VALIDATORS.put( + Global.Wearable.SETUP_SKIPPED, + new DiscreteValueValidator( + new String[] { + String.valueOf(Global.Wearable.SETUP_SKIPPED_YES), + String.valueOf(Global.Wearable.SETUP_SKIPPED_NO), + String.valueOf(Global.Wearable.SETUP_SKIPPED_UNKNOWN) + })); + VALIDATORS.put( + Global.Wearable.LAST_CALL_FORWARD_ACTION, + new DiscreteValueValidator( + new String[] { + String.valueOf(Global.Wearable.CALL_FORWARD_ACTION_ON), + String.valueOf(Global.Wearable.CALL_FORWARD_ACTION_OFF), + String.valueOf(Global.Wearable.CALL_FORWARD_NO_LAST_ACTION) + })); + VALIDATORS.put( + Global.Wearable.STEM_1_TYPE, + new DiscreteValueValidator( + new String[] { + String.valueOf(Global.Wearable.STEM_TYPE_UNKNOWN), + String.valueOf(Global.Wearable.STEM_TYPE_APP_LAUNCH), + String.valueOf(Global.Wearable.STEM_TYPE_CONTACT_LAUNCH) + })); + VALIDATORS.put( + Global.Wearable.STEM_2_TYPE, + new DiscreteValueValidator( + new String[] { + String.valueOf(Global.Wearable.STEM_TYPE_UNKNOWN), + String.valueOf(Global.Wearable.STEM_TYPE_APP_LAUNCH), + String.valueOf(Global.Wearable.STEM_TYPE_CONTACT_LAUNCH) + })); + VALIDATORS.put( + Global.Wearable.STEM_3_TYPE, + new DiscreteValueValidator( + new String[] { + String.valueOf(Global.Wearable.STEM_TYPE_UNKNOWN), + String.valueOf(Global.Wearable.STEM_TYPE_APP_LAUNCH), + String.valueOf(Global.Wearable.STEM_TYPE_CONTACT_LAUNCH) + })); + VALIDATORS.put(Global.Wearable.MUTE_WHEN_OFF_BODY_ENABLED, BOOLEAN_VALIDATOR); + VALIDATORS.put(Global.Wearable.ALTERNATE_LAUNCHER_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 dd9a6eee7327b..60e7d0870e6f8 100644 --- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java +++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java @@ -3576,7 +3576,7 @@ public class SettingsProvider extends ContentProvider { } private final class UpgradeController { - private static final int SETTINGS_VERSION = 203; + private static final int SETTINGS_VERSION = 204; private final int mUserId; @@ -5180,6 +5180,92 @@ public class SettingsProvider extends ContentProvider { currentVersion = 203; } + if (currentVersion == 203) { + // Version 203: initialize entries migrated from wear settings provide. + initGlobalSettingsDefaultValForWearLocked(Global.Wearable.HAS_PAY_TOKENS, + false); + initGlobalSettingsDefaultValForWearLocked( + Global.Wearable.GMS_CHECKIN_TIMEOUT_MIN, 6); + initGlobalSettingsDefaultValForWearLocked( + Global.Wearable.HOTWORD_DETECTION_ENABLED, + getContext() + .getResources() + .getBoolean(R.bool.def_wearable_hotwordDetectionEnabled)); + initGlobalSettingsDefaultValForWearLocked( + Global.Wearable.SMART_REPLIES_ENABLED, false); + Setting locationMode = getSecureSettingsLocked(userId) + .getSettingLocked(Secure.LOCATION_MODE); + initGlobalSettingsDefaultValForWearLocked( + Global.Wearable.OBTAIN_PAIRED_DEVICE_LOCATION, + !locationMode.isNull() + && !Integer.toString(Secure.LOCATION_MODE_OFF) + .equals(locationMode.getValue())); + initGlobalSettingsDefaultValForWearLocked( + Global.Wearable.RETAIL_MODE, Global.Wearable.RETAIL_MODE_CONSUMER); + initGlobalSettingsDefaultValForWearLocked( + Global.Wearable.PLAY_STORE_AVAILABILITY, + Global.Wearable.PLAY_STORE_AVAILABILITY_UNKNOWN); + initGlobalSettingsDefaultValForWearLocked( + Global.Wearable.BUG_REPORT, + "user".equals(Build.TYPE) // is user build? + ? Global.Wearable.BUG_REPORT_DISABLED + : Global.Wearable.BUG_REPORT_ENABLED); + initGlobalSettingsDefaultValForWearLocked( + Global.Wearable.SMART_ILLUMINATE_ENABLED, + getContext() + .getResources() + .getBoolean(R.bool.def_wearable_smartIlluminateEnabled)); + initGlobalSettingsDefaultValForWearLocked( + Global.Wearable.CLOCKWORK_AUTO_TIME, + Global.Wearable.SYNC_TIME_FROM_PHONE); + initGlobalSettingsDefaultValForWearLocked( + Global.Wearable.CLOCKWORK_AUTO_TIME_ZONE, + Global.Wearable.SYNC_TIME_ZONE_FROM_PHONE); + initGlobalSettingsDefaultValForWearLocked( + Global.Wearable.CLOCKWORK_24HR_TIME, false); + initGlobalSettingsDefaultValForWearLocked(Global.Wearable.AUTO_WIFI, true); + initGlobalSettingsDefaultValForWearLocked( + Global.Wearable.WIFI_POWER_SAVE, + getContext() + .getResources() + .getInteger( + R.integer + .def_wearable_offChargerWifiUsageLimitMinutes)); + initGlobalSettingsDefaultValForWearLocked( + Global.Wearable.ALT_BYPASS_WIFI_REQUIREMENT_TIME_MILLIS, 0L); + initGlobalSettingsDefaultValForWearLocked( + Global.Wearable.WIRELESS_DEBUG_MODE, + Global.Wearable.WIRELESS_DEBUG_OFF); + initGlobalSettingsDefaultValForWearLocked( + Global.Wearable.WIFI_DEBUG_PORT, 5555); + initGlobalSettingsDefaultValForWearLocked( + Global.Wearable.UPDOWN_GESTURES_ENABLED, + getContext() + .getResources() + .getBoolean(R.bool.def_wearable_upDownGesturesEnabled)); + initGlobalSettingsDefaultValForWearLocked( + Global.Wearable.SETUP_SKIPPED, + Global.Wearable.SETUP_SKIPPED_UNKNOWN); + initGlobalSettingsDefaultValForWearLocked( + Global.Wearable.LAST_CALL_FORWARD_ACTION, + Global.Wearable.CALL_FORWARD_NO_LAST_ACTION); + initGlobalSettingsDefaultValForWearLocked( + Global.Wearable.MUTE_WHEN_OFF_BODY_ENABLED, + getContext() + .getResources() + .getBoolean(R.bool.def_wearable_muteWhenOffBodyEnabled)); + initGlobalSettingsDefaultValForWearLocked( + Global.Wearable.WEAR_OS_VERSION_STRING, ""); + initGlobalSettingsDefaultValForWearLocked( + Global.Wearable.ALTERNATE_LAUNCHER_ENABLED, + getContext() + .getResources() + .getBoolean(R.bool.def_wearable_alternateLauncherEnabled)); + + // TODO(b/164398026): add necessary initialization logic for all entries. + currentVersion = 204; + } + // vXXX: Add new settings above this point. if (currentVersion != newVersion) { @@ -5196,6 +5282,31 @@ public class SettingsProvider extends ContentProvider { // Return the current version. return currentVersion; } + + private void initGlobalSettingsDefaultValForWearLocked(String key, boolean val) { + initGlobalSettingsDefaultValForWearLocked(key, val ? "1" : "0"); + } + + private void initGlobalSettingsDefaultValForWearLocked(String key, int val) { + initGlobalSettingsDefaultValForWearLocked(key, String.valueOf(val)); + } + + private void initGlobalSettingsDefaultValForWearLocked(String key, long val) { + initGlobalSettingsDefaultValForWearLocked(key, String.valueOf(val)); + } + + private void initGlobalSettingsDefaultValForWearLocked(String key, String val) { + final SettingsState globalSettings = getGlobalSettingsLocked(); + Setting currentSetting = globalSettings.getSettingLocked(key); + if (currentSetting.isNull()) { + globalSettings.insertSettingOverrideableByRestoreLocked( + key, + val, + null /* tag */, + true /* makeDefault */, + SettingsState.SYSTEM_PACKAGE_NAME); + } + } } /** diff --git a/packages/SettingsProvider/test/src/android/provider/SettingsBackupTest.java b/packages/SettingsProvider/test/src/android/provider/SettingsBackupTest.java index 3297937e3e752..27d08c3b36aeb 100644 --- a/packages/SettingsProvider/test/src/android/provider/SettingsBackupTest.java +++ b/packages/SettingsProvider/test/src/android/provider/SettingsBackupTest.java @@ -593,7 +593,40 @@ public class SettingsBackupTest { Settings.Global.CACHED_APPS_FREEZER_ENABLED, Settings.Global.APP_INTEGRITY_VERIFICATION_TIMEOUT, Settings.Global.KEY_CHORD_POWER_VOLUME_UP, - Settings.Global.ADVANCED_BATTERY_USAGE_AMOUNT); + Settings.Global.ADVANCED_BATTERY_USAGE_AMOUNT, + Settings.Global.Wearable.HAS_PAY_TOKENS, + Settings.Global.Wearable.GMS_CHECKIN_TIMEOUT_MIN, + Settings.Global.Wearable.HOTWORD_DETECTION_ENABLED, + Settings.Global.Wearable.SMART_REPLIES_ENABLED, + 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.BUG_REPORT, + Settings.Global.Wearable.SMART_ILLUMINATE_ENABLED, + Settings.Global.Wearable.CLOCKWORK_AUTO_TIME, + Settings.Global.Wearable.CLOCKWORK_AUTO_TIME_ZONE, + Settings.Global.Wearable.CLOCKWORK_24HR_TIME, + Settings.Global.Wearable.AUTO_WIFI, + Settings.Global.Wearable.WIFI_POWER_SAVE, + Settings.Global.Wearable.ALT_BYPASS_WIFI_REQUIREMENT_TIME_MILLIS, + Settings.Global.Wearable.WIRELESS_DEBUG_MODE, + Settings.Global.Wearable.WIFI_DEBUG_PORT, + Settings.Global.Wearable.UPDOWN_GESTURES_ENABLED, + Settings.Global.Wearable.SETUP_SKIPPED, + Settings.Global.Wearable.LAST_CALL_FORWARD_ACTION, + Settings.Global.Wearable.STEM_1_TYPE, + Settings.Global.Wearable.STEM_1_DATA, + Settings.Global.Wearable.STEM_1_DEFAULT_DATA, + Settings.Global.Wearable.STEM_2_TYPE, + Settings.Global.Wearable.STEM_2_DATA, + Settings.Global.Wearable.STEM_2_DEFAULT_DATA, + Settings.Global.Wearable.STEM_3_TYPE, + Settings.Global.Wearable.STEM_3_DATA, + Settings.Global.Wearable.STEM_3_DEFAULT_DATA, + Settings.Global.Wearable.MUTE_WHEN_OFF_BODY_ENABLED, + Settings.Global.Wearable.WEAR_OS_VERSION_STRING, + Settings.Global.Wearable.ALTERNATE_LAUNCHER_ENABLED); private static final Set BACKUP_DENY_LIST_SECURE_SETTINGS = newHashSet( @@ -763,8 +796,10 @@ public class SettingsBackupTest { @Test public void globalSettingsBackedUpOrDenied() { + Set candidateSettings = getCandidateSettings(Settings.Global.class); + candidateSettings.addAll(getCandidateSettings(Settings.Global.Wearable.class)); checkSettingsBackedUpOrDenied( - getCandidateSettings(Settings.Global.class), + candidateSettings, newHashSet(GlobalSettings.SETTINGS_TO_BACKUP), BACKUP_DENY_LIST_GLOBAL_SETTINGS); } @@ -792,8 +827,7 @@ public class SettingsBackupTest { .that(intersect(settingsToBackup, denylist)).isEmpty(); } - private static Set getCandidateSettings( - Class clazz) { + private static Set getCandidateSettings(Class clazz) { HashSet result = new HashSet(); for (Field field : clazz.getDeclaredFields()) { if (looksLikeValidSetting(field)) {