diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index d04b884..674ab61 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -136,7 +136,7 @@
                   android:taskAffinity="com.android.settings.root"
                   android:launchMode="singleTask"
                   android:exported="true"
-                  android:configChanges="keyboard|keyboardHidden|screenSize|screenLayout">
+                  android:configChanges="orientation|keyboard|keyboardHidden|screenSize|screenLayout">
             <intent-filter android:priority="1">
                 <action android:name="android.settings.SETTINGS" />
                 <category android:name="android.intent.category.DEFAULT" />
@@ -228,6 +228,8 @@
             </intent-filter>
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                 android:value="com.android.settings.network.NetworkDashboardFragment"/>
+            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+                android:value="@string/menu_key_network"/>
             <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
                 android:value="true" />
         </activity>
@@ -257,6 +259,8 @@
             </intent-filter>
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                 android:value="com.android.settings.connecteddevice.ConnectedDeviceDashboardFragment"/>
+            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+                       android:value="@string/menu_key_connected_devices"/>
             <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
                 android:value="true" />
         </activity>
@@ -314,6 +318,8 @@
             </intent-filter>
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                 android:value="com.android.settings.network.NetworkProviderSettings" />
+            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+                android:value="@string/menu_key_network"/>
             <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
                 android:value="true" />
         </activity>
@@ -479,6 +485,8 @@
             </intent-filter>
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                 android:value="com.android.settings.connecteddevice.ConnectedDeviceDashboardFragment" />
+            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+                       android:value="@string/menu_key_connected_devices"/>
         </activity-alias>
 
         <!-- Keep compatibility with old shortcuts. -->
@@ -489,6 +497,8 @@
                         android:clearTaskOnLaunch="true">
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                        android:value="com.android.settings.connecteddevice.ConnectedDeviceDashboardFragment" />
+            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+                       android:value="@string/menu_key_connected_devices"/>
         </activity-alias>
 
         <activity android:name="Settings$AssistGestureSettingsActivity"
@@ -501,6 +511,8 @@
             </intent-filter>
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                 android:value="com.android.settings.gestures.AssistGestureSettings" />
+            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+                       android:value="@string/menu_key_system"/>
         </activity>
 
         <activity android:name="Settings$FaceSettingsActivity"
@@ -513,6 +525,8 @@
             </intent-filter>
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                 android:value="com.android.settings.biometrics.face.FaceSettings" />
+            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+                       android:value="@string/menu_key_security"/>
         </activity>
 
         <activity android:name="Settings$FingerprintSettingsActivity"
@@ -525,6 +539,8 @@
             </intent-filter>
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                        android:value="com.android.settings.biometrics.fingerprint.FingerprintSettings$FingerprintSettingsFragment" />
+            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+                       android:value="@string/menu_key_security"/>
         </activity>
 
         <activity android:name="Settings$CombinedBiometricSettingsActivity"
@@ -532,6 +548,8 @@
                   android:exported="false">
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                        android:value="com.android.settings.biometrics.combination.CombinedBiometricSettings" />
+            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+                       android:value="@string/menu_key_security"/>
         </activity>
 
         <activity android:name="Settings$CombinedBiometricProfileSettingsActivity"
@@ -539,6 +557,8 @@
                   android:exported="false">
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                        android:value="com.android.settings.biometrics.combination.CombinedBiometricProfileSettings" />
+            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+                       android:value="@string/menu_key_security"/>
         </activity>
 
         <activity android:name=".bluetooth.DevicePickerActivity"
@@ -590,6 +610,8 @@
             </intent-filter>
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                 android:value="com.android.settings.TetherSettings" />
+            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+                       android:value="@string/menu_key_network"/>
         </activity>
 
         <activity
@@ -607,6 +629,8 @@
             </intent-filter>
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                 android:value="com.android.settings.wifi.tether.WifiTetherSettings" />
+            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+                       android:value="@string/menu_key_network"/>
         </activity>
 
 
@@ -618,6 +642,8 @@
                   android:targetActivity="Settings$TetherSettingsActivity">
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                 android:value="com.android.settings.TetherSettings" />
+            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+                       android:value="@string/menu_key_network"/>
         </activity-alias>
 
         <activity android:name="Settings$WifiP2pSettingsActivity"
@@ -629,6 +655,8 @@
             </intent-filter>
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                 android:value="com.android.settings.wifi.p2p.WifiP2pSettings" />
+            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+                       android:value="@string/menu_key_network"/>
         </activity>
 
         <activity
@@ -647,6 +675,8 @@
             </intent-filter>
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                 android:value="com.android.settings.vpn2.VpnSettings" />
+            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+                       android:value="@string/menu_key_network"/>
             <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
                 android:value="true" />
         </activity>
@@ -661,6 +691,8 @@
             </intent-filter>
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                        android:value="com.android.settings.datausage.DataSaverSummary" />
+            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+                       android:value="@string/menu_key_network"/>
         </activity>
 
         <activity
@@ -700,6 +732,8 @@
             </intent-filter>
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                 android:value="com.android.settings.localepicker.LocaleListEditor" />
+            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+                       android:value="@string/menu_key_system"/>
             <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
                 android:value="true" />
         </activity>
@@ -858,6 +892,8 @@
             </intent-filter>
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                 android:value="com.android.settings.notification.zen.ZenModeSettings" />
+            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+                       android:value="@string/menu_key_notifications"/>
             <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
                 android:value="true" />
         </activity>
@@ -911,6 +947,8 @@
             </intent-filter>
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                        android:value="com.android.settings.notification.zen.ZenModeAutomationSettings" />
+            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+                       android:value="@string/menu_key_notifications"/>
             <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
                        android:value="true" />
         </activity>
@@ -921,6 +959,8 @@
                   android:exported="true">
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                        android:value="com.android.settings.wallpaper.WallpaperTypeSettings" />
+            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+                       android:value="@string/menu_key_wallpaper"/>
         </activity>
 
         <activity android:name=".wallpaper.WallpaperSuggestionActivity"
@@ -976,6 +1016,8 @@
             </intent-filter>
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                 android:value="com.android.settings.notification.zen.ZenModeScheduleRuleSettings" />
+            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+                       android:value="@string/menu_key_notifications"/>
             <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
                 android:value="true" />
         </activity>
@@ -991,6 +1033,8 @@
                 android:value="com.android.settings.notification.zen.ZenModeEventRuleSettings" />
             <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
                 android:value="true" />
+            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+                       android:value="@string/menu_key_notifications"/>
         </activity>
 
         <activity
@@ -1009,6 +1053,8 @@
             </intent-filter>
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                 android:value="com.android.settings.DisplaySettings" />
+            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+                       android:value="@string/menu_key_display"/>
             <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
                 android:value="true" />
         </activity>
@@ -1028,6 +1074,8 @@
             </intent-filter>
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                 android:value="com.android.settings.display.SmartAutoRotatePreferenceFragment" />
+            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+                       android:value="@string/menu_key_display"/>
         </activity>
 
         <activity
@@ -1046,6 +1094,8 @@
             </intent-filter>
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                 android:value="com.android.settings.display.NightDisplaySettings" />
+            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+                       android:value="@string/menu_key_display"/>
             <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
                 android:value="true" />
         </activity>
@@ -1065,6 +1115,8 @@
             </intent-filter>
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                 android:value="com.android.settings.display.darkmode.DarkModeSettingsFragment" />
+            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+                       android:value="@string/menu_key_display"/>
             <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
                 android:value="true" />
         </activity>
@@ -1088,6 +1140,8 @@
                 android:value="true" />
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                 android:value="com.android.settings.display.NightDisplaySettings" />
+            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+                       android:value="@string/menu_key_display"/>
         </activity>
 
         <activity android:name=".Settings$MyDeviceInfoActivity"
@@ -1105,6 +1159,8 @@
             </intent-filter>
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                        android:value="com.android.settings.deviceinfo.aboutphone.MyDeviceInfoFragment" />
+            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+                       android:value="@string/menu_key_about_device"/>
             <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
                        android:value="true" />
         </activity>
@@ -1353,6 +1409,8 @@
             </intent-filter>
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                 android:value="com.android.settings.notification.history.NotificationStation" />
+            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+                       android:value="@string/menu_key_notifications"/>
         </activity>
 
         <activity
@@ -1397,6 +1455,8 @@
             </intent-filter>
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                 android:value="com.android.settings.location.LocationSettings" />
+            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+                       android:value="@string/menu_key_location"/>
             <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
                 android:value="true" />
         </activity>
@@ -1629,6 +1689,8 @@
             </intent-filter>
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                 android:value="com.android.settings.accessibility.AccessibilitySettings" />
+            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+                       android:value="@string/menu_key_accessibility"/>
             <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
                 android:value="true" />
         </activity>
@@ -1644,6 +1706,8 @@
             </intent-filter>
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                 android:value="com.android.settings.accessibility.AccessibilityDetailsSettingsFragment" />
+            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+                       android:value="@string/menu_key_accessibility"/>
             <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
                 android:value="true" />
         </activity>
@@ -1697,6 +1761,8 @@
             </intent-filter>
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                 android:value="com.android.settings.accessibility.ToggleDaltonizerPreferenceFragment" />
+            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+                       android:value="@string/menu_key_accessibility"/>
             <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
                 android:value="true" />
         </activity>
@@ -1715,6 +1781,8 @@
             </intent-filter>
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                        android:value="com.android.settings.accessibility.ToggleReduceBrightColorsPreferenceFragment" />
+            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+                       android:value="@string/menu_key_accessibility"/>
             <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
                        android:value="true" />
         </activity>
@@ -1729,6 +1797,8 @@
             </intent-filter>
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                 android:value="com.android.settings.accessibility.CaptionPropertiesFragment" />
+            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+                       android:value="@string/menu_key_accessibility"/>
             <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
                 android:value="true" />
         </activity>
@@ -1743,6 +1813,8 @@
             </intent-filter>
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                 android:value="com.android.settings.tts.TextToSpeechSettings" />
+            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+                       android:value="@string/menu_key_accessibility"/>
             <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
                 android:value="true" />
         </activity>
@@ -1757,6 +1829,8 @@
             </intent-filter>
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                 android:value="com.android.settings.enterprise.EnterprisePrivacySettings" />
+            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+                       android:value="@string/menu_key_privacy"/>
         </activity>
 
         <!-- Lock screen settings -->
@@ -2429,6 +2503,8 @@
             </intent-filter>
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                 android:value="com.android.settings.fuelgauge.PowerUsageSummary" />
+            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+                       android:value="@string/menu_key_battery"/>
         </activity>
 
         <activity
@@ -2676,6 +2752,8 @@
             </intent-filter>
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                        android:value="com.android.settings.notification.NotificationAccessSettings" />
+            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+                       android:value="@string/menu_key_notifications"/>
         </activity>
 
         <activity
@@ -2688,6 +2766,8 @@
             </intent-filter>
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                        android:value="com.android.settings.applications.specialaccess.notificationaccess.NotificationAccessDetails" />
+            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+                       android:value="@string/menu_key_notifications"/>
         </activity>
 
         <activity
@@ -2700,6 +2780,8 @@
             </intent-filter>
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                        android:value="com.android.settings.notification.ConfigureNotificationSettings" />
+            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+                       android:value="@string/menu_key_notifications"/>
         </activity>
 
         <activity
@@ -2712,6 +2794,8 @@
             </intent-filter>
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                        android:value="com.android.settings.applications.specialaccess.vrlistener.VrListenerSettings" />
+            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+                       android:value="@string/menu_key_apps"/>
         </activity>
 
         <activity
@@ -2728,6 +2812,8 @@
             </intent-filter>
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                 android:value="com.android.settings.applications.specialaccess.pictureinpicture.PictureInPictureSettings" />
+            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+                       android:value="@string/menu_key_apps"/>
         </activity>
 
         <activity
@@ -2741,6 +2827,8 @@
             </intent-filter>
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                 android:value="com.android.settings.applications.specialaccess.pictureinpicture.PictureInPictureDetails" />
+            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+                       android:value="@string/menu_key_apps"/>
         </activity>
 
         <activity
@@ -2753,6 +2841,8 @@
             </intent-filter>
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                        android:value="com.android.settings.applications.specialaccess.interactacrossprofiles.InteractAcrossProfilesSettings" />
+            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+                       android:value="@string/menu_key_apps"/>
         </activity>
 
         <activity android:name="Settings$AppInteractAcrossProfilesSettingsActivity"
@@ -2765,6 +2855,8 @@
             </intent-filter>
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                        android:value="com.android.settings.applications.specialaccess.interactacrossprofiles.InteractAcrossProfilesDetails" />
+            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+                       android:value="@string/menu_key_apps"/>
         </activity>
 
         <activity
@@ -2779,6 +2871,8 @@
             </intent-filter>
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                        android:value="com.android.settings.applications.specialaccess.zenaccess.ZenAccessDetails" />
+            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+                       android:value="@string/menu_key_notifications"/>
         </activity>
 
         <activity
@@ -2791,6 +2885,8 @@
             </intent-filter>
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                        android:value="com.android.settings.notification.zen.ZenAccessSettings" />
+            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+                       android:value="@string/menu_key_notifications"/>
         </activity>
 
         <activity
@@ -2807,6 +2903,8 @@
             </intent-filter>
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                 android:value="com.android.settings.notification.ConfigureNotificationSettings" />
+            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+                       android:value="@string/menu_key_notifications"/>
             <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
                 android:value="true" />
         </activity>
@@ -2821,6 +2919,8 @@
             </intent-filter>
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                        android:value="com.android.settings.notification.app.ConversationListSettings" />
+            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+                       android:value="@string/menu_key_apps"/>
             <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
                        android:value="true" />
         </activity>
@@ -2835,6 +2935,8 @@
             </intent-filter>
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                        android:value="com.android.settings.notification.app.AppBubbleNotificationSettings" />
+            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+                       android:value="@string/menu_key_apps"/>
         </activity>
 
         <activity
@@ -2882,6 +2984,8 @@
             </intent-filter>
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                        android:value="com.android.settings.applications.manageapplications.ManageApplications" />
+            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+                       android:value="@string/menu_key_notifications"/>
         </activity>
 
         <!-- Show application-level notification settings (app passed in as extras) -->
@@ -2893,6 +2997,8 @@
             </intent-filter>
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                 android:value="com.android.settings.notification.app.AppNotificationSettings" />
+            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+                       android:value="@string/menu_key_notifications"/>
         </activity>
 
         <!-- Show channel-level notification settings (channel passed in as extras) -->
@@ -3301,6 +3407,8 @@
                 android:value="true" />
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                 android:value="com.android.settings.webview.WebViewAppPicker" />
+            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+                       android:value="@string/menu_key_system"/>
         </activity-alias>
 
         <provider
@@ -3339,6 +3447,8 @@
             </intent-filter>
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                        android:value="com.android.settings.deletionhelper.AutomaticStorageManagerSettings" />
+            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+                       android:value="@string/menu_key_storage"/>
         </activity>
 
         <!-- Show app-level advanced power usage details (app passed in as extras) -->
@@ -3362,6 +3472,8 @@
             android:exported="true">
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                        android:value="com.android.settings.applications.AppDashboardFragment"/>
+            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+                       android:value="@string/menu_key_apps"/>
         </activity>
 
         <activity
@@ -3379,6 +3491,8 @@
             </intent-filter>
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                        android:value="com.android.settings.accounts.AccountDashboardFragment"/>
+            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+                       android:value="@string/menu_key_accounts"/>
             <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
                        android:value="true" />
         </activity>
@@ -3394,6 +3508,8 @@
             </intent-filter>
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                        android:value="com.android.settings.system.SystemDashboardFragment"/>
+            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+                       android:value="@string/menu_key_system"/>
         </activity>
 
         <activity android:name=".support.SupportDashboardActivity"
@@ -3563,6 +3679,8 @@
             </intent-filter>
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                        android:value="com.android.settings.connecteddevice.AdvancedConnectedDeviceDashboardFragment" />
+            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+                       android:value="@string/menu_key_connected_devices"/>
             <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
                        android:value="true" />
         </activity>
@@ -3577,6 +3695,8 @@
             </intent-filter>
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                        android:value="com.android.settings.bluetooth.BluetoothDeviceDetailsFragment" />
+            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+                       android:value="@string/menu_key_connected_devices"/>
             <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
                        android:value="true" />
         </activity>
@@ -3722,6 +3842,8 @@
             </intent-filter>
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                 android:value="com.android.settings.wifi.calling.WifiCallingDisclaimerFragment" />
+            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+                       android:value="@string/menu_key_network"/>
         </activity>
 
         <activity android:name="Settings$BatterySaverScheduleSettingsActivity"
@@ -3733,6 +3855,8 @@
             </intent-filter>
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                 android:value="com.android.settings.fuelgauge.batterysaver.BatterySaverScheduleSettings" />
+            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+                       android:value="@string/menu_key_battery"/>
         </activity>
 
         <activity android:name="Settings$PowerMenuSettingsActivity"
@@ -3744,6 +3868,8 @@
             </intent-filter>
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                        android:value="com.android.settings.gestures.PowerMenuSettings" />
+            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+                       android:value="@string/menu_key_system"/>
         </activity>
 
         <activity
@@ -3761,6 +3887,8 @@
             </intent-filter>
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                        android:value="com.android.settings.gestures.GestureNavigationSettingsFragment" />
+            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+                       android:value="@string/menu_key_system"/>
             <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
                        android:value="true" />
         </activity>
@@ -3782,7 +3910,7 @@
             android:permission="android.permission.BLUETOOTH_CONNECT">
             <intent-filter>
                 <action android:name="com.android.settings.action.LAUNCH_BLUETOOTH_PAIRING"/>
-            </intent-filter>/>
+            </intent-filter>
         </receiver>
 
         <receiver
diff --git a/res/layout/battery_saver_schedule_percentage_seekbar.xml b/res/layout/battery_saver_schedule_percentage_seekbar.xml
new file mode 100644
index 0000000..7862822
--- /dev/null
+++ b/res/layout/battery_saver_schedule_percentage_seekbar.xml
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2021 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.
+-->
+
+<!-- Layout used by BatterySaverScheduleSeekBarController for the seekbar widget. -->
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:layout_marginVertical="6dp"
+    android:gravity="center_vertical"
+    android:orientation="vertical"
+    android:minHeight="?android:attr/listPreferredItemHeight"
+    android:paddingStart="?android:attr/listPreferredItemPaddingStart"
+    android:paddingEnd="?android:attr/listPreferredItemPaddingEnd">
+
+  <TextView
+      android:id="@android:id/title"
+      android:layout_width="wrap_content"
+      android:layout_height="wrap_content"
+      android:ellipsize="marquee"
+      android:layout_marginStart="18dp"
+      android:singleLine="true"
+      android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Subhead"
+      android:textColor="?android:attr/textColorPrimary" />
+
+  <com.android.settings.widget.DefaultIndicatorSeekBar
+      android:id="@*android:id/seekbar"
+      style="@android:style/Widget.Material.SeekBar.Discrete"
+      android:layout_width="match_parent"
+      android:layout_height="48dp"
+      android:layout_marginStart="18dp"
+      android:layout_marginEnd="9dp" />
+
+</LinearLayout>
diff --git a/res/layout/preference_widget_seekbar_settings.xml b/res/layout/preference_widget_seekbar_settings.xml
index 29b4106..c4e1506 100644
--- a/res/layout/preference_widget_seekbar_settings.xml
+++ b/res/layout/preference_widget_seekbar_settings.xml
@@ -61,7 +61,7 @@
             android:id="@*android:id/seekbar"
             android:layout_gravity="center_vertical"
             android:layout_width="match_parent"
-            android:paddingStart="0dp"
+            android:paddingStart="12dp"
             android:paddingEnd="12dp"
             android:layout_height="48dp"/>
     </LinearLayout>
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index caf8910..c76418f 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -2735,6 +2735,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"Gebruik Batterybestuurder"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"Bespeur wanneer programme battery leegmaak"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"Bespeur wanneer programme battery leegmaak"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"Af"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="other">%1$d programme word beperk</item>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index 2d9eaa3..8552e87 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -2735,6 +2735,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"የባትሪ አስተዳዳሪን ይጠቀሙ"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"መተግበሪያዎች ባትሪን ሲያንጠፈጥሩት ፈልገህ ዕወቅ"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"መተግበሪያዎች ባትሪ ሲያንጠፈጥፉ ማወቅ"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"አጥፋ"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="one">%1$d መተግበሪያዎች ተገድበዋል</item>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index 854a73d..6de541f 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -1938,7 +1938,7 @@
     <string name="location_low_battery_use" msgid="5218950289737996431">"استخدام منخفض للبطارية"</string>
     <string name="location_scanning_wifi_always_scanning_title" msgid="5004781272733434794">"‏البحث عن شبكات Wi‑Fi"</string>
     <string name="location_scanning_wifi_always_scanning_description" msgid="6236055656376931306">"‏يمكنك السماح للتطبيقات والخدمات بالبحث عن الأجهزة المجاورة في أي وقت، حتى في حال إيقاف Wi‑Fi. ويمكن استخدام هذه البيانات مثلاً لتحسين الميزات والخدمات المستندة إلى الموقع الجغرافي."</string>
-    <string name="location_scanning_bluetooth_always_scanning_title" msgid="1809309545730215891">"البحث عن بلوتوث"</string>
+    <string name="location_scanning_bluetooth_always_scanning_title" msgid="1809309545730215891">"البحث عن أجهزة تتضمن بلوتوث"</string>
     <string name="location_scanning_bluetooth_always_scanning_description" msgid="5362988856388462841">"يمكنك السماح للتطبيقات والخدمات بالبحث عن الأجهزة المجاورة في أي وقت، حتى في حال إيقاف البلوتوث. ويمكن استخدام هذه البيانات مثلاً لتحسين الميزات والخدمات المستندة إلى الموقع الجغرافي."</string>
     <string name="location_services_preference_title" msgid="604317859531782159">"خدمات الموقع الجغرافي"</string>
     <string name="location_services_screen_title" msgid="5640002489976602476">"خدمات الموقع الجغرافي"</string>
@@ -2883,6 +2883,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"استخدام مدير البطارية"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"الرصد عندما تستنزف تطبيقات شحن البطارية."</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"رصد التطبيقات التي تستنزف البطارية"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"غير مفعّلة"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="zero">‏تم تقييد %1$d تطبيق.</item>
diff --git a/res/values-as/strings.xml b/res/values-as/strings.xml
index 1e0a82d..19849a4 100644
--- a/res/values-as/strings.xml
+++ b/res/values-as/strings.xml
@@ -452,16 +452,11 @@
     <string name="security_settings_biometric_preference_summary_both_fp_single" msgid="684409535278676426">"মুখাৱয়ব আৰু ফিংগাৰপ্ৰিণ্ট যোগ দিয়া হ’ল"</string>
     <string name="biometric_settings_intro" msgid="4263069383955676756">"আপুনি ফেচ আনলক আৰু ফিংগাৰপ্ৰিণ্ট আনলক ছেট আপ কৰিলে, আপুনি মুখা পিন্ধি থাকিলে অথবা কোনো অন্ধকাৰ ঠাইত থাকিলে আপোনাৰ ফ’নটোৱে আপোনাৰ ফিংগাৰপ্ৰিণ্ট বিচাৰিব"</string>
     <string name="biometric_settings_category_ways_to_unlock" msgid="3384767901580915266">"আনলক কৰাৰ উপায়"</string>
-    <!-- no translation found for biometric_settings_use_biometric_unlock_phone (8180914579885804358) -->
-    <skip />
-    <!-- no translation found for biometric_settings_use_biometric_for_apps (6201168728906364189) -->
-    <skip />
-    <!-- no translation found for biometric_settings_use_face_preference_summary (1821648836899408477) -->
-    <skip />
-    <!-- no translation found for biometric_settings_use_fingerprint_preference_summary (6077762097826050165) -->
-    <skip />
-    <!-- no translation found for biometric_settings_use_face_or_fingerprint_preference_summary (3029102492674234728) -->
-    <skip />
+    <string name="biometric_settings_use_biometric_unlock_phone" msgid="8180914579885804358">"আপোনাৰ ফ’নটো আনলক কৰক"</string>
+    <string name="biometric_settings_use_biometric_for_apps" msgid="6201168728906364189">"এইগৰাকী আপুনিয়েই বুলি এপ্‌সমূহত সত্যাপন কৰক"</string>
+    <string name="biometric_settings_use_face_preference_summary" msgid="1821648836899408477">"মুখাৱয়ব ব্যৱহাৰ কৰি"</string>
+    <string name="biometric_settings_use_fingerprint_preference_summary" msgid="6077762097826050165">"ফিংগাৰপ্ৰিণ্ট ব্যৱহাৰ কৰি"</string>
+    <string name="biometric_settings_use_face_or_fingerprint_preference_summary" msgid="3029102492674234728">"মুখাৱয়ব অথবা ফিংগাৰপ্ৰিণ্ট ব্যৱহাৰ কৰি"</string>
     <string name="biometric_settings_hand_back_to_guardian" msgid="3747619291972376153">"আপোনাৰ অভিভাৱকক ফ’নটো উভতাই দিয়ক"</string>
     <string name="biometric_settings_hand_back_to_guardian_ok" msgid="1763788801883247426">"ঠিক আছে"</string>
     <string name="lock_screen_intro_skip_title" msgid="342553937472568925">"স্ক্ৰীন লক ছেট নকৰাকৈ এৰি যাব?"</string>
