Merge "Remove mobile network v1"
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 0a72b75..afc4d40 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -160,8 +160,7 @@
             </intent-filter>
         </receiver>
 
-        <activity android:name=".SubSettings"
-                android:parentActivityName="Settings"/>
+        <activity android:name=".SubSettings"/>
 
         <activity android:name=".Settings$CreateShortcutActivity"
                   android:label="@string/settings_shortcut">
@@ -178,8 +177,7 @@
         <activity
             android:name=".Settings$NetworkDashboardActivity"
             android:label="@string/network_dashboard_title"
-            android:icon="@drawable/ic_homepage_network"
-            android:parentActivityName="Settings">
+            android:icon="@drawable/ic_homepage_network">
             <intent-filter android:priority="1">
                 <action android:name="android.settings.WIRELESS_SETTINGS" />
                 <action android:name="android.settings.AIRPLANE_MODE_SETTINGS" />
@@ -198,8 +196,7 @@
         </activity>
 
         <activity android:name=".Settings$MobileNetworkListActivity"
-                  android:label="@string/network_settings_title"
-                  android:parentActivityName="Settings$NetworkDashboardActivity">
+                  android:label="@string/network_settings_title">
             <intent-filter android:priority="1">
                 <action android:name="android.settings.MOBILE_NETWORK_LIST" />
                 <category android:name="android.intent.category.DEFAULT" />
@@ -213,8 +210,7 @@
         <activity
             android:name=".Settings$ConnectedDeviceDashboardActivity"
             android:label="@string/connected_devices_dashboard_title"
-            android:icon="@drawable/ic_devices_other"
-            android:parentActivityName="Settings">
+            android:icon="@drawable/ic_devices_other">
             <intent-filter android:priority="1">
                 <action android:name="android.settings.BLUETOOTH_SETTINGS" />
                 <category android:name="android.intent.category.DEFAULT" />
@@ -250,8 +246,7 @@
             android:name="Settings$WifiSettingsActivity"
             android:label="@string/wifi_settings"
             android:icon="@drawable/ic_settings_wireless"
-            android:configChanges="orientation|keyboardHidden|screenSize"
-            android:parentActivityName="Settings">
+            android:configChanges="orientation|keyboardHidden|screenSize">
             <intent-filter android:priority="1">
                 <action android:name="android.settings.WIFI_SETTINGS" />
                 <category android:name="android.intent.category.DEFAULT" />
@@ -270,8 +265,7 @@
             android:name="Settings$WifiSettings2Activity"
             android:label="@string/wifi_settings"
             android:icon="@drawable/ic_settings_wireless"
-            android:configChanges="orientation|keyboardHidden|screenSize"
-            android:parentActivityName="Settings">
+            android:configChanges="orientation|keyboardHidden|screenSize">
             <intent-filter android:priority="1">
                 <action android:name="android.settings.WIFI_SETTINGS2" />
                 <category android:name="android.intent.category.DEFAULT" />
@@ -287,8 +281,7 @@
         </activity>
 
         <activity
-            android:name=".wifi.WifiPickerActivity"
-            android:parentActivityName="Settings">
+            android:name=".wifi.WifiPickerActivity">
             <intent-filter android:priority="1">
                 <action android:name="android.net.wifi.PICK_WIFI_NETWORK" />
                 <category android:name="android.intent.category.DEFAULT" />
@@ -301,8 +294,7 @@
             android:name="Settings$ConfigureWifiSettingsActivity"
             android:label="@string/wifi_configure_settings_preference_title"
             android:icon="@drawable/ic_settings_wireless"
-            android:configChanges="orientation|keyboardHidden|screenSize"
-            android:parentActivityName="Settings">
+            android:configChanges="orientation|keyboardHidden|screenSize">
             <intent-filter android:priority="1">
                 <action android:name="android.settings.WIFI_IP_SETTINGS" />
                 <category android:name="android.intent.category.DEFAULT" />
@@ -322,8 +314,7 @@
             android:name="Settings$SavedAccessPointsSettingsActivity"
             android:label="@string/wifi_saved_access_points_label"
             android:icon="@drawable/ic_settings_wireless"
-            android:configChanges="orientation|keyboardHidden|screenSize"
-            android:parentActivityName="Settings">
+            android:configChanges="orientation|keyboardHidden|screenSize">
             <intent-filter android:priority="1">
                 <action android:name="android.settings.WIFI_SAVED_NETWORK_SETTINGS" />
                 <category android:name="android.intent.category.DEFAULT" />
@@ -393,7 +384,6 @@
                 android:label="@string/apn_settings"
                 android:launchMode="singleTask"
                 android:configChanges="orientation|keyboardHidden|screenSize"
-                android:parentActivityName="Settings$NetworkDashboardActivity"
                 android:process="com.android.phone">
             <intent-filter android:priority="1">
                 <action android:name="android.settings.APN_SETTINGS" />
@@ -495,8 +485,7 @@
         <activity
             android:name="Settings$TetherSettingsActivity"
             android:label="@string/tether_settings_title_all"
-            android:icon="@drawable/ic_settings_wireless"
-            android:parentActivityName="Settings">
+            android:icon="@drawable/ic_settings_wireless">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
                 <category android:name="android.intent.category.DEFAULT" />
@@ -509,8 +498,7 @@
         <activity
             android:name="Settings$WifiTetherSettingsActivity"
             android:label="@string/wifi_hotspot_checkbox_text"
-            android:icon="@drawable/ic_wifi_tethering"
-            android:parentActivityName="Settings">
+            android:icon="@drawable/ic_wifi_tethering">
             <intent-filter>
                 <action android:name="com.android.settings.WIFI_TETHER_SETTINGS" />
                 <category android:name="android.intent.category.DEFAULT" />
@@ -534,8 +522,7 @@
                 android:value="com.android.settings.TetherSettings" />
         </activity-alias>
 
-        <activity android:name="Settings$WifiP2pSettingsActivity"
-                  android:parentActivityName="Settings">
+        <activity android:name="Settings$WifiP2pSettingsActivity">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
                 <category android:name="android.intent.category.DEFAULT" />
@@ -548,8 +535,7 @@
         <activity
             android:name="Settings$VpnSettingsActivity"
             android:label="@string/vpn_settings_title"
-            android:icon="@drawable/ic_settings_wireless"
-            android:parentActivityName="Settings">
+            android:icon="@drawable/ic_settings_wireless">
             <intent-filter android:priority="1">
                 <action android:name="android.settings.VPN_SETTINGS" />
                 <action android:name="android.net.vpn.SETTINGS" />
@@ -567,8 +553,7 @@
 
         <activity
             android:name="Settings$DataSaverSummaryActivity"
-            android:label="@string/data_saver_title"
-            android:parentActivityName="Settings">
+            android:label="@string/data_saver_title">
             <intent-filter android:priority="1">
                 <action android:name="android.settings.DATA_SAVER_SETTINGS" />
                 <category android:name="android.intent.category.DEFAULT" />
@@ -580,8 +565,7 @@
         <activity
             android:name="Settings$DateTimeSettingsActivity"
             android:label="@string/date_and_time"
-            android:icon="@drawable/ic_settings_date_time"
-            android:parentActivityName="Settings">
+            android:icon="@drawable/ic_settings_date_time">
             <intent-filter android:priority="1">
                 <action android:name="android.settings.DATE_SETTINGS" />
                 <category android:name="android.intent.category.DEFAULT" />
@@ -601,8 +585,7 @@
         <activity
             android:name="Settings$LocalePickerActivity"
             android:label="@string/language_picker_title"
-            android:icon="@drawable/ic_settings_language"
-            android:parentActivityName="Settings$LanguageAndInputSettingsActivity">
+            android:icon="@drawable/ic_settings_language">
             <intent-filter android:priority="1">
                 <action android:name="android.settings.LOCALE_SETTINGS" />
                 <category android:name="android.intent.category.DEFAULT" />
@@ -627,8 +610,7 @@
         <activity
             android:name=".Settings$LanguageAndInputSettingsActivity"
             android:label="@string/language_settings"
-            android:icon="@drawable/ic_settings_language"
-            android:parentActivityName="Settings">
+            android:icon="@drawable/ic_settings_language">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
                 <category android:name="android.intent.category.VOICE_LAUNCH" />
@@ -692,8 +674,7 @@
 
         <activity
             android:name="Settings$SpellCheckersSettingsActivity"
-            android:label="@string/spellcheckers_settings_title"
-            android:parentActivityName="Settings">
+            android:label="@string/spellcheckers_settings_title">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
                 <category android:name="android.intent.category.VOICE_LAUNCH" />
@@ -719,8 +700,7 @@
 
         <activity
             android:name="Settings$UserDictionarySettingsActivity"
-            android:label="@string/user_dict_settings_title"
-            android:parentActivityName="Settings">
+            android:label="@string/user_dict_settings_title">
             <intent-filter android:priority="1">
                 <action android:name="android.settings.USER_DICTIONARY_SETTINGS" />
                 <category android:name="android.intent.category.DEFAULT" />
@@ -797,8 +777,7 @@
             android:label="@string/zen_onboarding_dnd_visual_disturbances_header"
             android:icon="@drawable/ic_notifications"
             android:theme="@*android:style/Theme.DeviceDefault.Settings.Dialog.NoActionBar"
-            android:exported="true"
-            android:parentActivityName="Settings">
+            android:exported="true">
             <intent-filter android:priority="1">
                 <action android:name="android.settings.ZEN_MODE_ONBOARDING" />
                 <category android:name="android.intent.category.DEFAULT" />
@@ -808,8 +787,7 @@
             android:name="Settings$ZenModeAutomationSettingsActivity"
             android:label="@string/zen_mode_automation_settings_title"
             android:icon="@drawable/ic_notifications"
-            android:exported="true"
-            android:parentActivityName="Settings$ZenModeSettingsActivity">
+            android:exported="true">
             <intent-filter android:priority="1">
                 <action android:name="android.settings.ZEN_MODE_AUTOMATION_SETTINGS" />
                 <category android:name="android.intent.category.DEFAULT" />
@@ -872,8 +850,7 @@
 
         <activity
             android:name="Settings$ZenModeScheduleRuleSettingsActivity"
-            android:exported="true"
-            android:parentActivityName="Settings$ZenModeAutomationSettingsActivity">
+            android:exported="true">
             <intent-filter android:priority="1">
                 <action android:name="android.settings.ZEN_MODE_SCHEDULE_RULE_SETTINGS" />
                 <category android:name="android.intent.category.DEFAULT" />
@@ -890,8 +867,7 @@
 
         <activity
             android:name="Settings$ZenModeEventRuleSettingsActivity"
