From ba4b561c3e292cca1e2b58276ff2671ef6d53ae7 Mon Sep 17 00:00:00 2001 From: Jian Jin Date: Wed, 4 Dec 2019 16:15:23 -0800 Subject: [PATCH] DO NOT MERGE - Add AUTOMOTIVE_USER_SETUP_IN_PROGRESS to Settings Bug: 144846684 Test: SettingsProviderTest Change-Id: Iebc53c70ea401c6ba244ed43db7a1d73f3a894df --- core/java/android/provider/Settings.java | 10 ++++++++++ core/proto/android/providers/settings/secure.proto | 9 ++++++++- .../src/android/provider/SettingsBackupTest.java | 1 + .../providers/settings/SettingsProtoDumpUtil.java | 4 ++++ .../providers/settings/SettingsProvider.java | 13 +++++++++++++ 5 files changed, 36 insertions(+), 1 deletion(-) diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java index b9f5348027e6e..9c416a0b5ad9a 100644 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -5979,6 +5979,16 @@ public final class Settings { @TestApi public static final String USER_SETUP_COMPLETE = "user_setup_complete"; + /** + * Whether the Auto Embedded Setup Wizard (0 = false, 1 = true) is in progress. + * This differs from USER_SETUP_COMPLETE in that it can be reset back to 0 + * in case Setup Wizard has been re-enabled on Auto Embedded devices. + * + * @hide + */ + public static final String AUTOMOTIVE_USER_SETUP_IN_PROGRESS = + "automotive_user_setup_in_progress"; + /** * Indicates that the user has not started setup personalization. * One of the possible states for {@link #USER_SETUP_PERSONALIZATION_STATE}. diff --git a/core/proto/android/providers/settings/secure.proto b/core/proto/android/providers/settings/secure.proto index ef413b9b04cf2..d0be86f7babd4 100644 --- a/core/proto/android/providers/settings/secure.proto +++ b/core/proto/android/providers/settings/secure.proto @@ -139,6 +139,13 @@ message SecureSettingsProto { } optional AutomaticStorageManager automatic_storage_manager = 9; + message Automotive { + option (android.msg_privacy).dest = DEST_EXPLICIT; + + optional SettingProto automotive_user_setup_in_progress = 1 [ (android.privacy).dest = DEST_AUTOMATIC ]; + } + optional Automotive automotive = 77; + message Backup { option (android.msg_privacy).dest = DEST_EXPLICIT; @@ -566,5 +573,5 @@ message SecureSettingsProto { // Please insert fields in alphabetical order and group them into messages // if possible (to avoid reaching the method limit). - // Next tag = 77; + // Next tag = 78; } diff --git a/core/tests/coretests/src/android/provider/SettingsBackupTest.java b/core/tests/coretests/src/android/provider/SettingsBackupTest.java index b7b02a3d61f1a..029a06ef3aa9b 100644 --- a/core/tests/coretests/src/android/provider/SettingsBackupTest.java +++ b/core/tests/coretests/src/android/provider/SettingsBackupTest.java @@ -703,6 +703,7 @@ public class SettingsBackupTest { Settings.Secure.UNSAFE_VOLUME_MUSIC_ACTIVE_MS, Settings.Secure.USB_AUDIO_AUTOMATIC_ROUTING_DISABLED, Settings.Secure.USER_SETUP_COMPLETE, + Settings.Secure.AUTOMOTIVE_USER_SETUP_IN_PROGRESS, Settings.Secure.USER_SETUP_PERSONALIZATION_STATE, Settings.Secure.VOICE_INTERACTION_SERVICE, Settings.Secure.VOICE_RECOGNITION_SERVICE, diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java index 894ba9cd2f061..514d3523f750b 100644 --- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java +++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java @@ -2411,6 +2411,10 @@ class SettingsProtoDumpUtil { Settings.Secure.USER_SETUP_COMPLETE, SecureSettingsProto.USER_SETUP_COMPLETE); + dumpSetting(s, p, + Settings.Secure.AUTOMOTIVE_USER_SETUP_IN_PROGRESS, + SecureSettingsProto.Automotive.AUTOMOTIVE_USER_SETUP_IN_PROGRESS); + final long voiceToken = p.start(SecureSettingsProto.VOICE); dumpSetting(s, p, Settings.Secure.VOICE_INTERACTION_SERVICE, diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java index fbfbe7fc1d9b9..c900308fec946 100644 --- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java +++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java @@ -4449,6 +4449,19 @@ public class SettingsProvider extends ContentProvider { currentVersion = 183; } + if (currentVersion == 183) { + // Version 169: by default, automotive setup wizard is in progress + final SettingsState secureSettings = getSecureSettingsLocked(userId); + Setting currentSetting = secureSettings.getSettingLocked( + Secure.AUTOMOTIVE_USER_SETUP_IN_PROGRESS); + if (currentSetting.isNull()) { + secureSettings.insertSettingLocked( + Secure.AUTOMOTIVE_USER_SETUP_IN_PROGRESS, "1", null, true, + SettingsState.SYSTEM_PACKAGE_NAME); + } + currentVersion = 184; + } + // vXXX: Add new settings above this point. if (currentVersion != newVersion) {