@@ -2740,6 +2735,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"বেটাৰি মেনেজাৰ ব্য়ৱহাৰ কৰক"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"এপসমূহে বেটাৰিৰ চ্চাৰ্জ বেছিকৈ হ্ৰাস কৰাটো চিনাক্ত কৰক"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"এপে বেটাৰীৰ চাৰ্জ সোনকালে শেষ কৰিলে চিনাক্ত কৰে"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"অফ অৱস্থাত আছে"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="one">%1$d এপক নিষিদ্ধ কৰা হ’ল</item>
@@ -4992,7 +4989,7 @@
       <item quantity="one">টা কেমেৰা এপ্‌</item>
       <item quantity="other">টা কেমেৰা এপ্‌</item>
     </plurals>
-    <string name="default_calendar_app_title" msgid="1870095225089706093">"কেলণ্ডাৰ এপ্"</string>
+    <string name="default_calendar_app_title" msgid="1870095225089706093">"Calendar এপ্"</string>
     <string name="default_contacts_app_title" msgid="7740028900741944569">"সম্পৰ্কসূচীৰ এপ্"</string>
     <plurals name="default_email_app_title" formatted="false" msgid="8338194872609410234">
       <item quantity="one">ইমেইল ক্লাইণ্ট এপসমূহ</item>
diff --git a/res/values-az/strings.xml b/res/values-az/strings.xml
index c3c96ee..abe0126 100644
--- a/res/values-az/strings.xml
+++ b/res/values-az/strings.xml
@@ -2735,6 +2735,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"Batareya Menecerindən istifadə edin"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"Batareyadan çox istifadə edən tətbiqlər aşkarlansın"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"Tətbiqlərin nə zaman batareyanı boşaltdığını aşkarlayır"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"Deaktiv"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="other">%1$d tətbiq məhdudlaşdırılıb</item>
diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml
index a1b0cd3..f7a3502 100644
--- a/res/values-b+sr+Latn/strings.xml
+++ b/res/values-b+sr+Latn/strings.xml
@@ -2772,6 +2772,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"Koristite menadžer baterije"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"Otkrijte kada aplikacije isprazne bateriju"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"Otkriva kada aplikacije troše bateriju"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"Isključeno"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="one">%1$d aplikacija je ograničena</item>
diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml
index a444b80..d2b04db 100644
--- a/res/values-be/strings.xml
+++ b/res/values-be/strings.xml
@@ -2811,6 +2811,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"Уключыць менеджар акумулятара"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"Выяўляць праграмы, якія разраджаюць акумулятар"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"Выяўленне праграм, якія разраджаюць акумулятар"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"Выключана"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="one">Абмежаваных праграм: %1$d</item>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index 1344bdb..281f3c7 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -2737,6 +2737,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"Използване на мениджъра на батерията"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"Установяване кога приложенията изразходват батерията"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"Установяване кога приложенията изразходват батерията"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"Изключено"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="other">%1$d приложения са ограничени</item>
diff --git a/res/values-bn/strings.xml b/res/values-bn/strings.xml
index bfa365b..1d79677 100644
--- a/res/values-bn/strings.xml
+++ b/res/values-bn/strings.xml
@@ -452,16 +452,11 @@
     <string name="security_settings_biometric_preference_summary_both_fp_single" msgid="684409535278676426">"ফেস এবং আঙ্গুলের ছাপ যোগ করা হয়েছে"</string>
     <string name="biometric_settings_intro" msgid="4263069383955676756">"আপনি \'ফেস আনলক\' ও \'ফিঙ্গারপ্রিন্ট আনলক\' সেট আপ করলে, আপনি মাস্ক পরে থাকলে বা অন্ধকার জায়গায় থাকলে আপনার ফোন আঙ্গুলের ছাপ চাইবে"</string>
     <string name="biometric_settings_category_ways_to_unlock" msgid="3384767901580915266">"আনলক করার বিভিন্ন উপায়"</string>
-    <!-- no translation found for biometric_settings_use_biometric_unlock_phone (8180914579885804358) -->
-    <skip />
-    <!-- no translation found for biometric_settings_use_biometric_for_apps (6201168728906364189) -->
-    <skip />
-    <!-- no translation found for biometric_settings_use_face_preference_summary (1821648836899408477) -->
-    <skip />
-    <!-- no translation found for biometric_settings_use_fingerprint_preference_summary (6077762097826050165) -->
-    <skip />
-    <!-- no translation found for biometric_settings_use_face_or_fingerprint_preference_summary (3029102492674234728) -->
-    <skip />
+    <string name="biometric_settings_use_biometric_unlock_phone" msgid="8180914579885804358">"আপনার ফোন আনলক করুন"</string>
+    <string name="biometric_settings_use_biometric_for_apps" msgid="6201168728906364189">"অ্যাপে আপনার পরিচয় যাচাই করুন"</string>
+    <string name="biometric_settings_use_face_preference_summary" msgid="1821648836899408477">"মুখ ব্যবহার করে"</string>
+    <string name="biometric_settings_use_fingerprint_preference_summary" msgid="6077762097826050165">"আঙুলের ছাপ ব্যবহার করে"</string>
+    <string name="biometric_settings_use_face_or_fingerprint_preference_summary" msgid="3029102492674234728">"মুখ বা আঙুলের ছাপ ব্যবহার করে"</string>
     <string name="biometric_settings_hand_back_to_guardian" msgid="3747619291972376153">"ফোন অভিভাবকের কাছে ফিরিয়ে দিন"</string>
     <string name="biometric_settings_hand_back_to_guardian_ok" msgid="1763788801883247426">"ঠিক আছে"</string>
     <string name="lock_screen_intro_skip_title" msgid="342553937472568925">"স্ক্রিন লক এড়িয়ে যেতে চান?"</string>
@@ -2740,6 +2735,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"ব্যাটারি ম্যানেজার ব্যবহার করুন"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"অ্যাপের জন্য বেশি ব্যাটারি খরচ হচ্ছে কিনা সেই দিকে নজর রাখুন"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"অ্যাপের জন্য ব্যাটারি বেশি দ্রুত খরচ হচ্ছে কিনা সেদিকে নজর রাখা হচ্ছে"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"বন্ধ আছে"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="one">%1$dটি অ্যাপে বিধিনিষেধ আরোপ করা হয়েছে</item>
diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml
index 6eecfbd..4cb5e94 100644
--- a/res/values-bs/strings.xml
+++ b/res/values-bs/strings.xml
@@ -2772,6 +2772,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"Upotreba Upravitelja baterije"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"Otkrij kada aplikacije troše bateriju"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"Otkrivanje kada aplikacije brzo troše bateriju"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"Isključeno"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="one">Ograničena je %1$d aplikacija</item>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index 83a8499..412e0df 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -2735,6 +2735,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"Utilitza el gestor de bateria"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"Detecta quan les aplicacions consumeixen bateria"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"S\'està detectant el consum de bateria de les aplicacions"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"Desactivat"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="other">S\'han restringit %1$d aplicacions</item>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index ca27e47..6b28caa 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -2809,6 +2809,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"Použít správce baterie"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"Zjišťovat, zda aplikace vybíjejí baterii"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"Zjišťování, kdy aplikace vybíjejí baterii"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"Vypnuto"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="few">Jsou omezeny %1$d aplikace</item>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index 63ee63f..389ce78 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -1424,7 +1424,7 @@
     <string name="lift_to_wake_title" msgid="8994218158737714046">"Løft enheden for at vække den"</string>
     <string name="ambient_display_screen_title" msgid="8615947016991429325">"Aktiv låseskærm"</string>
     <string name="ambient_display_category_triggers" msgid="1216640141609270011">"Hvornår skal det vises"</string>
-    <string name="doze_title" msgid="1523090408230862316">"Væk skærmen for notifikationer"</string>
+    <string name="doze_title" msgid="1523090408230862316">"Væk skærmen ved notifikationer"</string>
     <string name="doze_summary" msgid="8252867381522942804">"Når skærmen er mørk, aktiveres den ved modtagelse af nye notifikationer"</string>
     <string name="doze_always_on_title" msgid="7326245192352868477">"Vis altid tidspunkt og info"</string>
     <string name="doze_always_on_summary" msgid="509097829739647852">"Øget batteriforbrug"</string>
@@ -2735,6 +2735,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"Brug batteriadministration"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"Registrer, når apps dræner batteriet"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"Registrerer, når apps dræner batteriet"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"Fra"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="one">%1$d app er begrænset</item>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index 113d1a2..bfbe917 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -1401,7 +1401,7 @@
     <string name="dark_ui_text" msgid="4392646155331126666">"Beim dunklen Design ist der Hintergrund einiger Bildschirme schwarz, damit dein Akku länger hält. Zeitpläne für das dunkle Design werden erst aktiviert, wenn das Display aus ist."</string>
     <string name="screen_timeout" msgid="7709947617767439410">"Display automatisch ausschalten"</string>
     <string name="screen_timeout_title" msgid="785134393520893049">"Display wird ausgeschaltet."</string>
-    <string name="screen_timeout_summary" msgid="5558778019594643427">"Nach <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> ohne Aktivität"</string>
+    <string name="screen_timeout_summary" msgid="5558778019594643427">"<xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> ohne Aktivität"</string>
     <string name="wallpaper_settings_title" msgid="5635129851136006383">"Hintergrund"</string>
     <string name="style_and_wallpaper_settings_title" msgid="2232042809407308946">"Hintergrund &amp; Stil"</string>
     <string name="wallpaper_dashboard_summary" msgid="2324472863981057118">"Startseite, Sperrbildschirm"</string>
@@ -2738,6 +2738,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"Funktion \"Akku-Manager\" verwenden"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"Starke Beanspruchung des Akkus durch Apps erkennen"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"Erkennen, wenn Apps den Akku beanspruchen"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"Aus"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="other">%1$d Apps beschränkt</item>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index 18ada63..9ae1746 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -2735,6 +2735,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"Χρήση Διαχείρισης μπαταρίας"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"Ανίχνευση εξάντλησης μπαταρίας από εφαρμογές"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"Ανίχνευση εξάντλησης μπαταρίας από εφαρμογές"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"Ανενεργή"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="other">%1$d εφαρμογές έχουν περιοριστεί</item>
diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml
index 43c64a4..1ddb7b6 100644
--- a/res/values-en-rAU/strings.xml
+++ b/res/values-en-rAU/strings.xml
@@ -2735,6 +2735,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"Use Battery Manager"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"Detect when apps drain battery"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"Detecting when apps drain battery"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"Off"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="other">%1$d apps restricted</item>
diff --git a/res/values-en-rCA/strings.xml b/res/values-en-rCA/strings.xml
index e849f68..b8e5ace 100644
--- a/res/values-en-rCA/strings.xml
+++ b/res/values-en-rCA/strings.xml
@@ -2735,6 +2735,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"Use Battery Manager"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"Detect when apps drain battery"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"Detecting when apps drain battery"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"Off"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="other">%1$d apps restricted</item>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index df82034..a869b6a 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -2735,6 +2735,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"Use Battery Manager"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"Detect when apps drain battery"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"Detecting when apps drain battery"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"Off"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="other">%1$d apps restricted</item>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index 49a4c09..8b555bd 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -2735,6 +2735,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"Use Battery Manager"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"Detect when apps drain battery"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"Detecting when apps drain battery"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"Off"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="other">%1$d apps restricted</item>
diff --git a/res/values-en-rXC/strings.xml b/res/values-en-rXC/strings.xml
index 19ec897..c756181 100644
--- a/res/values-en-rXC/strings.xml
+++ b/res/values-en-rXC/strings.xml
@@ -2735,6 +2735,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‎‏‏‎‏‏‏‏‎‏‎‏‏‎‏‎‎‏‏‏‎‏‎‏‏‎‎‎‎‏‏‎‎‏‎‏‏‏‎‏‏‎‎‎‏‎‏‏‎‏‎‎‎‏‎‏‏‎‏‎Use Battery Manager‎‏‎‎‏‎"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‎‏‏‎‏‏‎‏‎‏‏‏‏‏‏‏‎‏‏‎‏‎‏‎‎‏‎‏‏‎‏‎‏‏‏‏‎‏‎‎‏‎‏‏‎‎‏‎‏‎‎‏‎‏‏‏‏‏‎Detect when apps drain battery‎‏‎‎‏‎"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‎‏‏‏‎‎‎‏‏‎‎‎‏‏‏‎‏‎‏‏‎‏‏‎‎‎‎‏‏‏‎‎‎‏‏‎‎‏‎‎‏‎‎‏‏‎‎‏‏‎‎‏‏‎‎‎‏‏‏‎Detecting when apps drain battery‎‏‎‎‏‎"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‎‎‏‎‏‎‏‏‎‎‎‏‏‏‎‏‏‎‎‎‎‎‎‏‎‎‏‎‎‏‏‏‏‎‏‎‏‏‏‏‏‏‎‎‎‎‎‏‏‎‎‏‎‏‏‏‏‎‎‎Off‎‏‎‎‏‎"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="other">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‏‎‏‎‎‏‎‏‏‏‎‏‏‎‏‎‎‎‏‎‏‏‎‏‏‎‏‎‏‏‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‏‏‏‏‏‏‎‎‎‎‎‎%1$d apps restricted‎‏‎‎‏‎</item>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index 3505669..669ce84 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -2737,6 +2737,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"Usar el administrador de batería"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"Detectar cuando las apps agotan la batería"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"Detectar cuando las apps consumen mucha batería"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"Desactivado"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="other">%1$d apps restringidas</item>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index 3a9335f..32af438 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -1550,8 +1550,8 @@
     <string name="sd_eject_summary" product="default" msgid="5151243312587186226">"Desconectar la tarjeta SD para extraerla de forma segura"</string>
     <string name="sd_insert_summary" product="nosdcard" msgid="9164545135649775664">"Inserta USB para activar almacenamiento"</string>
     <string name="sd_insert_summary" product="default" msgid="5949168259622002192">"Insertar una tarjeta SD para el montaje"</string>
-    <string name="sd_mount" product="nosdcard" msgid="8305985249945415150">"Activar almacenamiento USB"</string>
-    <string name="sd_mount" product="default" msgid="5279813999455776169">"Activar tarjeta SD"</string>
+    <string name="sd_mount" product="nosdcard" msgid="8305985249945415150">"Montar almacenamiento USB"</string>
+    <string name="sd_mount" product="default" msgid="5279813999455776169">"Montar tarjeta SD"</string>
     <string name="sd_mount_summary" product="nosdcard" msgid="2190410240845521205"></string>
     <string name="sd_mount_summary" product="default" msgid="2190410240845521205"></string>
     <string name="sd_format" product="nosdcard" msgid="8657427883364711513">"Borrar almacenamiento USB"</string>
@@ -1574,7 +1574,7 @@
     <string name="storage_low_title" msgid="8002650511493419567">"No queda espacio de almacenamiento"</string>
     <string name="storage_low_summary" msgid="7341022293583384506">"Es posible que algunas funciones del sistema, como la sincronización, no funcionen correctamente. Prueba a eliminar o a desactivar elementos para liberar espacio (por ejemplo, aplicaciones o contenido multimedia)."</string>
     <string name="storage_menu_rename" msgid="8549835371429159336">"Cambiar nombre"</string>
-    <string name="storage_menu_mount" msgid="4760531872302820569">"Activar"</string>
+    <string name="storage_menu_mount" msgid="4760531872302820569">"Montar"</string>
     <string name="storage_menu_unmount" msgid="8171552487742912282">"Expulsar"</string>
     <string name="storage_menu_format" msgid="5454870642788909443">"Formatear"</string>
     <string name="storage_menu_format_public" msgid="5567214442727034630">"Formatear como portátil"</string>
@@ -1601,13 +1601,13 @@
     <string name="storage_size_large" msgid="1155308277890194878">"<xliff:g id="NUMBER">^1</xliff:g>"<small><small>" <xliff:g id="UNIT">^2</xliff:g>"</small></small>""</string>
     <string name="storage_volume_used" msgid="5031288167242496837">"En uso de <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
     <string name="storage_mount_success" msgid="393972242641313135">"<xliff:g id="NAME">%1$s</xliff:g> se ha activado"</string>
-    <string name="storage_mount_failure" msgid="3667915814876418011">"Error al activar <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="storage_mount_failure" msgid="3667915814876418011">"Error al montar <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="storage_unmount_success" msgid="6406298575402936148">"<xliff:g id="NAME">%1$s</xliff:g> se ha expulsado de forma segura"</string>
     <string name="storage_unmount_failure" msgid="3796912279003790607">"No se ha podido expulsar <xliff:g id="NAME">%1$s</xliff:g> de forma segura"</string>
     <string name="storage_format_success" msgid="3028114521294256851">"<xliff:g id="NAME">%1$s</xliff:g> se ha formateado"</string>
     <string name="storage_format_failure" msgid="2042691589726261987">"Error al formatear <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="storage_rename_title" msgid="5911285992205282312">"Cambiar nombre de almacenamiento"</string>
-    <string name="storage_dialog_unmounted" msgid="1187960789775910051">"Este dispositivo de almacenamiento (<xliff:g id="NAME_0">^1</xliff:g>) se ha extraído de forma segura, pero sigue estando disponible. \n\nPara utilizar el dispositivo (<xliff:g id="NAME_1">^1</xliff:g>), debes activarlo."</string>
+    <string name="storage_dialog_unmounted" msgid="1187960789775910051">"Este dispositivo de almacenamiento (<xliff:g id="NAME_0">^1</xliff:g>) se ha extraído de forma segura, pero sigue estando disponible. \n\nPara utilizar el dispositivo (<xliff:g id="NAME_1">^1</xliff:g>), debes montarlo."</string>
     <string name="storage_dialog_unmountable" msgid="1761107904296941687">"Este dispositivo de almacenamiento (<xliff:g id="NAME_0">^1</xliff:g>) está dañado. \n\nPara utilizar el dispositivo (<xliff:g id="NAME_1">^1</xliff:g>), debes configurarlo."</string>
     <string name="storage_internal_format_details" msgid="8922023528848861812">"Después de formatear la unidad, puedes utilizar tu <xliff:g id="NAME_0">^1</xliff:g> en otros dispositivos. \n\nTe recomendamos que hagas una copia de seguridad de los datos de tu <xliff:g id="NAME_1">^1</xliff:g>, ya que se borrarán cuando se formatee. \n\n"<b>"Copia de seguridad de fotos y de otro contenido multimedia"</b>" \nMueve tus archivos multimedia a otro espacio de almacenamiento del dispositivo o transfiérelos a un ordenador con un cable USB. \n\n"<b>"Copia de seguridad de aplicaciones"</b>" \nSe desinstalarán todas las aplicaciones almacenadas en tu <xliff:g id="NAME_6">^1</xliff:g> y se borrarán sus datos. Para conservarlas, muévelas a otro espacio de almacenamiento del dispositivo."</string>
     <string name="storage_internal_unmount_details" msgid="487689543322907311"><b>"Al extraer tu <xliff:g id="NAME_0">^1</xliff:g>, las aplicaciones almacenadas en esta unidad dejarán de funcionar y los archivos multimedia guardados en ella no estarán disponibles hasta que se vuelva a insertar."</b>" \n\nTu <xliff:g id="NAME_1">^1</xliff:g> se ha formateado para que solo funcione en este dispositivo."</string>
@@ -2735,6 +2735,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"Utilizar el gestor de batería"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"Detectar el consumo de batería de las aplicaciones"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"Detectando cuándo consumen batería las aplicaciones"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"Desactivado"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="other">%1$d aplicaciones restringidas</item>
diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml
index 045328c..e82bea7 100644
--- a/res/values-et/strings.xml
+++ b/res/values-et/strings.xml
@@ -2737,6 +2737,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"Akuhalduri kasutamine"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"Tuvasta, kui rakendused kurnavad akut"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"Tuvastatakse, kui rakendused kurnavad akut"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"Väljas"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="other">%1$d rakendust on piiratud</item>
diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml
index 6afeef2..77feed9 100644
--- a/res/values-eu/strings.xml
+++ b/res/values-eu/strings.xml
@@ -380,8 +380,8 @@
     <string name="security_settings_face_enroll_must_re_enroll_title" msgid="4421818770682557621">"Konfiguratu berriro aurpegi bidez desblokeatzeko eginbidea"</string>
     <string name="security_settings_face_enroll_must_re_enroll_subtitle" msgid="3584740139535177961">"Hobetu segurtasuna eta errendimendua"</string>
     <string name="security_settings_face_enroll_improve_face_alert_title" msgid="6194184776580066012">"Konfiguratu aurpegi bidez desblokeatzeko eginbidea"</string>
-    <string name="security_settings_face_enroll_improve_face_alert_body" msgid="2670118180411127323">"Ezabatu une honetako aurpegi-eredua aurpegi bidez desblokeatzeko eginbidea berriro konfiguratzeko.\n\nAurpegi-eredua betiko eta modu seguruan ezabatuko da.\n\nEzabatu ondoren, PINa, eredua edo pasahitza beharko duzu telefonoa desblokeatzeko edo aplikazioetan autentifikatzeko."</string>
-    <string name="security_settings_face_enroll_improve_face_alert_body_fingerprint" msgid="2469599074650327489">"Ezabatu une honetako aurpegi-eredua aurpegi bidez desblokeatzeko eginbidea berriro konfiguratzeko.\n\nAurpegi-eredua betiko eta modu seguruan ezabatuko da.\n\nEzabatu ondoren, hatz-marka, PINa, eredua edo pasahitza beharko duzu telefonoa desblokeatzeko edo aplikazioetan autentifikatzeko."</string>
+    <string name="security_settings_face_enroll_improve_face_alert_body" msgid="2670118180411127323">"Aurpegi bidez desblokeatzeko eginbidea berriro konfiguratu nahi baduzu, lehendabizi ezabatu oraingo aurpegi-eredua.\n\nAurpegi-eredua betiko eta modu seguruan ezabatuko da.\n\nEzabatu ondoren, PINa, eredua edo pasahitza beharko duzu telefonoa desblokeatzeko edo aplikazioetan autentifikatzeko."</string>
+    <string name="security_settings_face_enroll_improve_face_alert_body_fingerprint" msgid="2469599074650327489">"Aurpegi bidez desblokeatzeko eginbidea berriro konfiguratu nahi baduzu, lehendabizi ezabatu oraingo aurpegi-eredua.\n\nAurpegi-eredua betiko eta modu seguruan ezabatuko da.\n\nEzabatu ondoren, hatz-marka, PINa, eredua edo pasahitza beharko duzu telefonoa desblokeatzeko edo aplikazioetan autentifikatzeko."</string>
     <string name="security_settings_face_settings_use_face_category" msgid="1638314154119800188">"Erabili hauetarako:"</string>
     <string name="security_settings_face_settings_preferences_category" msgid="7628929873407280453">"Aurpegi bidez desblokeatzeko eginbidea erabiltzean"</string>
     <string name="security_settings_face_settings_require_attention" msgid="4395309855914391104">"Begiek irekita egon behar dute"</string>
@@ -2735,6 +2735,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"Erabili bateria-kudeatzailea"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"Hauteman aplikazioak bateria agortzen ari direla"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"Aplikazioak bateria agortzen ari diren hautematen"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"Desaktibatuta"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="other">%1$d aplikazio daude murriztuta</item>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index 6671ddb..534a473 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -2735,6 +2735,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"استفاده از مدیر باتری"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"تخلیه شدن شارژ باتری توسط برنامه‌ها شناسایی شود"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"تخلیه شدن شارژ باتری توسط برنامه‌ها را شناسایی می‌کند"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"خاموش"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="one">‏%1$d برنامه محدود شد</item>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index a0dea07..8bf6996 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -2735,6 +2735,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"Käytä virranhallintaa"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"Tunnista akkua kuluttavat sovellukset"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"Tunnistaa, kun sovellukset kuluttavat akkua"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"Pois päältä"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="other">%1$d sovellusta rajoitettu</item>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index e576cee..a1366a9 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -2735,6 +2735,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"Utiliser le gestionnaire de pile"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"Détecter quand les applications drainent la pile"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"Détecter quand les applications sollicitent beaucoup la pile"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"Désactivé"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="one">%1$d application restreinte</item>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index f794b57..63a5d49 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -2735,6 +2735,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"Utiliser le gestionnaire de batterie"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"Détecter les applications qui déchargent la batterie"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"Détecte quand des applis déchargent la batterie"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"Désactivé"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="one">%1$d application limitée</item>
diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml
index 8c23367..844a0e5 100644
--- a/res/values-gl/strings.xml
+++ b/res/values-gl/strings.xml
@@ -2735,6 +2735,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"Utilizar o xestor de batería"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"Detecta se as aplicacións consomen batería"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"Detecta se as aplicacións consomen demasiada batería"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"Desactivado"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="other">Restrinxíronse %1$d aplicacións</item>
diff --git a/res/values-gu/strings.xml b/res/values-gu/strings.xml
index 9abb955..edda844 100644
--- a/res/values-gu/strings.xml
+++ b/res/values-gu/strings.xml
@@ -452,16 +452,11 @@
     <string name="security_settings_biometric_preference_summary_both_fp_single" msgid="684409535278676426">"ચહેરાનું મૉડલ અને ફિંગરપ્રિન્ટ ઉમેરી"</string>
     <string name="biometric_settings_intro" msgid="4263069383955676756">"જ્યારે તમે ફેસ અનલૉક અને ફિંગરપ્રિન્ટ અનલૉક સુવિધાનું સેટઅપ કરો, ત્યારે તમે માસ્ક પહેર્યું હોય કે અંધારિયા વિસ્તારમાં હો, ત્યારે તમારો ફોન તમારી ફિંગરપ્રિન્ટ આપવા માટે કહેશે"</string>
     <string name="biometric_settings_category_ways_to_unlock" msgid="3384767901580915266">"અનલૉક કરવાની રીતો"</string>
