Revert "Support highlightable Settings homepage menu for 2-pane"

This reverts commit 9037ceabd3.

Reason for revert: Presumed cause of b/202510128

Change-Id: I0daaab95d9bc57229c0c8c916cbe3ada7aafb6fa
This commit is contained in:
Greg Kaiser
2021-10-08 14:29:06 +00:00
parent 9037ceabd3
commit 096c090b80
18 changed files with 91 additions and 775 deletions

View File

@@ -136,7 +136,7 @@
android:taskAffinity="com.android.settings.root"
android:launchMode="singleTask"
android:exported="true"
android:configChanges="orientation|keyboard|keyboardHidden|screenSize|screenLayout">
android:configChanges="keyboard|keyboardHidden|screenSize|screenLayout">
<intent-filter android:priority="1">
<action android:name="android.settings.SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
@@ -228,8 +228,6 @@
</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>
@@ -259,8 +257,6 @@
</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>
@@ -318,8 +314,6 @@
</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>
@@ -485,8 +479,6 @@
</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. -->
@@ -497,8 +489,6 @@
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"
@@ -511,8 +501,6 @@
</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"
@@ -525,8 +513,6 @@
</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"
@@ -539,8 +525,6 @@
</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"
@@ -548,8 +532,6 @@
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"
@@ -557,8 +539,6 @@
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"
@@ -610,8 +590,6 @@
</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
@@ -629,8 +607,6 @@
</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>
@@ -642,8 +618,6 @@
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"
@@ -655,8 +629,6 @@
</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
@@ -675,8 +647,6 @@
</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>
@@ -691,8 +661,6 @@
</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
@@ -732,8 +700,6 @@
</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>
@@ -892,8 +858,6 @@
</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>
@@ -947,8 +911,6 @@
</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>
@@ -959,8 +921,6 @@
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"
@@ -1016,8 +976,6 @@
</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>
@@ -1033,8 +991,6 @@
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
@@ -1053,8 +1009,6 @@
</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>
@@ -1074,8 +1028,6 @@
</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
@@ -1094,8 +1046,6 @@
</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>
@@ -1115,8 +1065,6 @@
</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>
@@ -1140,8 +1088,6 @@
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"
@@ -1159,8 +1105,6 @@
</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>
@@ -1409,8 +1353,6 @@
</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
@@ -1455,8 +1397,6 @@
</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>
@@ -1689,8 +1629,6 @@
</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>
@@ -1706,8 +1644,6 @@
</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>
@@ -1757,8 +1693,6 @@
</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>
@@ -1777,8 +1711,6 @@
</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>
@@ -1793,8 +1725,6 @@
</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>
@@ -1809,8 +1739,6 @@
</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>
@@ -1825,8 +1753,6 @@
</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 -->
@@ -2498,8 +2424,6 @@
</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
@@ -2747,8 +2671,6 @@
</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
@@ -2761,8 +2683,6 @@
</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
@@ -2775,8 +2695,6 @@
</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
@@ -2789,8 +2707,6 @@
</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
@@ -2807,8 +2723,6 @@
</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
@@ -2822,8 +2736,6 @@
</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
@@ -2836,8 +2748,6 @@
</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"
@@ -2850,8 +2760,6 @@
</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
@@ -2866,8 +2774,6 @@
</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
@@ -2880,8 +2786,6 @@
</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
@@ -2898,8 +2802,6 @@
</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>
@@ -2914,8 +2816,6 @@
</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>
@@ -2930,8 +2830,6 @@
</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
@@ -2979,8 +2877,6 @@
</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) -->
@@ -2992,8 +2888,6 @@
</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) -->
@@ -3406,8 +3300,6 @@
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
@@ -3446,8 +3338,6 @@
</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) -->
@@ -3471,8 +3361,6 @@
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
@@ -3490,8 +3378,6 @@
</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>
@@ -3507,8 +3393,6 @@
</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"
@@ -3678,8 +3562,6 @@
</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>
@@ -3694,8 +3576,6 @@
</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>
@@ -3836,8 +3716,6 @@
</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"
@@ -3849,8 +3727,6 @@
</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"
@@ -3862,8 +3738,6 @@
</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
@@ -3881,8 +3755,6 @@
</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>
@@ -3904,7 +3776,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

