Merge "Apply fade transition for font size and display size Suw page" into sc-v2-dev
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/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 df72cdf..6de541f 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -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 b005ed8..19849a4 100644
--- a/res/values-as/strings.xml
+++ b/res/values-as/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-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 cd6dd61..1d79677 100644
--- a/res/values-bn/strings.xml
+++ b/res/values-bn/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-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 4ea94e2..389ce78 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -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 7d2ddca..bfbe917 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -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 0260e4a..32af438 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -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 7a091b8..77feed9 100644
--- a/res/values-eu/strings.xml
+++ b/res/values-eu/strings.xml
@@ -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 f151349..edda844 100644
--- a/res/values-gu/strings.xml
+++ b/res/values-gu/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-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 89fe6bd..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>
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 92f96df..654b163 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -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>
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 46ed3c1..67edc83 100644
--- a/res/values-or/strings.xml
+++ b/res/values-or/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-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">"ਮਦਦ & ਫੀਡਬੈਕ"</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 6beda2e..17dd450 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -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>
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 4eb400a..6007b49 100644
--- a/res/values-ur/strings.xml
+++ b/res/values-ur/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-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/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/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/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/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);
}
}