-    <!-- no translation found for biometric_settings_use_biometric_unlock_phone (8180914579885804358) -->
-    <skip />
-    <!-- no translation found for biometric_settings_use_biometric_for_apps (6201168728906364189) -->
-    <skip />
-    <!-- no translation found for biometric_settings_use_face_preference_summary (1821648836899408477) -->
-    <skip />
-    <!-- no translation found for biometric_settings_use_fingerprint_preference_summary (6077762097826050165) -->
-    <skip />
-    <!-- no translation found for biometric_settings_use_face_or_fingerprint_preference_summary (3029102492674234728) -->
-    <skip />
+    <string name="biometric_settings_use_biometric_unlock_phone" msgid="8180914579885804358">"તમારા ફોનને અનલૉક કરો"</string>
+    <string name="biometric_settings_use_biometric_for_apps" msgid="6201168728906364189">"ઍપનો ઉપયોગ કરનારા એ તમે જ છો તેની ચકાસણી કરો"</string>
+    <string name="biometric_settings_use_face_preference_summary" msgid="1821648836899408477">"ચહેરાનો ઉપયોગ કરીને"</string>
+    <string name="biometric_settings_use_fingerprint_preference_summary" msgid="6077762097826050165">"ફિંગરપ્રિન્ટનો ઉપયોગ કરીને"</string>
+    <string name="biometric_settings_use_face_or_fingerprint_preference_summary" msgid="3029102492674234728">"ચહેરા કે ફિંગરપ્રિન્ટનો ઉપયોગ કરીને"</string>
     <string name="biometric_settings_hand_back_to_guardian" msgid="3747619291972376153">"તમારા માતાપિતાને ફોન પાછો આપો"</string>
     <string name="biometric_settings_hand_back_to_guardian_ok" msgid="1763788801883247426">"ઓકે"</string>
     <string name="lock_screen_intro_skip_title" msgid="342553937472568925">"સ્ક્રીન લૉક છોડી દઈએ?"</string>
@@ -2740,6 +2735,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"બૅટરી મેનેજરનો ઉપયોગ કરો"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"જ્યારે ઍપ બૅટરીનો અતિશય ઉપયોગ કરે, ત્યારે જાણકારી મેળવો"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"ઍપ બૅટરીનો ક્યારે અતિશય ઉપયોગ કરે છે તેની જાણકારી મેળવી રહ્યાં છીએ"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"બંધ કરો"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="one">%1$d ઍપ પ્રતિબંધિત છે</item>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index d821bcb..6b2b353 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -2735,6 +2735,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"बैटरी मैनेजर का इस्तेमाल करें"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"ऐप्लिकेशन के ज़्यादा बैटरी खर्च करने पर सूचना पाएं"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"अलग-अलग ऐप्लिकेशन, बैटरी की ज़्यादा खपत कब करते हैं, इसका पता लगाया जा रहा है"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"बंद है"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="one">%1$d ऐप्लिकेशन पर रोक लगाई गई</item>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index e1c5338..ee63364 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -2774,6 +2774,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"Upotreba Battery Managera"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"Otkriva kada aplikacije prazne bateriju"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"Otkrivanje kad aplikacije prazne bateriju"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"Isključeno"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="one">Ograničena je %1$d aplikacija</item>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index 2c36432..ad723e3 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -2735,6 +2735,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"Az Akkumulátorkezelő használata"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"Az akkumulátort merítő alkalmazások észlelése"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"Az akkumulátort merítő alkalmazások észlelése…"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"Ki"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="other">%1$d alkalmazás korlátozva</item>
diff --git a/res/values-hy/strings.xml b/res/values-hy/strings.xml
index d5055d6..e0bd548 100644
--- a/res/values-hy/strings.xml
+++ b/res/values-hy/strings.xml
@@ -2735,6 +2735,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"Օգտագործել մարտկոցի կառավարիչը"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"Հայտնաբերել հավելվածները, որոնք արագ սպառում են մարտկոցի լիցքը"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"Հայտնաբերում է հավելվածները, որոնք արագ սպառում են մարտկոցի լիցքը"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"Անջատված է"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="one">Սահմանափակված է %1$d հավելված</item>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index 12f8252..0489b84 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -2735,6 +2735,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"Gunakan Pengelola Baterai"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"Mendeteksi jika aplikasi menghabiskan baterai"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"Mendeteksi saat aplikasi menghabiskan baterai"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"Nonaktif"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="other">%1$d aplikasi dibatasi</item>
@@ -3414,8 +3416,8 @@
     <string name="enhanced_4g_lte_mode_title" msgid="6624700245232361149">"VoLTE"</string>
     <string name="enhanced_4g_lte_mode_title_advanced_calling" msgid="7066009898031465265">"Advanced Calling"</string>
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="7445853566718786195">"Panggilan 4G"</string>
-    <string name="enhanced_4g_lte_mode_summary" msgid="1067066329756036427">"Gunakan layanan LTE untuk meningkatkan panggilan suara (direkomendasikan)"</string>
-    <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="2575004054914178405">"Gunakan layanan 4G untuk meningkatkan panggilan suara (direkomendasikan)"</string>
+    <string name="enhanced_4g_lte_mode_summary" msgid="1067066329756036427">"Gunakan layanan LTE untuk meningkatkan kualitas panggilan suara (direkomendasikan)"</string>
+    <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="2575004054914178405">"Gunakan layanan 4G untuk meningkatkan kualitas panggilan suara (direkomendasikan)"</string>
     <string name="nr_advanced_calling_title" msgid="6106286679535355939">"Vo5G"</string>
     <string name="nr_advanced_calling_summary" msgid="6926192539172030330">"Gunakan 5G untuk panggilan suara"</string>
     <string name="contact_discovery_opt_in_title" msgid="8708034790649773814">"Kirimkan kontak ke operator"</string>
diff --git a/res/values-is/strings.xml b/res/values-is/strings.xml
index 4e825e8..8d9b8c7 100644
--- a/res/values-is/strings.xml
+++ b/res/values-is/strings.xml
@@ -2735,6 +2735,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"Nota rafhlöðustjórnun"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"Greina þegar forrit nota mikla rafhlöðuorku"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"Greinir þegar forrit nota mikla rafhlöðuorku"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"Slökkt"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="one">%1$d forrit takmarkað</item>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index 7e6b98d..9f7b76e 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -2735,6 +2735,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"Usa Battery Manager"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"Rileva quando le app scaricano la batteria"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"Rilevamento del momento in cui le app scaricano la batteria attivo"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"Off"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="other">%1$d app con restrizioni</item>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index 23e89bf..191ec5d 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -2811,6 +2811,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"שימוש במנהל הסוללה"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"זיהוי אפליקציות שגורמות להתרוקנות הסוללה"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"זיהוי אפליקציות שגורמות להתרוקנות הסוללה"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"כבוי"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="two">‏%1$d אפליקציות מוגבלות</item>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 24c9716..c78b90c 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -2735,6 +2735,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"バッテリー マネージャの使用"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"アプリのバッテリー使用量が多いかどうかを検出します"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"アプリのバッテリー使用量が多いかどうかを検出しています"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"OFF"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="other">制限されているアプリ: %1$d 個</item>
diff --git a/res/values-ka/strings.xml b/res/values-ka/strings.xml
index a701821..3c0e304 100644
--- a/res/values-ka/strings.xml
+++ b/res/values-ka/strings.xml
@@ -2735,6 +2735,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"Battery Manager-ის გამოყენება"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"ამოცნობა, როცა აპები ბატარეას ცლის"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"გამოავლენს, როდის ცლის აპები ბატარეას"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"გამორთული"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="other">შეზღუდულია %1$d აპი</item>
diff --git a/res/values-kk/strings.xml b/res/values-kk/strings.xml
index 8c249c8..b25d8b4 100644
--- a/res/values-kk/strings.xml
+++ b/res/values-kk/strings.xml
@@ -2735,6 +2735,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"Батарея шығынын қадағалау функциясын пайдалану"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"Батарея зарядын жылдам тауысатын қолданбаларды анықтау"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"Батарея зарядын жылдам тауысатын қолданбаларды анықтайды."</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"Өшірулі"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="other">%1$d қолданба шектелді</item>
diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml
index 976fd7d..d1811ff 100644
--- a/res/values-km/strings.xml
+++ b/res/values-km/strings.xml
@@ -2735,6 +2735,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"ប្រើ​កម្មវិធី​គ្រប់គ្រង​ថ្ម"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"រកឃើញនៅពេលកម្មវិធី​ធ្វើឱ្យឆាប់អស់ថ្ម"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"កំពុងរកមើល នៅពេលកម្មវិធី​ធ្វើឱ្យឆាប់អស់ថ្ម"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"បិទ"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="other">កម្មវិធី %1$d ត្រូវបាន​ដាក់កំហិត</item>
diff --git a/res/values-kn/strings.xml b/res/values-kn/strings.xml
index 1f4e069..6b032d7 100644
--- a/res/values-kn/strings.xml
+++ b/res/values-kn/strings.xml
@@ -2735,6 +2735,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"ಬ್ಯಾಟರಿ ನಿರ್ವಾಹಕವನ್ನು ಬಳಸಿ"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"ಅಪ್ಲಿಕೇಶನ್‌ಗಳು ಯಾವಾಗ ಬ್ಯಾಟರಿಯನ್ನು ಬರಿದಾಗಿಸುತ್ತದೆ ಎಂಬುದನ್ನು ಪತ್ತೆ ಮಾಡಿ"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"ಆ್ಯಪ್‌ಗಳು ಬ್ಯಾಟರಿಯನ್ನು ವೇಗವಾಗಿ ಕಡಿಮೆಗೊಳಿಸುವುದನ್ನು ಪತ್ತೆಹಚ್ಚುತ್ತದೆ"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"ಆಫ್"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="one">%1$d ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ</item>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index 53f0db2..13b122c 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -2737,6 +2737,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"배터리 관리 사용"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"앱에서 배터리를 많이 소모하면 감지"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"앱의 배터리 사용량이 많은 경우 감지"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"끄기"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="other">앱 %1$d개가 제한됨</item>
diff --git a/res/values-ky/strings.xml b/res/values-ky/strings.xml
index 2b67f08..a08f18b 100644
--- a/res/values-ky/strings.xml
+++ b/res/values-ky/strings.xml
@@ -2735,6 +2735,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"Battery Manager\'ди колдонуу"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"Колдонмолордун батареяны тез сарптаганы аныкталсын"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"Колдонмолордун батареяны тез сарптаганын аныктоо"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"Өчүк"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="other">%1$d колдонмо чектелген</item>
diff --git a/res/values-lo/strings.xml b/res/values-lo/strings.xml
index 311bafd..9cac3ce 100644
--- a/res/values-lo/strings.xml
+++ b/res/values-lo/strings.xml
@@ -2735,6 +2735,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"ໃຊ້ຕົວຈັດການແບັດເຕີຣີ"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"ກວດສອບເມື່ອແອັບໃຊ້ແບັດເຕີຣີຫຼາຍເກີນໄປ"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"ການກວດຫາເມື່ອແອັບໃຊ້ແບັດເຕີຣີໝົດໄວ"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"ປິດ"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="other">ຈຳກັດ %1$d ແແອັບແລ້ວ</item>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index f5fe6a2..9883ea3 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -2809,6 +2809,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"Akumuliatoriaus tvarkytuvės naudojimas"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"Aptikti, kai programos eikvoja akumuliatoriaus energiją"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"Aptikimas, kai programos eikvoja akumuliatoriaus energiją"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"Išjungta"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="one">Apribota %1$d programa</item>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index 6dc2a25..450e38c 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -2772,6 +2772,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"Izmantot akumulatora pārvaldnieku"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"Nosaka lietotnes, kas patērē daudz akumulatora enerģijas"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"Tādu lietotņu noteikšana, kas patērē daudz akumulatora enerģijas"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"Izslēgts"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="zero">Ierobežota %1$d lietotņu darbība</item>
diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml
index ccb4aa8..e1fec9b 100644
--- a/res/values-mk/strings.xml
+++ b/res/values-mk/strings.xml
@@ -2737,6 +2737,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"Користење управник со батерија"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"Откријте кога апликациите ја трошат батеријата"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"Открива кога апликациите ја трошат батеријата"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"Исклучено"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="one">%1$d апликација е ограничена</item>
diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml
index aa35b61..cabf1b3 100644
--- a/res/values-ml/strings.xml
+++ b/res/values-ml/strings.xml
@@ -2735,6 +2735,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"ബാറ്ററി മാനേജർ ഉപയോഗിക്കുക"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"ആപ്പുകൾ ബാറ്ററി ഉപയോഗിച്ചുതീർക്കുമ്പോൾ കണ്ടെത്തുക"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"ആപ്പുകൾ എപ്പോഴാണ് ബാറ്ററി വേഗത്തിൽ കുറയ്ക്കുന്നതെന്ന് കണ്ടെത്തുന്നു"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"ഓഫ്"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="other">%1$d ആപ്പുകൾ പരിമിതപ്പെടുത്തി</item>
diff --git a/res/values-mn/strings.xml b/res/values-mn/strings.xml
index 5f15671..b61e0a7 100644
--- a/res/values-mn/strings.xml
+++ b/res/values-mn/strings.xml
@@ -2735,6 +2735,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"Батерейны менежерийг ашиглах"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"Аппууд батерейг хурдан дуусгах үед илрүүлэх"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"Аппууд батарейг хурдан дуусгах үед илрүүлнэ"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"Унтраалттай"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="other">%1$d аппыг хязгаарласан</item>
diff --git a/res/values-mr/strings.xml b/res/values-mr/strings.xml
index de43144..aa5d4f8 100644
--- a/res/values-mr/strings.xml
+++ b/res/values-mr/strings.xml
@@ -2736,6 +2736,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"बॅटरी व्यवस्थापक वापरा"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"अ‍ॅप्सची बॅटरी केव्हा संंपते ते ओळखा"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"अ‍ॅप्समुळे बॅटरी केव्हा संंपते ते डिटेक्ट करत आहे"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"बंद"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="other">%1$d अ‍ॅप्स प्रतिबंधित केली</item>
diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml
index 096bb6c..09c0d3a 100644
--- a/res/values-ms/strings.xml
+++ b/res/values-ms/strings.xml
@@ -2735,6 +2735,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"Gunakan Pengurus Bateri"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"Kesan apabila apl menyusutkan bateri"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"Mengesan apabila apl menyusutkan bateri"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"Mati"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="other">%1$d apl disekat</item>
diff --git a/res/values-my/strings.xml b/res/values-my/strings.xml
index 44d27b4..4df85be 100644
--- a/res/values-my/strings.xml
+++ b/res/values-my/strings.xml
@@ -2735,6 +2735,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"\'ဘက်ထရီ မန်နေဂျာ\' အသုံးပြုပါ"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"ဓာတ်ခဲအားကုန်စေသည့် အက်ပ်များကို ဖော်ထုတ်ပေးသည်"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"ဘက်ထရီအားကုန်စေသည့် အက်ပ်များကို ဖော်ထုတ်ပေးသည်"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"ပိတ်"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="other">အက်ပ် %1$d ခု ကန့်သတ်ထားသည်</item>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index b45b971..654b163 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -2049,8 +2049,8 @@
     <string name="uninstall_text" msgid="315764653029060126">"Avinstaller"</string>
     <string name="uninstall_all_users_text" msgid="5924715251087176474">"Avinstaller for alle brukere"</string>
     <string name="install_text" msgid="4558333621516996473">"Installer"</string>
-    <string name="disable_text" msgid="5146002260857428005">"Slå av"</string>
-    <string name="enable_text" msgid="8570798764647110430">"Slå på"</string>
+    <string name="disable_text" msgid="5146002260857428005">"Deaktiver"</string>
+    <string name="enable_text" msgid="8570798764647110430">"Aktivér"</string>
     <string name="clear_user_data_text" msgid="6773186434260397947">"Tøm lagring"</string>
     <string name="app_factory_reset" msgid="8974044931667015201">"Avinstaller oppdateringer"</string>
     <string name="auto_launch_enable_text" msgid="8912714475823807798">"Noen aktiviteter du har valgt, åpnes som standard i denne appen."</string>
@@ -2735,6 +2735,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"Bruk batteristyring"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"Oppdag når apper har for høyt batteriforbruk"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"Registrerer når apper har for høyt batteriforbruk"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"Av"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="other">%1$d apper er begrenset</item>
@@ -3276,8 +3278,8 @@
     <string name="vpn_missing_cert" msgid="5397309964971068272">"Et sertifikat mangler. Prøv å redigere profilen."</string>
     <string name="trusted_credentials_system_tab" msgid="675362923690364722">"System"</string>
     <string name="trusted_credentials_user_tab" msgid="4978365619630094339">"Bruker"</string>
-    <string name="trusted_credentials_disable_label" msgid="6649583220519447947">"Slå av"</string>
-    <string name="trusted_credentials_enable_label" msgid="5551204878588237991">"Slå på"</string>
+    <string name="trusted_credentials_disable_label" msgid="6649583220519447947">"Deaktiver"</string>
+    <string name="trusted_credentials_enable_label" msgid="5551204878588237991">"Aktivér"</string>
     <string name="trusted_credentials_remove_label" msgid="8296330919329489422">"Avinstaller"</string>
     <string name="trusted_credentials_trust_label" msgid="4841047312274452474">"Angi som pålitelig"</string>
     <string name="trusted_credentials_enable_confirmation" msgid="6686528499458144754">"Vil du slå på systemets CA-sertifikat?"</string>
diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml
index 2726a7f..9148e12 100644
--- a/res/values-ne/strings.xml
+++ b/res/values-ne/strings.xml
@@ -2735,6 +2735,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"ब्याट्री प्रबन्धकको प्रयोग गर्नुहोस्"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"एपहरूले ब्याट्रीको चार्ज घटाउँदा थाहा पाउनुहोस्"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"विभिन्न एपहरूले कति बेला ब्याट्री धेरै प्रयोग गर्छन् भन्ने कुरा पत्ता लगाइँदै छ"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"निष्क्रिय छ"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="other">%1$d एपहरूमा प्रतिबन्ध लगाइयो</item>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index f92d3c7..489a6bc 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -2735,6 +2735,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"Batterijbeheer gebruiken"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"Detecteren wanneer apps de batterij snel leegmaken"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"Waarnemen wanneer apps veel batterijlading verbruiken"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"Uit"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="other">%1$d apps beperkt</item>
diff --git a/res/values-or/strings.xml b/res/values-or/strings.xml
index 4206706..67edc83 100644
--- a/res/values-or/strings.xml
+++ b/res/values-or/strings.xml
@@ -2245,7 +2245,7 @@
     <string name="configure_input_method" msgid="8831343065130376880">"ସେଟ୍‌ ଅପ୍‌ ଇନ୍‌ପୁଟ୍‌ ପଦ୍ଧତି"</string>
     <string name="input_method_settings" msgid="4177883733022569830">"ସେଟିଂସ୍"</string>
     <string name="input_method_settings_button" msgid="5145039044301426311">"ସେଟିଂସ୍"</string>
-    <string name="input_methods_settings_label_format" msgid="5809693308957109022">"<xliff:g id="IME_NAME">%1$s</xliff:g> ସେଟିଙ୍ଗ"</string>
+    <string name="input_methods_settings_label_format" msgid="5809693308957109022">"<xliff:g id="IME_NAME">%1$s</xliff:g> ସେଟିଂସ"</string>
     <string name="input_methods_and_subtype_enabler_title" msgid="8940326108334307057">"ସକ୍ରିୟ ଇନ୍‌ପୁଟ୍‌ ପଦ୍ଧତି ବାଛନ୍ତୁ"</string>
     <string name="onscreen_keyboard_settings_summary" msgid="3975358507879701606">"ଅନ୍‌ସ୍କ୍ରୀନ୍‌ କୀ’ବୋର୍ଡ ସେଟିଙ୍ଗ"</string>
     <string name="builtin_keyboard_settings_title" msgid="5096171620714179661">"ଫିଜିକଲ୍ କୀ’ବୋର୍ଡ"</string>
@@ -2735,6 +2735,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"ବ୍ୟାଟେରୀ ମ୍ୟାନେଜର୍‌ ବ୍ୟବହାର କରନ୍ତୁ"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"କେତେବେଳେ ଆପ୍ ବ୍ୟାଟେରୀ ଖର୍ଚ୍ଚ କରୁଛି, ତାହା ଠାବ କରନ୍ତୁ"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"କେତେବେଳେ ଆପଗୁଡ଼ିକ ବ୍ୟାଟେରୀ ଚାର୍ଜ ଶୀଘ୍ର ସାରିଥାଏ ତାହା ଚିହ୍ନଟ କରାଯାଉଛି"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"ବନ୍ଦ ଅଛି"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="other">%1$dଟି ଆପ୍‌କୁ ଅବରୋଧ କରାଯାଇଛି</item>
diff --git a/res/values-pa/strings.xml b/res/values-pa/strings.xml
index 3acc793..81d6c96 100644
--- a/res/values-pa/strings.xml
+++ b/res/values-pa/strings.xml
@@ -2735,6 +2735,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"ਬੈਟਰੀ ਪ੍ਰਬੰਧਕ ਦੀ ਵਰਤੋਂ ਕਰੋ"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"ਐਪਾਂ ਵੱਲੋਂ ਜ਼ਿਆਦਾ ਬੈਟਰੀ ਵਰਤੇ ਜਾਣ ਦਾ ਪਤਾ ਲਗਾਓ"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"ਐਪਾਂ ਵੱਲੋਂ ਜ਼ਿਆਦਾ ਬੈਟਰੀ ਵਰਤੇ ਜਾਣ ਦਾ ਪਤਾ ਲਗਾਇਆ ਜਾ ਰਿਹਾ ਹੈ"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"ਬੰਦ"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="one">%1$d ਐਪ ਪ੍ਰਤੀਬੰਧਿਤ</item>
@@ -3392,7 +3394,7 @@
     <string name="restriction_settings_title" msgid="4293731103465972557">"ਪ੍ਰਤਿਬੰਧ"</string>
     <string name="restriction_menu_reset" msgid="92859464456364092">"ਪ੍ਰਤਿਬੰਧ ਹਟਾਓ"</string>
     <string name="restriction_menu_change_pin" msgid="2505923323199003718">"ਪਿੰਨ ਬਦਲੋ"</string>
-    <string name="help_label" msgid="2896538416436125883">"ਮਦਦ &amp; ਫੀਡਬੈਕ"</string>
+    <string name="help_label" msgid="2896538416436125883">"ਮਦਦ ਅਤੇ ਵਿਚਾਰ"</string>
     <string name="support_summary" msgid="6137136608018134563">"ਮਦਦ ਲੇਖ, ਫ਼ੋਨ ਅਤੇ ਚੈਟ"</string>
     <string name="user_account_title" msgid="6389636876210834864">"ਸਮੱਗਰੀ ਲਈ ਖਾਤਾ"</string>
     <string name="user_picture_title" msgid="7176437495107563321">"ਫ਼ੋਟੋ ਆਈ.ਡੀ."</string>
@@ -3644,7 +3646,7 @@
     <string name="docking_sounds_title" msgid="5341616179210436159">"ਡੌਕ ਕਰਨ ਦੀਆਂ ਅਵਾਜ਼ਾਂ"</string>
     <string name="touch_sounds_title" msgid="2200734041857425078">"ਸਪਰਸ਼ ਧੁਨੀਆਂ"</string>
     <string name="vibrate_on_touch_title" msgid="9105544449810547716">"ਸਪੱਰਸ਼ ਸੰਬੰਧੀ ਥਰਥਰਾਹਟ"</string>
-    <string name="vibrate_on_touch_summary" msgid="664831333409399440">"ਟੈਪ, ਕੀ-ਬੋਰਡ ਅਤੇ ਹੋਰ ਲਈ ਛੋਹ ਸੰਵੇਦੀ ਵਿਚਾਰ"</string>
+    <string name="vibrate_on_touch_summary" msgid="664831333409399440">"ਟੈਪ, ਕੀ-ਬੋਰਡ ਅਤੇ ਹੋਰ ਲਈ ਛੋਹ ਪ੍ਰਤੀਕਰਮ"</string>
     <string name="dock_audio_media_title" msgid="6474579339356398330">"ਡੌਕ ਸਪੀਕਰ ਪਲੇ ਕਰਦਾ ਹੈ"</string>
     <string name="dock_audio_media_disabled" msgid="8499927008999532341">"ਸਾਰੇ  ਆਡੀਓ"</string>
     <string name="dock_audio_media_enabled" msgid="4039126523653131281">"ਕੇਵਲ ਮੀਡੀਆ  ਆਡੀਓ"</string>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index 4c27d94..bdb1655 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -2809,6 +2809,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"Użyj Menedżera baterii"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"Wykrywaj, gdy aplikacje szybko rozładowują baterię"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"Wykrywanie szybkiego rozładowywania baterii przez aplikacje"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"Wyłączone"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="few">Dla %1$d aplikacji wprowadzono ograniczenia</item>
diff --git a/res/values-pt-rBR/strings.xml b/res/values-pt-rBR/strings.xml
index 8d707dd..3fa469b 100644
--- a/res/values-pt-rBR/strings.xml
+++ b/res/values-pt-rBR/strings.xml
@@ -2737,6 +2737,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"Usar o Gerenciador de bateria"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"Detectar quando apps estiverem descarregando a bateria"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"Detectar quando apps estiverem descarregando a bateria"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"Desativado"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="one">%1$d app restrito</item>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index 1751ae9..f795e6f 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -2735,6 +2735,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"Utilizar o Battery Manager"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"Detetar quando as aplicações consomem rapidamente a bateria"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"Detetar quando as apps consomem rapidamente a bateria"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"Desativado"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="other">%1$d apps restritas</item>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index 8d707dd..3fa469b 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -2737,6 +2737,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"Usar o Gerenciador de bateria"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"Detectar quando apps estiverem descarregando a bateria"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"Detectar quando apps estiverem descarregando a bateria"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"Desativado"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="one">%1$d app restrito</item>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index 4ca9311..6759137 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -2774,6 +2774,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"Utilizați Battery Manager"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"Detectați când aplicațiile consumă bateria"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"Detectează când aplicațiile consumă bateria"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"Dezactivat"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="few">%1$d aplicații restricționate</item>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index 3c379dd..17dd450 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -1894,7 +1894,7 @@
     <string name="location_low_battery_use" msgid="5218950289737996431">"Низкий расход заряда батареи"</string>
     <string name="location_scanning_wifi_always_scanning_title" msgid="5004781272733434794">"Поиск сетей Wi‑Fi"</string>
     <string name="location_scanning_wifi_always_scanning_description" msgid="6236055656376931306">"Разрешить приложениям и сервисам искать сети Wi-Fi, даже когда Wi-Fi отключен. Это может улучшить работу функций и сервисов, использующих данные о местоположении."</string>