-            android:exported="true"
-            android:parentActivityName="Settings$ZenModeAutomationSettingsActivity">
+            android:exported="true">
             <intent-filter android:priority="1">
                 <action android:name="android.settings.ZEN_MODE_EVENT_RULE_SETTINGS" />
                 <category android:name="android.intent.category.DEFAULT" />
@@ -905,8 +881,7 @@
         <activity
             android:name="Settings$DisplaySettingsActivity"
             android:label="@string/display_settings"
-            android:icon="@drawable/ic_homepage_display"
-            android:parentActivityName="Settings">
+            android:icon="@drawable/ic_homepage_display">
             <intent-filter android:priority="1">
                 <action android:name="com.android.settings.DISPLAY_SETTINGS" />
                 <action android:name="android.settings.DISPLAY_SETTINGS" />
@@ -982,8 +957,7 @@
         <activity
             android:name="SettingsLicenseActivity"
             android:label="@string/settings_license_activity_title"
-            android:configChanges="orientation|screenSize"
-            android:parentActivityName="Settings">
+            android:configChanges="orientation|screenSize">
             <intent-filter android:priority="1">
                 <action android:name="android.settings.LICENSE" />
                 <category android:name="android.intent.category.DEFAULT" />
@@ -1056,8 +1030,7 @@
 
         <activity
             android:name="Settings$HighPowerApplicationsActivity"
-            android:label="@string/high_power_apps"
-            android:parentActivityName="Settings">
+            android:label="@string/high_power_apps">
             <intent-filter android:priority="1">
                 <action android:name="android.settings.IGNORE_BATTERY_OPTIMIZATION_SETTINGS" />
                 <category android:name="android.intent.category.DEFAULT" />
@@ -1155,8 +1128,7 @@
 
         <!-- Provide direct entry into manage apps showing running services. -->
         <activity android:name="Settings$RunningServicesActivity"
-                android:label="@string/runningservices_settings_title"
-                android:parentActivityName="Settings">
+                android:label="@string/runningservices_settings_title">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
                 <category android:name="android.intent.category.DEFAULT" />
@@ -1172,8 +1144,7 @@
         <!-- Provide direct entry into manage apps showing storage usage of apps. -->
         <activity
             android:name="Settings$StorageUseActivity"
-            android:label="@string/storageuse_settings_title"
-            android:parentActivityName="Settings">
+            android:label="@string/storageuse_settings_title">
             <intent-filter android:priority="1">
                 <action android:name="android.intent.action.MANAGE_PACKAGE_STORAGE" />
                 <category android:name="android.intent.category.DEFAULT" />
@@ -1192,8 +1163,7 @@
 
         <activity
             android:name="Settings$NotificationStationActivity"
-            android:label="@string/notification_log_title"
-            android:parentActivityName="Settings">
+            android:label="@string/notification_log_title">
             <intent-filter android:priority="22">
                 <action android:name="android.intent.action.MAIN" />
                 <category android:name="com.android.settings.SHORTCUT" />
@@ -1234,8 +1204,7 @@
             android:name="Settings$ScanningSettingsActivity"
             android:label="@string/location_scanning_screen_title"
             android:icon="@drawable/ic_homepage_location"
-            android:configChanges="orientation|keyboardHidden|screenSize"
-            android:parentActivityName="Settings">
+            android:configChanges="orientation|keyboardHidden|screenSize">
             <intent-filter android:priority="1">
                 <action android:name="android.settings.LOCATION_SCANNING_SETTINGS" />
                 <category android:name="android.intent.category.DEFAULT" />
@@ -1250,8 +1219,7 @@
             android:name=".Settings$SecurityDashboardActivity"
             android:label="@string/security_settings_title"
             android:icon="@drawable/ic_homepage_security"
-            android:configChanges="orientation|keyboardHidden|screenSize"
-            android:parentActivityName="Settings">
+            android:configChanges="orientation|keyboardHidden|screenSize">
             <intent-filter android:priority="1">
                 <action android:name="android.settings.SECURITY_SETTINGS" />
                 <action android:name="android.credentials.UNLOCK" />
@@ -1281,8 +1249,7 @@
         <activity
             android:name="Settings$TrustedCredentialsSettingsActivity"
             android:label="@string/trusted_credentials"
-            android:icon="@drawable/ic_settings_security"
-            android:parentActivityName="Settings">
+            android:icon="@drawable/ic_settings_security">
             <intent-filter android:priority="1">
                 <action android:name="com.android.settings.TRUSTED_CREDENTIALS" />
                 <action android:name="com.android.settings.TRUSTED_CREDENTIALS_USER" />
@@ -1297,8 +1264,7 @@
         <activity android:name="Settings$PrivacySettingsActivity"
                 android:label="@string/privacy_settings_title"
                 android:icon="@drawable/ic_settings_backup"
-                android:configChanges="orientation|keyboardHidden|screenSize"
-                android:parentActivityName="Settings">
+                android:configChanges="orientation|keyboardHidden|screenSize">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
                 <category android:name="android.intent.category.DEFAULT" />
@@ -1349,8 +1315,7 @@
 
         <activity
             android:name="Settings$DeviceAdminSettingsActivity"
-            android:label="@string/device_admin_settings_title"
-            android:parentActivityName="Settings">
+            android:label="@string/device_admin_settings_title">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
                 <category android:name="android.intent.category.DEFAULT" />
@@ -1401,8 +1366,7 @@
 
         <activity
             android:name="Settings$AppUsageAccessSettingsActivity"
-            android:label="@string/usage_access_title"
-            android:parentActivityName="Settings">
+            android:label="@string/usage_access_title">
             <intent-filter>
                 <action android:name="android.settings.USAGE_ACCESS_SETTINGS"/>
                 <category android:name="android.intent.category.DEFAULT"/>
@@ -1429,8 +1393,7 @@
             android:name="Settings$AccessibilitySettingsActivity"
             android:label="@string/accessibility_settings"
             android:icon="@drawable/ic_homepage_accessibility"
-            android:configChanges="orientation|keyboardHidden|screenSize"
-            android:parentActivityName="Settings">
+            android:configChanges="orientation|keyboardHidden|screenSize">
             <intent-filter android:priority="1">
                 <action android:name="android.settings.ACCESSIBILITY_SETTINGS" />
                 <category android:name="android.intent.category.DEFAULT" />
@@ -1491,8 +1454,7 @@
 
         <activity
             android:name="Settings$AccessibilityDaltonizerSettingsActivity"
-            android:label="@string/accessibility_display_daltonizer_preference_title"
-            android:parentActivityName="Settings">
+            android:label="@string/accessibility_display_daltonizer_preference_title">
             <intent-filter android:priority="1">
                 <action android:name="com.android.settings.ACCESSIBILITY_COLOR_SPACE_SETTINGS" />
                 <category android:name="android.intent.category.DEFAULT" />
@@ -1509,8 +1471,7 @@
 
         <activity
             android:name="Settings$CaptioningSettingsActivity"
-            android:label="@string/accessibility_captioning_title"
-            android:parentActivityName="Settings">
+            android:label="@string/accessibility_captioning_title">
             <intent-filter android:priority="1">
                 <action android:name="android.settings.CAPTIONING_SETTINGS" />
                 <category android:name="android.intent.category.DEFAULT" />
@@ -1541,8 +1502,7 @@
 
         <activity
             android:name="Settings$EnterprisePrivacySettingsActivity"
-            android:label="@string/enterprise_privacy_settings"
-            android:parentActivityName="Settings">
+            android:label="@string/enterprise_privacy_settings">
             <intent-filter>
                 <action android:name="android.settings.ENTERPRISE_PRIVACY_SETTINGS" />
                 <category android:name="android.intent.category.DEFAULT" />
@@ -1807,8 +1767,7 @@
         <activity
             android:name=".Settings$StorageDashboardActivity"
             android:label="@string/storage_settings"
-            android:icon="@drawable/ic_homepage_storage"
-            android:parentActivityName="Settings">
+            android:icon="@drawable/ic_homepage_storage">
             <intent-filter android:priority="1">
                 <action android:name="android.settings.INTERNAL_STORAGE_SETTINGS" />
                 <action android:name="android.settings.MEMORY_CARD_SETTINGS" />
@@ -1833,8 +1792,7 @@
 
         <activity
             android:name="Settings$PublicVolumeSettingsActivity"
-            android:label="@string/storage_settings_title"
-            android:parentActivityName="Settings">
+            android:label="@string/storage_settings_title">
             <intent-filter>
                 <action android:name="android.provider.action.DOCUMENT_ROOT_SETTINGS" />
                 <category android:name="android.intent.category.DEFAULT" />
@@ -1915,7 +1873,6 @@
             android:name="Settings$DevelopmentSettingsDashboardActivity"
             android:label="@string/development_settings_title"
             android:icon="@drawable/ic_settings_development"
-            android:parentActivityName="Settings"
             android:enabled="false">
             <intent-filter android:priority="1">
                 <action android:name="android.settings.APPLICATION_DEVELOPMENT_SETTINGS" />
@@ -1954,8 +1911,7 @@
         <activity
             android:name="Settings$PrintSettingsActivity"
             android:label="@string/print_settings"
-            android:icon="@drawable/ic_settings_print"
-            android:parentActivityName="Settings">
+            android:icon="@drawable/ic_settings_print">
             <intent-filter android:priority="1">
                 <action android:name="android.settings.ACTION_PRINT_SETTINGS" />
                 <category android:name="android.intent.category.DEFAULT" />
@@ -1970,8 +1926,7 @@
         </activity>
 
         <activity android:name="Settings$PrintJobSettingsActivity"
-                android:label="@string/print_print_job"
-                android:parentActivityName="Settings$PrintSettingsActivity">
+                android:label="@string/print_print_job">
             <intent-filter android:priority="1">
                 <action android:name="android.settings.ACTION_PRINT_SETTINGS" />
                 <category android:name="android.intent.category.DEFAULT" />
@@ -2087,8 +2042,7 @@
         <!-- NFC settings -->
         <activity
             android:name="Settings$AndroidBeamSettingsActivity"
-            android:label="@string/android_beam_settings_title"
-            android:parentActivityName="Settings">
+            android:label="@string/android_beam_settings_title">
             <intent-filter android:priority="1">
                 <action android:name="android.settings.NFCSHARING_SETTINGS" />
                 <category android:name="android.intent.category.DEFAULT" />
@@ -2102,8 +2056,7 @@
         <activity
             android:name="Settings$WifiDisplaySettingsActivity"
             android:label="@string/wifi_display_settings_title"
