Loading core/java/android/provider/Settings.java +246 −0 Original line number Diff line number Diff line Loading @@ -16205,6 +16205,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"; } } /** packages/SettingsProvider/res/values-mcc466/defaults.xml 0 → 100644 +5 −0 Original line number Diff line number Diff line <?xml version="1.0" encoding="utf-8"?> <resources> <!-- Whether to enable mute when off body by default. --> <bool name="def_wearable_muteWhenOffBodyEnabled">false</bool> </resources> packages/SettingsProvider/res/values/defaults.xml +17 −0 Original line number Diff line number Diff line Loading @@ -263,4 +263,21 @@ <!-- Default for Settings.Secure.ONE_HANDED_MODE_ACTIVATED --> <bool name="def_one_handed_mode_activated">false</bool> <!-- ========================================== --> <!-- Default values for wear specific settings. --> <bool name="def_wearable_hotwordDetectionEnabled">false</bool> <bool name="def_wearable_smartIlluminateEnabled">true</bool> <integer name="def_wearable_offChargerWifiUsageLimitMinutes">120</integer> <!-- Default enabled state of accelerometer-based up/down gestures. --> <bool name="def_wearable_upDownGesturesEnabled">false</bool> <!-- Whether to enable mute when off body by default. --> <bool name="def_wearable_muteWhenOffBodyEnabled">true</bool> <!-- Whether to use an alternate launcher if available. --> <bool name="def_wearable_alternateLauncherEnabled">true</bool> </resources> packages/SettingsProvider/src/android/provider/settings/validators/GlobalSettingsValidators.java +105 −0 Original line number Diff line number Diff line Loading @@ -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); } } packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java +112 −1 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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) { Loading @@ -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); } } } /** Loading Loading
core/java/android/provider/Settings.java +246 −0 Original line number Diff line number Diff line Loading @@ -16205,6 +16205,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"; } } /**
packages/SettingsProvider/res/values-mcc466/defaults.xml 0 → 100644 +5 −0 Original line number Diff line number Diff line <?xml version="1.0" encoding="utf-8"?> <resources> <!-- Whether to enable mute when off body by default. --> <bool name="def_wearable_muteWhenOffBodyEnabled">false</bool> </resources>
packages/SettingsProvider/res/values/defaults.xml +17 −0 Original line number Diff line number Diff line Loading @@ -263,4 +263,21 @@ <!-- Default for Settings.Secure.ONE_HANDED_MODE_ACTIVATED --> <bool name="def_one_handed_mode_activated">false</bool> <!-- ========================================== --> <!-- Default values for wear specific settings. --> <bool name="def_wearable_hotwordDetectionEnabled">false</bool> <bool name="def_wearable_smartIlluminateEnabled">true</bool> <integer name="def_wearable_offChargerWifiUsageLimitMinutes">120</integer> <!-- Default enabled state of accelerometer-based up/down gestures. --> <bool name="def_wearable_upDownGesturesEnabled">false</bool> <!-- Whether to enable mute when off body by default. --> <bool name="def_wearable_muteWhenOffBodyEnabled">true</bool> <!-- Whether to use an alternate launcher if available. --> <bool name="def_wearable_alternateLauncherEnabled">true</bool> </resources>
packages/SettingsProvider/src/android/provider/settings/validators/GlobalSettingsValidators.java +105 −0 Original line number Diff line number Diff line Loading @@ -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); } }
packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java +112 −1 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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) { Loading @@ -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); } } } /** Loading