-    <string name="location_scanning_bluetooth_always_scanning_title" msgid="1809309545730215891">"Поиск Bluetooth-устройств"</string>
+    <string name="location_scanning_bluetooth_always_scanning_title" msgid="1809309545730215891">"Поиск устройств Bluetooth"</string>
     <string name="location_scanning_bluetooth_always_scanning_description" msgid="5362988856388462841">"Разрешить приложениям и сервисам искать устройства поблизости, даже когда Bluetooth отключен. Это может улучшить работу функций и сервисов, использующих данные о местоположении."</string>
     <string name="location_services_preference_title" msgid="604317859531782159">"Геолокация"</string>
     <string name="location_services_screen_title" msgid="5640002489976602476">"Геолокация"</string>
@@ -2809,6 +2809,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"Использовать Battery Manager"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"Выявлять приложения, быстро расходующие заряд батареи"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"Обнаружение приложений, быстро расходующих заряд батареи"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"Отключено"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="one">%1$d приложение с ограниченным доступом</item>
@@ -5037,7 +5039,7 @@
     <string name="ambient_display_tap_screen_title" product="tablet" msgid="6461531447715370632">"Нажмите, чтобы проверить планшет"</string>
     <string name="ambient_display_tap_screen_title" product="device" msgid="4423803387551153840">"Нажмите, чтобы проверить устройство"</string>
     <string name="ambient_display_tap_screen_summary" msgid="4480489179996521405">"Чтобы увидеть время, уведомления и другую информацию, коснитесь экрана"</string>
-    <string name="emergency_gesture_screen_title" msgid="3280543310204360902">"Экстренный вызов"</string>
+    <string name="emergency_gesture_screen_title" msgid="3280543310204360902">"Экстренные вызовы"</string>
     <string name="emergency_gesture_switchbar_title" msgid="7421353963329899514">"Использовать функцию \"Экстренный вызов\""</string>
     <string name="emergency_gesture_entrypoint_summary" msgid="4730874229911208834">"Под управлением приложения \"<xliff:g id="APP_NAME">%1$s</xliff:g>\""</string>
     <string name="emergency_gesture_screen_summary" msgid="6640521030845132507">"Быстро нажмите кнопку питания не менее пяти раз для выполнения перечисленных ниже действий"</string>
diff --git a/res/values-si/strings.xml b/res/values-si/strings.xml
index 4385c3f..2864912 100644
--- a/res/values-si/strings.xml
+++ b/res/values-si/strings.xml
@@ -2735,6 +2735,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"බැටරි කළමනාකරු භාවිත කරන්න"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"යෙදුම් බැටරිය අඩු කරන විට හඳුනා ගන්න"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"යෙදුම් බැටරි බලය අඩු කරන විට හඳුනා ගැනීම"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"ක්‍රියාවිරහිතයි"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="one">යෙදුම් %1$dක් සීමා කර ඇත</item>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index 19e5e96..ebeaf4b 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -2811,6 +2811,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"Použiť správcu batérie"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"Zistite, keď aplikácie nadmerne vybíjajú batériu"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"Rozpoznáva sa, kedy aplikácie nadmerne spotrebúvajú batériu"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"Vypnuté"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="few">%1$d obmedzené aplikácie</item>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index 24d64b6..cfad98f 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -2811,6 +2811,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"Uporaba varčevanja z energijo baterije"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"Zaznavanje, ko aplikacije porabljajo energijo baterije"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"Zaznavanje, ko aplikacije porabljajo energijo baterije."</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"Izklopljeno"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="one">%1$d aplikacija je omejena</item>
diff --git a/res/values-sq/strings.xml b/res/values-sq/strings.xml
index 10a44b6..9dc5006 100644
--- a/res/values-sq/strings.xml
+++ b/res/values-sq/strings.xml
@@ -2735,6 +2735,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"Përdor \"Menaxherin e baterisë\""</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"Zbulo kur aplikacionet shkarkojnë baterinë"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"Po zbulon kur aplikacionet shkarkojnë baterinë"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"Joaktiv"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="other">%1$d aplikacione të kufizuara</item>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index d700cc2..2de611c 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -2772,6 +2772,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"Користите менаџер батерије"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"Откријте када апликације испразне батерију"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"Открива када апликације троше батерију"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"Искључено"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="one">%1$d апликација је ограничена</item>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index 392ad43..87279ee 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -2735,6 +2735,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"Använd Battery Manager"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"Upptäck när appar drar mycket batteri"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"Identifierar när appar drar mycket batteri"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"Av"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="other">%1$d appar begränsas</item>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index 97413db..ce00eaf 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -2735,6 +2735,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"Tumia Kidhibiti cha Betri"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"Tambua wakati programu zinatumia chaji sana"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"Inatambua wakati programu zinatumia chaji sana"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"Imezimwa"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="other">Imezuia programu %1$d</item>
diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml
index 8bc27f4..d679498 100644
--- a/res/values-ta/strings.xml
+++ b/res/values-ta/strings.xml
@@ -2735,6 +2735,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"பேட்டரி நிர்வாகியைப் பயன்படுத்து"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"பேட்டரியை ஆப்ஸ் அதிகமாகப் பயன்படுத்தும்போது கண்டறியும்"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"பேட்டரியை ஆப்ஸ் அதிகமாகப் பயன்படுத்தும்போது கண்டறிகிறது"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"ஆஃப்"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="other">%1$d ஆப்ஸ் கட்டுப்படுத்தப்பட்டன</item>
diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml
index 963a19b..9d8779d 100644
--- a/res/values-te/strings.xml
+++ b/res/values-te/strings.xml
@@ -2735,6 +2735,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"బ్యాటరీ మేనేజర్‌ను ఉపయోగించండి"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"యాప్‌లు బ్యాటరీ శక్తిని హరిస్తున్నప్పుడు గుర్తించండి"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"యాప్‌లు బ్యాటరీని హరించేటప్పుడు గుర్తించడం"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"ఆఫ్"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="other">%1$d యాప్‌లు పరిమితం చేయబడ్డాయి</item>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index d25a403..532209f 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -2735,6 +2735,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"ใช้ตัวจัดการแบตเตอรี่"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"ตรวจจับเมื่อแอปทำให้แบตเตอรี่หมดเร็ว"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"ตรวจจับเมื่อแอปทำให้แบตเตอรี่หมดเร็ว"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"ปิด"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="other">จำกัดแอป %1$d แอป</item>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index 4c0e00d..6860abc 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -2735,6 +2735,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"Gumamit ng Battery Manager"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"Tukuyin kapag umuubos ng baterya ang mga app"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"Dine-detect kapag umuubos ng baterya ang mga app"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"Naka-off"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="one">%1$d pinaghihigpitang app</item>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index 895858a..5748f6a 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -2735,6 +2735,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"Pil Yöneticisi\'ni kullan"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"Uygulamalar pili çok harcadığında algıla"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"Uygulamalar pili çok harcadığında algılama"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"Kapalı"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="other">%1$d uygulama kısıtlandı</item>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index 15aa9c6..d5cc955 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -2809,6 +2809,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"Використовувати диспетчер заряду акумулятора"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"Виявляти, коли додатки швидко розряджають акумулятор"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"Виявлення додатків, які розряджають акумулятор"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"Вимкнено"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="one">%1$d додаток обмежено</item>
diff --git a/res/values-ur/strings.xml b/res/values-ur/strings.xml
index 3d6b5e6..6007b49 100644
--- a/res/values-ur/strings.xml
+++ b/res/values-ur/strings.xml
@@ -452,16 +452,11 @@
     <string name="security_settings_biometric_preference_summary_both_fp_single" msgid="684409535278676426">"چہرے اور فنگر پرنٹ کو شامل کیا گیا"</string>
     <string name="biometric_settings_intro" msgid="4263069383955676756">"جب آپ فیس اَنلاک اور فنگر پرنٹ اَن لاک کی خصوصیت سیٹ اپ کرتے ہیں تو آپ کے ماسک پہننے یا کسی تاریک جگہ پر موجود ہونے کی صورت میں آپ کا فون آپ کے فنگر پرنٹ کے لیے پوچھے گا"</string>
     <string name="biometric_settings_category_ways_to_unlock" msgid="3384767901580915266">"غیر مقفل کرنے کے طریقے"</string>
-    <!-- no translation found for biometric_settings_use_biometric_unlock_phone (8180914579885804358) -->
-    <skip />
-    <!-- no translation found for biometric_settings_use_biometric_for_apps (6201168728906364189) -->
-    <skip />
-    <!-- no translation found for biometric_settings_use_face_preference_summary (1821648836899408477) -->
-    <skip />
-    <!-- no translation found for biometric_settings_use_fingerprint_preference_summary (6077762097826050165) -->
-    <skip />
-    <!-- no translation found for biometric_settings_use_face_or_fingerprint_preference_summary (3029102492674234728) -->
-    <skip />
+    <string name="biometric_settings_use_biometric_unlock_phone" msgid="8180914579885804358">"اپنا فون غیر مقفل کریں"</string>
+    <string name="biometric_settings_use_biometric_for_apps" msgid="6201168728906364189">"تصدیق کریں کہ آپ ایپس میں ہیں"</string>
+    <string name="biometric_settings_use_face_preference_summary" msgid="1821648836899408477">"چہرہ استعمال کر کے"</string>
+    <string name="biometric_settings_use_fingerprint_preference_summary" msgid="6077762097826050165">"فنگر پرنٹ استعمال کر کے"</string>
+    <string name="biometric_settings_use_face_or_fingerprint_preference_summary" msgid="3029102492674234728">"چہرہ یا فنگر پرنٹ کا استعمال کر کے"</string>
     <string name="biometric_settings_hand_back_to_guardian" msgid="3747619291972376153">"فون کو واپس اپنے والدین کے حوالے کر دیں"</string>
     <string name="biometric_settings_hand_back_to_guardian_ok" msgid="1763788801883247426">"ٹھیک ہے"</string>
     <string name="lock_screen_intro_skip_title" msgid="342553937472568925">"اسکرین لاک کو نظر انداز کریں؟"</string>
@@ -2740,6 +2735,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"بیٹری مینیجر استعمال کریں"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"ایپس کے بیٹری ختم کرنے پر اس کا پتہ لگائیں"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"ایپس کے بیٹری ختم کرنے پر اس کا پتہ لگانا"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"آف"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="other">‏%1$d ایپس پر پابندی لگائی گئی</item>
diff --git a/res/values-uz/strings.xml b/res/values-uz/strings.xml
index b3f139f..792cb2c 100644
--- a/res/values-uz/strings.xml
+++ b/res/values-uz/strings.xml
@@ -2737,6 +2737,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"Battery Manager ishlatish"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"Ilovalar batareyani ortiqcha sarflayotganini aniqlash"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"Ilovalarning batareyani ortiqcha sarflayotgani aniqlanmoqda"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"Yoqilmagan"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="other">%1$d ta ilova cheklandi</item>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index ece8aa5..e09a07a 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -2737,6 +2737,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"Sử dụng Trình quản lý pin"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"Phát hiện khi ứng dụng tiêu hao pin"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"Phát hiện thời điểm các ứng dụng làm tiêu hao pin"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"Tắt"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="other">Đã hạn chế %1$d ứng dụng</item>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index fb5437c..eb857ba 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -2735,6 +2735,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"使用电池管理器"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"检测应用何时使用电量"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"检测应用大量消耗电池电量的情况"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"已关闭"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="other">%1$d 个应用受到限制</item>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index 8c992bc..6076cb3 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -2738,6 +2738,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"使用電池管理工具"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"偵測應用程式何時耗電"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"偵測應用程式是否耗用大量電力"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"關閉"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="other">%1$d 個應用程式受限制</item>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index 23588e0..7c0ee2e 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -2737,6 +2737,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"使用電池管理員"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"偵測應用程式是否耗用大量電力"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"偵測應用程式是否耗用大量電力"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"關閉"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="other">有 %1$d 個應用程式受到限制</item>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index e333df7..70fc66c 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -2736,6 +2736,8 @@
     <string name="battery_auto_restriction_title" msgid="827206218118093357">"Sebenzisa isiphathi sebhethri"</string>
     <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"Iyathola uma izinhlelo zokusebenza zidonsa ibhethri"</string>
     <string name="battery_manager_summary" msgid="255708681438809287">"Ukuthola uma ama-app adonsa ibhethri"</string>
+    <!-- no translation found for battery_manager_summary_unsupported (7334173707292807964) -->
+    <skip />
     <string name="battery_manager_off" msgid="673547668722420924">"Valiwe"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
       <item quantity="one">%1$d izinhlelo zokusebenza ezikhawulelwe</item>
diff --git a/res/values/integers.xml b/res/values/integers.xml
index 5354388..3d73f64 100644
--- a/res/values/integers.xml
+++ b/res/values/integers.xml
@@ -21,9 +21,4 @@
     <integer name="job_anomaly_detection">102</integer>
     <integer name="device_index_update">103</integer>
     <integer name="sim_notification_send">104</integer>
-
-    <!-- Define the font/display size fragment id in the
-    accessibility_settings_for_setup_wizard.xml. -->
-    <integer name="suw_font_size_fragment_no">0</integer>
-    <integer name="suw_display_size_fragment_no">1</integer>
 </resources>
diff --git a/res/xml/accessibility_settings_for_setup_wizard.xml b/res/xml/accessibility_settings_for_setup_wizard.xml
index d1b4f4a..047a2bd 100644
--- a/res/xml/accessibility_settings_for_setup_wizard.xml
+++ b/res/xml/accessibility_settings_for_setup_wizard.xml
@@ -24,25 +24,15 @@
         android:key="font_size_preference"
         android:icon="@drawable/ic_font_size"
         android:summary="@string/short_summary_font_size"
-        android:title="@string/title_font_size">
-        <intent
-            android:targetPackage="com.android.settings"
-            android:targetClass="com.android.settings.accessibility.AccessibilityScreenSizeForSetupWizardActivity">
-            <extra android:name="vision_fragment_no" android:value="@integer/suw_font_size_fragment_no"/>
-        </intent>
-    </Preference>
+        android:title="@string/title_font_size"
+        settings:controller="com.android.settings.accessibility.FontSizePreferenceController" />
 
     <com.android.settings.display.ScreenZoomPreference
         android:key="force_density_preference"
         android:icon="@drawable/ic_screen_zoom"
         android:summary="@string/screen_zoom_short_summary"
-        android:title="@string/screen_zoom_title">
-        <intent
-            android:targetPackage="com.android.settings"
-            android:targetClass="com.android.settings.accessibility.AccessibilityScreenSizeForSetupWizardActivity">
-            <extra android:name="vision_fragment_no" android:value="@integer/suw_display_size_fragment_no"/>
-        </intent>
-    </com.android.settings.display.ScreenZoomPreference>
+        android:title="@string/screen_zoom_title"
+        settings:controller="com.android.settings.accessibility.ScreenSizePreferenceController" />
 
     <Preference
         android:fragment="com.android.settings.accessibility.MagnificationPreferenceFragment"
diff --git a/src/com/android/settings/Settings.java b/src/com/android/settings/Settings.java
index cc9542b..a892b97 100644
--- a/src/com/android/settings/Settings.java
+++ b/src/com/android/settings/Settings.java
@@ -83,7 +83,8 @@
     }
 
     public static class VpnSettingsActivity extends SettingsActivity { /* empty */ }
-    public static class DataSaverSummaryActivity extends SettingsActivity{ /* empty */ }
+    /** Activity for Data saver settings. */
+    public static class DataSaverSummaryActivity extends SettingsActivity { /* empty */ }
     public static class DateTimeSettingsActivity extends SettingsActivity { /* empty */ }
     public static class PrivateVolumeForgetActivity extends SettingsActivity { /* empty */ }
     public static class PublicVolumeSettingsActivity extends SettingsActivity { /* empty */ }
@@ -121,13 +122,9 @@
     public static class AccessibilityInversionSettingsActivity extends SettingsActivity { /* empty */ }
     public static class AccessibilityContrastSettingsActivity extends SettingsActivity { /* empty */ }
     public static class AccessibilityDaltonizerSettingsActivity extends SettingsActivity { /* empty */ }
-    /**
-     * Activity for lockscreen settings.
-     */
+    /** Activity for lockscreen settings. */
     public static class LockScreenSettingsActivity extends SettingsActivity { /* empty */ }
-    /**
-     * Activity for Reduce Bright Colors.
-     */
+    /** Activity for Reduce Bright Colors. */
     public static class ReduceBrightColorsSettingsActivity extends SettingsActivity { /* empty */ }
     /** Activity for the security dashboard. */
     public static class SecurityDashboardActivity extends SettingsActivity {
diff --git a/src/com/android/settings/SettingsActivity.java b/src/com/android/settings/SettingsActivity.java
index 634a646..c105238 100644
--- a/src/com/android/settings/SettingsActivity.java
+++ b/src/com/android/settings/SettingsActivity.java
@@ -149,9 +149,13 @@
     public static final String META_DATA_KEY_FRAGMENT_CLASS =
             "com.android.settings.FRAGMENT_CLASS";
 
+    public static final String META_DATA_KEY_HIGHLIGHT_MENU_KEY =
+            "com.android.settings.HIGHLIGHT_MENU_KEY";
+
     private static final String EXTRA_UI_OPTIONS = "settings:ui_options";
 
     private String mFragmentClass;
+    private String mHighlightMenuKey;
 
     private CharSequence mInitialTitle;
     private int mInitialTitleResId;
@@ -234,21 +238,19 @@
         super.onCreate(savedState);
         Log.d(LOG_TAG, "Starting onCreate");
 
-        if (launchHomepageForTwonPaneDeepLink()) {
+        long startTime = System.currentTimeMillis();
+
+        // Should happen before any call to getIntent()
+        getMetaData();
+        final Intent intent = getIntent();
+        if (launchHomepageForTwoPaneDeepLink(intent)) {
             finish();
             return;
         }
 
-        long startTime = System.currentTimeMillis();
-
         final FeatureFactory factory = FeatureFactory.getFactory(this);
-
         mDashboardFeatureProvider = factory.getDashboardFeatureProvider(this);
 
-        // Should happen before any call to getIntent()
-        getMetaData();
-
-        final Intent intent = getIntent();
         if (intent.hasExtra(EXTRA_UI_OPTIONS)) {
             getWindow().setUiOptions(intent.getIntExtra(EXTRA_UI_OPTIONS, 0));
         }
@@ -355,8 +357,7 @@
     }
 
     /** Returns true if the Activity is started by a deep link intent for large screen devices. */
-    private boolean launchHomepageForTwonPaneDeepLink() {
-        final Intent intent = getIntent();
+    private boolean launchHomepageForTwoPaneDeepLink(Intent intent) {
         if (!shouldShowTwoPaneDeepLink(intent)) {
             return false;
         }
@@ -368,6 +369,9 @@
         trampolineIntent.putExtra(
                 android.provider.Settings.EXTRA_SETTINGS_LARGE_SCREEN_DEEP_LINK_INTENT_URI,
                 intent.toUri(Intent.URI_INTENT_SCHEME));
+        trampolineIntent.putExtra(
+                android.provider.Settings.EXTRA_SETTINGS_LARGE_SCREEN_HIGHLIGHT_MENU_KEY,
+                mHighlightMenuKey);
         trampolineIntent.addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT);
         startActivity(trampolineIntent);
 
@@ -776,6 +780,7 @@
                     PackageManager.GET_META_DATA);
             if (ai == null || ai.metaData == null) return;
             mFragmentClass = ai.metaData.getString(META_DATA_KEY_FRAGMENT_CLASS);
+            mHighlightMenuKey = ai.metaData.getString(META_DATA_KEY_HIGHLIGHT_MENU_KEY);
         } catch (NameNotFoundException nnfe) {
             // No recovery
             Log.d(LOG_TAG, "Cannot get Metadata for: " + getComponentName().toString());
diff --git a/src/com/android/settings/SettingsInitialize.java b/src/com/android/settings/SettingsInitialize.java
index e527ae1..500ce77 100644
--- a/src/com/android/settings/SettingsInitialize.java
+++ b/src/com/android/settings/SettingsInitialize.java
@@ -34,7 +34,6 @@
 import android.content.pm.UserInfo;
 import android.os.UserHandle;
 import android.os.UserManager;
-import android.text.TextUtils;
 import android.util.Log;
 
 import androidx.annotation.VisibleForTesting;
@@ -150,10 +149,6 @@
     }
 
     private void enableTwoPaneDeepLinkActivityIfNecessary(PackageManager pm, Intent intent) {
-        if (!TextUtils.equals(intent.getAction(), Intent.ACTION_PRE_BOOT_COMPLETED)) {
-            return;
-        }
-
         final ComponentName deepLinkHome = new ComponentName(Utils.SETTINGS_PACKAGE_NAME,
                 SettingsHomepageActivity.ALIAS_DEEP_LINK);
         final int enableState = SplitController.getInstance().isSplitSupported()
diff --git a/src/com/android/settings/SettingsPreferenceFragment.java b/src/com/android/settings/SettingsPreferenceFragment.java
index b8ff60c..1d6a48d 100644
--- a/src/com/android/settings/SettingsPreferenceFragment.java
+++ b/src/com/android/settings/SettingsPreferenceFragment.java
@@ -119,8 +119,7 @@
 
     @VisibleForTesting
     public HighlightablePreferenceGroupAdapter mAdapter;
-    @VisibleForTesting
-    public boolean mPreferenceHighlighted = false;
+    private boolean mPreferenceHighlighted = false;
 
     @Override
     public void onCreate(Bundle icicle) {
diff --git a/src/com/android/settings/Utils.java b/src/com/android/settings/Utils.java
index 72bfa11..6886154 100644
--- a/src/com/android/settings/Utils.java
+++ b/src/com/android/settings/Utils.java
@@ -1223,6 +1223,14 @@
         return getColorAttrDefaultColor(context, android.R.attr.textColorSecondary);
     }
 
+    /**
+     * Returns the highlight color of homepage preference icons.
+     */
+    @ColorInt
+    public static int getHomepageIconColorHighlight(Context context) {
+        return getColorAttrDefaultColor(context, android.R.attr.textColorSecondaryInverse);
+    }
+
     public static boolean isProviderModelEnabled(Context context) {
         return FeatureFlagUtils.isEnabled(context, FeatureFlagUtils.SETTINGS_PROVIDER_MODEL);
     }
diff --git a/src/com/android/settings/accessibility/AccessibilityScreenSizeForSetupWizardActivity.java b/src/com/android/settings/accessibility/AccessibilityScreenSizeForSetupWizardActivity.java
index 8a60e5f..026eca3 100644
--- a/src/com/android/settings/accessibility/AccessibilityScreenSizeForSetupWizardActivity.java
+++ b/src/com/android/settings/accessibility/AccessibilityScreenSizeForSetupWizardActivity.java
@@ -15,13 +15,16 @@
  */
 package com.android.settings.accessibility;
 
+import static com.android.settings.core.SettingsBaseActivity.EXTRA_PAGE_TRANSITION_TYPE;
+
 import android.app.settings.SettingsEnums;
+import android.content.Intent;
 import android.os.Bundle;
-import android.util.Log;
 import android.view.View;
 import android.widget.ScrollView;
 import android.widget.TextView;
 
+import androidx.annotation.IntDef;
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.PreferenceFragmentCompat;
 
@@ -29,12 +32,16 @@
 import com.android.settings.core.InstrumentedActivity;
 import com.android.settings.display.FontSizePreferenceFragmentForSetupWizard;
 import com.android.settings.display.ScreenZoomPreferenceFragmentForSetupWizard;
+import com.android.settingslib.transition.SettingsTransitionHelper.TransitionType;
 
 import com.google.android.setupcompat.template.FooterBarMixin;
 import com.google.android.setupcompat.template.FooterButton;
 import com.google.android.setupdesign.GlifLayout;
 import com.google.android.setupdesign.util.ThemeHelper;
 
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
 /** Settings font/display size activity for SUW. */
 public class AccessibilityScreenSizeForSetupWizardActivity extends InstrumentedActivity {
     private static final String TAG = "ScreenSizeForSetup";
@@ -42,26 +49,32 @@
     // A parameter decides which fragment ({@link FontSizePreferenceFragmentForSetupWizard} or
     // {@link ScreenZoomPreferenceFragmentForSetupWizard}) will be visioned.
     static final String VISION_FRAGMENT_NO = "vision_fragment_no";
-
-    private int mFragmentNo;
-    private int mFontSizeFragmentNo;
+    /**
+     * Flags indicating the type of the fragment.
+     */
+    @IntDef({
+        FragmentType.FONT_SIZE,
+        FragmentType.SCREEN_SIZE,
+    })
+    @Retention(RetentionPolicy.SOURCE)
+    public @interface FragmentType {
+        int FONT_SIZE = 1;
+        int SCREEN_SIZE = 2;
+    }
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
-        mFontSizeFragmentNo = getResources().getInteger(R.integer.suw_font_size_fragment_no);
         final int appliedTheme = ThemeHelper.trySetDynamicColor(this)
                 ? R.style.SudDynamicColorThemeGlifV3_DayNight : R.style.SudThemeGlifV3_DayNight;
         setTheme(appliedTheme);
         setContentView(R.layout.accessibility_screen_size_setup_wizard);
-        mFragmentNo = getIntent().getExtras().getInt(VISION_FRAGMENT_NO);
-        Log.d(TAG, "onCreate: fragment no: " + mFragmentNo);
-        generateHeader(mFragmentNo);
+        generateHeader();
         scrollToBottom();
         initFooterButton();
         if (savedInstanceState == null) {
             final PreferenceFragmentCompat fragment =
-                    (mFragmentNo == mFontSizeFragmentNo)
+                    getFragmentType(getIntent()) == FragmentType.FONT_SIZE
                             ? new FontSizePreferenceFragmentForSetupWizard()
                             : new ScreenZoomPreferenceFragmentForSetupWizard();
             getSupportFragmentManager()
@@ -72,29 +85,37 @@
     }
 
     @Override
+    protected void onPause() {
+        // For accessibility activities launched from setup wizard.
+        if (getTransitionType(getIntent()) == TransitionType.TRANSITION_FADE) {
+            overridePendingTransition(R.anim.sud_stay, android.R.anim.fade_out);
+        }
+        super.onPause();
+    }
+
+    @Override
     public int getMetricsCategory() {
-        return mFragmentNo == mFontSizeFragmentNo ? SettingsEnums.SUW_ACCESSIBILITY_FONT_SIZE
+        return getFragmentType(getIntent()) == FragmentType.FONT_SIZE
+                ? SettingsEnums.SUW_ACCESSIBILITY_FONT_SIZE
                 : SettingsEnums.SUW_ACCESSIBILITY_DISPLAY_SIZE;
     }
 
     @VisibleForTesting
-    void generateHeader(int fragmentNo) {
+    void generateHeader() {
         ((TextView) findViewById(R.id.suc_layout_title)).setText(
-                fragmentNo == mFontSizeFragmentNo ? R.string.title_font_size
+                getFragmentType(getIntent()) == FragmentType.FONT_SIZE
+                        ? R.string.title_font_size
                         : R.string.screen_zoom_title);
         ((TextView) findViewById(R.id.sud_layout_subtitle)).setText(
-                fragmentNo == mFontSizeFragmentNo ? R.string.short_summary_font_size
+                getFragmentType(getIntent()) == FragmentType.FONT_SIZE
+                        ? R.string.short_summary_font_size
                         : R.string.screen_zoom_short_summary);
     }
 
-    @VisibleForTesting
-    void initFooterButton() {
+    private void initFooterButton() {
         final GlifLayout layout = findViewById(R.id.setup_wizard_layout);
         final FooterBarMixin mixin = layout.getMixin(FooterBarMixin.class);
-        final View.OnClickListener nextButtonListener =
-                v -> {
-                    onBackPressed();
-                };
+        final View.OnClickListener nextButtonListener = v -> onBackPressed();
         final FooterButton primaryButton =
                 new FooterButton.Builder(this)
                         .setText(R.string.done)
@@ -124,4 +145,12 @@
             }
         });
     }
+
+    private int getTransitionType(Intent intent) {
+        return intent.getIntExtra(EXTRA_PAGE_TRANSITION_TYPE, TransitionType.TRANSITION_NONE);
+    }
+
+    private int getFragmentType(Intent intent) {
+        return intent.getIntExtra(VISION_FRAGMENT_NO, FragmentType.FONT_SIZE);
+    }
 }