-            android:icon="@drawable/ic_cast_24dp"
-            android:parentActivityName="Settings">
+            android:icon="@drawable/ic_cast_24dp">
             <intent-filter android:priority="1">
                 <action android:name="android.settings.CAST_SETTINGS" />
                 <category android:name="android.intent.category.DEFAULT" />
@@ -2146,8 +2099,7 @@
         </activity>
 
         <activity android:name="UsageStatsActivity"
-                  android:label="@string/usage_stats_label"
-                  android:parentActivityName="Settings">
+                  android:label="@string/usage_stats_label">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
                 <category android:name="android.intent.category.DEVELOPMENT_PREFERENCE" />
@@ -2157,8 +2109,7 @@
         <activity
             android:name="Settings$PowerUsageSummaryActivity"
             android:label="@string/power_usage_summary_title"
-            android:icon="@drawable/ic_settings_battery"
-            android:parentActivityName="Settings">
+            android:icon="@drawable/ic_settings_battery">
             <intent-filter android:priority="1">
                 <action android:name="android.intent.action.POWER_USAGE_SUMMARY" />
                 <category android:name="android.intent.category.DEFAULT" />
@@ -2174,8 +2125,7 @@
         <activity
             android:name="Settings$BatterySaverSettingsActivity"
             android:label="@string/battery_saver"
-            android:icon="@drawable/ic_settings_battery"
-            android:parentActivityName="Settings">
+            android:icon="@drawable/ic_settings_battery">
             <intent-filter android:priority="1">
                 <action android:name="android.settings.BATTERY_SAVER_SETTINGS" />
                 <category android:name="android.intent.category.DEFAULT" />
@@ -2199,8 +2149,7 @@
 
         <activity
             android:name="Settings$AccountSyncSettingsActivity"
-            android:label="@string/account_sync_settings_title"
-            android:parentActivityName="Settings">
+            android:label="@string/account_sync_settings_title">
             <intent-filter android:priority="1">
                 <action android:name="android.settings.ACCOUNT_SYNC_SETTINGS" />
                 <category android:name="android.intent.category.DEFAULT" />
@@ -2213,7 +2162,6 @@
         <activity
             android:name="Settings$ManagedProfileSettingsActivity"
             android:label="@string/managed_profile_settings_title"
-            android:parentActivityName="Settings"
             android:permission="android.permission.MANAGE_USERS">
             <intent-filter android:priority="1">
                 <action android:name="android.settings.MANAGED_PROFILE_SETTINGS" />
@@ -2227,8 +2175,7 @@
             android:name="com.android.settings.accounts.AddAccountSettings"
             android:theme="@android:style/Theme.Translucent.NoTitleBar"
             android:configChanges="orientation|keyboardHidden|screenSize"
-            android:label="@string/header_add_an_account"
-            android:parentActivityName="Settings">
+            android:label="@string/header_add_an_account">
             <intent-filter android:priority="1">
                 <action android:name="android.settings.ADD_ACCOUNT_SETTINGS" />
                 <category android:name="android.intent.category.DEFAULT" />
@@ -2301,8 +2248,7 @@
         <activity
             android:name="Settings$DataUsageSummaryActivity"
             android:label="@string/data_usage_summary_title"
-            android:icon="@drawable/ic_settings_data_usage"
-            android:parentActivityName="Settings">
+            android:icon="@drawable/ic_settings_data_usage">
             <intent-filter android:priority="1">
                 <action android:name="android.settings.DATA_USAGE_SETTINGS" />
                 <category android:name="android.intent.category.DEFAULT" />
@@ -2328,8 +2274,7 @@
         <activity
             android:name="Settings$DreamSettingsActivity"
             android:label="@string/screensaver_settings_title"
-            android:icon="@drawable/ic_settings_display"
-            android:parentActivityName="Settings">
+            android:icon="@drawable/ic_settings_display">
             <intent-filter android:priority="1">
                 <action android:name="android.settings.DREAM_SETTINGS" />
                 <category android:name="android.intent.category.DEFAULT" />
@@ -2343,8 +2288,7 @@
         <activity
             android:name="Settings$UserSettingsActivity"
             android:label="@string/user_settings_title"
-            android:icon="@drawable/ic_settings_multiuser"
-            android:parentActivityName="Settings">
+            android:icon="@drawable/ic_settings_multiuser">
             <intent-filter android:priority="1">
                 <action android:name="android.settings.USER_SETTINGS" />
                 <category android:name="android.intent.category.DEFAULT" />
@@ -2366,8 +2310,7 @@
         <activity
             android:name="Settings$PaymentSettingsActivity"
             android:label="@string/nfc_payment_settings_title"
-            android:icon="@drawable/ic_settings_nfc_payment"
-            android:parentActivityName="Settings">
+            android:icon="@drawable/ic_settings_nfc_payment">
             <intent-filter android:priority="1">
                 <action android:name="android.settings.NFC_PAYMENT_SETTINGS" />
                 <category android:name="android.intent.category.DEFAULT" />
@@ -2396,14 +2339,12 @@
 
         <activity android:name=".nfc.HowItWorks"
                   android:label="@string/nfc_payment_settings_title"
-                  android:parentActivityName="Settings$PaymentSettingsActivity"
                   android:excludeFromRecents="true">
         </activity>
 
         <activity
             android:name="Settings$NotificationAccessSettingsActivity"
-            android:label="@string/manage_notification_access_title"
-            android:parentActivityName="Settings">
+            android:label="@string/manage_notification_access_title">
             <intent-filter android:priority="1">
                 <action android:name="android.settings.ACTION_NOTIFICATION_LISTENER_SETTINGS" />
                 <category android:name="android.intent.category.DEFAULT" />
@@ -2414,8 +2355,7 @@
 
         <activity
             android:name="Settings$NotificationAssistantSettingsActivity"
-            android:label="@string/notification_assistant_title"
-            android:parentActivityName="Settings">
+            android:label="@string/notification_assistant_title">
             <intent-filter android:priority="1">
                 <action android:name="android.settings.NOTIFICATION_ASSISTANT_SETTINGS" />
                 <category android:name="android.intent.category.DEFAULT" />
@@ -2426,8 +2366,7 @@
 
         <activity
             android:name="Settings$VrListenersSettingsActivity"
-            android:label="@string/vr_listeners_title"
-            android:parentActivityName="Settings">
+            android:label="@string/vr_listeners_title">
             <intent-filter android:priority="1">
                 <action android:name="android.settings.VR_LISTENER_SETTINGS" />
                 <category android:name="android.intent.category.DEFAULT" />
@@ -2438,8 +2377,7 @@
 
         <activity
             android:name="Settings$PictureInPictureSettingsActivity"
-            android:label="@string/picture_in_picture_title"
-            android:parentActivityName="Settings">
+            android:label="@string/picture_in_picture_title">
             <intent-filter android:priority="1">
                 <action android:name="android.settings.PICTURE_IN_PICTURE_SETTINGS" />
                 <category android:name="android.intent.category.DEFAULT" />
@@ -2454,8 +2392,7 @@
 
         <activity
             android:name="Settings$AppPictureInPictureSettingsActivity"
-            android:label="@string/picture_in_picture_title"
-            android:parentActivityName="Settings">
+            android:label="@string/picture_in_picture_title">
             <intent-filter>
                 <action android:name="android.settings.PICTURE_IN_PICTURE_SETTINGS" />
                 <category android:name="android.intent.category.DEFAULT" />
@@ -2480,8 +2417,7 @@
 
         <activity
             android:name="Settings$ZenAccessSettingsActivity"
-            android:label="@string/manage_zen_access_title"
-            android:parentActivityName="Settings">
+            android:label="@string/manage_zen_access_title">
             <intent-filter android:priority="1">
                 <action android:name="android.settings.NOTIFICATION_POLICY_ACCESS_SETTINGS" />
                 <category android:name="android.intent.category.DEFAULT" />
@@ -2493,8 +2429,7 @@
         <activity
             android:name="Settings$ConfigureNotificationSettingsActivity"
             android:label="@string/configure_notification_settings"
-            android:exported="true"
-            android:parentActivityName="Settings">
+            android:exported="true">
             <intent-filter android:priority="1">
                 <action android:name="android.settings.NOTIFICATION_SETTINGS" />
                 <category android:name="android.intent.category.DEFAULT" />
@@ -2511,8 +2446,7 @@
 
         <activity
             android:name="Settings$AppBubbleNotificationSettingsActivity"
-            android:label="@string/bubbles_app_toggle_title"
-            android:parentActivityName="Settings$NotificationAppListActivity">
+            android:label="@string/bubbles_app_toggle_title">
             <intent-filter android:priority="1">
                 <action android:name="android.settings.APP_NOTIFICATION_BUBBLE_SETTINGS" />
                 <category android:name="android.intent.category.DEFAULT" />
@@ -2525,8 +2459,7 @@
             android:name="Settings$SoundSettingsActivity"
             android:label="@string/sound_settings"
             android:icon="@drawable/ic_homepage_sound"
-            android:exported="true"
-            android:parentActivityName="Settings">
+            android:exported="true">
             <intent-filter android:priority="1">
                 <action android:name="com.android.settings.SOUND_SETTINGS" />
                 <action android:name="android.settings.SOUND_SETTINGS" />
@@ -2583,7 +2516,6 @@
         <activity
             android:name="ManualDisplayActivity"
             android:label="@string/manual"
-            android:parentActivityName="Settings"
             android:enabled="@bool/config_show_manual">
             <intent-filter>
                 <action android:name="android.settings.SHOW_MANUAL" />
@@ -2597,7 +2529,6 @@
         <activity
             android:name="RegulatoryInfoDisplayActivity"
             android:label="@string/regulatory_labels"
-            android:parentActivityName="Settings"
             android:enabled="@bool/config_show_regulatory_info">
             <intent-filter>
                 <action android:name="android.settings.SHOW_REGULATORY_INFO" />
@@ -2765,8 +2696,7 @@
 
         <activity
             android:name="Settings$OverlaySettingsActivity"
-            android:label="@string/draw_overlay"
-            android:parentActivityName="Settings">
+            android:label="@string/draw_overlay">
             <intent-filter android:priority="1">
                 <action android:name="android.settings.action.MANAGE_OVERLAY_PERMISSION" />
                 <category android:name="android.intent.category.DEFAULT" />
@@ -2777,8 +2707,7 @@
 
         <activity
             android:name="Settings$AppDrawOverlaySettingsActivity"
-            android:label="@string/draw_overlay"
-            android:parentActivityName="Settings">
+            android:label="@string/draw_overlay">
             <intent-filter android:priority="1">
                 <action android:name="android.settings.action.MANAGE_OVERLAY_PERMISSION" />
                 <category android:name="android.intent.category.DEFAULT" />
