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 extends Settings.NameValueTable> clazz) {
+ private static Set getCandidateSettings(Class> clazz) {
HashSet result = new HashSet();
for (Field field : clazz.getDeclaredFields()) {
if (looksLikeValidSetting(field)) {