diff --git a/src/com/android/settings/accessibility/AccessibilitySettingsForSetupWizard.java b/src/com/android/settings/accessibility/AccessibilitySettingsForSetupWizard.java
index da95df9..a365566 100644
--- a/src/com/android/settings/accessibility/AccessibilitySettingsForSetupWizard.java
+++ b/src/com/android/settings/accessibility/AccessibilitySettingsForSetupWizard.java
@@ -38,7 +38,7 @@
 import androidx.recyclerview.widget.RecyclerView;
 
 import com.android.settings.R;
-import com.android.settings.SettingsPreferenceFragment;
+import com.android.settings.dashboard.DashboardFragment;
 import com.android.settingslib.RestrictedPreference;
 
 import com.google.android.setupdesign.GlifPreferenceLayout;
@@ -48,8 +48,9 @@
 /**
  * Activity with the accessibility settings specific to Setup Wizard.
  */
-public class AccessibilitySettingsForSetupWizard extends SettingsPreferenceFragment
+public class AccessibilitySettingsForSetupWizard extends DashboardFragment
         implements Preference.OnPreferenceChangeListener {
+    private static final String TAG = "AccessibilitySettingsForSetupWizard";
 
     // Preferences.
     private static final String DISPLAY_MAGNIFICATION_PREFERENCE =
@@ -97,8 +98,6 @@
     @Override
     public void onCreate(Bundle icicle) {
         super.onCreate(icicle);
-        addPreferencesFromResource(R.xml.accessibility_settings_for_setup_wizard);
-
         mDisplayMagnificationPreference = findPreference(DISPLAY_MAGNIFICATION_PREFERENCE);
         mScreenReaderPreference = findPreference(SCREEN_READER_PREFERENCE);
         mSelectToSpeakPreference = findPreference(SELECT_TO_SPEAK_PREFERENCE);
@@ -137,6 +136,16 @@
         return super.onPreferenceTreeClick(preference);
     }
 
+    @Override
+    protected int getPreferenceScreenResId() {
+        return R.xml.accessibility_settings_for_setup_wizard;
+    }
+
+    @Override
+    protected String getLogTag() {
+        return TAG;
+    }
+
     /**
      * Returns accessibility service info by given package name and service name.
      *
diff --git a/src/com/android/settings/accessibility/AccessibilitySettingsForSetupWizardActivity.java b/src/com/android/settings/accessibility/AccessibilitySettingsForSetupWizardActivity.java
index 0625fd2..3a6bea9 100644
--- a/src/com/android/settings/accessibility/AccessibilitySettingsForSetupWizardActivity.java
+++ b/src/com/android/settings/accessibility/AccessibilitySettingsForSetupWizardActivity.java
@@ -32,11 +32,13 @@
 import com.android.settings.R;
 import com.android.settings.SettingsActivity;
 import com.android.settings.SetupWizardUtils;
+import com.android.settings.accessibility.AccessibilityScreenSizeForSetupWizardActivity.FragmentType;
 import com.android.settings.core.SubSettingLauncher;
 import com.android.settings.search.actionbar.SearchMenuController;
 import com.android.settings.support.actionbar.HelpResourceProvider;
 import com.android.settingslib.core.instrumentation.Instrumentable;
 import com.android.settingslib.transition.SettingsTransitionHelper;
+import com.android.settingslib.transition.SettingsTransitionHelper.TransitionType;
 
 import com.google.android.setupcompat.util.WizardManagerHelper;
 import com.google.android.setupdesign.util.ThemeHelper;
@@ -127,8 +129,8 @@
                 getIntent().getComponent())) {
             final Intent intent = new Intent(this,
                     AccessibilityScreenSizeForSetupWizardActivity.class);
-            intent.putExtra(VISION_FRAGMENT_NO,
-                    getResources().getInteger(R.integer.suw_font_size_fragment_no));
+            intent.putExtra(VISION_FRAGMENT_NO, FragmentType.FONT_SIZE);
+            intent.putExtra(EXTRA_PAGE_TRANSITION_TYPE, TransitionType.TRANSITION_FADE);
             startActivity(intent);
             Log.d(LOG_TAG, "Launch font size settings");
             finish();
diff --git a/src/com/android/settings/accessibility/FontSizePreferenceController.java b/src/com/android/settings/accessibility/FontSizePreferenceController.java
new file mode 100644
index 0000000..35f96d4
--- /dev/null
+++ b/src/com/android/settings/accessibility/FontSizePreferenceController.java
@@ -0,0 +1,56 @@
+/*
+ * Copyright (C) 2021 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.
+ */
+
+package com.android.settings.accessibility;
+
+import static com.android.settings.accessibility.AccessibilityScreenSizeForSetupWizardActivity.VISION_FRAGMENT_NO;
+import static com.android.settings.core.SettingsBaseActivity.EXTRA_PAGE_TRANSITION_TYPE;
+
+import android.content.Context;
+import android.content.Intent;
+
+import androidx.preference.Preference;
+
+import com.android.settings.accessibility.AccessibilityScreenSizeForSetupWizardActivity.FragmentType;
+import com.android.settings.core.BasePreferenceController;
+import com.android.settingslib.transition.SettingsTransitionHelper.TransitionType;
+
+/** PreferenceController for displaying font size page. */
+public class FontSizePreferenceController extends BasePreferenceController {
+
+    public FontSizePreferenceController(Context context, String preferenceKey) {
+        super(context, preferenceKey);
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        return AVAILABLE;
+    }
+
+    @Override
+    public boolean handlePreferenceTreeClick(Preference preference) {
+        if (!mPreferenceKey.equals(preference.getKey())) {
+            return false;
+        }
+
+        final Intent intent = new Intent(mContext,
+                AccessibilityScreenSizeForSetupWizardActivity.class);
+        intent.putExtra(VISION_FRAGMENT_NO, FragmentType.FONT_SIZE);
+        intent.putExtra(EXTRA_PAGE_TRANSITION_TYPE, TransitionType.TRANSITION_FADE);
+        mContext.startActivity(intent);
+        return true;
+    }
+}
diff --git a/src/com/android/settings/accessibility/ScreenSizePreferenceController.java b/src/com/android/settings/accessibility/ScreenSizePreferenceController.java
new file mode 100644
index 0000000..9734dc6
--- /dev/null
+++ b/src/com/android/settings/accessibility/ScreenSizePreferenceController.java
@@ -0,0 +1,56 @@
+/*
+ * Copyright (C) 2021 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.
+ */
+
+package com.android.settings.accessibility;
+
+import static com.android.settings.accessibility.AccessibilityScreenSizeForSetupWizardActivity.VISION_FRAGMENT_NO;
+import static com.android.settings.core.SettingsBaseActivity.EXTRA_PAGE_TRANSITION_TYPE;
+
+import android.content.Context;
+import android.content.Intent;
+
+import androidx.preference.Preference;
+
+import com.android.settings.accessibility.AccessibilityScreenSizeForSetupWizardActivity.FragmentType;
+import com.android.settings.core.BasePreferenceController;
+import com.android.settingslib.transition.SettingsTransitionHelper.TransitionType;
+
+/** PreferenceController for displaying screen size page. */
+public class ScreenSizePreferenceController extends BasePreferenceController {
+
+    public ScreenSizePreferenceController(Context context, String preferenceKey) {
+        super(context, preferenceKey);
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        return AVAILABLE;
+    }
+
+    @Override
+    public boolean handlePreferenceTreeClick(Preference preference) {
+        if (!mPreferenceKey.equals(preference.getKey())) {
+            return false;
+        }
+
+        final Intent intent = new Intent(mContext,
+                AccessibilityScreenSizeForSetupWizardActivity.class);
+        intent.putExtra(VISION_FRAGMENT_NO, FragmentType.SCREEN_SIZE);
+        intent.putExtra(EXTRA_PAGE_TRANSITION_TYPE, TransitionType.TRANSITION_FADE);
+        mContext.startActivity(intent);
+        return true;
+    }
+}
diff --git a/src/com/android/settings/activityembedding/ActivityEmbeddingRulesController.java b/src/com/android/settings/activityembedding/ActivityEmbeddingRulesController.java
index 3967bd7..e9dcea1 100644
--- a/src/com/android/settings/activityembedding/ActivityEmbeddingRulesController.java
+++ b/src/com/android/settings/activityembedding/ActivityEmbeddingRulesController.java
@@ -17,6 +17,7 @@
 package com.android.settings.activityembedding;
 
 import android.app.Activity;
+import android.app.settings.SettingsEnums;
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
@@ -25,6 +26,7 @@
 
 import androidx.annotation.NonNull;
 import androidx.window.embedding.ActivityFilter;
+import androidx.window.embedding.ActivityRule;
 import androidx.window.embedding.SplitController;
 import androidx.window.embedding.SplitPairFilter;
 import androidx.window.embedding.SplitPairRule;
@@ -34,6 +36,7 @@
 import com.android.settings.SubSettings;
 import com.android.settings.Utils;
 import com.android.settings.homepage.SettingsHomepageActivity;
+import com.android.settings.overlay.FeatureFactory;
 
 import java.util.HashSet;
 import java.util.Set;
@@ -67,35 +70,51 @@
         registerTwoPanePairRule(mContext,
                 getComponentName(Settings.class),
                 getComponentName(SubSettings.class),
+                null /* secondaryIntentAction */,
                 true /* finishPrimaryWithSecondary */,
                 true /* finishSecondaryWithPrimary */);
+        // Set rules here to show full screen for specified Activity.
+        registerAlwaysExpandRule();
     }
 
     /** Register a SplitPairRule for 2-pane. */
     public static void registerTwoPanePairRule(Context context,
-            ComponentName primary, ComponentName secondary,
-            boolean finishPrimaryWithSecondary, boolean finishSecondaryWithPrimary) {
+            ComponentName primaryComponent,
+            ComponentName secondaryComponent,
+            String secondaryIntentAction,
+            boolean finishPrimaryWithSecondary,
+            boolean finishSecondaryWithPrimary) {
         final Set<SplitPairFilter> filters = new HashSet<>();
-        filters.add(new SplitPairFilter(primary, secondary,
-                null /* secondaryActivityIntentAction */));
+        filters.add(new SplitPairFilter(primaryComponent, secondaryComponent,
+                secondaryIntentAction));
 
         SplitController.getInstance().registerRule(new SplitPairRule(filters,
                 finishPrimaryWithSecondary,
-                finishSecondaryWithPrimary, true /* clearTop */,
+                finishSecondaryWithPrimary,
+                true /* clearTop */,
                 ActivityEmbeddingUtils.getMinCurrentScreenSplitWidthPx(context),
                 ActivityEmbeddingUtils.getMinSmallestScreenSplitWidthPx(context),
                 ActivityEmbeddingUtils.SPLIT_RATIO,
                 LayoutDirection.LOCALE));
     }
 
+    private void registerAlwaysExpandRule() {
+        final Set<ActivityFilter> activityFilters = new HashSet<>();
+
+        final Intent searchIntent = FeatureFactory.getFactory(mContext).getSearchFeatureProvider()
+                .buildSearchIntent(mContext, SettingsEnums.SETTINGS_HOMEPAGE);
+        addActivityFilter(activityFilters, searchIntent);
+
+        mSplitController.registerRule(new ActivityRule(activityFilters, true /* alwaysExpand */));
+    }
+
     private void registerHomepagePlaceholderRule() {
         final Set<ActivityFilter> activityFilters = new HashSet<>();
-        activityFilters.add(new ActivityFilter(getComponentName(SettingsHomepageActivity.class),
-                null /* intentAction */));
-        activityFilters.add(new ActivityFilter(getComponentName(Settings.class),
-                null /* intentAction */));
-        activityFilters.add(new ActivityFilter(new ComponentName(Utils.SETTINGS_PACKAGE_NAME,
-                SettingsHomepageActivity.ALIAS_DEEP_LINK), null /* intentAction */));
+        addActivityFilter(activityFilters, SettingsHomepageActivity.class);
+        addActivityFilter(activityFilters, Settings.class);
+        addActivityFilter(activityFilters, new ComponentName(Utils.SETTINGS_PACKAGE_NAME,
+                SettingsHomepageActivity.ALIAS_DEEP_LINK));
+
         final Intent intent = new Intent();
         intent.setComponent(getComponentName(Settings.NetworkDashboardActivity.class));
         final SplitPlaceholderRule placeholderRule = new SplitPlaceholderRule(
@@ -109,6 +128,22 @@
         mSplitController.registerRule(placeholderRule);
     }
 
+    private void addActivityFilter(Set<ActivityFilter> activityFilters,
+            Class<? extends Activity> activityClass) {
+        activityFilters.add(new ActivityFilter(getComponentName(activityClass),
+                null /* intentAction */));
+    }
+
+    private void addActivityFilter(Set<ActivityFilter> activityFilters, Intent intent) {
+        activityFilters.add(new ActivityFilter(new ComponentName("*" /* pkg */, "*" /* cls */),
+                intent.getAction()));
+    }
+
+    private void addActivityFilter(Set<ActivityFilter> activityFilters,
+            ComponentName componentName) {
+        activityFilters.add(new ActivityFilter(componentName, null /* intentAction */));
+    }
+
     @NonNull
     private ComponentName getComponentName(Class<? extends Activity> activityClass) {
         return new ComponentName(mContext.getPackageName(), activityClass.getName());
diff --git a/src/com/android/settings/activityembedding/ActivityEmbeddingUtils.java b/src/com/android/settings/activityembedding/ActivityEmbeddingUtils.java
index ab999ed..7ecacde 100644
--- a/src/com/android/settings/activityembedding/ActivityEmbeddingUtils.java
+++ b/src/com/android/settings/activityembedding/ActivityEmbeddingUtils.java
@@ -62,4 +62,12 @@
 
         return isFlagEnabled && isSplitSupported;
     }
+
+    /** Whether the screen meets two-pane resolution. */
+    public static boolean isTwoPaneResolution(Context context) {
+        final Context appContext = context.getApplicationContext();
+        final DisplayMetrics dm = appContext.getResources().getDisplayMetrics();
+        return dm.widthPixels >= getMinCurrentScreenSplitWidthPx(appContext)
+                && dm.heightPixels >= getMinSmallestScreenSplitWidthPx(appContext);
+    }
 }
diff --git a/src/com/android/settings/dashboard/CategoryManager.java b/src/com/android/settings/dashboard/CategoryManager.java
index 2a82abe..b6ec4ca 100644
--- a/src/com/android/settings/dashboard/CategoryManager.java
+++ b/src/com/android/settings/dashboard/CategoryManager.java
@@ -17,6 +17,7 @@
 
 import android.content.ComponentName;
 import android.content.Context;
+import android.text.TextUtils;
 import android.util.ArrayMap;
 import android.util.ArraySet;
 import android.util.Log;
@@ -24,6 +25,7 @@
 
 import androidx.annotation.VisibleForTesting;
 
+import com.android.settings.homepage.HighlightableMenu;
 import com.android.settingslib.applications.InterestingConfigChanges;
 import com.android.settingslib.drawer.CategoryKey;
 import com.android.settingslib.drawer.DashboardCategory;
@@ -153,6 +155,20 @@
             filterDuplicateTiles(mCategoryByKeyMap);
             if (firstLoading) {
                 logTiles(context);
+
+                final DashboardCategory homepageCategory = mCategoryByKeyMap.get(
+                        CategoryKey.CATEGORY_HOMEPAGE);
+                if (homepageCategory == null) {
+                    return;
+                }
+                for (Tile tile : homepageCategory.getTiles()) {
+                    final String key = tile.getKey(context);
+                    if (TextUtils.isEmpty(key)) {
+                        Log.w(TAG, "Key hint missing for homepage tile: " + tile.getTitle(context));
+                        continue;
+                    }
+                    HighlightableMenu.addMenuKey(key);
+                }
             }
         }
     }
diff --git a/src/com/android/settings/dashboard/DashboardFeatureProvider.java b/src/com/android/settings/dashboard/DashboardFeatureProvider.java
index 8c872f0..b88ecd4 100644
--- a/src/com/android/settings/dashboard/DashboardFeatureProvider.java
+++ b/src/com/android/settings/dashboard/DashboardFeatureProvider.java
@@ -47,9 +47,9 @@
      * Binds preference to data provided by tile and gets dynamic data observers.
      *
      * @param activity If tile contains intent to launch, it will be launched from this activity
+     * @param fragment The fragment that the preference will be bound to
      * @param forceRoundedIcon Whether or not injected tiles from other packages should be forced to
      * rounded icon.
-     * @param sourceMetricsCategory The context (source) from which an action is performed
      * @param pref The preference to bind data
      * @param tile The binding data
      * @param key They key for preference. If null, we will generate one from tile data
@@ -58,7 +58,7 @@
      * @return The list of dynamic data observers
      */
     List<DynamicDataObserver> bindPreferenceToTileAndGetObservers(FragmentActivity activity,
-            boolean forceRoundedIcon, int sourceMetricsCategory, Preference pref, Tile tile,
+            DashboardFragment fragment, boolean forceRoundedIcon, Preference pref, Tile tile,
             String key, int baseOrder);
 
     /**
diff --git a/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java b/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java
index 27b20cf..f8185db 100644
--- a/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java
+++ b/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java
@@ -36,6 +36,7 @@
 import android.app.settings.SettingsEnums;
 import android.content.ComponentName;
 import android.content.Context;
+import android.content.DialogInterface.OnCancelListener;
 import android.content.IContentProvider;
 import android.content.Intent;
 import android.content.pm.PackageManager;
@@ -60,6 +61,7 @@
 import com.android.settings.SettingsActivity;
 import com.android.settings.Utils;
 import com.android.settings.dashboard.profileselector.ProfileSelectDialog;
+import com.android.settings.homepage.TopLevelSettings;
 import com.android.settings.overlay.FeatureFactory;
 import com.android.settings.widget.PrimarySwitchPreference;
 import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
@@ -123,7 +125,7 @@
 
     @Override
     public List<DynamicDataObserver> bindPreferenceToTileAndGetObservers(FragmentActivity activity,
-            boolean forceRoundedIcon, int sourceMetricsCategory, Preference pref, Tile tile,
+            DashboardFragment fragment, boolean forceRoundedIcon, Preference pref, Tile tile,
             String key, int baseOrder) {
         if (pref == null) {
             return null;
@@ -149,6 +151,7 @@
         bindIcon(pref, tile, forceRoundedIcon);
 
         if (tile instanceof ActivityTile) {
+            final int sourceMetricsCategory = fragment.getMetricsCategory();
             final Bundle metadata = tile.getMetaData();
             String clsName = null;
             String action = null;
@@ -166,7 +169,17 @@
                     intent.setAction(action);
                 }
                 pref.setOnPreferenceClickListener(preference -> {
-                    launchIntentOrSelectProfile(activity, tile, intent, sourceMetricsCategory);
+                    OnCancelListener listener = null;
+                    if (fragment instanceof TopLevelSettings) {
+                        final TopLevelSettings topLevelSettings = (TopLevelSettings) fragment;
+                        // Highlight the tile immediately whenever it's clicked
+                        topLevelSettings.setHighlightPreferenceKey(key);
+                        // If the tile allows users to select profile, the pop-op dialog may be
+                        // cancelled and then the previous highlight entry should be restored.
+                        listener = dialog -> topLevelSettings.restorePreviousHighlight();
+                    }
+                    launchIntentOrSelectProfile(activity, tile, intent, sourceMetricsCategory,
+                            listener);
                     return true;
                 });
             }
@@ -198,7 +211,8 @@
                 .putExtra(MetricsFeatureProvider.EXTRA_SOURCE_METRICS_CATEGORY,
                         SettingsEnums.DASHBOARD_SUMMARY)
                 .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
-        launchIntentOrSelectProfile(activity, tile, intent, SettingsEnums.DASHBOARD_SUMMARY);
+        launchIntentOrSelectProfile(activity, tile, intent, SettingsEnums.DASHBOARD_SUMMARY,
+                /* listener= */ null);
     }
 
     private DynamicDataObserver createDynamicDataObserver(String method, Uri uri, Preference pref) {
@@ -413,7 +427,7 @@
     }
 
     private void launchIntentOrSelectProfile(FragmentActivity activity, Tile tile, Intent intent,
-            int sourceMetricCategory) {
+            int sourceMetricCategory, OnCancelListener listener) {
         if (!isIntentResolvable(intent)) {
             Log.w(TAG, "Cannot resolve intent, skipping. " + intent);
             return;
@@ -444,7 +458,7 @@
             }
 
             ProfileSelectDialog.show(activity.getSupportFragmentManager(), tile,
-                    sourceMetricCategory);
+                    sourceMetricCategory, listener);
         }
     }
 