@@ -2790,8 +2719,7 @@
 
         <activity
             android:name="Settings$WriteSettingsActivity"
-            android:label="@string/write_settings_title"
-            android:parentActivityName="Settings">
+            android:label="@string/write_settings_title">
             <intent-filter android:priority="1">
                 <action android:name="android.settings.action.MANAGE_WRITE_SETTINGS" />
                 <category android:name="android.intent.category.DEFAULT" />
@@ -2802,8 +2730,7 @@
 
         <activity
             android:name="Settings$AppWriteSettingsActivity"
-            android:label="@string/write_settings_title"
-            android:parentActivityName="Settings">
+            android:label="@string/write_settings_title">
             <intent-filter android:priority="1">
                 <action android:name="android.settings.action.MANAGE_WRITE_SETTINGS" />
                 <category android:name="android.intent.category.DEFAULT" />
@@ -2815,8 +2742,7 @@
 
         <activity
             android:name="Settings$ManageExternalSourcesActivity"
-            android:label="@string/install_other_apps"
-            android:parentActivityName="Settings">
+            android:label="@string/install_other_apps">
             <intent-filter android:priority="1">
                 <action android:name="android.settings.MANAGE_UNKNOWN_APP_SOURCES" />
                 <category android:name="android.intent.category.DEFAULT" />
@@ -2884,15 +2810,14 @@
             <meta-data android:name="com.android.settings.category"
                        android:value="com.android.settings.category.ia.system" />
             <meta-data android:name="com.android.settings.summary_uri"
-		       android:value="content://com.android.settings.dashboard.SummaryProvider/backup" />
+                       android:value="content://com.android.settings.dashboard.SummaryProvider/backup" />
             <meta-data android:name="com.android.settings.order" android:value="-60"/>
         </activity>
 
         <activity
             android:name="Settings$AutomaticStorageManagerSettingsActivity"
             android:exported="@bool/config_storage_manager_settings_enabled"
-            android:label="@string/automatic_storage_manager_settings"
-            android:parentActivityName="Settings">
+            android:label="@string/automatic_storage_manager_settings">
             <intent-filter android:priority="1">
                 <action android:name="android.settings.STORAGE_MANAGER_SETTINGS" />
                 <category android:name="android.intent.category.DEFAULT" />
@@ -2918,7 +2843,6 @@
             android:name=".Settings$AppAndNotificationDashboardActivity"
             android:label="@string/app_and_notification_dashboard_title"
             android:icon="@drawable/ic_homepage_apps"
-            android:parentActivityName="Settings"
             android:exported="true">
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                        android:value="com.android.settings.applications.AppAndNotificationDashboardFragment"/>
@@ -2927,8 +2851,7 @@
         <activity
             android:name=".Settings$AccountDashboardActivity"
             android:label="@string/account_dashboard_title"
-            android:icon="@drawable/ic_homepage_accounts"
-            android:parentActivityName="Settings">
+            android:icon="@drawable/ic_homepage_accounts">
             <intent-filter android:priority="1">
                 <action android:name="android.settings.SYNC_SETTINGS" />
                 <category android:name="android.intent.category.DEFAULT" />
@@ -2946,8 +2869,7 @@
         <activity
             android:name=".Settings$SystemDashboardActivity"
             android:label="@string/header_category_system"
-            android:icon="@drawable/ic_homepage_system_dashboard"
-            android:parentActivityName="Settings">
+            android:icon="@drawable/ic_homepage_system_dashboard">
             <intent-filter android:priority="70">
                 <action android:name="android.intent.action.MAIN" />
                 <category android:name="com.android.settings.SHORTCUT" />
@@ -3075,8 +2997,7 @@
         </activity>
 
         <activity android:name="Settings$AdvancedConnectedDeviceActivity"
-                  android:label="@string/connected_device_connections_title"
-                  android:parentActivityName="Settings$ConnectedDeviceDashboardActivity">
+                  android:label="@string/connected_device_connections_title">
             <intent-filter android:priority="1">
                 <action android:name="android.settings.NFC_SETTINGS" />
                 <category android:name="android.intent.category.DEFAULT" />
@@ -3093,8 +3014,7 @@
 
         <activity android:name="Settings$BluetoothDeviceDetailActivity"
                   android:label="@string/device_details_title"
-                  android:permission="android.permission.BLUETOOTH_PRIVILEGED"
-                  android:parentActivityName="Settings$ConnectedDeviceDashboardActivity">
+                  android:permission="android.permission.BLUETOOTH_PRIVILEGED">
             <intent-filter android:priority="1">
                 <action android:name="com.android.settings.BLUETOOTH_DEVICE_DETAIL_SETTINGS" />
                 <category android:name="android.intent.category.DEFAULT" />
@@ -3232,8 +3152,7 @@
         </activity>
 
         <activity android:name="Settings$BatterySaverScheduleSettingsActivity"
-            android:label="@string/battery_saver_schedule_settings_title"
-            android:parentActivityName="Settings">
+            android:label="@string/battery_saver_schedule_settings_title">
             <intent-filter>
                 <action android:name="com.android.settings.BATTERY_SAVER_SCHEDULE_SETTINGS" />
                 <category android:name="android.intent.category.DEFAULT" />
diff --git a/res/drawable/ic_pan_tool_18dp.xml b/res/drawable/ic_pan_tool_18dp.xml
index 3ebfc9c..36b133b 100644
--- a/res/drawable/ic_pan_tool_18dp.xml
+++ b/res/drawable/ic_pan_tool_18dp.xml
@@ -1,10 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  Copyright (C) 2019 The Android Open Source Project
+
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+  -->
+
 <vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="18dp"
-    android:height="18dp"
-    android:viewportWidth="48"
-    android:viewportHeight="48">
+        android:width="18dp"
+        android:height="18dp"
+        android:viewportWidth="48"
+        android:viewportHeight="48">
   <group>
-    <clip-path android:pathData="M0,0h48v48H0z M 0,0"/>
+    <clip-path
+        android:pathData="M0,0h48v48H0z M 0,0"/>
     <path
         android:pathData="M46,11v29c0,4.4 -3.6,8 -8,8H23.4c-2.16,0 -4.2,-0.86 -5.7,-2.38L2,29.66s2.52,-2.46 2.6,-2.5c0.44,-0.38 0.98,-0.58 1.58,-0.58 0.44,0 0.84,0.12 1.2,0.32 0.08,0.02 8.62,4.92 8.62,4.92V8c0,-1.66 1.34,-3 3,-3s3,1.34 3,3v14h2V3c0,-1.66 1.34,-3 3,-3s3,1.34 3,3v19h2V5c0,-1.66 1.34,-3 3,-3s3,1.34 3,3v17h2V11c0,-1.66 1.34,-3 3,-3s3,1.34 3,3z"
         android:fillColor="#757575"/>
diff --git a/res/drawable/ic_visibility_18dp.xml b/res/drawable/ic_visibility_18dp.xml
index 9e27815c..9dc269f 100644
--- a/res/drawable/ic_visibility_18dp.xml
+++ b/res/drawable/ic_visibility_18dp.xml
@@ -1,9 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  Copyright (C) 2019 The Android Open Source Project
+
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+  -->
+
 <vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="18dp"
-    android:height="18dp"
-    android:viewportWidth="48"
-    android:viewportHeight="48">
-  <path
-      android:pathData="M24,9C14,9 5.46,15.22 2,24c3.46,8.78 12,15 22,15 10.01,0 18.54,-6.22 22,-15 -3.46,-8.78 -11.99,-15 -22,-15zM24,34c-5.52,0 -10,-4.48 -10,-10s4.48,-10 10,-10 10,4.48 10,10 -4.48,10 -10,10zM24,18c-3.31,0 -6,2.69 -6,6s2.69,6 6,6 6,-2.69 6,-6 -2.69,-6 -6,-6z"
-      android:fillColor="#757575"/>
+        android:width="18dp"
+        android:height="18dp"
+        android:viewportWidth="48"
+        android:viewportHeight="48">
+    <path
+        android:pathData="M24,9C14,9 5.46,15.22 2,24c3.46,8.78 12,15 22,15 10.01,0 18.54,-6.22 22,-15 -3.46,-8.78 -11.99,-15 -22,-15zM24,34c-5.52,0 -10,-4.48 -10,-10s4.48,-10 10,-10 10,4.48 10,10 -4.48,10 -10,10zM24,18c-3.31,0 -6,2.69 -6,6s2.69,6 6,6 6,-2.69 6,-6 -2.69,-6 -6,-6z"
+        android:fillColor="#757575"/>
 </vector>
diff --git a/res/layout/settings_base_layout.xml b/res/layout/settings_base_layout.xml
index f94d25d..0a4437e 100644
--- a/res/layout/settings_base_layout.xml
+++ b/res/layout/settings_base_layout.xml
@@ -27,7 +27,7 @@
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:theme="?android:attr/actionBarTheme"
-        android:navigationContentDescription="@*android:string/action_bar_up_description" />
+        android:navigationContentDescription="@*android:string/back_button_label" />
     <FrameLayout
         android:id="@+id/content_frame"
         android:layout_width="match_parent"
diff --git a/res/xml/apn_editor.xml b/res/xml/apn_editor.xml
index 742a436..0c39948 100644
--- a/res/xml/apn_editor.xml
+++ b/res/xml/apn_editor.xml
@@ -148,7 +148,7 @@
         android:key="carrier_enabled"
         android:enabled="false"
         android:summaryOn="@string/carrier_enabled_summaryOn"
-        android:summaryOff="@@string/carrier_enabled_summaryOff"
+        android:summaryOff="@string/carrier_enabled_summaryOff"
         android:persistent="false"
         />
     <MultiSelectListPreference
diff --git a/src/com/android/settings/bluetooth/BluetoothPairingService.java b/src/com/android/settings/bluetooth/BluetoothPairingService.java
index 48e9eee..d93e57d 100644
--- a/src/com/android/settings/bluetooth/BluetoothPairingService.java
+++ b/src/com/android/settings/bluetooth/BluetoothPairingService.java
@@ -141,7 +141,7 @@
         String name = intent.getStringExtra(BluetoothDevice.EXTRA_NAME);
         if (TextUtils.isEmpty(name)) {
             BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
-            name = device != null ? device.getAliasName() : res.getString(android.R.string.unknownName);
+            name = device != null ? device.getAlias() : res.getString(android.R.string.unknownName);
         }
 
         Log.d(TAG, "Show pairing notification for " + mDevice.getAddress() + " (" + name + ")");
