Add option for settings to push to a device index

The index implementation is optional and left up to the OEM.

Test: Open settings, see content in index
Test: robo tests
Bug: 68378569
Bug: 76102600
Change-Id: Idb8bb1e0cabbbe92e7a852e2eadbdcd8c2ab7d56
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 27788dc..c21eaba 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -255,6 +255,8 @@
                 android:value="com.android.settings.wifi.WifiSettings" />
             <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
                 android:value="true" />
+            <meta-data android:name="android.metadata.SLICE_URI"
+                android:value="content://android.settings.slices/wifi" />
         </activity>
 
         <activity
@@ -1127,6 +1129,17 @@
             </intent-filter>
         </activity>
 
+        <activity android:name=".slice.SliceDeepLinkSpringBoard"
+            android:theme="@android:style/Theme.NoDisplay">
+            <intent-filter>
+                <action android:name="android.intent.action.VIEW" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.BROWSABLE" />
+                <data android:scheme="settings"
+                      android:host="com.android.settings.slices" />
+            </intent-filter>
+        </activity>
+
         <!-- Provide direct entry into manage apps showing running services.
              This is for compatibility with old shortcuts. -->
         <activity-alias android:name=".RunningServices"
@@ -3261,7 +3274,16 @@
 
         <provider android:name=".slices.SettingsSliceProvider"
                   android:authorities="com.android.settings.slices;android.settings.slices"
-                  android:exported="true">
+                  android:exported="true"
+                  android:grantUriPermissions="true">
+            <intent-filter>
+                <action android:name="android.intent.action.VIEW" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.BROWSABLE" />
+                <category android:name="android.app.slice.category.SLICE" />
+                <data android:scheme="settings"
+                      android:host="com.android.settings.slices" />
+            </intent-filter>
         </provider>
 
         <receiver