View File

@@ -83,8 +83,7 @@ public class Settings extends SettingsActivity {
}
public static class VpnSettingsActivity extends SettingsActivity { /* empty */ }
/** Activity for Data saver settings. */
public static class DataSaverSummaryActivity extends SettingsActivity { /* empty */ }
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 */ }
@@ -122,9 +121,13 @@ public class Settings extends SettingsActivity {
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 {

View File

@@ -149,13 +149,9 @@ public class SettingsActivity extends SettingsBaseActivity
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;
@@ -238,19 +234,21 @@ public class SettingsActivity extends SettingsBaseActivity
super.onCreate(savedState);
Log.d(LOG_TAG, "Starting onCreate");
long startTime = System.currentTimeMillis();
// Should happen before any call to getIntent()
getMetaData();
final Intent intent = getIntent();
if (launchHomepageForTwoPaneDeepLink(intent)) {
if (launchHomepageForTwonPaneDeepLink()) {
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));
}
@@ -357,7 +355,8 @@ public class SettingsActivity extends SettingsBaseActivity
}
/** Returns true if the Activity is started by a deep link intent for large screen devices. */
private boolean launchHomepageForTwoPaneDeepLink(Intent intent) {
private boolean launchHomepageForTwonPaneDeepLink() {
final Intent intent = getIntent();
if (!shouldShowTwoPaneDeepLink(intent)) {
return false;
}
@@ -369,9 +368,6 @@ public class SettingsActivity extends SettingsBaseActivity
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);
@@ -780,7 +776,6 @@ public class SettingsActivity extends SettingsBaseActivity
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());

View File

@@ -119,7 +119,8 @@ public abstract class SettingsPreferenceFragment extends InstrumentedPreferenceF
@VisibleForTesting
public HighlightablePreferenceGroupAdapter mAdapter;
private boolean mPreferenceHighlighted = false;
@VisibleForTesting
public boolean mPreferenceHighlighted = false;
@Override
public void onCreate(Bundle icicle) {

View File

@@ -1223,14 +1223,6 @@ public final class Utils extends com.android.settingslib.Utils {
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);
}

View File

@@ -62,12 +62,4 @@ public class ActivityEmbeddingUtils {
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);
}
}

View File

@@ -17,7 +17,6 @@ package com.android.settings.dashboard;
import android.content.ComponentName;
import android.content.Context;
import android.text.TextUtils;
import android.util.ArrayMap;
import android.util.ArraySet;
import android.util.Log;
@@ -25,7 +24,6 @@ import android.util.Pair;
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;
@@ -155,14 +153,6 @@ public class CategoryManager {
filterDuplicateTiles(mCategoryByKeyMap);
if (firstLoading) {
logTiles(context);
for (Tile tile : mCategoryByKeyMap.get(CategoryKey.CATEGORY_HOMEPAGE).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);
}
}
}
}

View File