diff --git a/src/com/android/settings/dashboard/DashboardFragment.java b/src/com/android/settings/dashboard/DashboardFragment.java
index dfd931d..4317fc6 100644
--- a/src/com/android/settings/dashboard/DashboardFragment.java
+++ b/src/com/android/settings/dashboard/DashboardFragment.java
@@ -496,15 +496,15 @@
             if (mDashboardTilePrefKeys.containsKey(key)) {
                 // Have the key already, will rebind.
                 final Preference preference = screen.findPreference(key);
-                mDashboardFeatureProvider.bindPreferenceToTileAndGetObservers(getActivity(),
-                        forceRoundedIcons, getMetricsCategory(), preference, tile, key,
+                mDashboardFeatureProvider.bindPreferenceToTileAndGetObservers(getActivity(), this,
+                        forceRoundedIcons, preference, tile, key,
                         mPlaceholderPreferenceController.getOrder());
             } else {
                 // Don't have this key, add it.
                 final Preference pref = createPreference(tile);
                 final List<DynamicDataObserver> observers =
                         mDashboardFeatureProvider.bindPreferenceToTileAndGetObservers(getActivity(),
-                                forceRoundedIcons, getMetricsCategory(), pref, tile, key,
+                                this, forceRoundedIcons, pref, tile, key,
                                 mPlaceholderPreferenceController.getOrder());
                 screen.addPreference(pref);
                 registerDynamicDataObservers(observers);
diff --git a/src/com/android/settings/dashboard/profileselector/ProfileSelectDialog.java b/src/com/android/settings/dashboard/profileselector/ProfileSelectDialog.java
index 36cdd42..b05f23b 100644
--- a/src/com/android/settings/dashboard/profileselector/ProfileSelectDialog.java
+++ b/src/com/android/settings/dashboard/profileselector/ProfileSelectDialog.java
@@ -19,6 +19,7 @@
 import android.app.Dialog;
 import android.content.Context;
 import android.content.DialogInterface;
+import android.content.DialogInterface.OnCancelListener;
 import android.content.DialogInterface.OnClickListener;
 import android.content.Intent;
 import android.os.Bundle;
@@ -44,19 +45,23 @@
 
     private int mSourceMetricCategory;
     private Tile mSelectedTile;
+    private OnCancelListener mOnCancelListener;
 
     /**
      * Display the profile select dialog, adding the fragment to the given FragmentManager.
      * @param manager The FragmentManager this fragment will be added to.
      * @param tile The tile for this fragment.
      * @param sourceMetricCategory The source metric category.
+     * @param listener The listener listens to the dialog cancelling event.
      */
-    public static void show(FragmentManager manager, Tile tile, int sourceMetricCategory) {
+    public static void show(FragmentManager manager, Tile tile, int sourceMetricCategory,
+            OnCancelListener listener) {
         final ProfileSelectDialog dialog = new ProfileSelectDialog();
         final Bundle args = new Bundle();
         args.putParcelable(ARG_SELECTED_TILE, tile);
         args.putInt(ARG_SOURCE_METRIC_CATEGORY, sourceMetricCategory);
         dialog.setArguments(args);
+        dialog.mOnCancelListener = listener;
         dialog.show(manager, "select_profile");
     }
 
@@ -91,6 +96,13 @@
         getActivity().startActivityAsUser(intent, user);
     }
 
+    @Override
+    public void onCancel(DialogInterface dialog) {
+        if (mOnCancelListener != null) {
+            mOnCancelListener.onCancel(dialog);
+        }
+    }
+
     public static void updateUserHandlesIfNeeded(Context context, Tile tile) {
         final List<UserHandle> userHandles = tile.userHandle;
         if (tile.userHandle == null || tile.userHandle.size() <= 1) {
diff --git a/src/com/android/settings/enterprise/EnterprisePrivacyFeatureProvider.java b/src/com/android/settings/enterprise/EnterprisePrivacyFeatureProvider.java
index 7d28d82..75d4517 100644
--- a/src/com/android/settings/enterprise/EnterprisePrivacyFeatureProvider.java
+++ b/src/com/android/settings/enterprise/EnterprisePrivacyFeatureProvider.java
@@ -16,6 +16,8 @@
 
 package com.android.settings.enterprise;
 
+import android.content.Context;
+
 import java.util.Date;
 
 public interface EnterprisePrivacyFeatureProvider {
@@ -131,7 +133,7 @@
      * Launches the Device Owner or Profile Owner's activity that displays the "Your work policy
      * info" page. Returns {@code true} if the activity has indeed been launched.
      */
-    boolean showWorkPolicyInfo();
+    boolean showWorkPolicyInfo(Context activityContext);
 
     /**
      * Launches the parental controls settings page. Returns {@code true} if the activity has
diff --git a/src/com/android/settings/enterprise/EnterprisePrivacyFeatureProviderImpl.java b/src/com/android/settings/enterprise/EnterprisePrivacyFeatureProviderImpl.java
index 7d722fc..35ce1f1 100644
--- a/src/com/android/settings/enterprise/EnterprisePrivacyFeatureProviderImpl.java
+++ b/src/com/android/settings/enterprise/EnterprisePrivacyFeatureProviderImpl.java
@@ -227,17 +227,17 @@
     }
 
     @Override
-    public boolean showWorkPolicyInfo() {
+    public boolean showWorkPolicyInfo(Context activityContext) {
         Intent intent = getWorkPolicyInfoIntentDO();
         if (intent != null) {
-            mContext.startActivity(intent);
+            activityContext.startActivity(intent);
             return true;
         }
 
         intent = getWorkPolicyInfoIntentPO();
         final UserInfo userInfo = getManagedProfileUserInfo();
         if (intent != null && userInfo != null) {
-            mContext.startActivityAsUser(intent, userInfo.getUserHandle());
+            activityContext.startActivityAsUser(intent, userInfo.getUserHandle());
             return true;
         }
 
@@ -305,8 +305,7 @@
         // Only search for the required action in the Device Owner's package
         final Intent intent =
                 new Intent(Settings.ACTION_SHOW_WORK_POLICY_INFO)
-                        .setPackage(ownerComponent.getPackageName())
-                        .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+                        .setPackage(ownerComponent.getPackageName());
         final List<ResolveInfo> activities = mPm.queryIntentActivities(intent, 0);
         if (activities.size() != 0) {
             return intent;
@@ -329,8 +328,7 @@
         // Only search for the required action in the Profile Owner's package
         final Intent intent =
                 new Intent(Settings.ACTION_SHOW_WORK_POLICY_INFO)
-                        .setPackage(ownerComponent.getPackageName())
-                        .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+                        .setPackage(ownerComponent.getPackageName());
         final List<ResolveInfo> activities = mPm.queryIntentActivitiesAsUser(intent, 0, userId);
         if (activities.size() != 0) {
             return intent;
diff --git a/src/com/android/settings/fuelgauge/BatteryAppListPreferenceController.java b/src/com/android/settings/fuelgauge/BatteryAppListPreferenceController.java
index bf464a8..35af405 100644
--- a/src/com/android/settings/fuelgauge/BatteryAppListPreferenceController.java
+++ b/src/com/android/settings/fuelgauge/BatteryAppListPreferenceController.java
@@ -102,7 +102,9 @@
             }
 
             PowerProfile powerProfile = new PowerProfile(context);
-            return powerProfile.getAveragePower(PowerProfile.POWER_SCREEN_FULL)
+            // Cheap hack to try to figure out if the power_profile.xml was populated.
+            return powerProfile.getAveragePowerForOrdinal(
+                    PowerProfile.POWER_GROUP_DISPLAY_SCREEN_FULL, 0)
                     >= MIN_AVERAGE_POWER_THRESHOLD_MILLI_AMP;
         }
     };
diff --git a/src/com/android/settings/fuelgauge/batterysaver/BatterySaverScheduleSeekBarController.java b/src/com/android/settings/fuelgauge/batterysaver/BatterySaverScheduleSeekBarController.java
index 173d946..52f52bc 100644
--- a/src/com/android/settings/fuelgauge/batterysaver/BatterySaverScheduleSeekBarController.java
+++ b/src/com/android/settings/fuelgauge/batterysaver/BatterySaverScheduleSeekBarController.java
@@ -55,7 +55,7 @@
     public BatterySaverScheduleSeekBarController(Context context) {
         mContext = context;
         mSeekBarPreference = new SeekBarPreference(context);
-        mSeekBarPreference.setLayoutResource(R.layout.preference_widget_seekbar_settings);
+        mSeekBarPreference.setLayoutResource(R.layout.battery_saver_schedule_percentage_seekbar);
         mSeekBarPreference.setIconSpaceReserved(false);
         mSeekBarPreference.setOnPreferenceChangeListener(this);
         mSeekBarPreference.setContinuousUpdates(true);
diff --git a/src/com/android/settings/fuelgauge/batterytip/detectors/HighUsageDetector.java b/src/com/android/settings/fuelgauge/batterytip/detectors/HighUsageDetector.java
index 4b3f2df..8126dcc 100644
--- a/src/com/android/settings/fuelgauge/batterytip/detectors/HighUsageDetector.java
+++ b/src/com/android/settings/fuelgauge/batterytip/detectors/HighUsageDetector.java
@@ -21,6 +21,7 @@
 import android.content.Context;
 import android.os.BatteryUsageStats;
 import android.os.UidBatteryConsumer;
+import android.util.Log;
 
 import androidx.annotation.VisibleForTesting;
 
@@ -41,6 +42,8 @@
  * {@link BatteryTipDetector} since it need the most up-to-date {@code visibleTips}
  */
 public class HighUsageDetector implements BatteryTipDetector {
+    private static final String TAG = "HighUsageDetector";
+
     private BatteryTipPolicy mPolicy;
     private BatteryUsageStats mBatteryUsageStats;
     private final BatteryInfo mBatteryInfo;
@@ -113,6 +116,10 @@
 
     @VisibleForTesting
     void parseBatteryData() {
-        mBatteryInfo.parseBatteryHistory(mDataParser);
+        try {
+            mBatteryInfo.parseBatteryHistory(mDataParser);
+        } catch (IllegalStateException e) {
+            Log.e(TAG, "parseBatteryData() failed", e);
+        }
     }
 }
diff --git a/src/com/android/settings/homepage/HighlightableMenu.java b/src/com/android/settings/homepage/HighlightableMenu.java
new file mode 100644
index 0000000..6a10e66
--- /dev/null
+++ b/src/com/android/settings/homepage/HighlightableMenu.java
@@ -0,0 +1,117 @@
+/*
+ * Copyright (C) 2021 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.
+ */
+
+package com.android.settings.homepage;
+
+import static com.android.settings.core.PreferenceXmlParserUtils.METADATA_HIGHLIGHTABLE_MENU_KEY;
+import static com.android.settings.core.PreferenceXmlParserUtils.METADATA_KEY;
+
+import android.annotation.XmlRes;
+import android.content.Context;
+import android.os.Bundle;
+import android.text.TextUtils;
+import android.util.ArrayMap;
+import android.util.Log;
+
+import com.android.settings.core.PreferenceXmlParserUtils;
+import com.android.settings.core.PreferenceXmlParserUtils.MetadataFlag;
+
+import org.xmlpull.v1.XmlPullParserException;
+
+import java.io.IOException;
+import java.util.List;
+import java.util.Map;
+
+/**
+ *  Class for mapping highlightable menu keys and preference keys
+ */
+public class HighlightableMenu {
+    private static final String TAG = "HighlightableMenu";
+
+    /**
+     * Map from highlightable menu key to preference key.
+     */
+    private static final Map<String, String> MENU_TO_PREFERENCE_KEY_MAP;
+
+    /**
+     * Map from old menu key to current key string id.
+     */
+    private static final Map<String, Integer> MENU_KEY_COMPAT_MAP;
+
+    private static boolean sXmlParsed;
+
+    static {
+        MENU_TO_PREFERENCE_KEY_MAP = new ArrayMap<>();
+        MENU_KEY_COMPAT_MAP = new ArrayMap<>();
+
+        // Manual mapping for platform compatibility, e.g.
+        //  MENU_KEY_COMPAT_MAP.put("top_level_apps_and_notifs", R.string.menu_key_apps);
+    }
+
+    /** Parses the highlightable menu keys from xml */
+    public static synchronized void fromXml(Context context, @XmlRes int xmlResId) {
+        if (sXmlParsed) {
+            return;
+        }
+
+        Log.d(TAG, "parsing highlightable menu from xml");
+        final List<Bundle> preferenceMetadata;
+        try {
+            preferenceMetadata = PreferenceXmlParserUtils.extractMetadata(context, xmlResId,
+                    MetadataFlag.FLAG_NEED_KEY | MetadataFlag.FLAG_NEED_HIGHLIGHTABLE_MENU_KEY);
+        } catch (IOException | XmlPullParserException e) {
+            Log.e(TAG, "Failed to parse preference xml for getting highlightable menu keys", e);
+            return;
+        }
+
+        for (Bundle metadata : preferenceMetadata) {
+            final String menuKey = metadata.getString(METADATA_HIGHLIGHTABLE_MENU_KEY);
+            if (TextUtils.isEmpty(menuKey)) {
+                continue;
+            }
+            final String prefKey = metadata.getString(METADATA_KEY);
+            if (TextUtils.isEmpty(prefKey)) {
+                Log.w(TAG, "Highlightable menu requires android:key but it's missing in xml: "
+                        + menuKey);
+                continue;
+            }
+            MENU_TO_PREFERENCE_KEY_MAP.put(menuKey, prefKey);
+        }
+
+        if (MENU_TO_PREFERENCE_KEY_MAP.isEmpty()) {
+            return;
+        }
+
+        sXmlParsed = true;
+        MENU_KEY_COMPAT_MAP.forEach((compatMenuKey, keyId) -> {
+            final String prefKey = lookupPreferenceKey(context.getString(keyId));
+            if (prefKey != null) {
+                MENU_TO_PREFERENCE_KEY_MAP.put(compatMenuKey, prefKey);
+            }
+        });
+    }
+
+    /** Manually adds a preference as the menu key for Injection */
+    public static synchronized void addMenuKey(String key) {
+        Log.d(TAG, "add menu key: " + key);
+        MENU_TO_PREFERENCE_KEY_MAP.put(key, key);
+    }
+
+    /** Looks up the preference key by a specified menu key */
+    public static String lookupPreferenceKey(String menuKey) {
+        return MENU_TO_PREFERENCE_KEY_MAP.get(menuKey);
+    }
+}
diff --git a/src/com/android/settings/homepage/SettingsHomepageActivity.java b/src/com/android/settings/homepage/SettingsHomepageActivity.java
index d6a8a92..471b1a4 100644
--- a/src/com/android/settings/homepage/SettingsHomepageActivity.java
+++ b/src/com/android/settings/homepage/SettingsHomepageActivity.java
@@ -16,13 +16,15 @@
 
 package com.android.settings.homepage;
 
+import static android.provider.Settings.ACTION_SETTINGS_LARGE_SCREEN_DEEP_LINK;
+import static android.provider.Settings.EXTRA_SETTINGS_LARGE_SCREEN_DEEP_LINK_INTENT_URI;
+import static android.provider.Settings.EXTRA_SETTINGS_LARGE_SCREEN_HIGHLIGHT_MENU_KEY;
+
 import android.animation.LayoutTransition;
 import android.app.ActivityManager;
-import android.app.PendingIntent;
 import android.app.settings.SettingsEnums;
 import android.content.ComponentName;
 import android.content.Intent;
-import android.content.pm.PackageManager;
 import android.os.Bundle;
 import android.text.TextUtils;
 import android.util.FeatureFlagUtils;
@@ -36,16 +38,16 @@
 import androidx.fragment.app.FragmentActivity;
 import androidx.fragment.app.FragmentManager;
 import androidx.fragment.app.FragmentTransaction;
-import androidx.window.embedding.SplitController;
 
 import com.android.settings.R;
 import com.android.settings.Settings;
+import com.android.settings.SettingsActivity;
 import com.android.settings.Utils;
 import com.android.settings.accounts.AvatarViewMixin;
-import com.android.settings.core.CategoryMixin;
-import com.android.settings.core.FeatureFlags;
 import com.android.settings.activityembedding.ActivityEmbeddingRulesController;
 import com.android.settings.activityembedding.ActivityEmbeddingUtils;
+import com.android.settings.core.CategoryMixin;
+import com.android.settings.core.FeatureFlags;
 import com.android.settings.homepage.contextualcards.ContextualCardsFragment;
 import com.android.settings.overlay.FeatureFactory;
 import com.android.settingslib.core.lifecycle.HideNonSystemOverlayMixin;
@@ -64,6 +66,7 @@
     // An alias class name of SettingsHomepageActivity.
     public static final String ALIAS_DEEP_LINK = "com.android.settings.DeepLinkHomepageActivity";
 
+    private static final int DEFAULT_HIGHLIGHT_MENU_KEY = R.string.menu_key_network;
     private static final long HOMEPAGE_LOADING_TIMEOUT_MS = 300;
 
     private View mHomepageView;
@@ -120,7 +123,11 @@
                 showFragment(new ContextualCardsFragment(), R.id.contextual_cards_content);
             }
         }
-        showFragment(new TopLevelSettings(), R.id.main_content);
+        final Fragment fragment = new TopLevelSettings();
+        fragment.getArguments().putString(SettingsActivity.EXTRA_FRAGMENT_ARG_KEY,
+                getHighlightMenuKey());
+        showFragment(fragment, R.id.main_content);
+
         ((FrameLayout) findViewById(R.id.main_content))
                 .getLayoutTransition().enableTransitionType(LayoutTransition.CHANGING);
 
@@ -132,9 +139,13 @@
     protected void onNewIntent(Intent intent) {
         super.onNewIntent(intent);
 
-        // When it's large screen 2-pane and Settings app is in background. Receiving a Intent
-        // in this Activity will not finish nor onCreate. setIntent here for this case.
+        // When it's large screen 2-pane and Settings app is in the background, receiving an Intent
+        // will not recreate this activity. Update the intent for this case.
         setIntent(intent);
+        reloadHighlightMenuKey();
+        if (isFinishing()) {
+            return;
+        }
         // Launch the intent from deep link for large screen devices.
         launchDeepLinkIntentToRight();
     }
@@ -180,12 +191,12 @@
 
         final Intent intent = getIntent();
         if (intent == null || !TextUtils.equals(intent.getAction(),
-                android.provider.Settings.ACTION_SETTINGS_LARGE_SCREEN_DEEP_LINK)) {
+                ACTION_SETTINGS_LARGE_SCREEN_DEEP_LINK)) {
             return;
         }
 
         final String intentUriString = intent.getStringExtra(
-                android.provider.Settings.EXTRA_SETTINGS_LARGE_SCREEN_DEEP_LINK_INTENT_URI);
+                EXTRA_SETTINGS_LARGE_SCREEN_DEEP_LINK_INTENT_URI);
         if (TextUtils.isEmpty(intentUriString)) {
             Log.e(TAG, "No EXTRA_SETTINGS_LARGE_SCREEN_DEEP_LINK_INTENT_URI to deep link");
             finish();
@@ -207,6 +218,7 @@
             finish();
             return;
         }
+        targetIntent.setComponent(targetComponentName);
 
         // To prevent launchDeepLinkIntentToRight again for configuration change.
         intent.setAction(null);
@@ -223,16 +235,41 @@
         ActivityEmbeddingRulesController.registerTwoPanePairRule(this,
                 new ComponentName(Utils.SETTINGS_PACKAGE_NAME, ALIAS_DEEP_LINK),
                 targetComponentName,
+                targetIntent.getAction(),
                 true /* finishPrimaryWithSecondary */,
                 true /* finishSecondaryWithPrimary */);
         ActivityEmbeddingRulesController.registerTwoPanePairRule(this,
                 new ComponentName(Settings.class.getPackageName(), Settings.class.getName()),
                 targetComponentName,
+                targetIntent.getAction(),
                 true /* finishPrimaryWithSecondary */,
                 true /* finishSecondaryWithPrimary */);
         startActivity(targetIntent);
     }
 
+    private String getHighlightMenuKey() {
+        final Intent intent = getIntent();
+        if (intent != null && TextUtils.equals(intent.getAction(),
+                ACTION_SETTINGS_LARGE_SCREEN_DEEP_LINK)) {
+            final String menuKey = intent.getStringExtra(
+                    EXTRA_SETTINGS_LARGE_SCREEN_HIGHLIGHT_MENU_KEY);
+            if (!TextUtils.isEmpty(menuKey)) {
+                return menuKey;
+            }
+        }
+        return getString(DEFAULT_HIGHLIGHT_MENU_KEY);
+    }
+
+    private void reloadHighlightMenuKey() {
+        final TopLevelSettings fragment =
+                (TopLevelSettings) getSupportFragmentManager().findFragmentById(R.id.main_content);
+        if (fragment != null) {
+            fragment.getArguments().putString(SettingsActivity.EXTRA_FRAGMENT_ARG_KEY,
+                    getHighlightMenuKey());
+            fragment.reloadHighlightMenuKey();
+        }
+    }
+
     private void initHomepageContainer() {
         final View view = findViewById(R.id.homepage_container);
         // Prevent inner RecyclerView gets focus and invokes scrolling.
diff --git a/src/com/android/settings/homepage/TopLevelSettings.java b/src/com/android/settings/homepage/TopLevelSettings.java
index 681ea51..a819b87 100644
--- a/src/com/android/settings/homepage/TopLevelSettings.java
+++ b/src/com/android/settings/homepage/TopLevelSettings.java
@@ -21,20 +21,27 @@
 
 import android.app.settings.SettingsEnums;
 import android.content.Context;
+import android.content.res.Configuration;
 import android.graphics.drawable.Drawable;
 import android.os.Bundle;
+import android.text.TextUtils;
+import android.util.Log;
 
 import androidx.fragment.app.Fragment;
 import androidx.preference.Preference;
 import androidx.preference.PreferenceFragmentCompat;
 import androidx.preference.PreferenceScreen;
+import androidx.recyclerview.widget.RecyclerView;
 
 import com.android.settings.R;
+import com.android.settings.SettingsActivity;
 import com.android.settings.Utils;
+import com.android.settings.activityembedding.ActivityEmbeddingUtils;
 import com.android.settings.core.SubSettingLauncher;
 import com.android.settings.dashboard.DashboardFragment;
 import com.android.settings.search.BaseSearchIndexProvider;
 import com.android.settings.support.SupportPreferenceController;
+import com.android.settings.widget.HighlightableTopLevelPreferenceAdapter;
 import com.android.settingslib.core.instrumentation.Instrumentable;
 import com.android.settingslib.search.SearchIndexable;
 
@@ -43,6 +50,11 @@
         PreferenceFragmentCompat.OnPreferenceStartFragmentCallback {
 
     private static final String TAG = "TopLevelSettings";
+    private static final String SAVED_HIGHLIGHTED_PREF = "highlighted_pref";
+
+    private HighlightableTopLevelPreferenceAdapter mTopLevelAdapter;
+
+    private String mHighlightedPreferenceKey;
 
     public TopLevelSettings() {
         final Bundle args = new Bundle();
@@ -69,6 +81,7 @@
     @Override
     public void onAttach(Context context) {
         super.onAttach(context);
+        HighlightableMenu.fromXml(context, getPreferenceScreenResId());
         use(SupportPreferenceController.class).setActivity(getActivity());
     }
 
@@ -84,6 +97,12 @@
     }
 
     @Override
+    public boolean onPreferenceTreeClick(Preference preference) {
+        setHighlightPreferenceKey(preference.getKey());
+        return super.onPreferenceTreeClick(preference);
+    }
+
+    @Override
     public boolean onPreferenceStartFragment(PreferenceFragmentCompat caller, Preference pref) {
         new SubSettingLauncher(getActivity())
                 .setDestination(pref.getFragment())
@@ -97,6 +116,20 @@
     }
 
     @Override
+    public void onCreate(Bundle icicle) {
+        super.onCreate(icicle);
+        if (icicle != null) {
+            mHighlightedPreferenceKey = icicle.getString(SAVED_HIGHLIGHTED_PREF);
+        }
+    }
+
+    @Override
+    public void onSaveInstanceState(Bundle outState) {
+        super.onSaveInstanceState(outState);
+        outState.putString(SAVED_HIGHLIGHTED_PREF, mHighlightedPreferenceKey);
+    }
+
+    @Override
     public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
         super.onCreatePreferences(savedInstanceState, rootKey);
         final PreferenceScreen screen = getPreferenceScreen();
@@ -119,11 +152,77 @@
     }
 
     @Override
+    public void onConfigurationChanged(Configuration newConfig) {
+        super.onConfigurationChanged(newConfig);
+        highlightPreferenceIfNeeded();
+    }
+
+    @Override
+    public void highlightPreferenceIfNeeded() {
+        if (mTopLevelAdapter != null) {
+            mTopLevelAdapter.requestHighlight();
+        }
+    }
+
+    /** Highlight a preference with specified key */
+    public void setHighlightPreferenceKey(String prefKey) {
+        if (mTopLevelAdapter != null) {
+            mHighlightedPreferenceKey = prefKey;
+            mTopLevelAdapter.highlightPreference(prefKey, /* scrollNeeded= */ false);
+        }
+    }
+
+    /** Highlight the previous preference */
+    public void restorePreviousHighlight() {
+        if (mTopLevelAdapter != null) {
+            mTopLevelAdapter.restorePreviousHighlight();
+        }
+    }
+
+    @Override
     protected boolean shouldForceRoundedIcon() {
         return getContext().getResources()
                 .getBoolean(R.bool.config_force_rounded_icon_TopLevelSettings);
     }
 
+    @Override
+    protected RecyclerView.Adapter onCreateAdapter(PreferenceScreen preferenceScreen) {
+        if (!ActivityEmbeddingUtils.isEmbeddingActivityEnabled(getContext())) {
+            return super.onCreateAdapter(preferenceScreen);
+        }
+
+        if (TextUtils.isEmpty(mHighlightedPreferenceKey)) {
+            mHighlightedPreferenceKey = getHighlightPrefKeyFromArguments();
+        }
+
+        Log.d(TAG, "onCreateAdapter, pref key: " + mHighlightedPreferenceKey);
+        mTopLevelAdapter = new HighlightableTopLevelPreferenceAdapter(preferenceScreen,
+                getListView(), mHighlightedPreferenceKey);
+        return mTopLevelAdapter;
+    }
+
+    void reloadHighlightMenuKey() {
+        if (mTopLevelAdapter == null) {
+            return;
+        }
+
+        mHighlightedPreferenceKey = getHighlightPrefKeyFromArguments();
+        Log.d(TAG, "reloadHighlightMenuKey, pref key: " + mHighlightedPreferenceKey);
+        mTopLevelAdapter.highlightPreference(mHighlightedPreferenceKey, /* scrollNeeded= */ true);
+    }
+
+    private String getHighlightPrefKeyFromArguments() {
+        final Bundle arguments = getArguments();
+        final String menuKey = arguments.getString(SettingsActivity.EXTRA_FRAGMENT_ARG_KEY);
+        final String prefKey = HighlightableMenu.lookupPreferenceKey(menuKey);
+        if (TextUtils.isEmpty(prefKey)) {
+            Log.e(TAG, "Invalid highlight menu key: " + menuKey);
+        } else {
+            Log.d(TAG, "Menu key: " + menuKey);
+        }
+        return prefKey;
+    }
+
     public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
             new BaseSearchIndexProvider(R.xml.top_level_settings) {
 
diff --git a/src/com/android/settings/network/EraseEuiccDataDialogFragment.java b/src/com/android/settings/network/EraseEuiccDataDialogFragment.java
index a141f0c..819d3b1 100644
--- a/src/com/android/settings/network/EraseEuiccDataDialogFragment.java
+++ b/src/com/android/settings/network/EraseEuiccDataDialogFragment.java
@@ -32,7 +32,9 @@
 
 import com.android.settings.R;
 import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
+import com.android.settings.network.helper.ConfirmationSimDeletionPredicate;
 import com.android.settings.system.ResetDashboardFragment;
+import com.android.settings.wifi.dpp.WifiDppUtils;
 
 public class EraseEuiccDataDialogFragment extends InstrumentedDialogFragment implements
         DialogInterface.OnClickListener {
@@ -73,13 +75,24 @@
         }
 
         if (which == DialogInterface.BUTTON_POSITIVE) {
-            AsyncTask.execute(new Runnable() {
-                @Override
-                public void run() {
-                    RecoverySystem.wipeEuiccData(
-                            getContext(), PACKAGE_NAME_EUICC_DATA_MANAGEMENT_CALLBACK);
-                }
-            });
+            if (ConfirmationSimDeletionPredicate.getSingleton().test(getContext())) {
+                // Create a "verify it's you" verification over keyguard
+                // when "erase" button been pressed.
+                // This might protect from erasing by some automation process.
+                WifiDppUtils.showLockScreen(getContext(), () -> runAsyncWipe());
+            } else {
+                runAsyncWipe();
+            }
         }
     }
+
+    private void runAsyncWipe() {
+        AsyncTask.execute(new Runnable() {
+            @Override
+            public void run() {
+                RecoverySystem.wipeEuiccData(
+                        getContext(), PACKAGE_NAME_EUICC_DATA_MANAGEMENT_CALLBACK);
+            }
+        });
+    }
 }
