Merge "Add hub mode tutorial state in Settings" into main
diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java
index e829ca2..d09f0a8 100644
--- a/core/java/android/provider/Settings.java
+++ b/core/java/android/provider/Settings.java
@@ -9908,6 +9908,48 @@
          */
         public static final String DOCK_SETUP_STATE = "dock_setup_state";
 
+
+        /**
+         * Default, indicates that the user has not yet started the hub mode tutorial.
+         *
+         * @hide
+         */
+        public static final int HUB_MODE_TUTORIAL_NOT_STARTED = 0;
+
+        /**
+         * Indicates that the user has started but not yet completed the hub mode tutorial.
+         * One of the possible states for {@link #HUB_MODE_TUTORIAL_STATE}.
+         *
+         * @hide
+         */
+        public static final int HUB_MODE_TUTORIAL_STARTED = 1;
+
+        /**
+         * Indicates that the user has completed the hub mode tutorial.
+         * One of the possible states for {@link #HUB_MODE_TUTORIAL_STATE}.
+         *
+         * @hide
+         */
+        public static final int HUB_MODE_TUTORIAL_COMPLETED = 10;
+
+        /** @hide */
+        @Retention(RetentionPolicy.SOURCE)
+        @IntDef({
+                HUB_MODE_TUTORIAL_NOT_STARTED,
+                HUB_MODE_TUTORIAL_STARTED,
+                HUB_MODE_TUTORIAL_COMPLETED
+        })
+        public @interface HubModeTutorialState {
+        }
+
+        /**
+         * Defines the user's current state of navigating through the hub mode tutorial.
+         * The possible states are defined in {@link HubModeTutorialState}.
+         *
+         * @hide
+         */
+        public static final String HUB_MODE_TUTORIAL_STATE = "hub_mode_tutorial_state";
+
         /**
          * The default NFC payment component
          * @hide
diff --git a/packages/SettingsProvider/src/android/provider/settings/backup/SecureSettings.java b/packages/SettingsProvider/src/android/provider/settings/backup/SecureSettings.java
index 1c33544..91d2d1b 100644
--- a/packages/SettingsProvider/src/android/provider/settings/backup/SecureSettings.java
+++ b/packages/SettingsProvider/src/android/provider/settings/backup/SecureSettings.java
@@ -243,6 +243,7 @@
         Settings.Secure.HEARING_AID_SYSTEM_SOUNDS_ROUTING,
         Settings.Secure.ACCESSIBILITY_FONT_SCALING_HAS_BEEN_CHANGED,
         Settings.Secure.SEARCH_PRESS_HOLD_NAV_HANDLE_ENABLED,
-        Settings.Secure.SEARCH_LONG_PRESS_HOME_ENABLED
+        Settings.Secure.SEARCH_LONG_PRESS_HOME_ENABLED,
+        Settings.Secure.HUB_MODE_TUTORIAL_STATE
     };
 }
diff --git a/packages/SettingsProvider/src/android/provider/settings/validators/SecureSettingsValidators.java b/packages/SettingsProvider/src/android/provider/settings/validators/SecureSettingsValidators.java
index 301fd6f..bec1447 100644
--- a/packages/SettingsProvider/src/android/provider/settings/validators/SecureSettingsValidators.java
+++ b/packages/SettingsProvider/src/android/provider/settings/validators/SecureSettingsValidators.java
@@ -389,5 +389,6 @@
         VALIDATORS.put(Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_EDGE_HAPTIC_ENABLED,
                 BOOLEAN_VALIDATOR);
         VALIDATORS.put(Secure.DND_CONFIGS_MIGRATED, BOOLEAN_VALIDATOR);
+        VALIDATORS.put(Secure.HUB_MODE_TUTORIAL_STATE, NON_NEGATIVE_INTEGER_VALIDATOR);
     }
 }