diff --git a/src/com/android/settings/bluetooth/Utils.java b/src/com/android/settings/bluetooth/Utils.java
index d6e395e..5e9ac3a 100755
--- a/src/com/android/settings/bluetooth/Utils.java
+++ b/src/com/android/settings/bluetooth/Utils.java
@@ -125,7 +125,7 @@
     }
 
     public static String createRemoteName(Context context, BluetoothDevice device) {
-        String mRemoteName = device != null ? device.getAliasName() : null;
+        String mRemoteName = device != null ? device.getAlias() : null;
 
         if (mRemoteName == null) {
             mRemoteName = context.getString(R.string.unknown);
diff --git a/src/com/android/settings/media/MediaOutputIndicatorSlice.java b/src/com/android/settings/media/MediaOutputIndicatorSlice.java
index 073682c..d66ee8b 100644
--- a/src/com/android/settings/media/MediaOutputIndicatorSlice.java
+++ b/src/com/android/settings/media/MediaOutputIndicatorSlice.java
@@ -148,14 +148,14 @@
         // Return Hearing Aid device name if it is active
         BluetoothDevice activeDevice = findActiveHearingAidDevice();
         if (activeDevice != null) {
-            return activeDevice.getAliasName();
+            return activeDevice.getAlias();
         }
         // Return A2DP device name if it is active
         final A2dpProfile a2dpProfile = mProfileManager.getA2dpProfile();
         if (a2dpProfile != null) {
             activeDevice = a2dpProfile.getActiveDevice();
             if (activeDevice != null) {
-                return activeDevice.getAliasName();
+                return activeDevice.getAlias();
             }
         }
         // No active device, return default summary
diff --git a/src/com/android/settings/search/SettingsSearchIndexablesProvider.java b/src/com/android/settings/search/SettingsSearchIndexablesProvider.java
index f0ae804..a5a70c6 100644
--- a/src/com/android/settings/search/SettingsSearchIndexablesProvider.java
+++ b/src/com/android/settings/search/SettingsSearchIndexablesProvider.java
@@ -68,6 +68,7 @@
 import com.android.settingslib.drawer.DashboardCategory;
 import com.android.settingslib.drawer.Tile;
 import com.android.settingslib.search.Indexable;
+import com.android.settingslib.search.SearchIndexableData;
 import com.android.settingslib.search.SearchIndexableRaw;
 
 import java.util.ArrayList;
@@ -260,14 +261,14 @@
     }
 
     private List<String> getNonIndexableKeysFromProvider(Context context) {
-        final Collection<Class> values = getIndexableProviderValues(context);
+        final Collection<SearchIndexableData> bundles = FeatureFactory.getFactory(context)
+                .getSearchFeatureProvider().getSearchIndexableResources().getProviderValues();
+
         final List<String> nonIndexableKeys = new ArrayList<>();
 
-        for (Class<?> clazz : values) {
+        for (SearchIndexableData bundle : bundles) {
             final long startTime = System.currentTimeMillis();
-            final Indexable.SearchIndexProvider provider =
-                    DatabaseIndexingUtils.getSearchIndexProvider(clazz);
-
+            Indexable.SearchIndexProvider provider = bundle.getSearchIndexProvider();
             List<String> providerNonIndexableKeys;
             try {
                 providerNonIndexableKeys = provider.getNonIndexableKeys(context);
@@ -281,7 +282,8 @@
                 if (System.getProperty(SYSPROP_CRASH_ON_ERROR) != null) {
                     throw new RuntimeException(e);
                 }
-                Log.e(TAG, "Error trying to get non-indexable keys from: " + clazz.getName(), e);
+                Log.e(TAG, "Error trying to get non-indexable keys from: "
+                        + bundle.getTargetClass().getName(), e);
                 continue;
             }
 
@@ -310,12 +312,12 @@
     }
 
     private List<SearchIndexableResource> getSearchIndexableResourcesFromProvider(Context context) {
-        final Collection<Class> values = getIndexableProviderValues(context);
-        final List<SearchIndexableResource> resourceList = new ArrayList<>();
+        final Collection<SearchIndexableData> bundles = FeatureFactory.getFactory(context)
+                .getSearchFeatureProvider().getSearchIndexableResources().getProviderValues();
+        List<SearchIndexableResource> resourceList = new ArrayList<>();
 
-        for (Class<?> clazz : values) {
-            final Indexable.SearchIndexProvider provider =
-                    DatabaseIndexingUtils.getSearchIndexProvider(clazz);
+        for (SearchIndexableData bundle : bundles) {
+            Indexable.SearchIndexProvider provider = bundle.getSearchIndexProvider();
             final List<SearchIndexableResource> resList =
                     provider.getXmlResourcesToIndex(context, true);
 
@@ -325,7 +327,7 @@
 
             for (SearchIndexableResource item : resList) {
                 item.className = TextUtils.isEmpty(item.className)
-                        ? clazz.getName()
+                        ? bundle.getTargetClass().getName()
                         : item.className;
             }
 
@@ -336,14 +338,14 @@
     }
 
     private List<SearchIndexableRaw> getSearchIndexableRawFromProvider(Context context) {
-        final Collection<Class> values = getIndexableProviderValues(context);
+        final Collection<SearchIndexableData> bundles = FeatureFactory.getFactory(context)
+                .getSearchFeatureProvider().getSearchIndexableResources().getProviderValues();
         final List<SearchIndexableRaw> rawList = new ArrayList<>();
 
-        for (Class<?> clazz : values) {
-            final Indexable.SearchIndexProvider provider =
-                    DatabaseIndexingUtils.getSearchIndexProvider(clazz);
-            final List<SearchIndexableRaw> providerRaws =
-                    provider.getRawDataToIndex(context, true /* enabled */);
+        for (SearchIndexableData bundle : bundles) {
+            Indexable.SearchIndexProvider provider = bundle.getSearchIndexProvider();
+            final List<SearchIndexableRaw> providerRaws = provider.getRawDataToIndex(context,
+                    true /* enabled */);
 
             if (providerRaws == null) {
                 continue;
@@ -352,7 +354,7 @@
             for (SearchIndexableRaw raw : providerRaws) {
                 // The classname and intent information comes from the PreIndexData
                 // This will be more clear when provider conversion is done at PreIndex time.
-                raw.className = clazz.getName();
+                raw.className = bundle.getTargetClass().getName();
 
             }
             rawList.addAll(providerRaws);
@@ -362,12 +364,12 @@
     }
 
     private List<SearchIndexableRaw> getDynamicSearchIndexableRawFromProvider(Context context) {
-        final Collection<Class> values = getIndexableProviderValues(context);
+        final Collection<SearchIndexableData> bundles = FeatureFactory.getFactory(context)
+                .getSearchFeatureProvider().getSearchIndexableResources().getProviderValues();
         final List<SearchIndexableRaw> rawList = new ArrayList<>();
 
-        for (Class<?> clazz : values) {
-            final Indexable.SearchIndexProvider provider =
-                    DatabaseIndexingUtils.getSearchIndexProvider(clazz);
+        for (SearchIndexableData bundle : bundles) {
+            final Indexable.SearchIndexProvider provider = bundle.getSearchIndexProvider();
             final List<SearchIndexableRaw> providerRaws =
                     provider.getDynamicRawDataToIndex(context, true /* enabled */);
 
@@ -378,7 +380,7 @@
             for (SearchIndexableRaw raw : providerRaws) {
                 // The classname and intent information comes from the PreIndexData
                 // This will be more clear when provider conversion is done at PreIndex time.
-                raw.className = clazz.getName();
+                raw.className = bundle.getTargetClass().getName();
 
             }
             rawList.addAll(providerRaws);
@@ -410,9 +412,4 @@
 
         return rawList;
     }
-
-    private Collection<Class> getIndexableProviderValues(Context context) {
-        return FeatureFactory.getFactory(context)
-                .getSearchFeatureProvider().getSearchIndexableResources().getProviderValues();
-    }
 }
diff --git a/src/com/android/settings/slices/SliceDataConverter.java b/src/com/android/settings/slices/SliceDataConverter.java
index 06b5d78..551a186 100644
--- a/src/com/android/settings/slices/SliceDataConverter.java
+++ b/src/com/android/settings/slices/SliceDataConverter.java
@@ -53,9 +53,9 @@
 import com.android.settings.core.PreferenceXmlParserUtils.MetadataFlag;
 import com.android.settings.dashboard.DashboardFragment;
 import com.android.settings.overlay.FeatureFactory;
-import com.android.settings.search.DatabaseIndexingUtils;
-import com.android.settingslib.search.Indexable.SearchIndexProvider;
 import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
+import com.android.settingslib.search.Indexable.SearchIndexProvider;
+import com.android.settingslib.search.SearchIndexableData;
 
 import org.xmlpull.v1.XmlPullParser;
 import org.xmlpull.v1.XmlPullParserException;
@@ -101,14 +101,13 @@
     public List<SliceData> getSliceData() {
         List<SliceData> sliceData = new ArrayList<>();
 
-        final Collection<Class> indexableClasses = FeatureFactory.getFactory(mContext)
+        final Collection<SearchIndexableData> bundles = FeatureFactory.getFactory(mContext)
                 .getSearchFeatureProvider().getSearchIndexableResources().getProviderValues();
 
-        for (Class clazz : indexableClasses) {
-            final String fragmentName = clazz.getName();
+        for (SearchIndexableData bundle : bundles) {
+            final String fragmentName = bundle.getTargetClass().getName();
 
-            final SearchIndexProvider provider = DatabaseIndexingUtils.getSearchIndexProvider(
-                    clazz);
+            final SearchIndexProvider provider = bundle.getSearchIndexProvider();
 
             // CodeInspection test guards against the null check. Keep check in case of bad actors.
             if (provider == null) {
diff --git a/src/com/android/settings/sound/HandsFreeProfileOutputPreferenceController.java b/src/com/android/settings/sound/HandsFreeProfileOutputPreferenceController.java
index 9157477..d72f503 100644
--- a/src/com/android/settings/sound/HandsFreeProfileOutputPreferenceController.java
+++ b/src/com/android/settings/sound/HandsFreeProfileOutputPreferenceController.java
@@ -66,7 +66,7 @@
             final BluetoothDevice btDevice = mConnectedDevices.get(connectedDeviceIndex);
             mSelectedIndex = connectedDeviceIndex;
             setActiveBluetoothDevice(btDevice);
-            listPreference.setSummary(btDevice.getAliasName());
+            listPreference.setSummary(btDevice.getAlias());
         }
         return true;
     }
@@ -143,7 +143,7 @@
         mediaValues[mSelectedIndex] = defaultSummary;
         for (int i = 0, size = mConnectedDevices.size(); i < size; i++) {
             final BluetoothDevice btDevice = mConnectedDevices.get(i);
-            mediaOutputs[i] = btDevice.getAliasName();
+            mediaOutputs[i] = btDevice.getAlias();
             mediaValues[i] = btDevice.getAddress();
             if (btDevice.equals(activeDevice)) {
                 // select the active connected device.
diff --git a/src/com/android/settings/sound/MediaOutputPreferenceController.java b/src/com/android/settings/sound/MediaOutputPreferenceController.java
index 1831ad6..b133713 100644
--- a/src/com/android/settings/sound/MediaOutputPreferenceController.java
+++ b/src/com/android/settings/sound/MediaOutputPreferenceController.java
@@ -76,7 +76,7 @@
         mPreference.setVisible(deviceConnected);
         mPreference.setSummary((activeDevice == null) ?
                 mContext.getText(R.string.media_output_default_summary) :
-                activeDevice.getAliasName());
+                activeDevice.getAlias());
     }
 
     @Override
diff --git a/src/com/android/settings/widget/MediaAnimationController.java b/src/com/android/settings/widget/MediaAnimationController.java
index eb7b3e0..87a5365 100644
--- a/src/com/android/settings/widget/MediaAnimationController.java
+++ b/src/com/android/settings/widget/MediaAnimationController.java
@@ -33,6 +33,7 @@
 class MediaAnimationController implements VideoPreference.AnimationController {
     private MediaPlayer mMediaPlayer;
     private boolean mVideoReady;
+    private Surface mSurface;
 
     MediaAnimationController(Context context, int videoId) {
         final Uri videoPath = new Uri.Builder().scheme(ContentResolver.SCHEME_ANDROID_RESOURCE)
@@ -86,10 +87,7 @@
             @Override
             public void onSurfaceTextureAvailable(SurfaceTexture surfaceTexture, int width,
                     int height) {
-                if (mMediaPlayer != null) {
-                    final Surface surface = new Surface(surfaceTexture);
-                    mMediaPlayer.setSurface(surface);
-                }
+                setSurface(surfaceTexture);
             }
 
             @Override
@@ -105,6 +103,7 @@
 
             @Override
             public void onSurfaceTextureUpdated(SurfaceTexture surfaceTexture) {
+                setSurface(surfaceTexture);
                 if (mVideoReady) {
                     if (preview.getVisibility() == View.VISIBLE) {
                         preview.setVisibility(View.GONE);
@@ -146,4 +145,11 @@
             mMediaPlayer.start();
         }
     }
+
+    private void setSurface(SurfaceTexture surfaceTexture) {
+        if (mMediaPlayer != null && mSurface == null) {
+            mSurface = new Surface(surfaceTexture);
+            mMediaPlayer.setSurface(mSurface);
+        }
+    }
 }
diff --git a/src/com/android/settings/widget/VideoPreference.java b/src/com/android/settings/widget/VideoPreference.java
index d23bea9..006c13a 100644
--- a/src/com/android/settings/widget/VideoPreference.java
+++ b/src/com/android/settings/widget/VideoPreference.java
@@ -50,6 +50,9 @@
     private int mAnimationId;
     private int mVectorAnimationId;
     private int mHeight = LinearLayout.LayoutParams.MATCH_PARENT - 1; // video height in pixels
+    private TextureView mVideo;
+    private ImageView mPreviewImage;
+    private ImageView mPlayButton;
 
     public VideoPreference(Context context) {
         super(context);
@@ -108,19 +111,19 @@
             return;
         }
 
-        final TextureView video = (TextureView) holder.findViewById(R.id.video_texture_view);
-        final ImageView previewImage = (ImageView) holder.findViewById(R.id.video_preview_image);
-        final ImageView playButton = (ImageView) holder.findViewById(R.id.video_play_button);
+        mVideo = (TextureView) holder.findViewById(R.id.video_texture_view);
+        mPreviewImage = (ImageView) holder.findViewById(R.id.video_preview_image);
+        mPlayButton = (ImageView) holder.findViewById(R.id.video_play_button);
         final AspectRatioFrameLayout layout = (AspectRatioFrameLayout) holder.findViewById(
                 R.id.video_container);
 
-        previewImage.setImageResource(mPreviewId);
+        mPreviewImage.setImageResource(mPreviewId);
         layout.setAspectRatio(mAspectRatio);
         if (mHeight >= LinearLayout.LayoutParams.MATCH_PARENT) {
             layout.setLayoutParams(new LinearLayout.LayoutParams(
                     LinearLayout.LayoutParams.MATCH_PARENT, mHeight));
         }
-        mAnimationController.attachView(video, previewImage, playButton);
+        mAnimationController.attachView(mVideo, mPreviewImage, mPlayButton);
     }
 
     @Override
@@ -164,6 +167,9 @@
         }
         if (mAnimationId != 0) {
             mAnimationController = new MediaAnimationController(mContext, mAnimationId);
+            if (mVideo != null) {
+                mAnimationController.attachView(mVideo, mPreviewImage, mPlayButton);
+            }
         }
     }
 
diff --git a/tests/robotests/res/xml-mcc999/video_preference.xml b/tests/robotests/res/xml-mcc999/video_preference.xml
new file mode 100644
index 0000000..647a82f
--- /dev/null
+++ b/tests/robotests/res/xml-mcc999/video_preference.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  Copyright (C) 2019 The Android Open Source Project
+
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+
+<PreferenceScreen
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:settings="http://schemas.android.com/apk/res-auto">
+    <com.android.settings.widget.VideoPreference
+        android:key="video1"
+        settings:animation="@raw/adaptive_sleep"
+        settings:preview="@drawable/adaptive_sleep"
+        android:title="seek_bar_title"/>
+    <com.android.settings.widget.VideoPreference
+        android:key="video2"
+        settings:animation="@raw/adaptive_sleep"
+        settings:preview="@drawable/adaptive_sleep"
+        settings:vectorAnimation="@drawable/adaptive_sleep"
+        android:title="seek_bar_title"/>
+</PreferenceScreen >
diff --git a/tests/robotests/src/com/android/settings/core/XmlControllerAttributeTest.java b/tests/robotests/src/com/android/settings/core/XmlControllerAttributeTest.java
index 78d1f74..da234a1 100644
--- a/tests/robotests/src/com/android/settings/core/XmlControllerAttributeTest.java
+++ b/tests/robotests/src/com/android/settings/core/XmlControllerAttributeTest.java
@@ -10,12 +10,11 @@
 import android.util.Xml;
 
 import com.android.settings.R;
-import com.android.settings.search.DatabaseIndexingUtils;
 import com.android.settings.search.SearchFeatureProvider;
 import com.android.settings.search.SearchFeatureProviderImpl;
-import com.android.settings.security.SecuritySettings;
 import com.android.settings.testutils.FakeFeatureFactory;
 import com.android.settingslib.search.Indexable;
+import com.android.settingslib.search.SearchIndexableData;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -35,9 +34,6 @@
 @RunWith(RobolectricTestRunner.class)
 public class XmlControllerAttributeTest {
 
-    // List of classes that are too hard to mock in order to retrieve xml information.
-    private final List<Class> illegalClasses = Arrays.asList(SecuritySettings.class);
-
     // List of XML that could be retrieved from the illegalClasses list.
     private final List<Integer> whitelistXml = Arrays.asList(R.xml.security_dashboard_settings);
 
@@ -112,14 +108,12 @@
     private Set<Integer> getIndexableXml() {
         Set<Integer> xmlResSet = new HashSet<>();
 
-        Collection<Class> indexableClasses =
+        Collection<SearchIndexableData> SearchIndexableDatas =
                 mSearchProvider.getSearchIndexableResources().getProviderValues();
-        indexableClasses.removeAll(illegalClasses);
 
-        for (Class clazz : indexableClasses) {
+        for (SearchIndexableData bundle : SearchIndexableDatas) {
 
-            Indexable.SearchIndexProvider provider =
-                DatabaseIndexingUtils.getSearchIndexProvider(clazz);
+            Indexable.SearchIndexProvider provider = bundle.getSearchIndexProvider();
 
             if (provider == null) {
                 continue;
diff --git a/src/com/android/settings/search/DatabaseIndexingUtils.java b/tests/robotests/src/com/android/settings/search/DatabaseIndexingUtils.java
similarity index 90%
rename from src/com/android/settings/search/DatabaseIndexingUtils.java
rename to tests/robotests/src/com/android/settings/search/DatabaseIndexingUtils.java
index 21936a0..0aa70ae 100644
--- a/src/com/android/settings/search/DatabaseIndexingUtils.java
+++ b/tests/robotests/src/com/android/settings/search/DatabaseIndexingUtils.java
@@ -12,7 +12,6 @@
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
- *
  */
 
 package com.android.settings.search;
@@ -41,14 +40,14 @@
         } catch (NoSuchFieldException e) {
             Log.d(TAG, "Cannot find field '" + FIELD_NAME_SEARCH_INDEX_DATA_PROVIDER + "'");
         } catch (SecurityException se) {
-            Log.d(TAG, "Security exception for field '" +
-                    FIELD_NAME_SEARCH_INDEX_DATA_PROVIDER + "'");
+            Log.d(TAG,
+                    "Security exception for field '" + FIELD_NAME_SEARCH_INDEX_DATA_PROVIDER + "'");
         } catch (IllegalAccessException e) {
             Log.d(TAG, "Illegal access to field '" + FIELD_NAME_SEARCH_INDEX_DATA_PROVIDER + "'");
         } catch (IllegalArgumentException e) {
-            Log.d(TAG, "Illegal argument when accessing field '" +
-                    FIELD_NAME_SEARCH_INDEX_DATA_PROVIDER + "'");
+            Log.d(TAG, "Illegal argument when accessing field '"
+                    + FIELD_NAME_SEARCH_INDEX_DATA_PROVIDER + "'");
         }
         return null;
     }
-}
\ No newline at end of file
+}
diff --git a/tests/robotests/src/com/android/settings/search/SearchIndexProviderCodeInspector.java b/tests/robotests/src/com/android/settings/search/SearchIndexProviderCodeInspector.java
index c75e3b1..9daac80 100644
--- a/tests/robotests/src/com/android/settings/search/SearchIndexProviderCodeInspector.java
+++ b/tests/robotests/src/com/android/settings/search/SearchIndexProviderCodeInspector.java
@@ -26,6 +26,7 @@
 import com.android.settings.core.codeinspection.CodeInspector;
 import com.android.settings.dashboard.DashboardFragmentSearchIndexProviderInspector;
 import com.android.settingslib.search.Indexable;
+import com.android.settingslib.search.SearchIndexableData;
 import com.android.settingslib.search.SearchIndexableResources;
 
 import org.robolectric.RuntimeEnvironment;
@@ -54,7 +55,7 @@
                     + " but these are not: \n";
     private static final String NOT_PROVIDING_VALID_RESOURCE_ERROR =
             "SearchIndexableProvider must either provide no resource to index, or valid ones. "
-            + "But the followings contain resource with xml id = 0\n";
+                    + "But the followings contain resource with xml id = 0\n";
 
     private final List<String> notImplementingIndexProviderGrandfatherList;
     private final List<String> notInSearchIndexableRegistryGrandfatherList;
@@ -79,6 +80,13 @@
         final Set<String> notInSearchProviderRegistry = new ArraySet<>();
         final Set<String> notSharingPreferenceControllers = new ArraySet<>();
         final Set<String> notProvidingValidResource = new ArraySet<>();
+        final Set<Class> providerClasses = new ArraySet<>();
+
+        final SearchFeatureProvider provider = new SearchFeatureProviderImpl();
+        for (SearchIndexableData bundle :
+                provider.getSearchIndexableResources().getProviderValues()) {
+            providerClasses.add(bundle.getTargetClass());
+        }
 
         for (Class clazz : mClasses) {
             if (!isConcreteSettingsClass(clazz)) {
@@ -108,8 +116,7 @@
                 continue;
             }
             // Must be in SearchProviderRegistry
-            SearchFeatureProvider provider = new SearchFeatureProviderImpl();
-            if (!provider.getSearchIndexableResources().getProviderValues().contains(clazz)) {
+            if (!providerClasses.contains(clazz)) {
                 if (!notInSearchIndexableRegistryGrandfatherList.remove(className)) {
                     notInSearchProviderRegistry.add(className);
                 }
diff --git a/tests/robotests/src/com/android/settings/search/SearchIndexableResourcesTest.java b/tests/robotests/src/com/android/settings/search/SearchIndexableResourcesTest.java
index ff2acdc..5bcce57 100644
--- a/tests/robotests/src/com/android/settings/search/SearchIndexableResourcesTest.java
+++ b/tests/robotests/src/com/android/settings/search/SearchIndexableResourcesTest.java
@@ -21,7 +21,6 @@
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.junit.Assert.fail;
-
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.when;
@@ -32,6 +31,7 @@
 import com.android.settings.testutils.FakeFeatureFactory;
 import com.android.settings.testutils.FakeIndexProvider;
 import com.android.settings.wifi.WifiSettings;
+import com.android.settingslib.search.SearchIndexableData;
 
 import org.junit.After;
 import org.junit.Before;
@@ -65,11 +65,11 @@
                 .doesNotContain(String.class);
         final int beforeCount =
                 mSearchProvider.getSearchIndexableResources().getProviderValues().size();
-
-        mSearchProvider.getSearchIndexableResources().addIndex(String.class);
+        final SearchIndexableData testBundle = new SearchIndexableData(null, null);
+        mSearchProvider.getSearchIndexableResources().addIndex(testBundle);
 
         assertThat(mSearchProvider.getSearchIndexableResources().getProviderValues())
-                .contains(String.class);
+                .contains(testBundle);
         final int afterCount =
                 mSearchProvider.getSearchIndexableResources().getProviderValues().size();
         assertThat(afterCount).isEqualTo(beforeCount + 1);
@@ -77,14 +77,22 @@
 
     @Test
     public void testIndexHasWifiSettings() {
-        assertThat(mSearchProvider.getSearchIndexableResources().getProviderValues())
-                .contains(WifiSettings.class);
+        boolean hasWifi = false;
+        for (SearchIndexableData bundle :
+                mSearchProvider.getSearchIndexableResources().getProviderValues()) {
+            if (bundle.getTargetClass().getName().equals(WifiSettings.class.getName())) {
+                hasWifi = true;
+                break;
+            }
+        }
+        assertThat(hasWifi).isTrue();
     }
 
     @Test
     public void testNonIndexableKeys_GetsKeyFromProvider() {
         mSearchProvider.getSearchIndexableResources().getProviderValues().clear();
-        mSearchProvider.getSearchIndexableResources().addIndex(FakeIndexProvider.class);
+        mSearchProvider.getSearchIndexableResources().addIndex(
+                new SearchIndexableData(null, FakeIndexProvider.SEARCH_INDEX_DATA_PROVIDER));
 
         SettingsSearchIndexablesProvider provider = spy(new SettingsSearchIndexablesProvider());
 
@@ -105,9 +113,10 @@
 
     @Test
     public void testAllClassNamesHaveProviders() {
-        for (Class clazz : mSearchProvider.getSearchIndexableResources().getProviderValues()) {
-            if (DatabaseIndexingUtils.getSearchIndexProvider(clazz) == null) {
-                fail(clazz.getName() + "is not an index provider");
+        for (SearchIndexableData data :
+                mSearchProvider.getSearchIndexableResources().getProviderValues()) {
+            if (DatabaseIndexingUtils.getSearchIndexProvider(data.getTargetClass()) == null) {
+                fail(data.getTargetClass().getName() + "is not an index provider");
             }
         }
     }
diff --git a/tests/robotests/src/com/android/settings/search/SettingsSearchIndexablesProviderTest.java b/tests/robotests/src/com/android/settings/search/SettingsSearchIndexablesProviderTest.java
index 2a8407b..0db684e 100644
--- a/tests/robotests/src/com/android/settings/search/SettingsSearchIndexablesProviderTest.java
+++ b/tests/robotests/src/com/android/settings/search/SettingsSearchIndexablesProviderTest.java
@@ -13,6 +13,7 @@
 
 import com.android.settings.R;
 import com.android.settings.testutils.FakeFeatureFactory;
+import com.android.settingslib.search.SearchIndexableData;
 
 import org.junit.After;
 import org.junit.Before;
@@ -46,7 +47,8 @@
         final SearchFeatureProvider featureProvider = new SearchFeatureProviderImpl();
         featureProvider.getSearchIndexableResources().getProviderValues().clear();
         featureProvider.getSearchIndexableResources().getProviderValues()
-                .add(FakeSettingsFragment.class);
+                .add(new SearchIndexableData(FakeSettingsFragment.class,
+                        FakeSettingsFragment.SEARCH_INDEX_DATA_PROVIDER));
         mFakeFeatureFactory = FakeFeatureFactory.setupForTest();
         mFakeFeatureFactory.searchFeatureProvider = featureProvider;
     }
diff --git a/tests/robotests/src/com/android/settings/slices/SliceControllerInXmlCodeInspector.java b/tests/robotests/src/com/android/settings/slices/SliceControllerInXmlCodeInspector.java
index 21944fc..72eae7d 100644
--- a/tests/robotests/src/com/android/settings/slices/SliceControllerInXmlCodeInspector.java
+++ b/tests/robotests/src/com/android/settings/slices/SliceControllerInXmlCodeInspector.java
@@ -31,11 +31,11 @@
 import com.android.settings.core.TogglePreferenceController;
 import com.android.settings.core.codeinspection.CodeInspector;
 import com.android.settings.overlay.FeatureFactory;
-import com.android.settings.search.DatabaseIndexingUtils;
 import com.android.settings.search.SearchFeatureProvider;
 import com.android.settings.search.SearchFeatureProviderImpl;
 import com.android.settings.testutils.FakeFeatureFactory;
 import com.android.settingslib.search.Indexable;
+import com.android.settingslib.search.SearchIndexableData;
 
 import org.robolectric.RuntimeEnvironment;
 import org.xmlpull.v1.XmlPullParserException;
@@ -146,13 +146,12 @@
     private List<Integer> getIndexableXml() {
         final List<Integer> xmlResSet = new ArrayList<>();
 
-        final Collection<Class> indexableClasses = FeatureFactory.getFactory(
+        final Collection<SearchIndexableData> bundles = FeatureFactory.getFactory(
                 mContext).getSearchFeatureProvider().getSearchIndexableResources()
                 .getProviderValues();
 
-        for (Class clazz : indexableClasses) {
-            Indexable.SearchIndexProvider provider = DatabaseIndexingUtils.getSearchIndexProvider(
-                    clazz);
+        for (SearchIndexableData bundle : bundles) {
+            Indexable.SearchIndexProvider provider = bundle.getSearchIndexProvider();
 
             if (provider == null) {
                 continue;
diff --git a/tests/robotests/src/com/android/settings/slices/SliceDataConverterTest.java b/tests/robotests/src/com/android/settings/slices/SliceDataConverterTest.java
index 63da4d0..3ce964c 100644
--- a/tests/robotests/src/com/android/settings/slices/SliceDataConverterTest.java
+++ b/tests/robotests/src/com/android/settings/slices/SliceDataConverterTest.java
@@ -37,6 +37,7 @@
 import com.android.settings.search.SearchFeatureProviderImpl;
 import com.android.settings.testutils.FakeFeatureFactory;
 import com.android.settings.testutils.FakeIndexProvider;
+import com.android.settingslib.search.SearchIndexableData;
 
 import org.junit.After;
 import org.junit.Before;
@@ -92,7 +93,8 @@
     public void testFakeProvider_convertsFakeData() {
         mSearchFeatureProvider.getSearchIndexableResources().getProviderValues().clear();
         mSearchFeatureProvider.getSearchIndexableResources().getProviderValues()
-                .add(FakeIndexProvider.class);
+                .add(new SearchIndexableData(FakeIndexProvider.class,
+                        FakeIndexProvider.SEARCH_INDEX_DATA_PROVIDER));
 
         doReturn(getFakeService()).when(mSliceDataConverter).getAccessibilityServiceInfoList();
 
diff --git a/tests/robotests/src/com/android/settings/slices/SlicesDatabaseAccessorTest.java b/tests/robotests/src/com/android/settings/slices/SlicesDatabaseAccessorTest.java
index bed5a27..a28dba8 100644
--- a/tests/robotests/src/com/android/settings/slices/SlicesDatabaseAccessorTest.java
+++ b/tests/robotests/src/com/android/settings/slices/SlicesDatabaseAccessorTest.java
@@ -24,9 +24,7 @@
 import android.app.ApplicationPackageManager;
 import android.content.ComponentName;
 import android.content.ContentResolver;
-import android.content.ContentValues;
 import android.content.Context;
-import android.database.sqlite.SQLiteDatabase;
 import android.net.Uri;
 import android.provider.SettingsSlicesContract;
 import android.view.accessibility.AccessibilityManager;
@@ -40,6 +38,7 @@
 import com.android.settings.testutils.shadow.ShadowLockPatternUtils;
 import com.android.settings.testutils.shadow.ShadowUserManager;
 import com.android.settings.testutils.shadow.ShadowUtils;
+import com.android.settingslib.search.SearchIndexableData;
 
 import org.junit.After;
 import org.junit.Before;
@@ -217,7 +216,8 @@
         // Fake the indexable list.
         provider.getSearchIndexableResources().getProviderValues().clear();
         provider.getSearchIndexableResources().getProviderValues().add(
-                FakeIndexProvider.class);
+                new SearchIndexableData(FakeIndexProvider.class,
+                        FakeIndexProvider.SEARCH_INDEX_DATA_PROVIDER));
 
         final SlicesDatabaseAccessor accessor = new SlicesDatabaseAccessor(mContext);
         final List<Uri> keys = accessor.getSliceUris(SettingsSliceProvider.SLICE_AUTHORITY);
diff --git a/tests/robotests/src/com/android/settings/widget/VideoPreferenceTest.java b/tests/robotests/src/com/android/settings/widget/VideoPreferenceTest.java
index 09ee615..3439ca4 100644
--- a/tests/robotests/src/com/android/settings/widget/VideoPreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/widget/VideoPreferenceTest.java
@@ -27,11 +27,13 @@
 
 import android.content.Context;
 import android.graphics.SurfaceTexture;
+import android.os.Bundle;
 import android.view.LayoutInflater;
 import android.view.TextureView;
 import android.view.View;
 import android.widget.ImageView;
 
+import androidx.preference.PreferenceFragmentCompat;
 import androidx.preference.PreferenceViewHolder;
 
 import com.android.settings.R;
@@ -45,6 +47,7 @@
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
+import org.robolectric.shadows.androidx.fragment.FragmentController;
 
 @RunWith(RobolectricTestRunner.class)
 @Config(shadows = ShadowSettingsMediaPlayer.class)
@@ -135,4 +138,29 @@
         verify(fakePreview).setVisibility(eq(View.GONE));
         assertThat(mAnimationController.isPlaying()).isTrue();
     }
+
+    @Test
+    @Config(qualifiers = "mcc999")
+    public void onViewVisible_createAnimationController() {
+        final PreferenceFragmentCompat fragment = FragmentController.of(
+                new VideoPreferenceTest.TestFragment(),
+                new Bundle())
+                .create()
+                .start()
+                .resume()
+                .get();
+
+        final VideoPreference vp1 = fragment.findPreference("video1");
+        final VideoPreference vp2 = fragment.findPreference("video2");
+
+        assertThat(vp1.mAnimationController instanceof MediaAnimationController).isTrue();
+        assertThat(vp2.mAnimationController instanceof VectorAnimationController).isTrue();
+    }
+
+    public static class TestFragment extends PreferenceFragmentCompat {
+        @Override
+        public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
+            addPreferencesFromResource(R.xml.video_preference);
+        }
+    }
 }
diff --git a/tests/unit/src/com/android/settings/core/PreferenceControllerContractTest.java b/tests/unit/src/com/android/settings/core/PreferenceControllerContractTest.java
index 3fcccf6..2d083f0 100644
--- a/tests/unit/src/com/android/settings/core/PreferenceControllerContractTest.java
+++ b/tests/unit/src/com/android/settings/core/PreferenceControllerContractTest.java
@@ -29,8 +29,8 @@
 
 import com.android.settings.overlay.FeatureFactory;
 import com.android.settings.search.BaseSearchIndexProvider;
-import com.android.settings.search.DatabaseIndexingUtils;
 import com.android.settingslib.core.AbstractPreferenceController;
+import com.android.settingslib.search.SearchIndexableData;
 import com.android.settingslib.search.SearchIndexableResources;
 
 import org.junit.Before;
@@ -60,10 +60,10 @@
         final SearchIndexableResources resources =
                 FeatureFactory.getFactory(mContext).getSearchFeatureProvider()
                         .getSearchIndexableResources();
-        for (Class<?> clazz : resources.getProviderValues()) {
+        for (SearchIndexableData bundle : resources.getProviderValues()) {
 
             final BaseSearchIndexProvider provider =
-                    (BaseSearchIndexProvider) DatabaseIndexingUtils.getSearchIndexProvider(clazz);
+                    (BaseSearchIndexProvider) bundle.getSearchIndexProvider();
             if (provider == null) {
                 continue;
             }
diff --git a/tests/unit/src/com/android/settings/core/UniquePreferenceTest.java b/tests/unit/src/com/android/settings/core/UniquePreferenceTest.java
index 251c512..9ed1c91 100644
--- a/tests/unit/src/com/android/settings/core/UniquePreferenceTest.java
+++ b/tests/unit/src/com/android/settings/core/UniquePreferenceTest.java
@@ -32,8 +32,8 @@
 
 import com.android.settings.core.PreferenceXmlParserUtils.MetadataFlag;
 import com.android.settings.overlay.FeatureFactory;
-import com.android.settings.search.DatabaseIndexingUtils;
 import com.android.settingslib.search.Indexable;
+import com.android.settingslib.search.SearchIndexableData;
 import com.android.settingslib.search.SearchIndexableRaw;
 import com.android.settingslib.search.SearchIndexableResources;
 
@@ -120,8 +120,8 @@
         final SearchIndexableResources resources =
                 FeatureFactory.getFactory(mContext).getSearchFeatureProvider()
                         .getSearchIndexableResources();
-        for (Class<?> clazz : resources.getProviderValues()) {
-            verifyPreferenceKeys(uniqueKeys, duplicatedKeys, nullKeyClasses, clazz);
+        for (SearchIndexableData SearchIndexableData : resources.getProviderValues()) {
+            verifyPreferenceKeys(uniqueKeys, duplicatedKeys, nullKeyClasses, SearchIndexableData);
         }
 
         if (!nullKeyClasses.isEmpty()) {
@@ -145,14 +145,12 @@
     }
 
     private void verifyPreferenceKeys(Set<String> uniqueKeys, Set<String> duplicatedKeys,
-            Set<String> nullKeyClasses, Class<?> clazz)
+            Set<String> nullKeyClasses, SearchIndexableData searchIndexableData)
             throws IOException, XmlPullParserException, Resources.NotFoundException {
-        if (clazz == null) {
-            return;
-        }
-        final String className = clazz.getName();
+
+        final String className = searchIndexableData.getTargetClass().getName();
         final Indexable.SearchIndexProvider provider =
-                DatabaseIndexingUtils.getSearchIndexProvider(clazz);
+                searchIndexableData.getSearchIndexProvider();
         final List<SearchIndexableRaw> rawsToIndex = provider.getRawDataToIndex(mContext, true);
         final List<SearchIndexableResource> resourcesToIndex =
                 provider.getXmlResourcesToIndex(mContext, true);
diff --git a/tests/unit/src/com/android/settings/core/UserRestrictionTest.java b/tests/unit/src/com/android/settings/core/UserRestrictionTest.java
index 0f5260a..e8e4927 100644
--- a/tests/unit/src/com/android/settings/core/UserRestrictionTest.java
+++ b/tests/unit/src/com/android/settings/core/UserRestrictionTest.java
@@ -33,8 +33,8 @@
 import androidx.test.runner.AndroidJUnit4;
 
 import com.android.settings.overlay.FeatureFactory;
-import com.android.settings.search.DatabaseIndexingUtils;
 import com.android.settingslib.search.Indexable;
+import com.android.settingslib.search.SearchIndexableData;
 import com.android.settingslib.search.SearchIndexableResources;
 
 import com.google.android.collect.Sets;
@@ -84,22 +84,21 @@
         final SearchIndexableResources resources =
                 FeatureFactory.getFactory(mContext).getSearchFeatureProvider()
                         .getSearchIndexableResources();
-        for (Class<?> clazz : resources.getProviderValues()) {
-            verifyUserRestriction(clazz);
+        for (SearchIndexableData bundle : resources.getProviderValues()) {
+            verifyUserRestriction(bundle);
         }
     }
 
-    private void verifyUserRestriction(Class<?> clazz)
+    private void verifyUserRestriction(SearchIndexableData searchIndexableData)
             throws IOException, XmlPullParserException, Resources.NotFoundException {
-        if (clazz == null) {
-            return;
-        }
-        final String className = clazz.getName();
+
         final Indexable.SearchIndexProvider provider =
-                DatabaseIndexingUtils.getSearchIndexProvider(clazz);
+                searchIndexableData.getSearchIndexProvider();
         final List<SearchIndexableResource> resourcesToIndex =
                 provider.getXmlResourcesToIndex(mContext, true);
 
+        final String className = searchIndexableData.getTargetClass().getName();
+
         if (resourcesToIndex == null) {
             Log.d(TAG, className + "is not providing SearchIndexableResource, skipping");
             return;
diff --git a/tests/unit/src/com/android/settings/slices/SliceDataContractTest.java b/tests/unit/src/com/android/settings/slices/SliceDataContractTest.java
index 7e5a8b0..61629e9 100644
--- a/tests/unit/src/com/android/settings/slices/SliceDataContractTest.java
+++ b/tests/unit/src/com/android/settings/slices/SliceDataContractTest.java
@@ -31,8 +31,8 @@
 
 import com.android.settings.core.PreferenceXmlParserUtils;
 import com.android.settings.overlay.FeatureFactory;
-import com.android.settings.search.DatabaseIndexingUtils;
 import com.android.settingslib.search.Indexable;
+import com.android.settingslib.search.SearchIndexableData;
 import com.android.settingslib.search.SearchIndexableResources;
 
 import org.junit.Before;
@@ -67,8 +67,8 @@
                 FeatureFactory.getFactory(mContext).getSearchFeatureProvider()
                         .getSearchIndexableResources();
 
-        for (Class<?> clazz : resources.getProviderValues()) {
-            verifyPreferenceTitle(nullTitleFragments, clazz);
+        for (SearchIndexableData SearchIndexableData : resources.getProviderValues()) {
+            verifyPreferenceTitle(nullTitleFragments, SearchIndexableData);
         }
 
         if (!nullTitleFragments.isEmpty()) {
@@ -82,14 +82,13 @@
         }
     }
 
-    private void verifyPreferenceTitle(Set<String> nullTitleFragments, Class<?> clazz)
+    private void verifyPreferenceTitle(Set<String> nullTitleFragments,
+            SearchIndexableData searchIndexableData)
             throws IOException, XmlPullParserException {
-        if (clazz == null) {
-            return;
-        }
-        final String className = clazz.getName();
+
+        final String className = searchIndexableData.getTargetClass().getName();
         final Indexable.SearchIndexProvider provider =
-                DatabaseIndexingUtils.getSearchIndexProvider(clazz);
+                searchIndexableData.getSearchIndexProvider();
 
         final List<SearchIndexableResource> resourcesToIndex =
                 provider.getXmlResourcesToIndex(mContext, true);