diff --git a/src/com/android/settings/network/helper/ConfirmationSimDeletionPredicate.java b/src/com/android/settings/network/helper/ConfirmationSimDeletionPredicate.java
new file mode 100644
index 0000000..420f6db
--- /dev/null
+++ b/src/com/android/settings/network/helper/ConfirmationSimDeletionPredicate.java
@@ -0,0 +1,66 @@
+/*
+ * Copyright (C) 2021 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.
+ */
+package com.android.settings.network.helper;
+
+import android.app.KeyguardManager;
+import android.content.Context;
+import android.provider.Settings;
+
+import com.android.settings.R;
+
+import java.util.function.Predicate;
+
+/**
+ * {@link Predicate} for detecting the configuration of confirm SIM deletion.
+ */
+public class ConfirmationSimDeletionPredicate implements Predicate<Context> {
+
+    public static final String KEY_CONFIRM_SIM_DELETION = "confirm_sim_deletion";
+
+    private static final ConfirmationSimDeletionPredicate sSingleton =
+            new ConfirmationSimDeletionPredicate();
+
+    // Get singleton of this predicate
+    public static final ConfirmationSimDeletionPredicate getSingleton() {
+        return sSingleton;
+    }
+
+    /**
+     * Get default configuration of confirm SIM deletion.
+     *
+     * @param Context context
+     * @return the configuration of confirm SIM deletion
+     */
+    private static boolean getDefaultValue(Context context) {
+        return context.getResources()
+                .getBoolean(R.bool.config_sim_deletion_confirmation_default_on);
+    }
+
+    /**
+     * Get the configuration of confirm SIM deletion.
+     *
+     * @param Context context
+     * @return the configuration of confirm SIM deletion
+     */
+    public boolean test(Context context) {
+        final KeyguardManager keyguardManager = context.getSystemService(KeyguardManager.class);
+        if ((keyguardManager != null) && !keyguardManager.isKeyguardSecure()) {
+            return false;
+        }
+        return Settings.Global.getInt(context.getContentResolver(), KEY_CONFIRM_SIM_DELETION,
+                getDefaultValue(context) ? 1 : 0) == 1;
+    }
+}
diff --git a/src/com/android/settings/notification/app/NotificationSettings.java b/src/com/android/settings/notification/app/NotificationSettings.java
index 99f067d..426625d 100644
--- a/src/com/android/settings/notification/app/NotificationSettings.java
+++ b/src/com/android/settings/notification/app/NotificationSettings.java
@@ -334,10 +334,10 @@
                 }
                 continue;
             }
-            // TODO(78660939): This should actually start a new task
             mAppRow.settingsIntent = intent
                     .setPackage(null)
-                    .setClassName(activityInfo.packageName, activityInfo.name);
+                    .setClassName(activityInfo.packageName, activityInfo.name)
+                    .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
             if (mChannel != null) {
                 mAppRow.settingsIntent.putExtra(Notification.EXTRA_CHANNEL_ID, mChannel.getId());
             }
diff --git a/src/com/android/settings/privacy/WorkPolicyInfoPreferenceController.java b/src/com/android/settings/privacy/WorkPolicyInfoPreferenceController.java
index 45c2c21..977d1bf 100644
--- a/src/com/android/settings/privacy/WorkPolicyInfoPreferenceController.java
+++ b/src/com/android/settings/privacy/WorkPolicyInfoPreferenceController.java
@@ -45,7 +45,7 @@
     @Override
     public boolean handlePreferenceTreeClick(Preference preference) {
         if (TextUtils.equals(getPreferenceKey(), preference.getKey())) {
-            mEnterpriseProvider.showWorkPolicyInfo();
+            mEnterpriseProvider.showWorkPolicyInfo(preference.getContext());
             return true;
         }
         return false;
diff --git a/src/com/android/settings/search/SearchFeatureProviderImpl.java b/src/com/android/settings/search/SearchFeatureProviderImpl.java
index 508d37d..6f90970 100644
--- a/src/com/android/settings/search/SearchFeatureProviderImpl.java
+++ b/src/com/android/settings/search/SearchFeatureProviderImpl.java
@@ -50,7 +50,7 @@
         if (isSettingsPackage || isAllowlistedPackage) {
             return;
         }
-        throw new SecurityException("Search result intents must be called with from a "
+        throw new SecurityException("Search result intents must be called with from an "
                 + "allowlisted package.");
     }
 
diff --git a/src/com/android/settings/security/ConfirmSimDeletionPreferenceController.java b/src/com/android/settings/security/ConfirmSimDeletionPreferenceController.java
index bf807a1..a7185e3 100644
--- a/src/com/android/settings/security/ConfirmSimDeletionPreferenceController.java
+++ b/src/com/android/settings/security/ConfirmSimDeletionPreferenceController.java
@@ -26,6 +26,7 @@
 
 import com.android.settings.R;
 import com.android.settings.core.BasePreferenceController;
+import com.android.settings.network.helper.ConfirmationSimDeletionPredicate;
 import com.android.settings.network.telephony.MobileNetworkUtils;
 import com.android.settings.overlay.FeatureFactory;
 import com.android.settings.wifi.dpp.WifiDppUtils;
@@ -34,7 +35,8 @@
 /** Enable/disable user confirmation before deleting an eSim */
 public class ConfirmSimDeletionPreferenceController extends BasePreferenceController implements
         Preference.OnPreferenceChangeListener{
-    public static final String KEY_CONFIRM_SIM_DELETION = "confirm_sim_deletion";
+    public static final String KEY_CONFIRM_SIM_DELETION =
+            ConfirmationSimDeletionPredicate.KEY_CONFIRM_SIM_DELETION;
     private boolean mConfirmationDefaultOn;
     private MetricsFeatureProvider mMetricsFeatureProvider;
 
diff --git a/src/com/android/settings/widget/HighlightableTopLevelPreferenceAdapter.java b/src/com/android/settings/widget/HighlightableTopLevelPreferenceAdapter.java
new file mode 100644
index 0000000..eeaad21
--- /dev/null
+++ b/src/com/android/settings/widget/HighlightableTopLevelPreferenceAdapter.java
@@ -0,0 +1,238 @@
+/*
+ * Copyright (C) 2021 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.
+ */
+
+package com.android.settings.widget;
+
+import android.content.Context;
+import android.graphics.drawable.Drawable;
+import android.text.TextUtils;
+import android.util.Log;
+import android.util.TypedValue;
+import android.view.View;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import androidx.annotation.VisibleForTesting;
+import androidx.preference.PreferenceGroup;
+import androidx.preference.PreferenceGroupAdapter;
+import androidx.preference.PreferenceViewHolder;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.android.settings.Utils;
+import com.android.settings.activityembedding.ActivityEmbeddingUtils;
+
+/**
+ *  Adapter for highlighting top level preferences
+ */
+public class HighlightableTopLevelPreferenceAdapter extends PreferenceGroupAdapter {
+
+    private static final String TAG = "HighlightableTopLevelAdapter";
+
+    static final long DELAY_HIGHLIGHT_DURATION_MILLIS = 100L;
+
+    @VisibleForTesting
+    final int mHighlightColor;
+    final int mTitleColorNormal;
+    final int mTitleColorHighlight;
+    final int mSummaryColorNormal;
+    final int mSummaryColorHighlight;
+    final int mIconColorNormal;
+    final int mIconColorHighlight;
+
+    private final Context mContext;
+    private final RecyclerView mRecyclerView;
+    private final int mNormalBackgroundRes;
+    private String mHighlightKey;
+    private String mPreviousHighlightKey;
+    private int mHighlightPosition = RecyclerView.NO_POSITION;
+    private boolean mHighlightNeeded;
+    private boolean mScrolled;
+
+    public HighlightableTopLevelPreferenceAdapter(PreferenceGroup preferenceGroup,
+            RecyclerView recyclerView, String key) {
+        super(preferenceGroup);
+        mRecyclerView = recyclerView;
+        mHighlightKey = key;
+        mContext = preferenceGroup.getContext();
+        final TypedValue outValue = new TypedValue();
+        mContext.getTheme().resolveAttribute(android.R.attr.selectableItemBackground,
+                outValue, true /* resolveRefs */);
+        mNormalBackgroundRes = outValue.resourceId;
+        mHighlightColor = Utils.getColorAttrDefaultColor(mContext,
+                com.android.internal.R.attr.colorAccentSecondaryVariant);
+        mTitleColorNormal = Utils.getColorAttrDefaultColor(mContext,
+                android.R.attr.textColorPrimary);
+        mTitleColorHighlight = Utils.getColorAttrDefaultColor(mContext,
+                android.R.attr.textColorPrimaryInverse);
+        mSummaryColorNormal = Utils.getColorAttrDefaultColor(mContext,
+                android.R.attr.textColorSecondary);
+        mSummaryColorHighlight = Utils.getColorAttrDefaultColor(mContext,
+                android.R.attr.textColorSecondaryInverse);
+        mIconColorNormal = Utils.getHomepageIconColor(mContext);
+        mIconColorHighlight = Utils.getHomepageIconColorHighlight(mContext);
+    }
+
+    @Override
+    public void onBindViewHolder(PreferenceViewHolder holder, int position) {
+        super.onBindViewHolder(holder, position);
+        updateBackground(holder, position);
+    }
+
+    @VisibleForTesting
+    void updateBackground(PreferenceViewHolder holder, int position) {
+        if (!isHighlightNeeded()) {
+            removeHighlightBackground(holder);
+            return;
+        }
+
+        if (position == mHighlightPosition
+                && mHighlightKey != null
+                && TextUtils.equals(mHighlightKey, getItem(position).getKey())) {
+            // This position should be highlighted.
+            addHighlightBackground(holder);
+        } else {
+            removeHighlightBackground(holder);
+        }
+    }
+
+    /**
+     * A function can highlight a specific setting in recycler view.
+     */
+    public void requestHighlight() {
+        if (mRecyclerView == null || TextUtils.isEmpty(mHighlightKey)) {
+            return;
+        }
+
+        if (TextUtils.isEmpty(mHighlightKey)) {
+            // De-highlight previous preference.
+            final int previousPosition = mHighlightPosition;
+            mHighlightPosition = RecyclerView.NO_POSITION;
+            mScrolled = true;
+            if (previousPosition >= 0) {
+                notifyItemChanged(previousPosition);
+            }
+            return;
+        }
+
+        final int position = getPreferenceAdapterPosition(mHighlightKey);
+        if (position < 0) {
+            return;
+        }
+
+        final boolean highlightNeeded = isHighlightNeeded();
+        if (highlightNeeded) {
+            scrollToPositionIfNeeded(position);
+        }
+
+        // Turn on/off highlight when screen split mode is changed.
+        if (highlightNeeded != mHighlightNeeded) {
+            Log.d(TAG, "Highlight change needed: " + highlightNeeded);
+            mHighlightNeeded = highlightNeeded;
+            mHighlightPosition = position;
+            notifyItemChanged(position);
+            return;
+        }
+
+        if (position == mHighlightPosition) {
+            return;
+        }
+
+        final int previousPosition = mHighlightPosition;
+        mHighlightPosition = position;
+        Log.d(TAG, "Request highlight position " + position);
+        Log.d(TAG, "Is highlight needed: " + highlightNeeded);
+        if (!highlightNeeded) {
+            return;
+        }
+
+        // Highlight preference.
+        notifyItemChanged(position);
+
+        // De-highlight previous preference.
+        if (previousPosition >= 0) {
+            notifyItemChanged(previousPosition);
+        }
+    }
+
+    /**
+     * A function that highlights a setting by specifying a preference key. Usually used whenever a
+     * preference is clicked.
+     */
+    public void highlightPreference(String key, boolean scrollNeeded) {
+        mPreviousHighlightKey = mHighlightKey;
+        mHighlightKey = key;
+        mScrolled = !scrollNeeded;
+        requestHighlight();
+    }
+
+    /**
+     * A function that restores the previous highlighted setting.
+     */
+    public void restorePreviousHighlight() {
+        mHighlightKey = mPreviousHighlightKey;
+        requestHighlight();
+    }
+
+    private void scrollToPositionIfNeeded(int position) {
+        if (mScrolled || position < 0) {
+            return;
+        }
+
+        // Only when the recyclerView is loaded, it can be scrolled
+        final View view = mRecyclerView.getChildAt(position);
+        if (view == null) {
+            mRecyclerView.postDelayed(() -> scrollToPositionIfNeeded(position),
+                    DELAY_HIGHLIGHT_DURATION_MILLIS);
+            return;
+        }
+
+        mScrolled = true;
+        Log.d(TAG, "Scroll to position " + position);
+        // Scroll to the top to reset the position.
+        mRecyclerView.nestedScrollBy(0, -mRecyclerView.getHeight());
+
+        final int scrollY = view.getTop();
+        if (scrollY > 0) {
+            mRecyclerView.nestedScrollBy(0, scrollY);
+        }
+    }
+
+    private void addHighlightBackground(PreferenceViewHolder holder) {
+        final View v = holder.itemView;
+        v.setBackgroundColor(mHighlightColor);
+        ((TextView) v.findViewById(android.R.id.title)).setTextColor(mTitleColorHighlight);
+        ((TextView) v.findViewById(android.R.id.summary)).setTextColor(mSummaryColorHighlight);
+        final Drawable drawable = ((ImageView) v.findViewById(android.R.id.icon)).getDrawable();
+        if (drawable != null) {
+            drawable.setTint(mIconColorHighlight);
+        }
+    }
+
+    private void removeHighlightBackground(PreferenceViewHolder holder) {
+        final View v = holder.itemView;
+        v.setBackgroundResource(mNormalBackgroundRes);
+        ((TextView) v.findViewById(android.R.id.title)).setTextColor(mTitleColorNormal);
+        ((TextView) v.findViewById(android.R.id.summary)).setTextColor(mSummaryColorNormal);
+        final Drawable drawable = ((ImageView) v.findViewById(android.R.id.icon)).getDrawable();
+        if (drawable != null) {
+            drawable.setTint(mIconColorNormal);
+        }
+    }
+
+    private boolean isHighlightNeeded() {
+        return ActivityEmbeddingUtils.isTwoPaneResolution(mContext);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/accessibility/AccessibilityScreenSizeForSetupWizardActivityTest.java b/tests/robotests/src/com/android/settings/accessibility/AccessibilityScreenSizeForSetupWizardActivityTest.java
index 05e5b32..29e921c 100644
--- a/tests/robotests/src/com/android/settings/accessibility/AccessibilityScreenSizeForSetupWizardActivityTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/AccessibilityScreenSizeForSetupWizardActivityTest.java
@@ -17,20 +17,24 @@
 package com.android.settings.accessibility;
 
 import static com.android.settings.accessibility.AccessibilityScreenSizeForSetupWizardActivity.VISION_FRAGMENT_NO;
+import static com.android.settings.core.SettingsBaseActivity.EXTRA_PAGE_TRANSITION_TYPE;
 
 import static com.google.common.truth.Truth.assertThat;
 
+import static org.robolectric.Shadows.shadowOf;
+
 import android.content.Context;
 import android.content.Intent;
 
 import androidx.test.core.app.ApplicationProvider;
 
 import com.android.settings.R;
+import com.android.settings.accessibility.AccessibilityScreenSizeForSetupWizardActivity.FragmentType;
+import com.android.settingslib.transition.SettingsTransitionHelper.TransitionType;
 
 import com.google.android.setupcompat.template.FooterBarMixin;
 import com.google.android.setupdesign.GlifLayout;
 
-import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.robolectric.Robolectric;
@@ -39,46 +43,98 @@
 /** Tests for {@link AccessibilityScreenSizeForSetupWizardActivity} */
 @RunWith(RobolectricTestRunner.class)
 public class AccessibilityScreenSizeForSetupWizardActivityTest {
-    private static final int DISPLAY_SIZE_FRAGMENT_NO = 1;
 
     private Context mContext = ApplicationProvider.getApplicationContext();
-    private AccessibilityScreenSizeForSetupWizardActivity mActivity;
 
-    @Before
-    public void setup() {
+    private AccessibilityScreenSizeForSetupWizardActivity setupActivity(int fragmentType) {
         final Intent intent = new Intent();
-        intent.putExtra(VISION_FRAGMENT_NO,
-                mContext.getResources().getInteger(R.integer.suw_font_size_fragment_no));
-        mActivity = Robolectric.buildActivity(AccessibilityScreenSizeForSetupWizardActivity.class,
+        intent.putExtra(VISION_FRAGMENT_NO, fragmentType);
+        return Robolectric.buildActivity(AccessibilityScreenSizeForSetupWizardActivity.class,
+                intent).create().get();
+    }
+
+    private AccessibilityScreenSizeForSetupWizardActivity setupActivity(int fragmentType,
+            int transitionType) {
+        final Intent intent = new Intent();
+        intent.putExtra(VISION_FRAGMENT_NO, fragmentType);
+        intent.putExtra(EXTRA_PAGE_TRANSITION_TYPE, transitionType);
+        return Robolectric.buildActivity(AccessibilityScreenSizeForSetupWizardActivity.class,
                 intent).create().get();
     }
 
     @Test
-    public void generateHeader_setPageNoAsFontSize_returnFontSizeTitle() {
-        mActivity.generateHeader(
-                mActivity.getResources().getInteger(R.integer.suw_font_size_fragment_no));
+    public void setupActivity_fontSizePage_returnFontSizeTitle() {
+        final AccessibilityScreenSizeForSetupWizardActivity activity =
+                setupActivity(FragmentType.FONT_SIZE, TransitionType.TRANSITION_FADE);
 
-        final GlifLayout layout = mActivity.findViewById(R.id.setup_wizard_layout);
-
+        final GlifLayout layout = activity.findViewById(R.id.setup_wizard_layout);
         assertThat(layout.getHeaderText()).isEqualTo(mContext.getText(R.string.title_font_size));
     }
 
     @Test
-    public void generateHeader_setPageNoAsDisplaySize_returnDisplaySizeTitle() {
-        mActivity.generateHeader(DISPLAY_SIZE_FRAGMENT_NO);
+    public void setupActivity_generateDoneButton() {
+        final AccessibilityScreenSizeForSetupWizardActivity activity =
+                setupActivity(FragmentType.FONT_SIZE, TransitionType.TRANSITION_FADE);
 
-        final GlifLayout layout = mActivity.findViewById(R.id.setup_wizard_layout);
-
-        assertThat(layout.getHeaderText()).isEqualTo(mContext.getText(R.string.screen_zoom_title));
+        final GlifLayout layout = activity.findViewById(R.id.setup_wizard_layout);
+        final FooterBarMixin mixin = layout.getMixin(FooterBarMixin.class);
+        assertThat(mixin.getPrimaryButton().getText()).isEqualTo(mContext.getText(R.string.done));
     }
 
     @Test
-    public void initFooterButton_generateDoneButton() {
-        mActivity.initFooterButton();
+    public void onPause_getPendingTransitionEnterAnimationResourceId_transitionFade_should() {
+        final AccessibilityScreenSizeForSetupWizardActivity activity =
+                setupActivity(FragmentType.FONT_SIZE, TransitionType.TRANSITION_FADE);
 
-        final GlifLayout layout = mActivity.findViewById(R.id.setup_wizard_layout);
-        final FooterBarMixin mixin = layout.getMixin(FooterBarMixin.class);
+        activity.onPause();
 
-        assertThat(mixin.getPrimaryButton().getText()).isEqualTo(mContext.getText(R.string.done));
+        assertThat(shadowOf(activity).getPendingTransitionEnterAnimationResourceId())
+                .isEqualTo(R.anim.sud_stay);
+    }
+
+    @Test
+    public void onPause_getPendingTransitionExitAnimationResourceId_transitionFade_should() {
+        final AccessibilityScreenSizeForSetupWizardActivity activity =
+                setupActivity(FragmentType.FONT_SIZE, TransitionType.TRANSITION_FADE);
+
+        activity.onPause();
+
+        assertThat(shadowOf(activity).getPendingTransitionExitAnimationResourceId())
+                .isEqualTo(android.R.anim.fade_out);
+    }
+
+    @Test
+    public void onPause_getPendingTransitionEnterAnimationResourceId_transitionNone_should() {
+        final AccessibilityScreenSizeForSetupWizardActivity activity =
+                setupActivity(FragmentType.FONT_SIZE);
+
+        activity.onPause();
+
+        assertThat(shadowOf(activity).getPendingTransitionEnterAnimationResourceId())
+                .isNotEqualTo(R.anim.sud_stay);
+    }
+
+    @Test
+    public void onPause_getPendingTransitionExitAnimationResourceId_transitionNone_should() {
+        final AccessibilityScreenSizeForSetupWizardActivity activity =
+                setupActivity(FragmentType.FONT_SIZE);
+
+        activity.onPause();
+
+        assertThat(shadowOf(activity).getPendingTransitionExitAnimationResourceId())
+                .isNotEqualTo(android.R.anim.fade_out);
+    }
+
+    @Test
+    public void generateHeader_displaySizePage_returnDisplaySizeTitle() {
+        final Intent intent = new Intent();
+        intent.putExtra(VISION_FRAGMENT_NO, FragmentType.SCREEN_SIZE);
+        intent.putExtra(EXTRA_PAGE_TRANSITION_TYPE, TransitionType.TRANSITION_FADE);
+        final AccessibilityScreenSizeForSetupWizardActivity activity = Robolectric.buildActivity(
+                AccessibilityScreenSizeForSetupWizardActivity.class, intent).get();
+        activity.setContentView(R.layout.accessibility_screen_size_setup_wizard);
+        activity.generateHeader();
+        final GlifLayout layout = activity.findViewById(R.id.setup_wizard_layout);
+        assertThat(layout.getHeaderText()).isEqualTo(mContext.getText(R.string.screen_zoom_title));
     }
 }
diff --git a/tests/robotests/src/com/android/settings/accessibility/AccessibilitySettingsForSetupWizardActivityTest.java b/tests/robotests/src/com/android/settings/accessibility/AccessibilitySettingsForSetupWizardActivityTest.java
index 4d9668a..0849eb2 100644
--- a/tests/robotests/src/com/android/settings/accessibility/AccessibilitySettingsForSetupWizardActivityTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/AccessibilitySettingsForSetupWizardActivityTest.java
@@ -27,6 +27,7 @@
 import androidx.test.filters.SmallTest;
 
 import com.android.settings.R;
+import com.android.settings.accessibility.AccessibilityScreenSizeForSetupWizardActivity.FragmentType;
 
 import com.google.android.setupcompat.util.WizardManagerHelper;
 
@@ -66,7 +67,7 @@
         final Intent launchIntent = Shadows.shadowOf(activity).getNextStartedActivity();
         assertThat(launchIntent).isNotNull();
         assertThat(launchIntent.getIntExtra(VISION_FRAGMENT_NO, -1)).isEqualTo(
-                activity.getResources().getInteger(R.integer.suw_font_size_fragment_no));
+                FragmentType.FONT_SIZE);
         assertThat(activity.isFinishing()).isTrue();
     }
 
diff --git a/tests/robotests/src/com/android/settings/accessibility/FontSizePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/FontSizePreferenceControllerTest.java
new file mode 100644
index 0000000..a52c0fe
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/accessibility/FontSizePreferenceControllerTest.java
@@ -0,0 +1,75 @@
+/*
+ * Copyright (C) 2021 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.
+ */
+
+package com.android.settings.accessibility;
+
+import static com.android.settings.accessibility.AccessibilityScreenSizeForSetupWizardActivity.VISION_FRAGMENT_NO;
+import static com.android.settings.core.BasePreferenceController.AVAILABLE;
+import static com.android.settings.core.SettingsBaseActivity.EXTRA_PAGE_TRANSITION_TYPE;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.robolectric.Shadows.shadowOf;
+
+import android.app.Activity;
+import android.content.Intent;
+
+import androidx.preference.Preference;
+
+import com.android.settings.accessibility.AccessibilityScreenSizeForSetupWizardActivity.FragmentType;
+import com.android.settingslib.transition.SettingsTransitionHelper.TransitionType;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.Robolectric;
+import org.robolectric.RobolectricTestRunner;
+
+/** Tests for {@link FontSizePreferenceController}. */
+@RunWith(RobolectricTestRunner.class)
+public class FontSizePreferenceControllerTest {
+    private static final String TEST_KEY = "test_key";
+
+    private Activity mActivity;
+    private FontSizePreferenceController mController;
+    Preference mPreference;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        mActivity = Robolectric.setupActivity(Activity.class);
+        mController = new FontSizePreferenceController(mActivity, TEST_KEY);
+        mPreference = new Preference(mActivity);
+        mPreference.setKey(TEST_KEY);
+    }
+
+    @Test
+    public void getAvailabilityStatus_returnAvailable() {
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
+    }
+
+    @Test
+    public void handlePreferenceTreeClick_launchActivityWithExpectedValues() {
+        mController.handlePreferenceTreeClick(mPreference);
+
+        final Intent nextActivity = shadowOf(mActivity).getNextStartedActivity();
+        assertThat(nextActivity.getIntExtra(VISION_FRAGMENT_NO, /* defaultValue= */-1))
+                .isEqualTo(FragmentType.FONT_SIZE);
+        assertThat(nextActivity.getIntExtra(EXTRA_PAGE_TRANSITION_TYPE, /* defaultValue= */-1))
+                .isEqualTo(TransitionType.TRANSITION_FADE);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/accessibility/ScreenSizePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/ScreenSizePreferenceControllerTest.java
new file mode 100644
index 0000000..1cbf78e
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/accessibility/ScreenSizePreferenceControllerTest.java
@@ -0,0 +1,75 @@
+/*
+ * Copyright (C) 2021 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.
+ */
+
+package com.android.settings.accessibility;
+
+import static com.android.settings.accessibility.AccessibilityScreenSizeForSetupWizardActivity.VISION_FRAGMENT_NO;
+import static com.android.settings.core.BasePreferenceController.AVAILABLE;
+import static com.android.settings.core.SettingsBaseActivity.EXTRA_PAGE_TRANSITION_TYPE;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.robolectric.Shadows.shadowOf;
+
+import android.app.Activity;
+import android.content.Intent;
+
+import androidx.preference.Preference;
+
+import com.android.settings.accessibility.AccessibilityScreenSizeForSetupWizardActivity.FragmentType;
+import com.android.settingslib.transition.SettingsTransitionHelper.TransitionType;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.Robolectric;
+import org.robolectric.RobolectricTestRunner;
+
+/** Tests for {@link ScreenSizePreferenceController}. */
+@RunWith(RobolectricTestRunner.class)
+public class ScreenSizePreferenceControllerTest {
+    private static final String TEST_KEY = "test_key";
+
+    private Activity mActivity;
+    private ScreenSizePreferenceController mController;
+    Preference mPreference;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        mActivity = Robolectric.setupActivity(Activity.class);
+        mController = new ScreenSizePreferenceController(mActivity, TEST_KEY);
+        mPreference = new Preference(mActivity);
+        mPreference.setKey(TEST_KEY);
+    }
+
+    @Test
+    public void getAvailabilityStatus_returnAvailable() {
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
+    }
+
+    @Test
+    public void handlePreferenceTreeClick_launchActivityWithExpectedValues() {
+        mController.handlePreferenceTreeClick(mPreference);
+
+        final Intent nextActivity = shadowOf(mActivity).getNextStartedActivity();
+        assertThat(nextActivity.getIntExtra(VISION_FRAGMENT_NO, /* defaultValue= */-1))
+                .isEqualTo(FragmentType.SCREEN_SIZE);
+        assertThat(nextActivity.getIntExtra(EXTRA_PAGE_TRANSITION_TYPE, /* defaultValue= */-1))
+                .isEqualTo(TransitionType.TRANSITION_FADE);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/accounts/AccountDetailDashboardFragmentTest.java b/tests/robotests/src/com/android/settings/accounts/AccountDetailDashboardFragmentTest.java
index a827284..cccca9c 100644
--- a/tests/robotests/src/com/android/settings/accounts/AccountDetailDashboardFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/accounts/AccountDetailDashboardFragmentTest.java
@@ -43,7 +43,6 @@
 import androidx.fragment.app.FragmentActivity;
 import androidx.preference.Preference;
 
-import com.android.internal.logging.nano.MetricsProto;
 import com.android.settings.dashboard.DashboardFeatureProviderImpl;
 import com.android.settings.testutils.shadow.ShadowAccountManager;
 import com.android.settings.testutils.shadow.ShadowUserManager;
@@ -151,9 +150,9 @@
 
         final FragmentActivity activity = Robolectric.setupActivity(FragmentActivity.class);
         final Preference preference = new Preference(mContext);
-        dashboardFeatureProvider.bindPreferenceToTileAndGetObservers(activity,
-                false /* forceRoundedIcon */, MetricsProto.MetricsEvent.DASHBOARD_SUMMARY,
-                preference, tile, null /* key */, Preference.DEFAULT_ORDER);
+        dashboardFeatureProvider.bindPreferenceToTileAndGetObservers(activity, mFragment,
+                false /* forceRoundedIcon */, preference, tile, null /* key */,
+                Preference.DEFAULT_ORDER);
 
         assertThat(preference.getKey()).isEqualTo(tile.getKey(mContext));
         preference.performClick();
diff --git a/tests/robotests/src/com/android/settings/dashboard/DashboardFeatureProviderImplTest.java b/tests/robotests/src/com/android/settings/dashboard/DashboardFeatureProviderImplTest.java
index 5d6fdf9..e7c99c8 100644
--- a/tests/robotests/src/com/android/settings/dashboard/DashboardFeatureProviderImplTest.java
+++ b/tests/robotests/src/com/android/settings/dashboard/DashboardFeatureProviderImplTest.java
@@ -114,6 +114,7 @@
     private Bundle mSwitchMetaData;
     private DashboardFeatureProviderImpl mImpl;
     private boolean mForceRoundedIcon;
+    private DashboardFragment mFragment;
 
     @Before
     public void setUp() {
@@ -144,6 +145,7 @@
                 .thenReturn(new ResolveInfo());
         mFeatureFactory = FakeFeatureFactory.setupForTest();
         mImpl = new DashboardFeatureProviderImpl(mContext);
+        mFragment = new TestFragment();
     }
 
     @Test
@@ -159,8 +161,8 @@
         doReturn(Icon.createWithBitmap(Bitmap.createBitmap(1, 1, Bitmap.Config.RGB_565)))
                 .when(tile).getIcon(any(Context.class));
         mActivityInfo.metaData.putString(SettingsActivity.META_DATA_KEY_FRAGMENT_CLASS, "HI");
-        mImpl.bindPreferenceToTileAndGetObservers(mActivity, mForceRoundedIcon,
-                MetricsEvent.SETTINGS_GESTURES, preference, tile, "123", Preference.DEFAULT_ORDER);
+        mImpl.bindPreferenceToTileAndGetObservers(mActivity, mFragment, mForceRoundedIcon,
+                preference, tile, "123", Preference.DEFAULT_ORDER);
 
         assertThat(preference.getTitle()).isEqualTo(mContext.getText(R.string.settings_label));
         assertThat(preference.getSummary())
@@ -180,8 +182,8 @@
         doReturn(Icon.createWithBitmap(Bitmap.createBitmap(1, 1, Bitmap.Config.RGB_565)))
                 .when(tile).getIcon(any(Context.class));
         final List<DynamicDataObserver> observers = mImpl.bindPreferenceToTileAndGetObservers(
-                mActivity, mForceRoundedIcon, MetricsEvent.SETTINGS_GESTURES, preference, tile,
-                null /* key*/, Preference.DEFAULT_ORDER);
+                mActivity, mFragment, mForceRoundedIcon, preference, tile, null /* key*/,
+                Preference.DEFAULT_ORDER);
 
         assertThat(preference.getTitle()).isEqualTo(mContext.getText(R.string.settings_label));
         assertThat(preference.getSummary())
@@ -198,8 +200,8 @@
         mActivityInfo.metaData.putInt(META_DATA_KEY_ORDER, 10);
         final Tile tile = new ActivityTile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE);
 
-        mImpl.bindPreferenceToTileAndGetObservers(mActivity, mForceRoundedIcon,
-                MetricsEvent.SETTINGS_GESTURES, preference, tile, "123", Preference.DEFAULT_ORDER);
+        mImpl.bindPreferenceToTileAndGetObservers(mActivity, mFragment, mForceRoundedIcon,
+                preference, tile, "123", Preference.DEFAULT_ORDER);
 
         assertThat(preference.getFragment()).isNull();
         assertThat(preference.getOnPreferenceClickListener()).isNotNull();
@@ -214,8 +216,8 @@
         tile.userHandle.add(mock(UserHandle.class));
         tile.userHandle.add(mock(UserHandle.class));
 
-        mImpl.bindPreferenceToTileAndGetObservers(mActivity, mForceRoundedIcon,
-                MetricsEvent.SETTINGS_GESTURES, preference, tile, "123", Preference.DEFAULT_ORDER);
+        mImpl.bindPreferenceToTileAndGetObservers(mActivity, mFragment, mForceRoundedIcon,
+                preference, tile, "123", Preference.DEFAULT_ORDER);
         preference.getOnPreferenceClickListener().onPreferenceClick(null);
 
         verify(mActivity).getSupportFragmentManager();
@@ -231,8 +233,8 @@
         when(mActivity.getSystemService(Context.USER_SERVICE))
                 .thenReturn(mUserManager);
 
-        mImpl.bindPreferenceToTileAndGetObservers(mActivity, mForceRoundedIcon,
-                MetricsEvent.SETTINGS_GESTURES, preference, tile, "123", Preference.DEFAULT_ORDER);
+        mImpl.bindPreferenceToTileAndGetObservers(mActivity, mFragment, mForceRoundedIcon,
+                preference, tile, "123", Preference.DEFAULT_ORDER);
         preference.getOnPreferenceClickListener().onPreferenceClick(null);
 
         verify(mFeatureFactory.metricsFeatureProvider).logStartedIntent(
@@ -250,8 +252,8 @@
         tile.userHandle = new ArrayList<>();
         tile.userHandle.add(mock(UserHandle.class));
 
-        mImpl.bindPreferenceToTileAndGetObservers(mActivity, mForceRoundedIcon,
-                MetricsEvent.SETTINGS_GESTURES, preference, tile, "123", Preference.DEFAULT_ORDER);
+        mImpl.bindPreferenceToTileAndGetObservers(mActivity, mFragment, mForceRoundedIcon,
+                preference, tile, "123", Preference.DEFAULT_ORDER);
         preference.getOnPreferenceClickListener().onPreferenceClick(null);
         verify(mFeatureFactory.metricsFeatureProvider).logStartedIntent(
                 any(Intent.class),
@@ -263,8 +265,8 @@
     @Test
     public void bindPreference_nullPreference_shouldIgnore() {
         final Tile tile = mock(Tile.class);
-        mImpl.bindPreferenceToTileAndGetObservers(mActivity, mForceRoundedIcon,
-                MetricsEvent.VIEW_UNKNOWN, null, tile, "123", Preference.DEFAULT_ORDER);
+        mImpl.bindPreferenceToTileAndGetObservers(mActivity, mFragment, mForceRoundedIcon,
+                null /* keys */, tile, "123", Preference.DEFAULT_ORDER);
 
         verifyZeroInteractions(tile);
     }
@@ -273,8 +275,8 @@
     public void bindPreference_withNullKeyNullPriority_shouldGenerateKeyAndPriority() {
         final Preference preference = new Preference(RuntimeEnvironment.application);
         final Tile tile = new ActivityTile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE);
-        mImpl.bindPreferenceToTileAndGetObservers(mActivity, mForceRoundedIcon,
-                MetricsEvent.VIEW_UNKNOWN, preference, tile, null /*key */,
+        mImpl.bindPreferenceToTileAndGetObservers(mActivity, mFragment, mForceRoundedIcon,
+                preference, tile, null /* key */,
                 Preference.DEFAULT_ORDER);
 
         assertThat(preference.getKey()).isNotNull();
@@ -288,9 +290,8 @@
 
         final Tile tile = new ActivityTile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE);
 
-        mImpl.bindPreferenceToTileAndGetObservers(mActivity, mForceRoundedIcon,
-                MetricsEvent.VIEW_UNKNOWN, preference, tile, null /*key */,
-                Preference.DEFAULT_ORDER);
+        mImpl.bindPreferenceToTileAndGetObservers(mActivity, mFragment, mForceRoundedIcon,
+                preference, tile, null /* key */, Preference.DEFAULT_ORDER);
 
         assertThat(preference.getSummary()).isNull();
     }
@@ -304,8 +305,8 @@
         mActivityInfo.metaData.putString(TileUtils.META_DATA_PREFERENCE_SUMMARY_URI, uriString);
 
         final List<DynamicDataObserver> observers = mImpl.bindPreferenceToTileAndGetObservers(
-                mActivity, mForceRoundedIcon, MetricsEvent.VIEW_UNKNOWN, preference, tile,
-                null /*key */, Preference.DEFAULT_ORDER);
+                mActivity, mFragment, mForceRoundedIcon, preference, tile, null /* key */,
+                Preference.DEFAULT_ORDER);
 
         assertThat(preference.getSummary()).isEqualTo(ShadowTileUtils.MOCK_SUMMARY);
         assertThat(observers.get(0).getUri().toString()).isEqualTo(uriString);
@@ -320,8 +321,8 @@
         mActivityInfo.metaData.putString(TileUtils.META_DATA_PREFERENCE_TITLE_URI, uriString);
 
         final List<DynamicDataObserver> observers = mImpl.bindPreferenceToTileAndGetObservers(
-                mActivity, mForceRoundedIcon, MetricsEvent.VIEW_UNKNOWN, preference, tile,
-                null /*key */, Preference.DEFAULT_ORDER);
+                mActivity, mFragment, mForceRoundedIcon, preference, tile, null /* key */,
+                Preference.DEFAULT_ORDER);
 
         assertThat(preference.getTitle()).isEqualTo(ShadowTileUtils.MOCK_SUMMARY);
         assertThat(observers.get(0).getUri().toString()).isEqualTo(uriString);
@@ -336,9 +337,8 @@
         final Bundle bundle = new Bundle();
         bundle.putBoolean(EXTRA_SWITCH_SET_CHECKED_ERROR, false);
         ShadowTileUtils.setResultBundle(bundle);
-        mImpl.bindPreferenceToTileAndGetObservers(mActivity, mForceRoundedIcon,
-                MetricsEvent.VIEW_UNKNOWN, preference, tile, null /*key */,
-                Preference.DEFAULT_ORDER);
+        mImpl.bindPreferenceToTileAndGetObservers(mActivity, mFragment, mForceRoundedIcon,
+                preference, tile, null /* key */, Preference.DEFAULT_ORDER);
 
         preference.callChangeListener(false);
 
@@ -358,9 +358,8 @@
         final Bundle bundle = new Bundle();
         bundle.putBoolean(EXTRA_SWITCH_SET_CHECKED_ERROR, true);
         ShadowTileUtils.setResultBundle(bundle);
-        mImpl.bindPreferenceToTileAndGetObservers(mActivity, mForceRoundedIcon,
-                MetricsEvent.VIEW_UNKNOWN, preference, tile, null /*key */,
-                Preference.DEFAULT_ORDER);
+        mImpl.bindPreferenceToTileAndGetObservers(mActivity, mFragment, mForceRoundedIcon,
+                preference, tile, null /* key */, Preference.DEFAULT_ORDER);
 
         preference.callChangeListener(true);
 
@@ -378,8 +377,8 @@
         final Tile tile = new ProviderTile(mProviderInfo, CategoryKey.CATEGORY_HOMEPAGE,
                 mSwitchMetaData);
         final List<DynamicDataObserver> observers = mImpl.bindPreferenceToTileAndGetObservers(
-                mActivity, mForceRoundedIcon, MetricsEvent.VIEW_UNKNOWN, preference, tile,
-                null /*key */, Preference.DEFAULT_ORDER);
+                mActivity, mFragment, mForceRoundedIcon, preference, tile, null /* key */,
+                Preference.DEFAULT_ORDER);
 
         ShadowTileUtils.setProviderChecked(false);
         observers.get(0).onDataChanged();
@@ -397,9 +396,8 @@
         final Preference preference = new Preference(RuntimeEnvironment.application);
         mActivityInfo.metaData.putString(META_DATA_PREFERENCE_KEYHINT, "key");
         final Tile tile = new ActivityTile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE);
-        mImpl.bindPreferenceToTileAndGetObservers(mActivity, mForceRoundedIcon,
-                MetricsEvent.VIEW_UNKNOWN, preference, tile, null /* key */,
-                Preference.DEFAULT_ORDER);
+        mImpl.bindPreferenceToTileAndGetObservers(mActivity, mFragment, mForceRoundedIcon,
+                preference, tile, null /* key */, Preference.DEFAULT_ORDER);
 
         assertThat(preference.getKey()).isEqualTo(tile.getKey(mContext));
     }
@@ -483,8 +481,8 @@
         mActivityInfo.metaData.putInt(META_DATA_KEY_ORDER, 10);
         final Tile tile = new ActivityTile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE);
 
-        mImpl.bindPreferenceToTileAndGetObservers(mActivity, mForceRoundedIcon,
-                MetricsEvent.VIEW_UNKNOWN, preference, tile, "123", baseOrder);
+        mImpl.bindPreferenceToTileAndGetObservers(mActivity, mFragment, mForceRoundedIcon,
+                preference, tile, "123", baseOrder);
 
         assertThat(preference.getOrder()).isEqualTo(tile.getOrder() + baseOrder);
     }
@@ -496,8 +494,8 @@
         mActivityInfo.metaData.putInt(META_DATA_KEY_ORDER, 10);
         final Tile tile = new ActivityTile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE);
         mActivityInfo.metaData.putInt(META_DATA_KEY_ORDER, testOrder);