@@ -47,9 +47,9 @@ public interface DashboardFeatureProvider {
* 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 @@ public interface DashboardFeatureProvider {
* @return The list of dynamic data observers
*/
List<DynamicDataObserver> bindPreferenceToTileAndGetObservers(FragmentActivity activity,
DashboardFragment fragment, boolean forceRoundedIcon, Preference pref, Tile tile,
boolean forceRoundedIcon, int sourceMetricsCategory, Preference pref, Tile tile,
String key, int baseOrder);
/**

View File

@@ -36,7 +36,6 @@ import static com.android.settingslib.drawer.TileUtils.META_DATA_PREFERENCE_TITL
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;
@@ -61,7 +60,6 @@ import com.android.settings.R;
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;
@@ -125,7 +123,7 @@ public class DashboardFeatureProviderImpl implements DashboardFeatureProvider {
@Override
public List<DynamicDataObserver> bindPreferenceToTileAndGetObservers(FragmentActivity activity,
DashboardFragment fragment, boolean forceRoundedIcon, Preference pref, Tile tile,
boolean forceRoundedIcon, int sourceMetricsCategory, Preference pref, Tile tile,
String key, int baseOrder) {
if (pref == null) {
return null;
@@ -151,7 +149,6 @@ public class DashboardFeatureProviderImpl implements DashboardFeatureProvider {
bindIcon(pref, tile, forceRoundedIcon);
if (tile instanceof ActivityTile) {
final int sourceMetricsCategory = fragment.getMetricsCategory();
final Bundle metadata = tile.getMetaData();
String clsName = null;
String action = null;
@@ -169,17 +166,7 @@ public class DashboardFeatureProviderImpl implements DashboardFeatureProvider {
intent.setAction(action);
}
pref.setOnPreferenceClickListener(preference -> {
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);
launchIntentOrSelectProfile(activity, tile, intent, sourceMetricsCategory);
return true;
});
}
@@ -211,8 +198,7 @@ public class DashboardFeatureProviderImpl implements DashboardFeatureProvider {
.putExtra(MetricsFeatureProvider.EXTRA_SOURCE_METRICS_CATEGORY,
SettingsEnums.DASHBOARD_SUMMARY)
.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
launchIntentOrSelectProfile(activity, tile, intent, SettingsEnums.DASHBOARD_SUMMARY,
/* listener= */ null);
launchIntentOrSelectProfile(activity, tile, intent, SettingsEnums.DASHBOARD_SUMMARY);
}
private DynamicDataObserver createDynamicDataObserver(String method, Uri uri, Preference pref) {
@@ -427,7 +413,7 @@ public class DashboardFeatureProviderImpl implements DashboardFeatureProvider {
}
private void launchIntentOrSelectProfile(FragmentActivity activity, Tile tile, Intent intent,
int sourceMetricCategory, OnCancelListener listener) {
int sourceMetricCategory) {
if (!isIntentResolvable(intent)) {
Log.w(TAG, "Cannot resolve intent, skipping. " + intent);
return;
@@ -453,7 +439,7 @@ public class DashboardFeatureProviderImpl implements DashboardFeatureProvider {
}
ProfileSelectDialog.show(activity.getSupportFragmentManager(), tile,
sourceMetricCategory, listener);
sourceMetricCategory);
}
}

View File

