DO NOT MERGE - Add AUTOMOTIVE_USER_SETUP_IN_PROGRESS to Settings

Bug: 144846684
Test: SettingsProviderTest
Change-Id: Iebc53c70ea401c6ba244ed43db7a1d73f3a894df
diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java
index b9f53480..9c416a0 100644
--- a/core/java/android/provider/Settings.java
+++ b/core/java/android/provider/Settings.java
@@ -5980,6 +5980,16 @@
         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 ef413b9..d0be86f 100644
--- a/core/proto/android/providers/settings/secure.proto
+++ b/core/proto/android/providers/settings/secure.proto
@@ -139,6 +139,13 @@
     }
     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 @@
 
     // 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 b7b02a3..029a06e 100644
--- a/core/tests/coretests/src/android/provider/SettingsBackupTest.java
+++ b/core/tests/coretests/src/android/provider/SettingsBackupTest.java
@@ -703,6 +703,7 @@
                  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 894ba9c..514d352 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 @@
                 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 fbfbe7f..c900308 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 @@
                     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) {