-        mImpl.bindPreferenceToTileAndGetObservers(mActivity, mForceRoundedIcon,
-                MetricsEvent.VIEW_UNKNOWN, preference, tile, "123", Preference.DEFAULT_ORDER);
+        mImpl.bindPreferenceToTileAndGetObservers(mActivity, mFragment, mForceRoundedIcon,
+                preference, tile, "123", Preference.DEFAULT_ORDER);
 
         assertThat(preference.getOrder()).isEqualTo(testOrder);
     }
@@ -508,8 +506,8 @@
         final Tile tile = new ActivityTile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE);
         mActivityInfo.metaData.putString(META_DATA_KEY_ORDER, "hello");
 
-        mImpl.bindPreferenceToTileAndGetObservers(mActivity, mForceRoundedIcon,
-                MetricsEvent.VIEW_UNKNOWN, preference, tile, "123", Preference.DEFAULT_ORDER);
+        mImpl.bindPreferenceToTileAndGetObservers(mActivity, mFragment, mForceRoundedIcon,
+                preference, tile, "123", Preference.DEFAULT_ORDER);
 
         assertThat(preference.getOrder()).isEqualTo(Preference.DEFAULT_ORDER);
     }
@@ -522,8 +520,8 @@
         mActivityInfo.metaData.putString(META_DATA_PREFERENCE_KEYHINT, "key");
         mActivityInfo.metaData.putString("com.android.settings.intent.action", "TestAction");
         tile.userHandle = null;
-        mImpl.bindPreferenceToTileAndGetObservers(activity, mForceRoundedIcon,
-                MetricsEvent.SETTINGS_GESTURES, preference, tile, "123", Preference.DEFAULT_ORDER);
+        mImpl.bindPreferenceToTileAndGetObservers(activity, mFragment, mForceRoundedIcon,
+                preference, tile, "123", Preference.DEFAULT_ORDER);
         preference.performClick();
         ShadowActivity shadowActivity = Shadows.shadowOf(activity);
 
@@ -546,8 +544,8 @@
         mActivityInfo.metaData.putString("com.android.settings.intent.action", "TestAction");
         tile.userHandle = null;
 
-        mImpl.bindPreferenceToTileAndGetObservers(activity, mForceRoundedIcon,
-                MetricsEvent.SETTINGS_GESTURES, preference, tile, "123", Preference.DEFAULT_ORDER);
+        mImpl.bindPreferenceToTileAndGetObservers(activity, mFragment, mForceRoundedIcon,
+                preference, tile, "123", Preference.DEFAULT_ORDER);
         preference.performClick();
 
         final ShadowActivity.IntentForResult launchIntent =
@@ -669,4 +667,22 @@
         assertThat(argument.getValue().getIdentifier()).isEqualTo(0);
         verify(mActivity, never()).getSupportFragmentManager();
     }
+
+    private static class TestFragment extends DashboardFragment {
+
+        @Override
+        public int getMetricsCategory() {
+            return MetricsEvent.SETTINGS_GESTURES;
+        }
+
+        @Override
+        protected int getPreferenceScreenResId() {
+            return R.xml.gestures;
+        }
+
+        @Override
+        protected String getLogTag() {
+            return "TestFragment";
+        }
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/enterprise/EnterprisePrivacyFeatureProviderImplTest.java b/tests/robotests/src/com/android/settings/enterprise/EnterprisePrivacyFeatureProviderImplTest.java
index e3cd5d2..e3f58f4 100644
--- a/tests/robotests/src/com/android/settings/enterprise/EnterprisePrivacyFeatureProviderImplTest.java
+++ b/tests/robotests/src/com/android/settings/enterprise/EnterprisePrivacyFeatureProviderImplTest.java
@@ -356,7 +356,7 @@
         addWorkPolicyInfoIntent(mOwner.getPackageName(), true, false);
         assertThat(mProvider.hasWorkPolicyInfo()).isFalse();
 
-        assertThat(mProvider.showWorkPolicyInfo()).isFalse();
+        assertThat(mProvider.showWorkPolicyInfo(mContext)).isFalse();
         verify(mContext, never()).startActivity(any());
     }
 
@@ -365,12 +365,12 @@
         // If the intent is not resolved, then there's no info to show for DO
         when(mDevicePolicyManager.getDeviceOwnerComponentOnAnyUser()).thenReturn(mOwner);
         assertThat(mProvider.hasWorkPolicyInfo()).isFalse();
-        assertThat(mProvider.showWorkPolicyInfo()).isFalse();
+        assertThat(mProvider.showWorkPolicyInfo(mContext)).isFalse();
 
         // If the intent is resolved, then we can use it to launch the activity
         Intent intent = addWorkPolicyInfoIntent(mOwner.getPackageName(), true, false);
         assertThat(mProvider.hasWorkPolicyInfo()).isTrue();
-        assertThat(mProvider.showWorkPolicyInfo()).isTrue();
+        assertThat(mProvider.showWorkPolicyInfo(mContext)).isTrue();
         verify(mContext).startActivity(intentEquals(intent));
     }
 
@@ -382,12 +382,12 @@
 
         // If the intent is not resolved, then there's no info to show for PO
         assertThat(mProvider.hasWorkPolicyInfo()).isFalse();
-        assertThat(mProvider.showWorkPolicyInfo()).isFalse();
+        assertThat(mProvider.showWorkPolicyInfo(mContext)).isFalse();
 
         // If the intent is resolved, then we can use it to launch the activity in managed profile
         Intent intent = addWorkPolicyInfoIntent(mOwner.getPackageName(), false, true);
         assertThat(mProvider.hasWorkPolicyInfo()).isTrue();
-        assertThat(mProvider.showWorkPolicyInfo()).isTrue();
+        assertThat(mProvider.showWorkPolicyInfo(mContext)).isTrue();
         verify(mContext)
                 .startActivityAsUser(
                         intentEquals(intent),
@@ -402,12 +402,12 @@
 
         // If the intent is not resolved, then there's no info to show for COMP
         assertThat(mProvider.hasWorkPolicyInfo()).isFalse();
-        assertThat(mProvider.showWorkPolicyInfo()).isFalse();
+        assertThat(mProvider.showWorkPolicyInfo(mContext)).isFalse();
 
         // If the intent is resolved, then we can use it to launch the activity for device owner
         Intent intent = addWorkPolicyInfoIntent(mOwner.getPackageName(), true, true);
         assertThat(mProvider.hasWorkPolicyInfo()).isTrue();
-        assertThat(mProvider.showWorkPolicyInfo()).isTrue();
+        assertThat(mProvider.showWorkPolicyInfo(mContext)).isTrue();
         verify(mContext).startActivity(intentEquals(intent));
     }
 
diff --git a/tests/robotests/src/com/android/settings/privacy/WorkPolicyInfoPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/privacy/WorkPolicyInfoPreferenceControllerTest.java
index a92e11e..79aec30 100644
--- a/tests/robotests/src/com/android/settings/privacy/WorkPolicyInfoPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/privacy/WorkPolicyInfoPreferenceControllerTest.java
@@ -80,7 +80,7 @@
 
         final Preference pref = new Preference(mContext);
         assertThat(controller.handlePreferenceTreeClick(pref)).isFalse();
-        verify(mEnterpriseProvider, never()).showWorkPolicyInfo();
+        verify(mEnterpriseProvider, never()).showWorkPolicyInfo(mContext);
     }
 
     @Test
@@ -92,6 +92,6 @@
         final Preference pref = new Preference(mContext);
         pref.setKey(controller.getPreferenceKey());
         assertThat(controller.handlePreferenceTreeClick(pref)).isTrue();
-        verify(mEnterpriseProvider).showWorkPolicyInfo();
+        verify(mEnterpriseProvider).showWorkPolicyInfo(mContext);
     }
 }