@@ -496,15 +496,15 @@ public abstract class DashboardFragment extends SettingsPreferenceFragment
if (mDashboardTilePrefKeys.containsKey(key)) {
// Have the key already, will rebind.
final Preference preference = screen.findPreference(key);
mDashboardFeatureProvider.bindPreferenceToTileAndGetObservers(getActivity(), this,
forceRoundedIcons, preference, tile, key,
mDashboardFeatureProvider.bindPreferenceToTileAndGetObservers(getActivity(),
forceRoundedIcons, getMetricsCategory(), 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(),
this, forceRoundedIcons, pref, tile, key,
forceRoundedIcons, getMetricsCategory(), pref, tile, key,
mPlaceholderPreferenceController.getOrder());
screen.addPreference(pref);
registerDynamicDataObservers(observers);

View File

@@ -19,7 +19,6 @@ package com.android.settings.dashboard.profileselector;
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;
@@ -45,23 +44,19 @@ public class ProfileSelectDialog extends DialogFragment implements OnClickListen
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,
OnCancelListener listener) {
public static void show(FragmentManager manager, Tile tile, int sourceMetricCategory) {
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");
}
@@ -96,13 +91,6 @@ public class ProfileSelectDialog extends DialogFragment implements OnClickListen
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) {

View File

@@ -1,117 +0,0 @@
/*
* 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);
}
}

View File

@@ -16,15 +16,13 @@
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;
@@ -38,16 +36,16 @@ import androidx.fragment.app.Fragment;
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.activityembedding.ActivityEmbeddingRulesController;
import com.android.settings.activityembedding.ActivityEmbeddingUtils;
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.homepage.contextualcards.ContextualCardsFragment;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.core.lifecycle.HideNonSystemOverlayMixin;
@@ -66,7 +64,6 @@ public class SettingsHomepageActivity extends FragmentActivity implements
// 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;
@@ -123,11 +120,7 @@ public class SettingsHomepageActivity extends FragmentActivity implements
showFragment(new ContextualCardsFragment(), R.id.contextual_cards_content);
}
}
final Fragment fragment = new TopLevelSettings();
fragment.getArguments().putString(SettingsActivity.EXTRA_FRAGMENT_ARG_KEY,
getHighlightMenuKey());
showFragment(fragment, R.id.main_content);
showFragment(new TopLevelSettings(), R.id.main_content);
((FrameLayout) findViewById(R.id.main_content))
.getLayoutTransition().enableTransitionType(LayoutTransition.CHANGING);
@@ -139,13 +132,9 @@ public class SettingsHomepageActivity extends FragmentActivity implements
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
// 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.
// 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.
setIntent(intent);
reloadHighlightMenuKey();
if (isFinishing()) {
return;
}
// Launch the intent from deep link for large screen devices.
launchDeepLinkIntentToRight();
}
@@ -191,12 +180,12 @@ public class SettingsHomepageActivity extends FragmentActivity implements
final Intent intent = getIntent();
if (intent == null || !TextUtils.equals(intent.getAction(),
ACTION_SETTINGS_LARGE_SCREEN_DEEP_LINK)) {
android.provider.Settings.ACTION_SETTINGS_LARGE_SCREEN_DEEP_LINK)) {
return;
}
final String intentUriString = intent.getStringExtra(
EXTRA_SETTINGS_LARGE_SCREEN_DEEP_LINK_INTENT_URI);
android.provider.Settings.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();
@@ -244,29 +233,6 @@ public class SettingsHomepageActivity extends FragmentActivity implements
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.

View File

@@ -21,27 +21,20 @@ import static com.android.settingslib.search.SearchIndexable.MOBILE;
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;
@@ -50,11 +43,6 @@ public class TopLevelSettings extends DashboardFragment implements
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();
@@ -81,7 +69,6 @@ public class TopLevelSettings extends DashboardFragment implements
@Override
public void onAttach(Context context) {
super.onAttach(context);
HighlightableMenu.fromXml(context, getPreferenceScreenResId());
use(SupportPreferenceController.class).setActivity(getActivity());
}
@@ -96,12 +83,6 @@ public class TopLevelSettings extends DashboardFragment implements
return this;
}
@Override
public boolean onPreferenceTreeClick(Preference preference) {
setHighlightPreferenceKey(preference.getKey());
return super.onPreferenceTreeClick(preference);
}
@Override
public boolean onPreferenceStartFragment(PreferenceFragmentCompat caller, Preference pref) {
new SubSettingLauncher(getActivity())
@@ -115,20 +96,6 @@ public class TopLevelSettings extends DashboardFragment implements
return true;
}
@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);
@@ -151,78 +118,12 @@ public class TopLevelSettings extends DashboardFragment implements
}
}
@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) {

View File

@@ -50,7 +50,7 @@ public class SearchFeatureProviderImpl implements SearchFeatureProvider {
if (isSettingsPackage || isAllowlistedPackage) {
return;
}
throw new SecurityException("Search result intents must be called with from an "
throw new SecurityException("Search result intents must be called with from a "
+ "allowlisted package.");
}

View File

@@ -1,238 +0,0 @@
/*
* 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);
}
}

View File

@@ -43,6 +43,7 @@ import android.os.UserManager;
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;
@@ -150,9 +151,9 @@ public class AccountDetailDashboardFragmentTest {
final FragmentActivity activity = Robolectric.setupActivity(FragmentActivity.class);
final Preference preference = new Preference(mContext);
dashboardFeatureProvider.bindPreferenceToTileAndGetObservers(activity, mFragment,
false /* forceRoundedIcon */, preference, tile, null /* key */,
Preference.DEFAULT_ORDER);
dashboardFeatureProvider.bindPreferenceToTileAndGetObservers(activity,
false /* forceRoundedIcon */, MetricsProto.MetricsEvent.DASHBOARD_SUMMARY,
preference, tile, null /* key */, Preference.DEFAULT_ORDER);
assertThat(preference.getKey()).isEqualTo(tile.getKey(mContext));
preference.performClick();

View File

@@ -114,7 +114,6 @@ public class DashboardFeatureProviderImplTest {
private Bundle mSwitchMetaData;
private DashboardFeatureProviderImpl mImpl;
private boolean mForceRoundedIcon;
private DashboardFragment mFragment;
@Before
public void setUp() {
@@ -145,7 +144,6 @@ public class DashboardFeatureProviderImplTest {
.thenReturn(new ResolveInfo());
mFeatureFactory = FakeFeatureFactory.setupForTest();
mImpl = new DashboardFeatureProviderImpl(mContext);
mFragment = new TestFragment();
}
@Test
@@ -161,8 +159,8 @@ public class DashboardFeatureProviderImplTest {
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, mFragment, mForceRoundedIcon,
preference, tile, "123", Preference.DEFAULT_ORDER);
mImpl.bindPreferenceToTileAndGetObservers(mActivity, mForceRoundedIcon,
MetricsEvent.SETTINGS_GESTURES, preference, tile, "123", Preference.DEFAULT_ORDER);
assertThat(preference.getTitle()).isEqualTo(mContext.getText(R.string.settings_label));
assertThat(preference.getSummary())
@@ -182,8 +180,8 @@ public class DashboardFeatureProviderImplTest {
doReturn(Icon.createWithBitmap(Bitmap.createBitmap(1, 1, Bitmap.Config.RGB_565)))
.when(tile).getIcon(any(Context.class));
final List<DynamicDataObserver> observers = mImpl.bindPreferenceToTileAndGetObservers(
mActivity, mFragment, mForceRoundedIcon, preference, tile, null /* key*/,
Preference.DEFAULT_ORDER);
mActivity, mForceRoundedIcon, MetricsEvent.SETTINGS_GESTURES, preference, tile,
null /* key*/, Preference.DEFAULT_ORDER);
assertThat(preference.getTitle()).isEqualTo(mContext.getText(R.string.settings_label));
assertThat(preference.getSummary())
@@ -200,8 +198,8 @@ public class DashboardFeatureProviderImplTest {
mActivityInfo.metaData.putInt(META_DATA_KEY_ORDER, 10);
final Tile tile = new ActivityTile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE);
mImpl.bindPreferenceToTileAndGetObservers(mActivity, mFragment, mForceRoundedIcon,
preference, tile, "123", Preference.DEFAULT_ORDER);
mImpl.bindPreferenceToTileAndGetObservers(mActivity, mForceRoundedIcon,
MetricsEvent.SETTINGS_GESTURES, preference, tile, "123", Preference.DEFAULT_ORDER);
assertThat(preference.getFragment()).isNull();
assertThat(preference.getOnPreferenceClickListener()).isNotNull();
@@ -216,8 +214,8 @@ public class DashboardFeatureProviderImplTest {
tile.userHandle.add(mock(UserHandle.class));
tile.userHandle.add(mock(UserHandle.class));
mImpl.bindPreferenceToTileAndGetObservers(mActivity, mFragment, mForceRoundedIcon,
preference, tile, "123", Preference.DEFAULT_ORDER);
mImpl.bindPreferenceToTileAndGetObservers(mActivity, mForceRoundedIcon,
MetricsEvent.SETTINGS_GESTURES, preference, tile, "123", Preference.DEFAULT_ORDER);
preference.getOnPreferenceClickListener().onPreferenceClick(null);
verify(mActivity).getSupportFragmentManager();
@@ -233,8 +231,8 @@ public class DashboardFeatureProviderImplTest {
when(mActivity.getSystemService(Context.USER_SERVICE))
.thenReturn(mUserManager);
mImpl.bindPreferenceToTileAndGetObservers(mActivity, mFragment, mForceRoundedIcon,
preference, tile, "123", Preference.DEFAULT_ORDER);
mImpl.bindPreferenceToTileAndGetObservers(mActivity, mForceRoundedIcon,
MetricsEvent.SETTINGS_GESTURES, preference, tile, "123", Preference.DEFAULT_ORDER);
preference.getOnPreferenceClickListener().onPreferenceClick(null);
verify(mFeatureFactory.metricsFeatureProvider).logStartedIntent(
@@ -252,8 +250,8 @@ public class DashboardFeatureProviderImplTest {
tile.userHandle = new ArrayList<>();
tile.userHandle.add(mock(UserHandle.class));
mImpl.bindPreferenceToTileAndGetObservers(mActivity, mFragment, mForceRoundedIcon,
preference, tile, "123", Preference.DEFAULT_ORDER);
mImpl.bindPreferenceToTileAndGetObservers(mActivity, mForceRoundedIcon,
MetricsEvent.SETTINGS_GESTURES, preference, tile, "123", Preference.DEFAULT_ORDER);
preference.getOnPreferenceClickListener().onPreferenceClick(null);
verify(mFeatureFactory.metricsFeatureProvider).logStartedIntent(
any(Intent.class),
@@ -265,8 +263,8 @@ public class DashboardFeatureProviderImplTest {
@Test
public void bindPreference_nullPreference_shouldIgnore() {
final Tile tile = mock(Tile.class);
mImpl.bindPreferenceToTileAndGetObservers(mActivity, mFragment, mForceRoundedIcon,
null /* keys */, tile, "123", Preference.DEFAULT_ORDER);
mImpl.bindPreferenceToTileAndGetObservers(mActivity, mForceRoundedIcon,
MetricsEvent.VIEW_UNKNOWN, null, tile, "123", Preference.DEFAULT_ORDER);
verifyZeroInteractions(tile);
}
@@ -275,8 +273,8 @@ public class DashboardFeatureProviderImplTest {
public void bindPreference_withNullKeyNullPriority_shouldGenerateKeyAndPriority() {
final Preference preference = new Preference(RuntimeEnvironment.application);
final Tile tile = new ActivityTile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE);
mImpl.bindPreferenceToTileAndGetObservers(mActivity, mFragment, mForceRoundedIcon,
preference, tile, null /* key */,
mImpl.bindPreferenceToTileAndGetObservers(mActivity, mForceRoundedIcon,
MetricsEvent.VIEW_UNKNOWN, preference, tile, null /*key */,
Preference.DEFAULT_ORDER);
assertThat(preference.getKey()).isNotNull();
@@ -290,8 +288,9 @@ public class DashboardFeatureProviderImplTest {
final Tile tile = new ActivityTile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE);
mImpl.bindPreferenceToTileAndGetObservers(mActivity, mFragment, mForceRoundedIcon,
preference, tile, null /* key */, Preference.DEFAULT_ORDER);
mImpl.bindPreferenceToTileAndGetObservers(mActivity, mForceRoundedIcon,
MetricsEvent.VIEW_UNKNOWN, preference, tile, null /*key */,
Preference.DEFAULT_ORDER);
assertThat(preference.getSummary()).isNull();
}
@@ -305,8 +304,8 @@ public class DashboardFeatureProviderImplTest {
mActivityInfo.metaData.putString(TileUtils.META_DATA_PREFERENCE_SUMMARY_URI, uriString);
final List<DynamicDataObserver> observers = mImpl.bindPreferenceToTileAndGetObservers(
mActivity, mFragment, mForceRoundedIcon, preference, tile, null /* key */,
Preference.DEFAULT_ORDER);
mActivity, mForceRoundedIcon, MetricsEvent.VIEW_UNKNOWN, preference, tile,
null /*key */, Preference.DEFAULT_ORDER);
assertThat(preference.getSummary()).isEqualTo(ShadowTileUtils.MOCK_SUMMARY);
assertThat(observers.get(0).getUri().toString()).isEqualTo(uriString);
@@ -321,8 +320,8 @@ public class DashboardFeatureProviderImplTest {
mActivityInfo.metaData.putString(TileUtils.META_DATA_PREFERENCE_TITLE_URI, uriString);
final List<DynamicDataObserver> observers = mImpl.bindPreferenceToTileAndGetObservers(
mActivity, mFragment, mForceRoundedIcon, preference, tile, null /* key */,
Preference.DEFAULT_ORDER);
mActivity, mForceRoundedIcon, MetricsEvent.VIEW_UNKNOWN, preference, tile,
null /*key */, Preference.DEFAULT_ORDER);
assertThat(preference.getTitle()).isEqualTo(ShadowTileUtils.MOCK_SUMMARY);
assertThat(observers.get(0).getUri().toString()).isEqualTo(uriString);
@@ -337,8 +336,9 @@ public class DashboardFeatureProviderImplTest {
final Bundle bundle = new Bundle();
bundle.putBoolean(EXTRA_SWITCH_SET_CHECKED_ERROR, false);
ShadowTileUtils.setResultBundle(bundle);
mImpl.bindPreferenceToTileAndGetObservers(mActivity, mFragment, mForceRoundedIcon,
preference, tile, null /* key */, Preference.DEFAULT_ORDER);
mImpl.bindPreferenceToTileAndGetObservers(mActivity, mForceRoundedIcon,
MetricsEvent.VIEW_UNKNOWN, preference, tile, null /*key */,
Preference.DEFAULT_ORDER);
preference.callChangeListener(false);
@@ -358,8 +358,9 @@ public class DashboardFeatureProviderImplTest {
final Bundle bundle = new Bundle();
bundle.putBoolean(EXTRA_SWITCH_SET_CHECKED_ERROR, true);
ShadowTileUtils.setResultBundle(bundle);
mImpl.bindPreferenceToTileAndGetObservers(mActivity, mFragment, mForceRoundedIcon,
preference, tile, null /* key */, Preference.DEFAULT_ORDER);
mImpl.bindPreferenceToTileAndGetObservers(mActivity, mForceRoundedIcon,
MetricsEvent.VIEW_UNKNOWN, preference, tile, null /*key */,
Preference.DEFAULT_ORDER);
preference.callChangeListener(true);
@@ -377,8 +378,8 @@ public class DashboardFeatureProviderImplTest {
final Tile tile = new ProviderTile(mProviderInfo, CategoryKey.CATEGORY_HOMEPAGE,
mSwitchMetaData);
final List<DynamicDataObserver> observers = mImpl.bindPreferenceToTileAndGetObservers(
mActivity, mFragment, mForceRoundedIcon, preference, tile, null /* key */,
Preference.DEFAULT_ORDER);
mActivity, mForceRoundedIcon, MetricsEvent.VIEW_UNKNOWN, preference, tile,
null /*key */, Preference.DEFAULT_ORDER);
ShadowTileUtils.setProviderChecked(false);
observers.get(0).onDataChanged();
@@ -396,8 +397,9 @@ public class DashboardFeatureProviderImplTest {
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, mFragment, mForceRoundedIcon,
preference, tile, null /* key */, Preference.DEFAULT_ORDER);
mImpl.bindPreferenceToTileAndGetObservers(mActivity, mForceRoundedIcon,
MetricsEvent.VIEW_UNKNOWN, preference, tile, null /* key */,
Preference.DEFAULT_ORDER);
assertThat(preference.getKey()).isEqualTo(tile.getKey(mContext));
}
@@ -481,8 +483,8 @@ public class DashboardFeatureProviderImplTest {
mActivityInfo.metaData.putInt(META_DATA_KEY_ORDER, 10);
final Tile tile = new ActivityTile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE);
mImpl.bindPreferenceToTileAndGetObservers(mActivity, mFragment, mForceRoundedIcon,
preference, tile, "123", baseOrder);
mImpl.bindPreferenceToTileAndGetObservers(mActivity, mForceRoundedIcon,
MetricsEvent.VIEW_UNKNOWN, preference, tile, "123", baseOrder);
assertThat(preference.getOrder()).isEqualTo(tile.getOrder() + baseOrder);
}
@@ -494,8 +496,8 @@ public class DashboardFeatureProviderImplTest {
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, mFragment, mForceRoundedIcon,
preference, tile, "123", Preference.DEFAULT_ORDER);
mImpl.bindPreferenceToTileAndGetObservers(mActivity, mForceRoundedIcon,
MetricsEvent.VIEW_UNKNOWN, preference, tile, "123", Preference.DEFAULT_ORDER);
assertThat(preference.getOrder()).isEqualTo(testOrder);
}
@@ -506,8 +508,8 @@ public class DashboardFeatureProviderImplTest {
final Tile tile = new ActivityTile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE);
mActivityInfo.metaData.putString(META_DATA_KEY_ORDER, "hello");
mImpl.bindPreferenceToTileAndGetObservers(mActivity, mFragment, mForceRoundedIcon,
preference, tile, "123", Preference.DEFAULT_ORDER);
mImpl.bindPreferenceToTileAndGetObservers(mActivity, mForceRoundedIcon,
MetricsEvent.VIEW_UNKNOWN, preference, tile, "123", Preference.DEFAULT_ORDER);
assertThat(preference.getOrder()).isEqualTo(Preference.DEFAULT_ORDER);
}
@@ -520,8 +522,8 @@ public class DashboardFeatureProviderImplTest {
mActivityInfo.metaData.putString(META_DATA_PREFERENCE_KEYHINT, "key");
mActivityInfo.metaData.putString("com.android.settings.intent.action", "TestAction");
tile.userHandle = null;
mImpl.bindPreferenceToTileAndGetObservers(activity, mFragment, mForceRoundedIcon,
preference, tile, "123", Preference.DEFAULT_ORDER);
mImpl.bindPreferenceToTileAndGetObservers(activity, mForceRoundedIcon,
MetricsEvent.SETTINGS_GESTURES, preference, tile, "123", Preference.DEFAULT_ORDER);
preference.performClick();
ShadowActivity shadowActivity = Shadows.shadowOf(activity);
@@ -544,8 +546,8 @@ public class DashboardFeatureProviderImplTest {
mActivityInfo.metaData.putString("com.android.settings.intent.action", "TestAction");
tile.userHandle = null;
mImpl.bindPreferenceToTileAndGetObservers(activity, mFragment, mForceRoundedIcon,
preference, tile, "123", Preference.DEFAULT_ORDER);
mImpl.bindPreferenceToTileAndGetObservers(activity, mForceRoundedIcon,
MetricsEvent.SETTINGS_GESTURES, preference, tile, "123", Preference.DEFAULT_ORDER);
preference.performClick();
final ShadowActivity.IntentForResult launchIntent =
@@ -667,22 +669,4 @@ public class DashboardFeatureProviderImplTest {
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";
}
}
}