diff --git a/src/com/android/settings/accessibility/AccessibilityShortcutPreferenceController.java b/src/com/android/settings/accessibility/AccessibilityShortcutPreferenceController.java index ce3d294486f..d204bb761db 100644 --- a/src/com/android/settings/accessibility/AccessibilityShortcutPreferenceController.java +++ b/src/com/android/settings/accessibility/AccessibilityShortcutPreferenceController.java @@ -23,6 +23,7 @@ import android.content.Context; import android.os.UserHandle; import android.provider.Settings; +import com.android.settings.R; import com.android.settings.core.TogglePreferenceController; /** @@ -57,4 +58,9 @@ public class AccessibilityShortcutPreferenceController extends TogglePreferenceC public int getAvailabilityStatus() { return AVAILABLE; } + + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_accessibility; + } } diff --git a/src/com/android/settings/accessibility/AccessibilitySlicePreferenceController.java b/src/com/android/settings/accessibility/AccessibilitySlicePreferenceController.java index ca3befa2a09..dd6edebf8d8 100644 --- a/src/com/android/settings/accessibility/AccessibilitySlicePreferenceController.java +++ b/src/com/android/settings/accessibility/AccessibilitySlicePreferenceController.java @@ -26,6 +26,7 @@ import android.content.Context; import android.provider.Settings; import android.view.accessibility.AccessibilityManager; +import com.android.settings.R; import com.android.settings.core.TogglePreferenceController; import com.android.settingslib.accessibility.AccessibilityUtils; @@ -98,6 +99,11 @@ public class AccessibilitySlicePreferenceController extends TogglePreferenceCont return true; } + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_accessibility; + } + private AccessibilityServiceInfo getAccessibilityServiceInfo() { final AccessibilityManager accessibilityManager = mContext.getSystemService( AccessibilityManager.class); diff --git a/src/com/android/settings/accessibility/DisableAnimationsPreferenceController.java b/src/com/android/settings/accessibility/DisableAnimationsPreferenceController.java index 1f91a87301d..5630dd91175 100644 --- a/src/com/android/settings/accessibility/DisableAnimationsPreferenceController.java +++ b/src/com/android/settings/accessibility/DisableAnimationsPreferenceController.java @@ -22,6 +22,7 @@ import android.text.TextUtils; import androidx.annotation.VisibleForTesting; +import com.android.settings.R; import com.android.settings.core.TogglePreferenceController; public class DisableAnimationsPreferenceController extends TogglePreferenceController { @@ -71,4 +72,9 @@ public class DisableAnimationsPreferenceController extends TogglePreferenceContr public int getAvailabilityStatus() { return AVAILABLE; } + + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_accessibility; + } } diff --git a/src/com/android/settings/accessibility/FontWeightAdjustmentPreferenceController.java b/src/com/android/settings/accessibility/FontWeightAdjustmentPreferenceController.java index 97f96a477f6..b59b3b26e1c 100644 --- a/src/com/android/settings/accessibility/FontWeightAdjustmentPreferenceController.java +++ b/src/com/android/settings/accessibility/FontWeightAdjustmentPreferenceController.java @@ -20,6 +20,7 @@ import android.content.Context; import android.graphics.fonts.FontStyle; import android.provider.Settings; +import com.android.settings.R; import com.android.settings.core.TogglePreferenceController; /** PreferenceController for displaying all text in bold. */ @@ -47,4 +48,9 @@ public class FontWeightAdjustmentPreferenceController extends TogglePreferenceCo return Settings.Secure.putInt(mContext.getContentResolver(), Settings.Secure.FONT_WEIGHT_ADJUSTMENT, (isChecked ? BOLD_TEXT_ADJUSTMENT : 0)); } + + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_accessibility; + } } diff --git a/src/com/android/settings/accessibility/HighTextContrastPreferenceController.java b/src/com/android/settings/accessibility/HighTextContrastPreferenceController.java index f4474d642a5..e98a28cffcf 100644 --- a/src/com/android/settings/accessibility/HighTextContrastPreferenceController.java +++ b/src/com/android/settings/accessibility/HighTextContrastPreferenceController.java @@ -19,6 +19,7 @@ package com.android.settings.accessibility; import android.content.Context; import android.provider.Settings; +import com.android.settings.R; import com.android.settings.core.TogglePreferenceController; public class HighTextContrastPreferenceController extends TogglePreferenceController { @@ -43,4 +44,9 @@ public class HighTextContrastPreferenceController extends TogglePreferenceContro return Settings.Secure.putInt(mContext.getContentResolver(), Settings.Secure.ACCESSIBILITY_HIGH_TEXT_CONTRAST_ENABLED, (isChecked ? 1 : 0)); } + + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_accessibility; + } } diff --git a/src/com/android/settings/accessibility/LargePointerIconPreferenceController.java b/src/com/android/settings/accessibility/LargePointerIconPreferenceController.java index a7ee3d5433c..0220245ae7a 100644 --- a/src/com/android/settings/accessibility/LargePointerIconPreferenceController.java +++ b/src/com/android/settings/accessibility/LargePointerIconPreferenceController.java @@ -21,6 +21,7 @@ import android.provider.Settings; import androidx.annotation.VisibleForTesting; +import com.android.settings.R; import com.android.settings.core.TogglePreferenceController; public class LargePointerIconPreferenceController extends TogglePreferenceController { @@ -50,4 +51,9 @@ public class LargePointerIconPreferenceController extends TogglePreferenceContro public int getAvailabilityStatus() { return AVAILABLE; } + + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_accessibility; + } } diff --git a/src/com/android/settings/accessibility/LockScreenRotationPreferenceController.java b/src/com/android/settings/accessibility/LockScreenRotationPreferenceController.java index a9716d5042d..5ed4b5c706b 100644 --- a/src/com/android/settings/accessibility/LockScreenRotationPreferenceController.java +++ b/src/com/android/settings/accessibility/LockScreenRotationPreferenceController.java @@ -23,6 +23,7 @@ import androidx.preference.PreferenceScreen; import com.android.internal.view.RotationPolicy; import com.android.internal.view.RotationPolicy.RotationPolicyListener; +import com.android.settings.R; import com.android.settings.core.TogglePreferenceController; import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.events.OnStart; @@ -61,6 +62,11 @@ public class LockScreenRotationPreferenceController extends TogglePreferenceCont return RotationPolicy.isRotationSupported(mContext) ? AVAILABLE : UNSUPPORTED_ON_DEVICE; } + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_accessibility; + } + @Override public void onStop() { if (mRotationPolicyListener != null) { diff --git a/src/com/android/settings/accessibility/MagnificationGesturesPreferenceController.java b/src/com/android/settings/accessibility/MagnificationGesturesPreferenceController.java index 900e2800a09..37d09a70a99 100644 --- a/src/com/android/settings/accessibility/MagnificationGesturesPreferenceController.java +++ b/src/com/android/settings/accessibility/MagnificationGesturesPreferenceController.java @@ -76,6 +76,11 @@ public class MagnificationGesturesPreferenceController extends TogglePreferenceC return true; } + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_accessibility; + } + @Override public CharSequence getSummary() { int resId = 0; diff --git a/src/com/android/settings/accessibility/MagnificationNavbarPreferenceController.java b/src/com/android/settings/accessibility/MagnificationNavbarPreferenceController.java index 9813bde5b22..98855f767f3 100644 --- a/src/com/android/settings/accessibility/MagnificationNavbarPreferenceController.java +++ b/src/com/android/settings/accessibility/MagnificationNavbarPreferenceController.java @@ -82,6 +82,11 @@ public class MagnificationNavbarPreferenceController extends TogglePreferenceCon return true; } + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_accessibility; + } + @Override public CharSequence getSummary() { int resId = 0; diff --git a/src/com/android/settings/accessibility/PowerButtonEndsCallPreferenceController.java b/src/com/android/settings/accessibility/PowerButtonEndsCallPreferenceController.java index 9ea9644d317..d409fa4d199 100644 --- a/src/com/android/settings/accessibility/PowerButtonEndsCallPreferenceController.java +++ b/src/com/android/settings/accessibility/PowerButtonEndsCallPreferenceController.java @@ -21,6 +21,7 @@ import android.provider.Settings; import android.view.KeyCharacterMap; import android.view.KeyEvent; +import com.android.settings.R; import com.android.settings.Utils; import com.android.settings.core.TogglePreferenceController; @@ -51,4 +52,9 @@ public class PowerButtonEndsCallPreferenceController extends TogglePreferenceCon return !KeyCharacterMap.deviceHasKey(KeyEvent.KEYCODE_POWER) || !Utils.isVoiceCapable(mContext) ? UNSUPPORTED_ON_DEVICE : AVAILABLE; } + + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_accessibility; + } } diff --git a/src/com/android/settings/accessibility/PrimaryMonoPreferenceController.java b/src/com/android/settings/accessibility/PrimaryMonoPreferenceController.java index bf12bdebe40..5e69da7ecec 100644 --- a/src/com/android/settings/accessibility/PrimaryMonoPreferenceController.java +++ b/src/com/android/settings/accessibility/PrimaryMonoPreferenceController.java @@ -20,6 +20,7 @@ import android.content.Context; import android.os.UserHandle; import android.provider.Settings; +import com.android.settings.R; import com.android.settings.core.TogglePreferenceController; /** @@ -47,4 +48,9 @@ public class PrimaryMonoPreferenceController extends TogglePreferenceController public int getAvailabilityStatus() { return AVAILABLE; } + + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_accessibility; + } } diff --git a/src/com/android/settings/accessibility/ReduceBrightColorsPersistencePreferenceController.java b/src/com/android/settings/accessibility/ReduceBrightColorsPersistencePreferenceController.java index 62051c15390..7550a308116 100644 --- a/src/com/android/settings/accessibility/ReduceBrightColorsPersistencePreferenceController.java +++ b/src/com/android/settings/accessibility/ReduceBrightColorsPersistencePreferenceController.java @@ -22,6 +22,7 @@ import android.provider.Settings; import androidx.preference.Preference; +import com.android.settings.R; import com.android.settings.core.TogglePreferenceController; /** PreferenceController for persisting feature activation state after a restart. */ @@ -62,4 +63,9 @@ public class ReduceBrightColorsPersistencePreferenceController extends TogglePre super.updateState(preference); preference.setEnabled(mColorDisplayManager.isReduceBrightColorsActivated()); } + + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_accessibility; + } } diff --git a/src/com/android/settings/accessibility/ReduceBrightColorsPreferenceController.java b/src/com/android/settings/accessibility/ReduceBrightColorsPreferenceController.java index d886a595d9c..ca91219c952 100644 --- a/src/com/android/settings/accessibility/ReduceBrightColorsPreferenceController.java +++ b/src/com/android/settings/accessibility/ReduceBrightColorsPreferenceController.java @@ -94,6 +94,11 @@ public class ReduceBrightColorsPreferenceController extends TogglePreferenceCont mPreference = screen.findPreference(getPreferenceKey()); } + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_accessibility; + } + @Override public void onStart() { mContext.getContentResolver().registerContentObserver(Settings.Secure.getUriFor( diff --git a/src/com/android/settings/accounts/CrossProfileCalendarPreferenceController.java b/src/com/android/settings/accounts/CrossProfileCalendarPreferenceController.java index 863e790719f..3dc05ef8f03 100644 --- a/src/com/android/settings/accounts/CrossProfileCalendarPreferenceController.java +++ b/src/com/android/settings/accounts/CrossProfileCalendarPreferenceController.java @@ -22,6 +22,7 @@ import android.os.UserHandle; import android.provider.Settings; import android.util.Log; +import com.android.settings.R; import com.android.settings.core.TogglePreferenceController; import java.util.Set; @@ -71,6 +72,11 @@ public class CrossProfileCalendarPreferenceController extends TogglePreferenceCo CROSS_PROFILE_CALENDAR_ENABLED, value, mManagedUser.getIdentifier()); } + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_accounts; + } + static boolean isCrossProfileCalendarDisallowedByAdmin(Context context, int userId) { final Context managedProfileContext = createPackageContextAsUser(context, userId); final DevicePolicyManager dpm = managedProfileContext.getSystemService( diff --git a/src/com/android/settings/accounts/ManagedProfileSettings.java b/src/com/android/settings/accounts/ManagedProfileSettings.java index f16bc3f49b6..a6fa15a85d1 100644 --- a/src/com/android/settings/accounts/ManagedProfileSettings.java +++ b/src/com/android/settings/accounts/ManagedProfileSettings.java @@ -16,33 +16,25 @@ package com.android.settings.accounts; -import android.app.admin.DevicePolicyManager; import android.app.settings.SettingsEnums; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; -import android.content.pm.PackageManager; import android.os.Bundle; import android.os.UserHandle; import android.os.UserManager; import android.provider.SearchIndexableResource; import android.util.Log; -import androidx.preference.Preference; -import androidx.preference.PreferenceGroup; -import androidx.preference.PreferenceManager; - import com.android.settings.R; import com.android.settings.Utils; import com.android.settings.dashboard.DashboardFragment; import com.android.settings.search.BaseSearchIndexProvider; -import com.android.settingslib.search.Indexable; import com.android.settingslib.search.SearchIndexable; import java.util.ArrayList; import java.util.List; -import java.util.Set; /** * Setting page for managed profile. diff --git a/src/com/android/settings/applications/managedomainurls/InstantAppWebActionPreferenceController.java b/src/com/android/settings/applications/managedomainurls/InstantAppWebActionPreferenceController.java index 77abfe71171..1d395ee3a9e 100644 --- a/src/com/android/settings/applications/managedomainurls/InstantAppWebActionPreferenceController.java +++ b/src/com/android/settings/applications/managedomainurls/InstantAppWebActionPreferenceController.java @@ -19,6 +19,7 @@ package com.android.settings.applications.managedomainurls; import android.content.Context; import android.provider.Settings; +import com.android.settings.R; import com.android.settings.core.TogglePreferenceController; public class InstantAppWebActionPreferenceController extends TogglePreferenceController { @@ -43,4 +44,9 @@ public class InstantAppWebActionPreferenceController extends TogglePreferenceCon return Settings.Secure.putInt(mContext.getContentResolver(), Settings.Secure.INSTANT_APPS_ENABLED, isChecked ? 1 : 0); } + + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_apps; + } } diff --git a/src/com/android/settings/backup/AutoRestorePreferenceController.java b/src/com/android/settings/backup/AutoRestorePreferenceController.java index 4dd2eb651d3..bf63e25b522 100644 --- a/src/com/android/settings/backup/AutoRestorePreferenceController.java +++ b/src/com/android/settings/backup/AutoRestorePreferenceController.java @@ -27,6 +27,7 @@ import android.util.Log; import androidx.preference.Preference; import androidx.preference.SwitchPreference; +import com.android.settings.R; import com.android.settings.core.TogglePreferenceController; public class AutoRestorePreferenceController extends TogglePreferenceController { @@ -84,4 +85,9 @@ public class AutoRestorePreferenceController extends TogglePreferenceController return result; } + + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_system; + } } \ No newline at end of file diff --git a/src/com/android/settings/biometrics/combination/BiometricSettingsAppPreferenceController.java b/src/com/android/settings/biometrics/combination/BiometricSettingsAppPreferenceController.java index 2da81641c7d..6351621d2e1 100644 --- a/src/com/android/settings/biometrics/combination/BiometricSettingsAppPreferenceController.java +++ b/src/com/android/settings/biometrics/combination/BiometricSettingsAppPreferenceController.java @@ -91,4 +91,10 @@ public class BiometricSettingsAppPreferenceController extends TogglePreferenceCo public final boolean isSliceable() { return false; } + + @Override + public int getSliceHighlightMenuRes() { + // not needed since it's not sliceable + return 0; + } } diff --git a/src/com/android/settings/biometrics/combination/BiometricSettingsKeyguardPreferenceController.java b/src/com/android/settings/biometrics/combination/BiometricSettingsKeyguardPreferenceController.java index f6f2d5f2b57..4101963cf49 100644 --- a/src/com/android/settings/biometrics/combination/BiometricSettingsKeyguardPreferenceController.java +++ b/src/com/android/settings/biometrics/combination/BiometricSettingsKeyguardPreferenceController.java @@ -73,4 +73,10 @@ public class BiometricSettingsKeyguardPreferenceController extends TogglePrefere public final boolean isSliceable() { return false; } + + @Override + public int getSliceHighlightMenuRes() { + // not needed since it's not sliceable + return 0; + } } diff --git a/src/com/android/settings/biometrics/face/FaceSettingsPreferenceController.java b/src/com/android/settings/biometrics/face/FaceSettingsPreferenceController.java index 36984a28958..a8bff6b4197 100644 --- a/src/com/android/settings/biometrics/face/FaceSettingsPreferenceController.java +++ b/src/com/android/settings/biometrics/face/FaceSettingsPreferenceController.java @@ -51,4 +51,10 @@ public abstract class FaceSettingsPreferenceController extends TogglePreferenceC public final boolean isSliceable() { return false; } + + @Override + public int getSliceHighlightMenuRes() { + // not needed since it's not sliceable + return 0; + } } diff --git a/src/com/android/settings/bluetooth/BluetoothSliceBuilder.java b/src/com/android/settings/bluetooth/BluetoothSliceBuilder.java index b09d180dd87..508084d2b6b 100644 --- a/src/com/android/settings/bluetooth/BluetoothSliceBuilder.java +++ b/src/com/android/settings/bluetooth/BluetoothSliceBuilder.java @@ -98,7 +98,8 @@ public class BluetoothSliceBuilder { SettingsSlicesContract.KEY_BLUETOOTH).build(); return SliceBuilderUtils.buildSearchResultPageIntent(context, BluetoothDashboardFragment.class.getName(), null /* key */, screenTitle, - SettingsEnums.SETTINGS_CONNECTED_DEVICE_CATEGORY) + SettingsEnums.SETTINGS_CONNECTED_DEVICE_CATEGORY, + R.string.menu_key_connected_devices) .setClassName(context.getPackageName(), SubSettings.class.getName()) .setData(contentUri); } diff --git a/src/com/android/settings/core/TogglePreferenceController.java b/src/com/android/settings/core/TogglePreferenceController.java index c958a93f0b9..8b4d6d9c574 100644 --- a/src/com/android/settings/core/TogglePreferenceController.java +++ b/src/com/android/settings/core/TogglePreferenceController.java @@ -89,4 +89,7 @@ public abstract class TogglePreferenceController extends BasePreferenceControlle public boolean isPublicSlice() { return false; } + + @Override + public abstract int getSliceHighlightMenuRes(); } \ No newline at end of file diff --git a/src/com/android/settings/datetime/LocationTimeZoneDetectionPreferenceController.java b/src/com/android/settings/datetime/LocationTimeZoneDetectionPreferenceController.java index e25422f8db1..2bab3e97a86 100644 --- a/src/com/android/settings/datetime/LocationTimeZoneDetectionPreferenceController.java +++ b/src/com/android/settings/datetime/LocationTimeZoneDetectionPreferenceController.java @@ -117,6 +117,12 @@ public class LocationTimeZoneDetectionPreferenceController return false; } + @Override + public int getSliceHighlightMenuRes() { + // not needed since it's not sliceable + return 0; + } + @Override public int getAvailabilityStatus() { TimeZoneCapabilities timeZoneCapabilities = diff --git a/src/com/android/settings/development/transcode/TranscodeDefaultOptionPreferenceController.java b/src/com/android/settings/development/transcode/TranscodeDefaultOptionPreferenceController.java index 3cbf3cbde8f..1c2fcd98410 100644 --- a/src/com/android/settings/development/transcode/TranscodeDefaultOptionPreferenceController.java +++ b/src/com/android/settings/development/transcode/TranscodeDefaultOptionPreferenceController.java @@ -19,6 +19,7 @@ package com.android.settings.development.transcode; import android.content.Context; import android.os.SystemProperties; +import com.android.settings.R; import com.android.settings.core.TogglePreferenceController; /** @@ -48,4 +49,9 @@ public class TranscodeDefaultOptionPreferenceController extends TogglePreference public int getAvailabilityStatus() { return AVAILABLE; } + + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_system; + } } diff --git a/src/com/android/settings/development/transcode/TranscodeDisableCachePreferenceController.java b/src/com/android/settings/development/transcode/TranscodeDisableCachePreferenceController.java index 38c32082b9a..c3b0624e9df 100644 --- a/src/com/android/settings/development/transcode/TranscodeDisableCachePreferenceController.java +++ b/src/com/android/settings/development/transcode/TranscodeDisableCachePreferenceController.java @@ -20,6 +20,7 @@ import android.content.Context; import android.os.SystemProperties; import com.android.internal.annotations.VisibleForTesting; +import com.android.settings.R; import com.android.settings.core.TogglePreferenceController; /** @@ -50,4 +51,9 @@ public class TranscodeDisableCachePreferenceController extends TogglePreferenceC public int getAvailabilityStatus() { return AVAILABLE; } + + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_system; + } } diff --git a/src/com/android/settings/development/transcode/TranscodeGlobalTogglePreferenceController.java b/src/com/android/settings/development/transcode/TranscodeGlobalTogglePreferenceController.java index c15806d4b94..b2d446e0721 100644 --- a/src/com/android/settings/development/transcode/TranscodeGlobalTogglePreferenceController.java +++ b/src/com/android/settings/development/transcode/TranscodeGlobalTogglePreferenceController.java @@ -19,6 +19,7 @@ package com.android.settings.development.transcode; import android.content.Context; import android.os.SystemProperties; +import com.android.settings.R; import com.android.settings.core.TogglePreferenceController; /** @@ -49,4 +50,9 @@ public class TranscodeGlobalTogglePreferenceController extends TogglePreferenceC SystemProperties.set(TRANSCODE_ENABLED_PROP_KEY, String.valueOf(isChecked)); return true; } + + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_system; + } } diff --git a/src/com/android/settings/development/transcode/TranscodeNotificationPreferenceController.java b/src/com/android/settings/development/transcode/TranscodeNotificationPreferenceController.java index fd5ec5aed3b..6b6692e5811 100644 --- a/src/com/android/settings/development/transcode/TranscodeNotificationPreferenceController.java +++ b/src/com/android/settings/development/transcode/TranscodeNotificationPreferenceController.java @@ -20,6 +20,7 @@ import android.content.Context; import android.os.SystemProperties; import com.android.internal.annotations.VisibleForTesting; +import com.android.settings.R; import com.android.settings.core.TogglePreferenceController; /** @@ -50,4 +51,9 @@ public class TranscodeNotificationPreferenceController extends TogglePreferenceC public int getAvailabilityStatus() { return AVAILABLE; } + + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_system; + } } diff --git a/src/com/android/settings/development/transcode/TranscodeUserControlPreferenceController.java b/src/com/android/settings/development/transcode/TranscodeUserControlPreferenceController.java index 49456ff1a78..ce82293486c 100644 --- a/src/com/android/settings/development/transcode/TranscodeUserControlPreferenceController.java +++ b/src/com/android/settings/development/transcode/TranscodeUserControlPreferenceController.java @@ -19,6 +19,7 @@ package com.android.settings.development.transcode; import android.content.Context; import android.os.SystemProperties; +import com.android.settings.R; import com.android.settings.core.TogglePreferenceController; /** @@ -48,4 +49,9 @@ public class TranscodeUserControlPreferenceController extends TogglePreferenceCo public int getAvailabilityStatus() { return AVAILABLE; } + + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_system; + } } diff --git a/src/com/android/settings/display/AlwaysOnDisplaySlice.java b/src/com/android/settings/display/AlwaysOnDisplaySlice.java index 27374ef26e8..c66f4edee78 100644 --- a/src/com/android/settings/display/AlwaysOnDisplaySlice.java +++ b/src/com/android/settings/display/AlwaysOnDisplaySlice.java @@ -106,4 +106,9 @@ public class AlwaysOnDisplaySlice implements CustomSliceable { public Intent getIntent() { return null; } + + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_display; + } } diff --git a/src/com/android/settings/display/AmbientDisplayAlwaysOnPreferenceController.java b/src/com/android/settings/display/AmbientDisplayAlwaysOnPreferenceController.java index 7749c8f19ab..bf81727cca9 100644 --- a/src/com/android/settings/display/AmbientDisplayAlwaysOnPreferenceController.java +++ b/src/com/android/settings/display/AmbientDisplayAlwaysOnPreferenceController.java @@ -67,6 +67,11 @@ public class AmbientDisplayAlwaysOnPreferenceController extends TogglePreference return true; } + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_display; + } + @Override public boolean isChecked() { return getConfig().alwaysOnEnabled(MY_USER); diff --git a/src/com/android/settings/display/AmbientDisplayNotificationsPreferenceController.java b/src/com/android/settings/display/AmbientDisplayNotificationsPreferenceController.java index e143d73c17a..a5b0aeb42f2 100644 --- a/src/com/android/settings/display/AmbientDisplayNotificationsPreferenceController.java +++ b/src/com/android/settings/display/AmbientDisplayNotificationsPreferenceController.java @@ -25,6 +25,7 @@ import android.text.TextUtils; import androidx.annotation.VisibleForTesting; import androidx.preference.Preference; +import com.android.settings.R; import com.android.settings.core.TogglePreferenceController; import com.android.settings.overlay.FeatureFactory; import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; @@ -100,4 +101,9 @@ public class AmbientDisplayNotificationsPreferenceController extends return mConfig; } + + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_display; + } } diff --git a/src/com/android/settings/display/AutoBrightnessPreferenceController.java b/src/com/android/settings/display/AutoBrightnessPreferenceController.java index 0018d848685..d925de3959d 100644 --- a/src/com/android/settings/display/AutoBrightnessPreferenceController.java +++ b/src/com/android/settings/display/AutoBrightnessPreferenceController.java @@ -61,4 +61,9 @@ public class AutoBrightnessPreferenceController extends TogglePreferenceControll ? R.string.auto_brightness_summary_on : R.string.auto_brightness_summary_off); } + + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_display; + } } diff --git a/src/com/android/settings/display/AutoRotatePreferenceController.java b/src/com/android/settings/display/AutoRotatePreferenceController.java index 202a085e890..5dc228644a9 100644 --- a/src/com/android/settings/display/AutoRotatePreferenceController.java +++ b/src/com/android/settings/display/AutoRotatePreferenceController.java @@ -20,6 +20,7 @@ import android.text.TextUtils; import androidx.preference.Preference; import com.android.internal.view.RotationPolicy; +import com.android.settings.R; import com.android.settings.core.PreferenceControllerMixin; import com.android.settings.core.TogglePreferenceController; import com.android.settings.overlay.FeatureFactory; @@ -86,6 +87,11 @@ public class AutoRotatePreferenceController extends TogglePreferenceController i return true; } + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_display; + } + @Override public boolean isChecked() { return !RotationPolicy.isRotationLocked(mContext); diff --git a/src/com/android/settings/display/ControlsPrivacyPreferenceController.java b/src/com/android/settings/display/ControlsPrivacyPreferenceController.java index 65fd84644c4..00573a784a9 100644 --- a/src/com/android/settings/display/ControlsPrivacyPreferenceController.java +++ b/src/com/android/settings/display/ControlsPrivacyPreferenceController.java @@ -70,6 +70,11 @@ public class ControlsPrivacyPreferenceController extends TogglePreferenceControl refreshSummary(preference); } + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_display; + } + private boolean isEnabled() { return isControlsAvailable(); } diff --git a/src/com/android/settings/display/DarkUIPreferenceController.java b/src/com/android/settings/display/DarkUIPreferenceController.java index 98d9a69ea7c..d07410ee271 100644 --- a/src/com/android/settings/display/DarkUIPreferenceController.java +++ b/src/com/android/settings/display/DarkUIPreferenceController.java @@ -95,6 +95,11 @@ public class DarkUIPreferenceController extends TogglePreferenceController imple return mUiModeManager.setNightModeActivated(isChecked); } + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_display; + } + private void showDarkModeDialog() { final DarkUIInfoDialogFragment frag = new DarkUIInfoDialogFragment(); if (mFragment != null && mFragment.getFragmentManager() != null) { diff --git a/src/com/android/settings/display/DisplayWhiteBalancePreferenceController.java b/src/com/android/settings/display/DisplayWhiteBalancePreferenceController.java index 6fc0b0e10e4..805cb089706 100644 --- a/src/com/android/settings/display/DisplayWhiteBalancePreferenceController.java +++ b/src/com/android/settings/display/DisplayWhiteBalancePreferenceController.java @@ -21,19 +21,19 @@ import android.hardware.display.ColorDisplayManager; import android.net.Uri; import android.os.Handler; import android.os.Looper; -import android.os.UserHandle; import android.provider.Settings.Secure; import android.provider.Settings.System; + import androidx.annotation.VisibleForTesting; import androidx.preference.Preference; import androidx.preference.PreferenceScreen; +import com.android.settings.R; +import com.android.settings.core.TogglePreferenceController; import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.events.OnStart; import com.android.settingslib.core.lifecycle.events.OnStop; -import com.android.settings.core.TogglePreferenceController; - public class DisplayWhiteBalancePreferenceController extends TogglePreferenceController implements LifecycleObserver, OnStart, OnStop { @@ -62,6 +62,11 @@ public class DisplayWhiteBalancePreferenceController extends TogglePreferenceCon return getColorDisplayManager().setDisplayWhiteBalanceEnabled(isChecked); } + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_display; + } + @Override public void onStart() { if (!isAvailable()) { diff --git a/src/com/android/settings/display/NightDisplayActivationPreferenceController.java b/src/com/android/settings/display/NightDisplayActivationPreferenceController.java index e6217ff7eb2..d0d482246c7 100644 --- a/src/com/android/settings/display/NightDisplayActivationPreferenceController.java +++ b/src/com/android/settings/display/NightDisplayActivationPreferenceController.java @@ -24,6 +24,7 @@ import android.widget.Switch; import androidx.preference.Preference; import androidx.preference.PreferenceScreen; +import com.android.settings.R; import com.android.settings.core.TogglePreferenceController; import com.android.settings.overlay.FeatureFactory; import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; @@ -65,6 +66,11 @@ public class NightDisplayActivationPreferenceController extends return true; } + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_display; + } + @Override public void displayPreference(PreferenceScreen screen) { super.displayPreference(screen); diff --git a/src/com/android/settings/display/NightDisplayIntensityPreferenceController.java b/src/com/android/settings/display/NightDisplayIntensityPreferenceController.java index 0f8ecc515e1..700b601a608 100644 --- a/src/com/android/settings/display/NightDisplayIntensityPreferenceController.java +++ b/src/com/android/settings/display/NightDisplayIntensityPreferenceController.java @@ -23,6 +23,7 @@ import android.text.TextUtils; import androidx.preference.Preference; import androidx.preference.PreferenceScreen; +import com.android.settings.R; import com.android.settings.core.SliderPreferenceController; import com.android.settings.widget.SeekBarPreference; @@ -55,6 +56,11 @@ public class NightDisplayIntensityPreferenceController extends SliderPreferenceC return true; } + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_display; + } + @Override public void displayPreference(PreferenceScreen screen) { super.displayPreference(screen); diff --git a/src/com/android/settings/display/NightDisplayPreferenceController.java b/src/com/android/settings/display/NightDisplayPreferenceController.java index 003373cc1aa..df9e8498aaf 100644 --- a/src/com/android/settings/display/NightDisplayPreferenceController.java +++ b/src/com/android/settings/display/NightDisplayPreferenceController.java @@ -95,6 +95,11 @@ public class NightDisplayPreferenceController extends TogglePreferenceController preference.setSummary(mTimeFormatter.getAutoModeSummary(mContext, mColorDisplayManager)); } + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_display; + } + @Override public void onActivated(boolean activated) { updateState(mPreference); diff --git a/src/com/android/settings/display/PeakRefreshRatePreferenceController.java b/src/com/android/settings/display/PeakRefreshRatePreferenceController.java index 9b654dc74da..27ba340c6ba 100644 --- a/src/com/android/settings/display/PeakRefreshRatePreferenceController.java +++ b/src/com/android/settings/display/PeakRefreshRatePreferenceController.java @@ -119,6 +119,11 @@ public class PeakRefreshRatePreferenceController extends TogglePreferenceControl mContext.getContentResolver(), Settings.System.PEAK_REFRESH_RATE, peakRefreshRate); } + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_display; + } + @Override public void onStart() { mDeviceConfigDisplaySettings.startListening(); diff --git a/src/com/android/settings/display/SmartAutoRotateController.java b/src/com/android/settings/display/SmartAutoRotateController.java index 61bbd185979..b88aa807f97 100644 --- a/src/com/android/settings/display/SmartAutoRotateController.java +++ b/src/com/android/settings/display/SmartAutoRotateController.java @@ -43,6 +43,7 @@ import androidx.preference.PreferenceScreen; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.view.RotationPolicy; +import com.android.settings.R; import com.android.settings.core.TogglePreferenceController; import com.android.settings.overlay.FeatureFactory; import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; @@ -157,6 +158,11 @@ public class SmartAutoRotateController extends TogglePreferenceController implem return true; } + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_display; + } + static boolean isRotationResolverServiceAvailable(Context context) { final PackageManager packageManager = context.getPackageManager(); final String resolvePackage = packageManager.getRotationResolverPackageName(); diff --git a/src/com/android/settings/display/SmartAutoRotatePreferenceController.java b/src/com/android/settings/display/SmartAutoRotatePreferenceController.java index 849fbe74cc8..afeea80203b 100644 --- a/src/com/android/settings/display/SmartAutoRotatePreferenceController.java +++ b/src/com/android/settings/display/SmartAutoRotatePreferenceController.java @@ -22,7 +22,6 @@ import static android.provider.Settings.Secure.CAMERA_AUTOROTATE; import static com.android.settings.display.SmartAutoRotateController.hasSufficientPermission; import static com.android.settings.display.SmartAutoRotateController.isRotationResolverServiceAvailable; -import android.text.TextUtils; import android.app.settings.SettingsEnums; import android.content.BroadcastReceiver; import android.content.Context; @@ -32,6 +31,7 @@ import android.hardware.SensorPrivacyManager; import android.os.PowerManager; import android.os.UserHandle; import android.provider.Settings; +import android.text.TextUtils; import androidx.preference.Preference; import androidx.preference.PreferenceScreen; @@ -90,6 +90,11 @@ public class SmartAutoRotatePreferenceController extends TogglePreferenceControl return true; } + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_display; + } + @Override public void displayPreference(PreferenceScreen screen) { super.displayPreference(screen); diff --git a/src/com/android/settings/display/WalletPrivacyPreferenceController.java b/src/com/android/settings/display/WalletPrivacyPreferenceController.java index 2e78fe360cc..92580f3d569 100644 --- a/src/com/android/settings/display/WalletPrivacyPreferenceController.java +++ b/src/com/android/settings/display/WalletPrivacyPreferenceController.java @@ -72,6 +72,11 @@ public class WalletPrivacyPreferenceController extends TogglePreferenceControlle refreshSummary(preference); } + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_display; + } + private boolean isEnabled() { return mClient.isWalletServiceAvailable(); } diff --git a/src/com/android/settings/dream/StartNowPreferenceController.java b/src/com/android/settings/dream/StartNowPreferenceController.java index f6a79ccea01..add1b58f32a 100644 --- a/src/com/android/settings/dream/StartNowPreferenceController.java +++ b/src/com/android/settings/dream/StartNowPreferenceController.java @@ -20,6 +20,7 @@ import android.content.Context; import androidx.preference.Preference; +import com.android.settings.R; import com.android.settings.dashboard.DashboardFragment; import com.android.settings.overlay.FeatureFactory; import com.android.settings.widget.SettingsMainSwitchPreferenceController; @@ -67,4 +68,9 @@ public class StartNowPreferenceController extends SettingsMainSwitchPreferenceCo } return true; } + + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_display; + } } diff --git a/src/com/android/settings/emergency/EmergencyGestureSoundPreferenceController.java b/src/com/android/settings/emergency/EmergencyGestureSoundPreferenceController.java index f9fb647cbb6..3d6695b1a37 100644 --- a/src/com/android/settings/emergency/EmergencyGestureSoundPreferenceController.java +++ b/src/com/android/settings/emergency/EmergencyGestureSoundPreferenceController.java @@ -52,6 +52,12 @@ public class EmergencyGestureSoundPreferenceController extends TogglePreferenceC return false; } + @Override + public int getSliceHighlightMenuRes() { + // not needed since it's not sliceable + return 0; + } + @Override public boolean isChecked() { return mEmergencyNumberUtils.getEmergencyGestureSoundEnabled(); diff --git a/src/com/android/settings/flashlight/FlashlightSlice.java b/src/com/android/settings/flashlight/FlashlightSlice.java index bd7f4863b69..f18d7122cf7 100644 --- a/src/com/android/settings/flashlight/FlashlightSlice.java +++ b/src/com/android/settings/flashlight/FlashlightSlice.java @@ -117,6 +117,12 @@ public class FlashlightSlice implements CustomSliceable { return null; } + @Override + public int getSliceHighlightMenuRes() { + // no landing page in Settings + return 0; + } + private static String getCameraId(Context context) throws CameraAccessException { final CameraManager cameraManager = context.getSystemService(CameraManager.class); final String[] ids = cameraManager.getCameraIdList(); diff --git a/src/com/android/settings/fuelgauge/SmartBatteryPreferenceController.java b/src/com/android/settings/fuelgauge/SmartBatteryPreferenceController.java index 27b70cb6129..26c0ab9674f 100644 --- a/src/com/android/settings/fuelgauge/SmartBatteryPreferenceController.java +++ b/src/com/android/settings/fuelgauge/SmartBatteryPreferenceController.java @@ -24,6 +24,7 @@ import android.text.TextUtils; import androidx.preference.Preference; import androidx.preference.SwitchPreference; +import com.android.settings.R; import com.android.settings.core.BasePreferenceController; import com.android.settings.overlay.FeatureFactory; @@ -61,6 +62,11 @@ public class SmartBatteryPreferenceController extends BasePreferenceController i return true; } + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_battery; + } + @Override public void updateState(Preference preference) { super.updateState(preference); diff --git a/src/com/android/settings/fuelgauge/batterysaver/BatterySaverButtonPreferenceController.java b/src/com/android/settings/fuelgauge/batterysaver/BatterySaverButtonPreferenceController.java index 1a7fa38be31..29791518bed 100644 --- a/src/com/android/settings/fuelgauge/batterysaver/BatterySaverButtonPreferenceController.java +++ b/src/com/android/settings/fuelgauge/batterysaver/BatterySaverButtonPreferenceController.java @@ -118,6 +118,11 @@ public class BatterySaverButtonPreferenceController extends false /* needFirstTimeWarning */); } + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_battery; + } + @Override public void onPowerSaveModeChanged() { mHandler.postDelayed(() -> onPowerSaveModeChangedInternal(), diff --git a/src/com/android/settings/fuelgauge/batterysaver/BatterySaverStickyPreferenceController.java b/src/com/android/settings/fuelgauge/batterysaver/BatterySaverStickyPreferenceController.java index 6754245d712..ce2cbb0b548 100644 --- a/src/com/android/settings/fuelgauge/batterysaver/BatterySaverStickyPreferenceController.java +++ b/src/com/android/settings/fuelgauge/batterysaver/BatterySaverStickyPreferenceController.java @@ -8,6 +8,7 @@ import android.text.TextUtils; import androidx.preference.Preference; import androidx.preference.SwitchPreference; + import com.android.settings.R; import com.android.settings.core.PreferenceControllerMixin; import com.android.settings.core.TogglePreferenceController; @@ -59,4 +60,9 @@ public class BatterySaverStickyPreferenceController extends TogglePreferenceCont public int getAvailabilityStatus() { return AVAILABLE; } + + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_battery; + } } diff --git a/src/com/android/settings/gestures/GestureNavigationSettingsAssistController.java b/src/com/android/settings/gestures/GestureNavigationSettingsAssistController.java index 95fd9f1fd61..159f4795815 100644 --- a/src/com/android/settings/gestures/GestureNavigationSettingsAssistController.java +++ b/src/com/android/settings/gestures/GestureNavigationSettingsAssistController.java @@ -19,6 +19,7 @@ package com.android.settings.gestures; import android.content.Context; import android.provider.Settings; +import com.android.settings.R; import com.android.settings.core.TogglePreferenceController; /** @@ -50,4 +51,9 @@ public class GestureNavigationSettingsAssistController extends TogglePreferenceC return SystemNavigationPreferenceController.isGestureAvailable(mContext) ? AVAILABLE : UNSUPPORTED_ON_DEVICE; } + + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_system; + } } diff --git a/src/com/android/settings/gestures/GesturePreferenceController.java b/src/com/android/settings/gestures/GesturePreferenceController.java index c771abdce22..71c3c9ac63c 100644 --- a/src/com/android/settings/gestures/GesturePreferenceController.java +++ b/src/com/android/settings/gestures/GesturePreferenceController.java @@ -78,6 +78,11 @@ public abstract class GesturePreferenceController extends TogglePreferenceContro } } + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_system; + } + protected abstract String getVideoPrefKey(); protected boolean canHandleClicks() { diff --git a/src/com/android/settings/gestures/GestureSettings.java b/src/com/android/settings/gestures/GestureSettings.java index 76964e5e000..d82cb108f50 100644 --- a/src/com/android/settings/gestures/GestureSettings.java +++ b/src/com/android/settings/gestures/GestureSettings.java @@ -25,10 +25,13 @@ import com.android.settings.dashboard.DashboardFragment; import com.android.settings.search.BaseSearchIndexProvider; import com.android.settingslib.search.SearchIndexable; +import java.util.List; + @SearchIndexable public class GestureSettings extends DashboardFragment { private static final String TAG = "GestureSettings"; + private static final String PREF_KEY_PREVENT_RINGING = "gesture_prevent_ringing_summary"; private AmbientDisplayConfiguration mAmbientDisplayConfig; @@ -63,5 +66,13 @@ public class GestureSettings extends DashboardFragment { } public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER = - new BaseSearchIndexProvider(R.xml.gestures); + new BaseSearchIndexProvider(R.xml.gestures) { + @Override + public List getNonIndexableKeys(Context context) { + final List keys = super.getNonIndexableKeys(context); + // de-duplicated due to another same entry in Sound page + keys.add(PREF_KEY_PREVENT_RINGING); + return keys; + } + }; } diff --git a/src/com/android/settings/gestures/LongPressPowerButtonPreferenceController.java b/src/com/android/settings/gestures/LongPressPowerButtonPreferenceController.java index 44494eeced2..82766dba150 100644 --- a/src/com/android/settings/gestures/LongPressPowerButtonPreferenceController.java +++ b/src/com/android/settings/gestures/LongPressPowerButtonPreferenceController.java @@ -120,6 +120,11 @@ public class LongPressPowerButtonPreferenceController extends TogglePreferenceCo return false; } + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_system; + } + private void refreshStateDisplay() { if (mAssistSwitch != null) { mAssistSwitch.setSummary(getSummary()); diff --git a/src/com/android/settings/gestures/OneHandedMainSwitchPreferenceController.java b/src/com/android/settings/gestures/OneHandedMainSwitchPreferenceController.java index 2b7d7a0f307..3f84aba4f14 100644 --- a/src/com/android/settings/gestures/OneHandedMainSwitchPreferenceController.java +++ b/src/com/android/settings/gestures/OneHandedMainSwitchPreferenceController.java @@ -21,6 +21,7 @@ import android.net.Uri; import androidx.preference.PreferenceScreen; +import com.android.settings.R; import com.android.settings.widget.SettingsMainSwitchPreferenceController; import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.events.OnStart; @@ -92,4 +93,9 @@ public class OneHandedMainSwitchPreferenceController extends mPreference.setChecked(isChecked()); } } + + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_system; + } } diff --git a/src/com/android/settings/gestures/PreventRingingParentPreferenceController.java b/src/com/android/settings/gestures/PreventRingingParentPreferenceController.java index b3b39fbd7e5..5f880f73035 100644 --- a/src/com/android/settings/gestures/PreventRingingParentPreferenceController.java +++ b/src/com/android/settings/gestures/PreventRingingParentPreferenceController.java @@ -137,6 +137,11 @@ public class PreventRingingParentPreferenceController extends TogglePreferenceCo return UNSUPPORTED_ON_DEVICE; } + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_sound; + } + @Override public void onStart() { if (mSettingObserver != null) { diff --git a/src/com/android/settings/homepage/contextualcards/slices/BatteryFixSlice.java b/src/com/android/settings/homepage/contextualcards/slices/BatteryFixSlice.java index 94d3f69ed2f..f10a2d74c9d 100644 --- a/src/com/android/settings/homepage/contextualcards/slices/BatteryFixSlice.java +++ b/src/com/android/settings/homepage/contextualcards/slices/BatteryFixSlice.java @@ -147,11 +147,17 @@ public class BatteryFixSlice implements CustomSliceable { return SliceBuilderUtils.buildSearchResultPageIntent(mContext, PowerUsageSummary.class.getName(), BatteryTipPreferenceController.PREF_NAME, screenTitle, - SettingsEnums.SLICE) + SettingsEnums.SLICE, + this) .setClassName(mContext.getPackageName(), SubSettings.class.getName()) .setData(contentUri); } + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_battery; + } + @Override public void onNotifyChange(Intent intent) { } diff --git a/src/com/android/settings/homepage/contextualcards/slices/BluetoothDevicesSlice.java b/src/com/android/settings/homepage/contextualcards/slices/BluetoothDevicesSlice.java index bfdd13a3ad2..7e4730ca951 100644 --- a/src/com/android/settings/homepage/contextualcards/slices/BluetoothDevicesSlice.java +++ b/src/com/android/settings/homepage/contextualcards/slices/BluetoothDevicesSlice.java @@ -130,11 +130,17 @@ public class BluetoothDevicesSlice implements CustomSliceable { return SliceBuilderUtils.buildSearchResultPageIntent(mContext, ConnectedDeviceDashboardFragment.class.getName(), "" /* key */, screenTitle, - SettingsEnums.SLICE) + SettingsEnums.SLICE, + this) .setClassName(mContext.getPackageName(), SubSettings.class.getName()) .setData(getUri()); } + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_connected_devices; + } + @Override public void onNotifyChange(Intent intent) { final boolean enableBluetooth = intent.getBooleanExtra(EXTRA_ENABLE_BLUETOOTH, false); diff --git a/src/com/android/settings/homepage/contextualcards/slices/ContextualAdaptiveSleepSlice.java b/src/com/android/settings/homepage/contextualcards/slices/ContextualAdaptiveSleepSlice.java index f11b0e3f8d2..2291bd736d5 100644 --- a/src/com/android/settings/homepage/contextualcards/slices/ContextualAdaptiveSleepSlice.java +++ b/src/com/android/settings/homepage/contextualcards/slices/ContextualAdaptiveSleepSlice.java @@ -117,8 +117,14 @@ public class ContextualAdaptiveSleepSlice implements CustomSliceable { final Uri contentUri = new Uri.Builder().appendPath(PREF_NAME).build(); return SliceBuilderUtils.buildSearchResultPageIntent(mContext, ScreenTimeoutSettings.class.getName(), PREF_NAME, screenTitle.toString(), - SettingsEnums.SLICE).setClassName(mContext.getPackageName(), - SubSettings.class.getName()).setData(contentUri); + SettingsEnums.SLICE, this) + .setClassName(mContext.getPackageName(), + SubSettings.class.getName()).setData(contentUri); + } + + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_display; } private PendingIntent getPrimaryAction() { diff --git a/src/com/android/settings/homepage/contextualcards/slices/DarkThemeSlice.java b/src/com/android/settings/homepage/contextualcards/slices/DarkThemeSlice.java index f934d587eda..96924e40b3b 100644 --- a/src/com/android/settings/homepage/contextualcards/slices/DarkThemeSlice.java +++ b/src/com/android/settings/homepage/contextualcards/slices/DarkThemeSlice.java @@ -148,6 +148,11 @@ public class DarkThemeSlice implements CustomSliceable { return null; } + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_display; + } + @Override public Class getBackgroundWorkerClass() { return DarkThemeWorker.class; diff --git a/src/com/android/settings/homepage/contextualcards/slices/FaceSetupSlice.java b/src/com/android/settings/homepage/contextualcards/slices/FaceSetupSlice.java index 1b3ee10b233..7cf7d869174 100644 --- a/src/com/android/settings/homepage/contextualcards/slices/FaceSetupSlice.java +++ b/src/com/android/settings/homepage/contextualcards/slices/FaceSetupSlice.java @@ -133,13 +133,18 @@ public class FaceSetupSlice implements CustomSliceable { SecuritySettings.class.getName(), FaceStatusPreferenceController.KEY_FACE_SETTINGS, mContext.getText(R.string.security_settings_face_settings_enroll).toString(), - SettingsEnums.SLICE) + SettingsEnums.SLICE, this) .setClassName(mContext.getPackageName(), SubSettings.class.getName()); } else { return new Intent(mContext, FaceReEnrollDialog.class); } } + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_security; + } + private static RowBuilder buildRowBuilder(CharSequence title, CharSequence subTitle, IconCompat icon, Context context, Intent intent) { final SliceAction primarySliceAction = SliceAction.createDeeplink( diff --git a/src/com/android/settings/homepage/contextualcards/slices/LowStorageSlice.java b/src/com/android/settings/homepage/contextualcards/slices/LowStorageSlice.java index 3812534aaf0..22e34317702 100644 --- a/src/com/android/settings/homepage/contextualcards/slices/LowStorageSlice.java +++ b/src/com/android/settings/homepage/contextualcards/slices/LowStorageSlice.java @@ -109,11 +109,17 @@ public class LowStorageSlice implements CustomSliceable { return SliceBuilderUtils.buildSearchResultPageIntent(mContext, StorageDashboardFragment.class.getName(), "" /* key */, screenTitle, - SettingsEnums.SLICE) + SettingsEnums.SLICE, + this) .setClassName(mContext.getPackageName(), SubSettings.class.getName()) .setData(CustomSliceRegistry.LOW_STORAGE_SLICE_URI); } + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_storage; + } + private RowBuilder buildRowBuilder(CharSequence title, String summary, IconCompat icon) { final SliceAction primarySliceAction = SliceAction.createDeeplink( PendingIntent.getActivity(mContext, 0, getIntent(), PendingIntent.FLAG_IMMUTABLE), diff --git a/src/com/android/settings/inputmethod/GameControllerPreferenceController.java b/src/com/android/settings/inputmethod/GameControllerPreferenceController.java index 80f668069f1..751dac78c43 100644 --- a/src/com/android/settings/inputmethod/GameControllerPreferenceController.java +++ b/src/com/android/settings/inputmethod/GameControllerPreferenceController.java @@ -100,6 +100,11 @@ public class GameControllerPreferenceController extends TogglePreferenceControll Settings.System.VIBRATE_INPUT_DEVICES, isChecked ? 1 : 0); } + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_system; + } + @Override public void onInputDeviceAdded(int deviceId) { updateState(mPreference); diff --git a/src/com/android/settings/inputmethod/OWNERS b/src/com/android/settings/inputmethod/OWNERS index 556de5f978c..7c7d7928cfc 100644 --- a/src/com/android/settings/inputmethod/OWNERS +++ b/src/com/android/settings/inputmethod/OWNERS @@ -1,5 +1,6 @@ # Bug component: 34867 include platform/frameworks/base:/services/core/java/com/android/server/inputmethod/OWNERS +include /OWNERS # Settings for physical keyboard and game pad are better to be reviewed by the input team per-file GameControllerPreferenceController.java = file: platform/frameworks/base:/services/core/java/com/android/server/input/OWNERS diff --git a/src/com/android/settings/location/BluetoothScanningMainSwitchPreferenceController.java b/src/com/android/settings/location/BluetoothScanningMainSwitchPreferenceController.java index 051fd8d8f1f..b491ec953a2 100644 --- a/src/com/android/settings/location/BluetoothScanningMainSwitchPreferenceController.java +++ b/src/com/android/settings/location/BluetoothScanningMainSwitchPreferenceController.java @@ -67,6 +67,11 @@ public class BluetoothScanningMainSwitchPreferenceController extends TogglePrefe return true; } + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_location; + } + @Override public void onSwitchChanged(Switch switchView, boolean isChecked) { if (isChecked != isChecked()) { diff --git a/src/com/android/settings/location/LocationIndicatorsPreferenceController.java b/src/com/android/settings/location/LocationIndicatorsPreferenceController.java index d39c280f5a6..75ffb3a9286 100644 --- a/src/com/android/settings/location/LocationIndicatorsPreferenceController.java +++ b/src/com/android/settings/location/LocationIndicatorsPreferenceController.java @@ -20,6 +20,7 @@ import android.content.Context; import android.content.pm.PackageManager; import android.provider.DeviceConfig; +import com.android.settings.R; import com.android.settings.Utils; import com.android.settings.core.TogglePreferenceController; @@ -54,4 +55,9 @@ public class LocationIndicatorsPreferenceController extends TogglePreferenceCont return mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_LOCATION) ? AVAILABLE : UNSUPPORTED_ON_DEVICE; } + + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_location; + } } diff --git a/src/com/android/settings/location/LocationSlice.java b/src/com/android/settings/location/LocationSlice.java index f8add128e1e..291e5e455e8 100644 --- a/src/com/android/settings/location/LocationSlice.java +++ b/src/com/android/settings/location/LocationSlice.java @@ -88,11 +88,16 @@ public class LocationSlice implements CustomSliceable { final Uri contentUri = new Uri.Builder().appendPath(KEY_LOCATION).build(); return SliceBuilderUtils.buildSearchResultPageIntent(mContext, LocationSettings.class.getName(), KEY_LOCATION, screenTitle, - SettingsEnums.LOCATION) + SettingsEnums.LOCATION, this) .setClassName(mContext.getPackageName(), SubSettings.class.getName()) .setData(contentUri); } + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_location; + } + private PendingIntent getPrimaryAction() { final Intent intent = getIntent(); return PendingIntent.getActivity(mContext, 0 /* requestCode */, diff --git a/src/com/android/settings/location/WifiScanningMainSwitchPreferenceController.java b/src/com/android/settings/location/WifiScanningMainSwitchPreferenceController.java index a69fdb8890f..546f1e1e399 100644 --- a/src/com/android/settings/location/WifiScanningMainSwitchPreferenceController.java +++ b/src/com/android/settings/location/WifiScanningMainSwitchPreferenceController.java @@ -68,6 +68,11 @@ public class WifiScanningMainSwitchPreferenceController extends TogglePreference return true; } + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_location; + } + @Override public void onSwitchChanged(Switch switchView, boolean isChecked) { if (isChecked != isChecked()) { diff --git a/src/com/android/settings/media/MediaOutputIndicatorSlice.java b/src/com/android/settings/media/MediaOutputIndicatorSlice.java index 10a8b792d56..e2232e71c2f 100644 --- a/src/com/android/settings/media/MediaOutputIndicatorSlice.java +++ b/src/com/android/settings/media/MediaOutputIndicatorSlice.java @@ -92,6 +92,11 @@ public class MediaOutputIndicatorSlice implements CustomSliceable { return null; } + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_connected_devices; + } + @Override public Class getBackgroundWorkerClass() { return MediaOutputIndicatorWorker.class; diff --git a/src/com/android/settings/media/RemoteMediaSlice.java b/src/com/android/settings/media/RemoteMediaSlice.java index 3d81c44b331..f856188c613 100644 --- a/src/com/android/settings/media/RemoteMediaSlice.java +++ b/src/com/android/settings/media/RemoteMediaSlice.java @@ -181,7 +181,9 @@ public class RemoteMediaSlice implements CustomSliceable { final Intent intent = SliceBuilderUtils.buildSearchResultPageIntent(mContext, SoundSettings.class.getName(), id, - mContext.getText(R.string.sound_settings).toString(), 0); + mContext.getText(R.string.sound_settings).toString(), + 0 /* sourceMetricsCategory */, + R.string.menu_key_sound); intent.setClassName(mContext.getPackageName(), SubSettings.class.getName()); intent.setData(contentUri); final PendingIntent pendingIntent = PendingIntent.getActivity(mContext, 0, intent, @@ -221,6 +223,11 @@ public class RemoteMediaSlice implements CustomSliceable { return null; } + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_connected_devices; + } + @Override public Class getBackgroundWorkerClass() { return MediaDeviceUpdateWorker.class; diff --git a/src/com/android/settings/network/AdaptiveConnectivityTogglePreferenceController.java b/src/com/android/settings/network/AdaptiveConnectivityTogglePreferenceController.java index e3d779ce938..ea849f65ac0 100644 --- a/src/com/android/settings/network/AdaptiveConnectivityTogglePreferenceController.java +++ b/src/com/android/settings/network/AdaptiveConnectivityTogglePreferenceController.java @@ -22,6 +22,7 @@ import android.provider.Settings; import androidx.preference.PreferenceScreen; +import com.android.settings.R; import com.android.settings.widget.SettingsMainSwitchPreferenceController; /** @@ -62,4 +63,9 @@ public class AdaptiveConnectivityTogglePreferenceController extends mWifiManager.setWifiScoringEnabled(isChecked); return true; } + + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_network; + } } diff --git a/src/com/android/settings/network/AirplaneModePreferenceController.java b/src/com/android/settings/network/AirplaneModePreferenceController.java index 68390379328..e74f3ae979e 100644 --- a/src/com/android/settings/network/AirplaneModePreferenceController.java +++ b/src/com/android/settings/network/AirplaneModePreferenceController.java @@ -120,6 +120,11 @@ public class AirplaneModePreferenceController extends TogglePreferenceController return isAvailable(mContext) ? AVAILABLE : UNSUPPORTED_ON_DEVICE; } + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_network; + } + @Override public void onStart() { if (isAvailable()) { diff --git a/src/com/android/settings/network/CarrierWifiTogglePreferenceController.java b/src/com/android/settings/network/CarrierWifiTogglePreferenceController.java index c5d8b973097..26679c67666 100644 --- a/src/com/android/settings/network/CarrierWifiTogglePreferenceController.java +++ b/src/com/android/settings/network/CarrierWifiTogglePreferenceController.java @@ -22,6 +22,7 @@ import androidx.lifecycle.Lifecycle; import androidx.preference.Preference; import androidx.preference.PreferenceScreen; +import com.android.settings.R; import com.android.settings.Utils; import com.android.settings.core.TogglePreferenceController; import com.android.settings.wifi.WifiPickerTrackerHelper; @@ -88,6 +89,11 @@ public class CarrierWifiTogglePreferenceController extends TogglePreferenceContr updateCarrierNetworkPreference(); } + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_network; + } + @Override public void onWifiStateChanged() { updateCarrierNetworkPreference(); diff --git a/src/com/android/settings/network/ProviderModelSlice.java b/src/com/android/settings/network/ProviderModelSlice.java index 146b11ad265..0aae349e72f 100644 --- a/src/com/android/settings/network/ProviderModelSlice.java +++ b/src/com/android/settings/network/ProviderModelSlice.java @@ -290,7 +290,7 @@ public class ProviderModelSlice extends WifiSlice { final String screenTitle = mContext.getText(R.string.provider_internet_settings).toString(); return SliceBuilderUtils.buildSearchResultPageIntent(mContext, NetworkProviderSettings.class.getName(), "" /* key */, screenTitle, - SettingsEnums.SLICE) + SettingsEnums.SLICE, this) .setClassName(mContext.getPackageName(), SubSettings.class.getName()) .setData(getUri()); } diff --git a/src/com/android/settings/network/TetherBasePreferenceController.java b/src/com/android/settings/network/TetherBasePreferenceController.java index 822aa726fee..b1627f2ec22 100644 --- a/src/com/android/settings/network/TetherBasePreferenceController.java +++ b/src/com/android/settings/network/TetherBasePreferenceController.java @@ -25,6 +25,7 @@ import androidx.lifecycle.OnLifecycleEvent; import androidx.preference.Preference; import androidx.preference.PreferenceScreen; +import com.android.settings.R; import com.android.settings.core.TogglePreferenceController; import com.android.settings.datausage.DataSaverBackend; @@ -117,6 +118,11 @@ public abstract class TetherBasePreferenceController extends TogglePreferenceCon return AVAILABLE; } + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_network; + } + @Override public void onTetherStateUpdated(@TetherEnabler.TetheringState int state) { mTetheringState = state; diff --git a/src/com/android/settings/network/telephony/MobileDataSlice.java b/src/com/android/settings/network/telephony/MobileDataSlice.java index 7ec31becb3f..22bb5818f9c 100644 --- a/src/com/android/settings/network/telephony/MobileDataSlice.java +++ b/src/com/android/settings/network/telephony/MobileDataSlice.java @@ -145,6 +145,11 @@ public class MobileDataSlice implements CustomSliceable { return new Intent(mContext, MobileNetworkActivity.class); } + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_network; + } + @Override public Class getBackgroundWorkerClass() { return MobileDataWorker.class; diff --git a/src/com/android/settings/network/telephony/TelephonyTogglePreferenceController.java b/src/com/android/settings/network/telephony/TelephonyTogglePreferenceController.java index 7fe5f1d99d6..46f279db260 100644 --- a/src/com/android/settings/network/telephony/TelephonyTogglePreferenceController.java +++ b/src/com/android/settings/network/telephony/TelephonyTogglePreferenceController.java @@ -65,6 +65,12 @@ public abstract class TelephonyTogglePreferenceController extends TogglePreferen return false; } + @Override + public int getSliceHighlightMenuRes() { + // not needed since it's not sliceable + return 0; + } + /** * Get carrier config based on specific subscription id. * diff --git a/src/com/android/settings/nfc/NfcPreferenceController.java b/src/com/android/settings/nfc/NfcPreferenceController.java index b30e7c3fe5d..483fead807e 100644 --- a/src/com/android/settings/nfc/NfcPreferenceController.java +++ b/src/com/android/settings/nfc/NfcPreferenceController.java @@ -27,6 +27,7 @@ import android.widget.Switch; import androidx.preference.PreferenceScreen; +import com.android.settings.R; import com.android.settings.core.TogglePreferenceController; import com.android.settings.slices.SliceBackgroundWorker; import com.android.settingslib.core.lifecycle.LifecycleObserver; @@ -58,7 +59,7 @@ public class NfcPreferenceController extends TogglePreferenceController return; } - mPreference = (MainSwitchPreference) screen.findPreference(getPreferenceKey()); + mPreference = screen.findPreference(getPreferenceKey()); mPreference.addOnSwitchChangeListener(this); mNfcEnabler = new NfcEnabler(mContext, mPreference); } @@ -103,6 +104,11 @@ public class NfcPreferenceController extends TogglePreferenceController return true; } + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_connected_devices; + } + @Override public Class getBackgroundWorkerClass() { return NfcSliceWorker.class; diff --git a/src/com/android/settings/nfc/SecureNfcPreferenceController.java b/src/com/android/settings/nfc/SecureNfcPreferenceController.java index 4e548d141b7..e1d27d0ba78 100644 --- a/src/com/android/settings/nfc/SecureNfcPreferenceController.java +++ b/src/com/android/settings/nfc/SecureNfcPreferenceController.java @@ -21,6 +21,7 @@ import android.nfc.NfcAdapter; import androidx.preference.PreferenceScreen; import androidx.preference.SwitchPreference; +import com.android.settings.R; import com.android.settings.core.TogglePreferenceController; import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.events.OnPause; @@ -81,6 +82,11 @@ public class SecureNfcPreferenceController extends TogglePreferenceController return true; } + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_connected_devices; + } + @Override public void onResume() { if (mSecureNfcEnabler != null) { diff --git a/src/com/android/settings/notification/BadgingNotificationPreferenceController.java b/src/com/android/settings/notification/BadgingNotificationPreferenceController.java index 613204b9375..69d95a817c7 100644 --- a/src/com/android/settings/notification/BadgingNotificationPreferenceController.java +++ b/src/com/android/settings/notification/BadgingNotificationPreferenceController.java @@ -30,6 +30,7 @@ import androidx.annotation.VisibleForTesting; import androidx.preference.Preference; import androidx.preference.PreferenceScreen; +import com.android.settings.R; import com.android.settings.core.PreferenceControllerMixin; import com.android.settings.core.TogglePreferenceController; import com.android.settingslib.core.lifecycle.LifecycleObserver; @@ -87,6 +88,11 @@ public class BadgingNotificationPreferenceController extends TogglePreferenceCon return TextUtils.equals(getPreferenceKey(), "notification_badging"); } + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_notifications; + } + @Override public boolean isChecked() { return Settings.Secure.getInt(mContext.getContentResolver(), diff --git a/src/com/android/settings/notification/BubbleNotificationPreferenceController.java b/src/com/android/settings/notification/BubbleNotificationPreferenceController.java index 37723b13283..9e3566498b0 100644 --- a/src/com/android/settings/notification/BubbleNotificationPreferenceController.java +++ b/src/com/android/settings/notification/BubbleNotificationPreferenceController.java @@ -88,6 +88,12 @@ public class BubbleNotificationPreferenceController extends return false; } + @Override + public int getSliceHighlightMenuRes() { + // not needed since it's not sliceable + return 0; + } + @Override public boolean isChecked() { return Settings.Global.getInt(mContext.getContentResolver(), diff --git a/src/com/android/settings/notification/NotificationAssistantPreferenceController.java b/src/com/android/settings/notification/NotificationAssistantPreferenceController.java index bdbc478e740..91031c8e4de 100644 --- a/src/com/android/settings/notification/NotificationAssistantPreferenceController.java +++ b/src/com/android/settings/notification/NotificationAssistantPreferenceController.java @@ -24,6 +24,7 @@ import android.provider.Settings; import androidx.fragment.app.Fragment; +import com.android.settings.R; import com.android.settings.core.TogglePreferenceController; import com.google.common.annotations.VisibleForTesting; @@ -73,6 +74,11 @@ public class NotificationAssistantPreferenceController extends TogglePreferenceC } } + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_notifications; + } + protected void setNotificationAssistantGranted(ComponentName cn) { if (Settings.Secure.getIntForUser(mContext.getContentResolver(), Settings.Secure.NAS_SETTINGS_UPDATED, 0, mUserId) == 0) { diff --git a/src/com/android/settings/notification/PulseNotificationPreferenceController.java b/src/com/android/settings/notification/PulseNotificationPreferenceController.java index 78855208f79..ad53fc3a0a3 100644 --- a/src/com/android/settings/notification/PulseNotificationPreferenceController.java +++ b/src/com/android/settings/notification/PulseNotificationPreferenceController.java @@ -28,6 +28,7 @@ import android.provider.Settings; import androidx.preference.Preference; import androidx.preference.PreferenceScreen; +import com.android.settings.R; import com.android.settings.core.TogglePreferenceController; import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.events.OnPause; @@ -86,6 +87,11 @@ public class PulseNotificationPreferenceController extends TogglePreferenceContr isChecked ? ON : OFF); } + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_notifications; + } + class SettingObserver extends ContentObserver { private final Uri NOTIFICATION_LIGHT_PULSE_URI = diff --git a/src/com/android/settings/notification/RedactNotificationPreferenceController.java b/src/com/android/settings/notification/RedactNotificationPreferenceController.java index d0326bb5c6a..db34e5e960a 100644 --- a/src/com/android/settings/notification/RedactNotificationPreferenceController.java +++ b/src/com/android/settings/notification/RedactNotificationPreferenceController.java @@ -32,6 +32,7 @@ import android.provider.Settings; import androidx.preference.PreferenceScreen; import com.android.internal.widget.LockPatternUtils; +import com.android.settings.R; import com.android.settings.core.TogglePreferenceController; import com.android.settings.overlay.FeatureFactory; import com.android.settingslib.RestrictedLockUtils; @@ -146,6 +147,11 @@ public class RedactNotificationPreferenceController extends TogglePreferenceCont return AVAILABLE; } + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_notifications; + } + @Override public void onStart() { mContext.getContentResolver().registerContentObserver( diff --git a/src/com/android/settings/notification/SilentStatusBarPreferenceController.java b/src/com/android/settings/notification/SilentStatusBarPreferenceController.java index 0585382a798..4c4c99dcd1a 100644 --- a/src/com/android/settings/notification/SilentStatusBarPreferenceController.java +++ b/src/com/android/settings/notification/SilentStatusBarPreferenceController.java @@ -18,6 +18,7 @@ package com.android.settings.notification; import android.content.Context; +import com.android.settings.R; import com.android.settings.core.TogglePreferenceController; import com.google.common.annotations.VisibleForTesting; @@ -52,4 +53,9 @@ public class SilentStatusBarPreferenceController extends TogglePreferenceControl public int getAvailabilityStatus() { return AVAILABLE; } + + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_notifications; + } } diff --git a/src/com/android/settings/notification/SnoozeNotificationPreferenceController.java b/src/com/android/settings/notification/SnoozeNotificationPreferenceController.java index 03170e42e9d..2c89f743f57 100644 --- a/src/com/android/settings/notification/SnoozeNotificationPreferenceController.java +++ b/src/com/android/settings/notification/SnoozeNotificationPreferenceController.java @@ -21,10 +21,11 @@ import static android.provider.Settings.Secure.SHOW_NOTIFICATION_SNOOZE; import android.content.Context; import android.provider.Settings; -import com.android.settings.core.TogglePreferenceController; - import androidx.annotation.VisibleForTesting; +import com.android.settings.R; +import com.android.settings.core.TogglePreferenceController; + public class SnoozeNotificationPreferenceController extends TogglePreferenceController { private static final String TAG = "SnoozeNotifPrefContr"; @@ -53,4 +54,9 @@ public class SnoozeNotificationPreferenceController extends TogglePreferenceCont return Settings.Secure.putInt(mContext.getContentResolver(), SHOW_NOTIFICATION_SNOOZE, isChecked ? ON : OFF); } + + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_notifications; + } } diff --git a/src/com/android/settings/notification/SpatialAudioPreferenceController.java b/src/com/android/settings/notification/SpatialAudioPreferenceController.java index 14200765678..7bca516f1c3 100644 --- a/src/com/android/settings/notification/SpatialAudioPreferenceController.java +++ b/src/com/android/settings/notification/SpatialAudioPreferenceController.java @@ -20,6 +20,7 @@ import android.content.Context; import android.media.AudioManager; import android.media.Spatializer; +import com.android.settings.R; import com.android.settings.core.TogglePreferenceController; /** @@ -53,4 +54,9 @@ public class SpatialAudioPreferenceController extends TogglePreferenceController mSpatializer.setEnabled(isChecked); return isChecked == isChecked(); } + + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_notifications; + } } diff --git a/src/com/android/settings/notification/VolumeSeekBarPreferenceController.java b/src/com/android/settings/notification/VolumeSeekBarPreferenceController.java index b32f922a51f..d1701599c34 100644 --- a/src/com/android/settings/notification/VolumeSeekBarPreferenceController.java +++ b/src/com/android/settings/notification/VolumeSeekBarPreferenceController.java @@ -23,6 +23,7 @@ import androidx.lifecycle.LifecycleObserver; import androidx.lifecycle.OnLifecycleEvent; import androidx.preference.PreferenceScreen; +import com.android.settings.R; import com.android.settings.notification.VolumeSeekBarPreference.Callback; import com.android.settingslib.core.lifecycle.Lifecycle; @@ -75,6 +76,11 @@ public abstract class VolumeSeekBarPreferenceController extends } } + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_sound; + } + @Override public int getSliderPosition() { if (mPreference != null) { diff --git a/src/com/android/settings/notification/zen/ZenModeSliceBuilder.java b/src/com/android/settings/notification/zen/ZenModeSliceBuilder.java index 5ea01eafe5a..1f553a26e94 100644 --- a/src/com/android/settings/notification/zen/ZenModeSliceBuilder.java +++ b/src/com/android/settings/notification/zen/ZenModeSliceBuilder.java @@ -120,7 +120,7 @@ public class ZenModeSliceBuilder { final String screenTitle = context.getText(R.string.zen_mode_settings_title).toString(); return SliceBuilderUtils.buildSearchResultPageIntent(context, ZenModeSettings.class.getName(), ZEN_MODE_SLICE_KEY, screenTitle, - SettingsEnums.NOTIFICATION_ZEN_MODE) + SettingsEnums.NOTIFICATION_ZEN_MODE, R.string.menu_key_notifications) .setClassName(context.getPackageName(), SubSettings.class.getName()) .setData(contentUri); } diff --git a/src/com/android/settings/panel/NfcPanel.java b/src/com/android/settings/panel/NfcPanel.java index c1e15e84063..6b1e43525b4 100644 --- a/src/com/android/settings/panel/NfcPanel.java +++ b/src/com/android/settings/panel/NfcPanel.java @@ -62,7 +62,8 @@ public class NfcPanel implements PanelContent { AdvancedConnectedDeviceDashboardFragment.class.getName(), null /* key */, screenTitle, - SettingsEnums.SETTINGS_CONNECTED_DEVICE_CATEGORY); + SettingsEnums.SETTINGS_CONNECTED_DEVICE_CATEGORY, + R.string.menu_key_connected_devices); intent.setClassName(mContext.getPackageName(), SubSettings.class.getName()); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); return intent; diff --git a/src/com/android/settings/panel/WifiPanel.java b/src/com/android/settings/panel/WifiPanel.java index 3b36a57b397..95ebb336747 100644 --- a/src/com/android/settings/panel/WifiPanel.java +++ b/src/com/android/settings/panel/WifiPanel.java @@ -62,10 +62,11 @@ public class WifiPanel implements PanelContent { final String screenTitle = mContext.getText(R.string.wifi_settings).toString(); final Intent intent = SliceBuilderUtils.buildSearchResultPageIntent(mContext, - WifiSettings.class.getName(), - null /* key */, - screenTitle, - SettingsEnums.WIFI); + WifiSettings.class.getName(), + null /* key */, + screenTitle, + SettingsEnums.WIFI, + R.string.menu_key_network); intent.setClassName(mContext.getPackageName(), SubSettings.class.getName()); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); return intent; diff --git a/src/com/android/settings/privacy/EnableContentCapturePreferenceController.java b/src/com/android/settings/privacy/EnableContentCapturePreferenceController.java index 47610aa18b5..3cf72b23dcc 100644 --- a/src/com/android/settings/privacy/EnableContentCapturePreferenceController.java +++ b/src/com/android/settings/privacy/EnableContentCapturePreferenceController.java @@ -18,8 +18,8 @@ package com.android.settings.privacy; import android.annotation.NonNull; import android.content.Context; -import android.provider.Settings; +import com.android.settings.R; import com.android.settings.core.TogglePreferenceController; import com.android.settings.utils.ContentCaptureUtils; @@ -46,4 +46,9 @@ public final class EnableContentCapturePreferenceController extends TogglePrefer && ContentCaptureUtils.getServiceSettingsComponentName() == null; return available ? AVAILABLE : UNSUPPORTED_ON_DEVICE; } + + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_privacy; + } } diff --git a/src/com/android/settings/privacy/EnableContentCaptureWithServiceSettingsPreferenceController.java b/src/com/android/settings/privacy/EnableContentCaptureWithServiceSettingsPreferenceController.java index 77aab34c9c3..c3878d51b62 100644 --- a/src/com/android/settings/privacy/EnableContentCaptureWithServiceSettingsPreferenceController.java +++ b/src/com/android/settings/privacy/EnableContentCaptureWithServiceSettingsPreferenceController.java @@ -28,8 +28,8 @@ import android.util.Log; import androidx.appcompat.app.AlertDialog; import androidx.preference.Preference; -import androidx.preference.PreferenceScreen; +import com.android.settings.R; import com.android.settings.core.TogglePreferenceController; import com.android.settings.dashboard.profileselector.UserAdapter; import com.android.settings.utils.ContentCaptureUtils; @@ -88,6 +88,11 @@ public final class EnableContentCaptureWithServiceSettingsPreferenceController return available ? AVAILABLE : UNSUPPORTED_ON_DEVICE; } + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_privacy; + } + private static final class ProfileSelectDialog { public static void show(Context context, Preference pref) { final UserManager userManager = UserManager.get(context); diff --git a/src/com/android/settings/privacy/SensorToggleController.java b/src/com/android/settings/privacy/SensorToggleController.java index 50b023b2eb8..53b1a2f65e0 100644 --- a/src/com/android/settings/privacy/SensorToggleController.java +++ b/src/com/android/settings/privacy/SensorToggleController.java @@ -22,6 +22,7 @@ import android.content.Context; import androidx.preference.PreferenceScreen; +import com.android.settings.R; import com.android.settings.core.TogglePreferenceController; import com.android.settings.utils.SensorPrivacyManagerHelper; import com.android.settingslib.RestrictedLockUtilsInternal; @@ -80,4 +81,9 @@ public abstract class SensorToggleController extends TogglePreferenceController (sensor, blocked) -> updateState(screen.findPreference(mPreferenceKey)), mCallbackExecutor); } + + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_privacy; + } } diff --git a/src/com/android/settings/privacy/ShowClipAccessNotificationPreferenceController.java b/src/com/android/settings/privacy/ShowClipAccessNotificationPreferenceController.java index cf05ff48cc6..ad57073dbcf 100644 --- a/src/com/android/settings/privacy/ShowClipAccessNotificationPreferenceController.java +++ b/src/com/android/settings/privacy/ShowClipAccessNotificationPreferenceController.java @@ -27,6 +27,7 @@ import androidx.lifecycle.OnLifecycleEvent; import androidx.preference.Preference; import androidx.preference.PreferenceScreen; +import com.android.settings.R; import com.android.settings.core.TogglePreferenceController; /** @@ -72,6 +73,11 @@ public class ShowClipAccessNotificationPreferenceController mPreference = screen.findPreference(getPreferenceKey()); } + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_privacy; + } + /** * Registers a DeviceConfig listener on start. */ diff --git a/src/com/android/settings/security/ShowPasswordPreferenceController.java b/src/com/android/settings/security/ShowPasswordPreferenceController.java index 472101bfc55..696854a3ce5 100644 --- a/src/com/android/settings/security/ShowPasswordPreferenceController.java +++ b/src/com/android/settings/security/ShowPasswordPreferenceController.java @@ -58,5 +58,9 @@ public class ShowPasswordPreferenceController extends TogglePreferenceController ? AVAILABLE : UNSUPPORTED_ON_DEVICE; } + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_security; + } } diff --git a/src/com/android/settings/security/VisiblePatternProfilePreferenceController.java b/src/com/android/settings/security/VisiblePatternProfilePreferenceController.java index 64ca8537b56..9e82e78ede3 100644 --- a/src/com/android/settings/security/VisiblePatternProfilePreferenceController.java +++ b/src/com/android/settings/security/VisiblePatternProfilePreferenceController.java @@ -28,6 +28,7 @@ import androidx.preference.Preference; import androidx.preference.PreferenceScreen; import com.android.internal.widget.LockPatternUtils; +import com.android.settings.R; import com.android.settings.Utils; import com.android.settings.core.TogglePreferenceController; import com.android.settings.overlay.FeatureFactory; @@ -118,6 +119,11 @@ public class VisiblePatternProfilePreferenceController extends TogglePreferenceC mPreference = screen.findPreference(getPreferenceKey()); } + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_security; + } + @Override public void onResume() { mPreference.setVisible(isAvailable()); diff --git a/src/com/android/settings/slices/CustomSliceable.java b/src/com/android/settings/slices/CustomSliceable.java index d06ad1e89f0..2c807c4ef91 100644 --- a/src/com/android/settings/slices/CustomSliceable.java +++ b/src/com/android/settings/slices/CustomSliceable.java @@ -103,6 +103,9 @@ public interface CustomSliceable extends Sliceable { return true; } + @Override + int getSliceHighlightMenuRes(); + /** * Build an instance of a {@link CustomSliceable} which has a {@link Context}-only constructor. */ diff --git a/src/com/android/settings/slices/SliceBuilderUtils.java b/src/com/android/settings/slices/SliceBuilderUtils.java index 2957df21bd5..4cefa4e430a 100644 --- a/src/com/android/settings/slices/SliceBuilderUtils.java +++ b/src/com/android/settings/slices/SliceBuilderUtils.java @@ -16,6 +16,8 @@ package com.android.settings.slices; +import static android.provider.Settings.EXTRA_SETTINGS_EMBEDDED_DEEP_LINK_HIGHLIGHT_MENU_KEY; + import static com.android.settings.SettingsActivity.EXTRA_IS_FROM_SLICE; import static com.android.settings.core.BasePreferenceController.DISABLED_DEPENDENT_SETTING; import static com.android.settings.slices.SettingsSliceProvider.EXTRA_SLICE_KEY; @@ -203,8 +205,15 @@ public class SliceBuilderUtils { } public static Intent buildSearchResultPageIntent(Context context, String className, String key, - String screenTitle, int sourceMetricsCategory) { + String screenTitle, int sourceMetricsCategory, int highlightMenuRes) { final Bundle args = new Bundle(); + String highlightMenuKey = null; + if (highlightMenuRes != 0) { + highlightMenuKey = context.getString(highlightMenuRes); + if (TextUtils.isEmpty(highlightMenuKey)) { + Log.w(TAG, "Invalid menu key res from: " + screenTitle); + } + } args.putString(SettingsActivity.EXTRA_FRAGMENT_ARG_KEY, key); final Intent searchDestination = new SubSettingLauncher(context) .setDestination(className) @@ -215,6 +224,7 @@ public class SliceBuilderUtils { searchDestination .putExtra(SettingsActivity.EXTRA_FRAGMENT_ARG_KEY, key) .putExtra(EXTRA_IS_FROM_SLICE, true) + .putExtra(EXTRA_SETTINGS_EMBEDDED_DEEP_LINK_HIGHLIGHT_MENU_KEY, highlightMenuKey) .setAction("com.android.settings.SEARCH_RESULT_TRAMPOLINE") .setComponent(null); searchDestination.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK); @@ -222,13 +232,22 @@ public class SliceBuilderUtils { return searchDestination; } + /** + * Build a search result page intent for {@link CustomSliceable} + */ + public static Intent buildSearchResultPageIntent(Context context, String className, String key, + String screenTitle, int sourceMetricsCategory, CustomSliceable sliceable) { + return buildSearchResultPageIntent(context, className, key, screenTitle, + sourceMetricsCategory, sliceable.getSliceHighlightMenuRes()); + } + public static Intent getContentIntent(Context context, SliceData sliceData) { final Uri contentUri = new Uri.Builder().appendPath(sliceData.getKey()).build(); final String screenTitle = TextUtils.isEmpty(sliceData.getScreenTitle()) ? null : sliceData.getScreenTitle().toString(); final Intent intent = buildSearchResultPageIntent(context, sliceData.getFragmentClassName(), sliceData.getKey(), - screenTitle, 0 /* TODO */); + screenTitle, 0 /* TODO */, sliceData.getHighlightMenuRes()); intent.setClassName(context.getPackageName(), SubSettings.class.getName()); intent.setData(contentUri); return intent; diff --git a/src/com/android/settings/slices/SliceData.java b/src/com/android/settings/slices/SliceData.java index 60f5e3fb840..01b29b23ce5 100644 --- a/src/com/android/settings/slices/SliceData.java +++ b/src/com/android/settings/slices/SliceData.java @@ -19,6 +19,7 @@ package com.android.settings.slices; import android.annotation.IntDef; import android.net.Uri; import android.text.TextUtils; +import android.util.Log; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @@ -50,6 +51,8 @@ public class SliceData { int SLIDER = 2; } + private static final String TAG = "SliceData"; + private final String mKey; private final String mTitle; @@ -68,6 +71,8 @@ public class SliceData { private final String mPreferenceController; + private final int mHighlightMenuRes; + @SliceType private final int mSliceType; @@ -119,6 +124,10 @@ public class SliceData { return mUnavailableSliceSubtitle; } + public int getHighlightMenuRes() { + return mHighlightMenuRes; + } + public boolean isPublicSlice() { return mIsPublicSlice; } @@ -136,6 +145,7 @@ public class SliceData { mSliceType = builder.mSliceType; mUnavailableSliceSubtitle = builder.mUnavailableSliceSubtitle; mIsPublicSlice = builder.mIsPublicSlice; + mHighlightMenuRes = builder.mHighlightMenuRes; } @Override @@ -175,6 +185,8 @@ public class SliceData { private String mUnavailableSliceSubtitle; + private int mHighlightMenuRes; + private boolean mIsPublicSlice; public Builder setKey(String key) { @@ -233,6 +245,11 @@ public class SliceData { return this; } + public Builder setHighlightMenuRes(int highlightMenuRes) { + mHighlightMenuRes = highlightMenuRes; + return this; + } + public Builder setIsPublicSlice(boolean isPublicSlice) { mIsPublicSlice = isPublicSlice; return this; @@ -255,6 +272,10 @@ public class SliceData { throw new InvalidSliceDataException("Preference Controller cannot be empty"); } + if (mHighlightMenuRes == 0) { + Log.w(TAG, "Highlight menu key res is empty: " + mPrefControllerClassName); + } + return new SliceData(this); } diff --git a/src/com/android/settings/slices/SliceDataConverter.java b/src/com/android/settings/slices/SliceDataConverter.java index 5608169a4db..eb08c5f978a 100644 --- a/src/com/android/settings/slices/SliceDataConverter.java +++ b/src/com/android/settings/slices/SliceDataConverter.java @@ -213,6 +213,7 @@ class SliceDataConverter { final String unavailableSliceSubtitle = bundle.getString( METADATA_UNAVAILABLE_SLICE_SUBTITLE); final boolean isPublicSlice = controller.isPublicSlice(); + final int highlightMenuRes = controller.getSliceHighlightMenuRes(); final SliceData xmlSlice = new SliceData.Builder() .setKey(key) @@ -226,6 +227,7 @@ class SliceDataConverter { .setSliceType(sliceType) .setUnavailableSliceSubtitle(unavailableSliceSubtitle) .setIsPublicSlice(isPublicSlice) + .setHighlightMenuRes(highlightMenuRes) .build(); xmlSliceData.add(xmlSlice); diff --git a/src/com/android/settings/slices/Sliceable.java b/src/com/android/settings/slices/Sliceable.java index ad27b7c0496..31555df0022 100644 --- a/src/com/android/settings/slices/Sliceable.java +++ b/src/com/android/settings/slices/Sliceable.java @@ -50,6 +50,8 @@ public interface Sliceable { * - Must be understandable as a stand-alone Setting. *

* This does not guarantee the setting is available. + *

+ * {@link #getSliceHighlightMenuRes} should also be overridden when returning true. * * @return {@code true} if the controller should be used as a Slice. */ @@ -131,4 +133,12 @@ public interface Sliceable { default Class getBackgroundWorkerClass() { return null; } + + /** + * @return a resource ID that indicates which menu entry should be highlighted in multi-pane + * mode. + */ + default int getSliceHighlightMenuRes() { + return 0; + } } diff --git a/src/com/android/settings/slices/SlicesDatabaseAccessor.java b/src/com/android/settings/slices/SlicesDatabaseAccessor.java index c0bb8de63da..75f0220f7ba 100644 --- a/src/com/android/settings/slices/SlicesDatabaseAccessor.java +++ b/src/com/android/settings/slices/SlicesDatabaseAccessor.java @@ -50,6 +50,7 @@ public class SlicesDatabaseAccessor { IndexColumns.CONTROLLER, IndexColumns.SLICE_TYPE, IndexColumns.UNAVAILABLE_SLICE_SUBTITLE, + IndexColumns.HIGHLIGHT_MENU_RESOURCE, }; private final Context mContext; @@ -163,6 +164,8 @@ public class SlicesDatabaseAccessor { cursor.getColumnIndex(IndexColumns.SLICE_TYPE)); final String unavailableSliceSubtitle = cursor.getString( cursor.getColumnIndex(IndexColumns.UNAVAILABLE_SLICE_SUBTITLE)); + final int highlightMenuRes = cursor.getInt( + cursor.getColumnIndex(IndexColumns.HIGHLIGHT_MENU_RESOURCE)); if (isIntentOnly) { sliceType = SliceData.SliceType.INTENT; @@ -180,6 +183,7 @@ public class SlicesDatabaseAccessor { .setUri(uri) .setSliceType(sliceType) .setUnavailableSliceSubtitle(unavailableSliceSubtitle) + .setHighlightMenuRes(highlightMenuRes) .build(); } diff --git a/src/com/android/settings/slices/SlicesDatabaseHelper.java b/src/com/android/settings/slices/SlicesDatabaseHelper.java index fe4420b26b0..69ad702913c 100644 --- a/src/com/android/settings/slices/SlicesDatabaseHelper.java +++ b/src/com/android/settings/slices/SlicesDatabaseHelper.java @@ -36,7 +36,7 @@ public class SlicesDatabaseHelper extends SQLiteOpenHelper { private static final String DATABASE_NAME = "slices_index.db"; private static final String SHARED_PREFS_TAG = "slices_shared_prefs"; - private static final int DATABASE_VERSION = 8; + private static final int DATABASE_VERSION = 9; public interface Tables { String TABLE_SLICES_INDEX = "slices_index"; @@ -103,39 +103,43 @@ public class SlicesDatabaseHelper extends SQLiteOpenHelper { * Whether the slice should be exposed publicly. */ String PUBLIC_SLICE = "public_slice"; + + /** + * Resource ID for the menu entry of the setting. + */ + String HIGHLIGHT_MENU_RESOURCE = "highlight_menu"; } private static final String CREATE_SLICES_TABLE = - "CREATE VIRTUAL TABLE " + Tables.TABLE_SLICES_INDEX + " USING fts4" + - "(" + - IndexColumns.KEY + - ", " + - IndexColumns.SLICE_URI + - ", " + - IndexColumns.TITLE + - ", " + - IndexColumns.SUMMARY + - ", " + - IndexColumns.SCREENTITLE + - ", " + - IndexColumns.KEYWORDS + - ", " + - IndexColumns.ICON_RESOURCE + - ", " + - IndexColumns.FRAGMENT + - ", " + - IndexColumns.CONTROLLER + - ", " + - IndexColumns.SLICE_TYPE + - ", " + - IndexColumns.UNAVAILABLE_SLICE_SUBTITLE + - ", " - + - IndexColumns.PUBLIC_SLICE - + - " INTEGER DEFAULT 0 " - + - ");"; + "CREATE VIRTUAL TABLE " + Tables.TABLE_SLICES_INDEX + " USING fts4" + + "(" + + IndexColumns.KEY + + ", " + + IndexColumns.SLICE_URI + + ", " + + IndexColumns.TITLE + + ", " + + IndexColumns.SUMMARY + + ", " + + IndexColumns.SCREENTITLE + + ", " + + IndexColumns.KEYWORDS + + ", " + + IndexColumns.ICON_RESOURCE + + ", " + + IndexColumns.FRAGMENT + + ", " + + IndexColumns.CONTROLLER + + ", " + + IndexColumns.SLICE_TYPE + + ", " + + IndexColumns.UNAVAILABLE_SLICE_SUBTITLE + + ", " + + IndexColumns.PUBLIC_SLICE + + ", " + + IndexColumns.HIGHLIGHT_MENU_RESOURCE + + " INTEGER DEFAULT 0 " + + ");"; private final Context mContext; diff --git a/src/com/android/settings/slices/SlicesIndexer.java b/src/com/android/settings/slices/SlicesIndexer.java index e527fd657ab..ac30c6c0a41 100644 --- a/src/com/android/settings/slices/SlicesIndexer.java +++ b/src/com/android/settings/slices/SlicesIndexer.java @@ -116,6 +116,7 @@ class SlicesIndexer implements Runnable { values.put(IndexColumns.UNAVAILABLE_SLICE_SUBTITLE, dataRow.getUnavailableSliceSubtitle()); values.put(IndexColumns.PUBLIC_SLICE, dataRow.isPublicSlice()); + values.put(IndexColumns.HIGHLIGHT_MENU_RESOURCE, dataRow.getHighlightMenuRes()); database.replaceOrThrow(Tables.TABLE_SLICES_INDEX, null /* nullColumnHack */, values); diff --git a/src/com/android/settings/sound/MediaControlsPreferenceController.java b/src/com/android/settings/sound/MediaControlsPreferenceController.java index ad09e2a6bee..e180b34fe34 100644 --- a/src/com/android/settings/sound/MediaControlsPreferenceController.java +++ b/src/com/android/settings/sound/MediaControlsPreferenceController.java @@ -23,6 +23,7 @@ import android.provider.Settings; import androidx.annotation.VisibleForTesting; +import com.android.settings.R; import com.android.settings.core.TogglePreferenceController; /** @@ -50,4 +51,9 @@ public class MediaControlsPreferenceController extends TogglePreferenceControlle public int getAvailabilityStatus() { return AVAILABLE; } + + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_sound; + } } diff --git a/src/com/android/settings/sound/MediaControlsRecommendationController.java b/src/com/android/settings/sound/MediaControlsRecommendationController.java index 682cb5bc1e6..842a1417a15 100644 --- a/src/com/android/settings/sound/MediaControlsRecommendationController.java +++ b/src/com/android/settings/sound/MediaControlsRecommendationController.java @@ -21,6 +21,7 @@ import static android.provider.Settings.Secure.MEDIA_CONTROLS_RECOMMENDATION; import android.content.Context; import android.provider.Settings; +import com.android.settings.R; import com.android.settings.core.TogglePreferenceController; /** @@ -50,4 +51,9 @@ public class MediaControlsRecommendationController extends TogglePreferenceContr public int getAvailabilityStatus() { return AVAILABLE; } + + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_sound; + } } diff --git a/src/com/android/settings/users/AddUserWhenLockedPreferenceController.java b/src/com/android/settings/users/AddUserWhenLockedPreferenceController.java index f931fa4f662..ce5533e5c64 100644 --- a/src/com/android/settings/users/AddUserWhenLockedPreferenceController.java +++ b/src/com/android/settings/users/AddUserWhenLockedPreferenceController.java @@ -20,6 +20,7 @@ import android.provider.Settings; import androidx.preference.Preference; +import com.android.settings.R; import com.android.settings.core.TogglePreferenceController; import com.android.settingslib.RestrictedSwitchPreference; @@ -69,4 +70,9 @@ public class AddUserWhenLockedPreferenceController extends TogglePreferenceContr return Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.ADD_USERS_WHEN_LOCKED, isChecked ? 1 : 0); } + + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_system; + } } diff --git a/src/com/android/settings/uwb/UwbPreferenceController.java b/src/com/android/settings/uwb/UwbPreferenceController.java index 8b330a9422f..ad040ed6043 100644 --- a/src/com/android/settings/uwb/UwbPreferenceController.java +++ b/src/com/android/settings/uwb/UwbPreferenceController.java @@ -162,5 +162,10 @@ public class UwbPreferenceController extends TogglePreferenceController implemen return mContext.getResources().getString(R.string.uwb_settings_summary); } } + + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_connected_devices; + } } diff --git a/src/com/android/settings/wifi/CellularFallbackPreferenceController.java b/src/com/android/settings/wifi/CellularFallbackPreferenceController.java index eab50a62e45..59ad44088ec 100644 --- a/src/com/android/settings/wifi/CellularFallbackPreferenceController.java +++ b/src/com/android/settings/wifi/CellularFallbackPreferenceController.java @@ -22,6 +22,7 @@ import android.provider.Settings; import android.telephony.SubscriptionManager; import com.android.internal.annotations.VisibleForTesting; +import com.android.settings.R; import com.android.settings.core.TogglePreferenceController; /** @@ -51,6 +52,11 @@ public class CellularFallbackPreferenceController extends TogglePreferenceContro Settings.Global.NETWORK_AVOID_BAD_WIFI, isChecked ? "1" : null); } + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_network; + } + private boolean avoidBadWifiConfig() { final int activeDataSubscriptionId = getActiveDataSubscriptionId(); if (activeDataSubscriptionId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) { diff --git a/src/com/android/settings/wifi/NotifyOpenNetworksPreferenceController.java b/src/com/android/settings/wifi/NotifyOpenNetworksPreferenceController.java index 6455f5b97cc..4b7506d4606 100644 --- a/src/com/android/settings/wifi/NotifyOpenNetworksPreferenceController.java +++ b/src/com/android/settings/wifi/NotifyOpenNetworksPreferenceController.java @@ -26,6 +26,7 @@ import android.provider.Settings; import androidx.preference.Preference; import androidx.preference.PreferenceScreen; +import com.android.settings.R; import com.android.settings.core.PreferenceControllerMixin; import com.android.settings.core.TogglePreferenceController; import com.android.settingslib.core.lifecycle.LifecycleObserver; @@ -85,6 +86,11 @@ public class NotifyOpenNetworksPreferenceController extends TogglePreferenceCont return true; } + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_network; + } + class SettingObserver extends ContentObserver { private final Uri NETWORKS_AVAILABLE_URI = Settings.Global.getUriFor( Settings.Global.WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON); diff --git a/src/com/android/settings/wifi/WifiWakeupPreferenceController.java b/src/com/android/settings/wifi/WifiWakeupPreferenceController.java index e9fd35004da..2cc7f8ef5d9 100644 --- a/src/com/android/settings/wifi/WifiWakeupPreferenceController.java +++ b/src/com/android/settings/wifi/WifiWakeupPreferenceController.java @@ -135,6 +135,11 @@ public class WifiWakeupPreferenceController extends TogglePreferenceController i } } + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_network; + } + @VisibleForTesting CharSequence getNoLocationSummary() { AnnotationSpan.LinkInfo linkInfo = new AnnotationSpan.LinkInfo("link", null); diff --git a/src/com/android/settings/wifi/details2/WifiAutoConnectPreferenceController2.java b/src/com/android/settings/wifi/details2/WifiAutoConnectPreferenceController2.java index ffbb68289b5..8226bc07848 100644 --- a/src/com/android/settings/wifi/details2/WifiAutoConnectPreferenceController2.java +++ b/src/com/android/settings/wifi/details2/WifiAutoConnectPreferenceController2.java @@ -18,6 +18,7 @@ package com.android.settings.wifi.details2; import android.content.Context; +import com.android.settings.R; import com.android.settings.core.TogglePreferenceController; import com.android.wifitrackerlib.WifiEntry; @@ -54,4 +55,9 @@ public class WifiAutoConnectPreferenceController2 extends TogglePreferenceContro mWifiEntry.setAutoJoinEnabled(isChecked); return true; } + + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_network; + } } diff --git a/src/com/android/settings/wifi/slice/WifiSlice.java b/src/com/android/settings/wifi/slice/WifiSlice.java index f6604dd6f6e..29a2bd6cb32 100644 --- a/src/com/android/settings/wifi/slice/WifiSlice.java +++ b/src/com/android/settings/wifi/slice/WifiSlice.java @@ -33,6 +33,7 @@ import android.net.Uri; import android.net.wifi.WifiManager; import android.os.Bundle; import android.text.TextUtils; +import android.util.FeatureFlagUtils; import androidx.annotation.VisibleForTesting; import androidx.core.graphics.drawable.IconCompat; @@ -44,6 +45,8 @@ import com.android.settings.R; import com.android.settings.SubSettings; import com.android.settings.Utils; import com.android.settings.core.SubSettingLauncher; +import com.android.settings.network.NetworkProviderSettings; +import com.android.settings.network.WifiSwitchPreferenceController; import com.android.settings.slices.CustomSliceable; import com.android.settings.slices.SliceBackgroundWorker; import com.android.settings.slices.SliceBuilderUtils; @@ -269,15 +272,28 @@ public class WifiSlice implements CustomSliceable { public Intent getIntent() { final String screenTitle = mContext.getText(R.string.wifi_settings).toString(); final Uri contentUri = new Uri.Builder().appendPath(KEY_WIFI).build(); - final Intent intent = SliceBuilderUtils.buildSearchResultPageIntent(mContext, - WifiSettings.class.getName(), KEY_WIFI, screenTitle, - SettingsEnums.DIALOG_WIFI_AP_EDIT) + final String className; + final String key; + if (FeatureFlagUtils.isEnabled(mContext, FeatureFlagUtils.SETTINGS_PROVIDER_MODEL)) { + className = NetworkProviderSettings.class.getName(); + key = WifiSwitchPreferenceController.KEY; + } else { + className = WifiSettings.class.getName(); + key = KEY_WIFI; + } + final Intent intent = SliceBuilderUtils.buildSearchResultPageIntent(mContext, className, + key, screenTitle, SettingsEnums.DIALOG_WIFI_AP_EDIT, this) .setClassName(mContext.getPackageName(), SubSettings.class.getName()) .setData(contentUri); return intent; } + @Override + public int getSliceHighlightMenuRes() { + return R.string.menu_key_network; + } + private boolean isWifiEnabled() { switch (mWifiManager.getWifiState()) { case WifiManager.WIFI_STATE_ENABLED: diff --git a/tests/robotests/src/com/android/settings/slices/SettingsSliceProviderTest.java b/tests/robotests/src/com/android/settings/slices/SettingsSliceProviderTest.java index c2c67e31260..c7a4b2fd15b 100644 --- a/tests/robotests/src/com/android/settings/slices/SettingsSliceProviderTest.java +++ b/tests/robotests/src/com/android/settings/slices/SettingsSliceProviderTest.java @@ -707,6 +707,7 @@ public class SettingsSliceProviderTest { .setIcon(SliceTestUtils.FAKE_ICON) .setFragmentName(SliceTestUtils.FAKE_FRAGMENT_NAME) .setPreferenceControllerClassName(SliceTestUtils.FAKE_CONTROLLER_NAME) + .setHighlightMenuRes(SliceTestUtils.FAKE_HIGHLIGHT_MENU_RES) .build(); } diff --git a/tests/robotests/src/com/android/settings/slices/SliceBroadcastReceiverTest.java b/tests/robotests/src/com/android/settings/slices/SliceBroadcastReceiverTest.java index df3d84f3cae..a8806813779 100644 --- a/tests/robotests/src/com/android/settings/slices/SliceBroadcastReceiverTest.java +++ b/tests/robotests/src/com/android/settings/slices/SliceBroadcastReceiverTest.java @@ -322,6 +322,8 @@ public class SliceBroadcastReceiverTest { values.put(SlicesDatabaseHelper.IndexColumns.FRAGMENT, SliceTestUtils.FAKE_FRAGMENT_NAME); values.put(SlicesDatabaseHelper.IndexColumns.CONTROLLER, controllerClass); values.put(SlicesDatabaseHelper.IndexColumns.SLICE_URI, buildUri(key).toSafeString()); + values.put(SlicesDatabaseHelper.IndexColumns.HIGHLIGHT_MENU_RESOURCE, + SliceTestUtils.FAKE_HIGHLIGHT_MENU_RES); mDb.replaceOrThrow(SlicesDatabaseHelper.Tables.TABLE_SLICES_INDEX, null, values); } diff --git a/tests/robotests/src/com/android/settings/slices/SliceTestUtils.java b/tests/robotests/src/com/android/settings/slices/SliceTestUtils.java index 1c9164a6a84..97beeb32471 100644 --- a/tests/robotests/src/com/android/settings/slices/SliceTestUtils.java +++ b/tests/robotests/src/com/android/settings/slices/SliceTestUtils.java @@ -35,6 +35,7 @@ class SliceTestUtils { public static final int FAKE_ICON = 1234; public static final String FAKE_FRAGMENT_NAME = FakeIndexProvider.class.getName(); public static final String FAKE_CONTROLLER_NAME = FakeToggleController.class.getName(); + public static final int FAKE_HIGHLIGHT_MENU_RES = FakeToggleController.HIGHLIGHT_MENU_RES; public static void insertSliceToDb(Context context, String key) { @@ -75,6 +76,8 @@ class SliceTestUtils { values.put(SlicesDatabaseHelper.IndexColumns.UNAVAILABLE_SLICE_SUBTITLE, customizedUnavailableSliceSubtitle); values.put(SlicesDatabaseHelper.IndexColumns.PUBLIC_SLICE, isPublicSlice); + values.put(SlicesDatabaseHelper.IndexColumns.HIGHLIGHT_MENU_RESOURCE, + FAKE_HIGHLIGHT_MENU_RES); db.replaceOrThrow(SlicesDatabaseHelper.Tables.TABLE_SLICES_INDEX, null, values); db.close(); diff --git a/tests/robotests/src/com/android/settings/slices/SlicesDatabaseAccessorTest.java b/tests/robotests/src/com/android/settings/slices/SlicesDatabaseAccessorTest.java index b4385d8d481..cacd32c4176 100644 --- a/tests/robotests/src/com/android/settings/slices/SlicesDatabaseAccessorTest.java +++ b/tests/robotests/src/com/android/settings/slices/SlicesDatabaseAccessorTest.java @@ -102,6 +102,7 @@ public class SlicesDatabaseAccessorTest { assertThat(data.getFragmentClassName()).isEqualTo(SliceTestUtils.FAKE_FRAGMENT_NAME); assertThat(data.getUri()).isNull(); assertThat(data.getPreferenceController()).isEqualTo(SliceTestUtils.FAKE_CONTROLLER_NAME); + assertThat(data.getHighlightMenuRes()).isEqualTo(SliceTestUtils.FAKE_HIGHLIGHT_MENU_RES); assertThat(data.getUnavailableSliceSubtitle()).isNull(); } @@ -122,6 +123,7 @@ public class SlicesDatabaseAccessorTest { assertThat(data.getFragmentClassName()).isEqualTo(SliceTestUtils.FAKE_FRAGMENT_NAME); assertThat(data.getUri()).isNull(); assertThat(data.getPreferenceController()).isEqualTo(SliceTestUtils.FAKE_CONTROLLER_NAME); + assertThat(data.getHighlightMenuRes()).isEqualTo(SliceTestUtils.FAKE_HIGHLIGHT_MENU_RES); } @Test(expected = IllegalStateException.class) @@ -154,6 +156,7 @@ public class SlicesDatabaseAccessorTest { assertThat(data.getFragmentClassName()).isEqualTo(SliceTestUtils.FAKE_FRAGMENT_NAME); assertThat(data.getUri()).isEqualTo(uri); assertThat(data.getPreferenceController()).isEqualTo(SliceTestUtils.FAKE_CONTROLLER_NAME); + assertThat(data.getHighlightMenuRes()).isEqualTo(SliceTestUtils.FAKE_HIGHLIGHT_MENU_RES); } @Test(expected = IllegalStateException.class) @@ -289,6 +292,7 @@ public class SlicesDatabaseAccessorTest { assertThat(data.getFragmentClassName()).isEqualTo(SliceTestUtils.FAKE_FRAGMENT_NAME); assertThat(data.getUri()).isNull(); assertThat(data.getPreferenceController()).isEqualTo(SliceTestUtils.FAKE_CONTROLLER_NAME); + assertThat(data.getHighlightMenuRes()).isEqualTo(SliceTestUtils.FAKE_HIGHLIGHT_MENU_RES); assertThat(data.getUnavailableSliceSubtitle()).isNull(); } @@ -309,6 +313,7 @@ public class SlicesDatabaseAccessorTest { assertThat(data.getFragmentClassName()).isEqualTo(SliceTestUtils.FAKE_FRAGMENT_NAME); assertThat(data.getUri()).isNull(); assertThat(data.getPreferenceController()).isEqualTo(SliceTestUtils.FAKE_CONTROLLER_NAME); + assertThat(data.getHighlightMenuRes()).isEqualTo(SliceTestUtils.FAKE_HIGHLIGHT_MENU_RES); assertThat(data.getUnavailableSliceSubtitle()).isEqualTo(subtitle); } diff --git a/tests/robotests/src/com/android/settings/slices/SlicesIndexerTest.java b/tests/robotests/src/com/android/settings/slices/SlicesIndexerTest.java index a943ac06657..f025d3d9785 100644 --- a/tests/robotests/src/com/android/settings/slices/SlicesIndexerTest.java +++ b/tests/robotests/src/com/android/settings/slices/SlicesIndexerTest.java @@ -43,17 +43,18 @@ import java.util.List; @RunWith(RobolectricTestRunner.class) public class SlicesIndexerTest { - private final String[] KEYS = new String[]{"key1", "key2", "key3"}; - private final String[] TITLES = new String[]{"title1", "title2", "title3"}; - private final String SUMMARY = "subtitle"; - private final String SCREEN_TITLE = "screen title"; - private final String KEYWORDS = "a, b, c"; - private final String FRAGMENT_NAME = "fragment name"; - private final int ICON = 1234; // I declare a thumb war - private final Uri URI = Uri.parse("content://com.android.settings.slices/test"); - private final String PREF_CONTROLLER = "com.android.settings.slices.tester"; - private final int SLICE_TYPE = SliceData.SliceType.SLIDER; - private final String UNAVAILABLE_SLICE_SUBTITLE = "subtitleOfUnavailableSlice"; + private static final String[] KEYS = new String[]{"key1", "key2", "key3"}; + private static final String[] TITLES = new String[]{"title1", "title2", "title3"}; + private static final String SUMMARY = "subtitle"; + private static final String SCREEN_TITLE = "screen title"; + private static final String KEYWORDS = "a, b, c"; + private static final String FRAGMENT_NAME = "fragment name"; + private static final int ICON = 1234; // I declare a thumb war + private static final Uri URI = Uri.parse("content://com.android.settings.slices/test"); + private static final String PREF_CONTROLLER = "com.android.settings.slices.tester"; + private static final int SLICE_TYPE = SliceData.SliceType.SLIDER; + private static final String UNAVAILABLE_SLICE_SUBTITLE = "subtitleOfUnavailableSlice"; + private static final int HIGHLIGHT_MENU_KEY = 5678; // I declare a thumb war private Context mContext; @@ -142,6 +143,9 @@ public class SlicesIndexerTest { .isEqualTo(UNAVAILABLE_SLICE_SUBTITLE); assertThat(cursor.getInt( cursor.getColumnIndex(IndexColumns.PUBLIC_SLICE))).isEqualTo(0); + assertThat(cursor.getInt( + cursor.getColumnIndex(IndexColumns.HIGHLIGHT_MENU_RESOURCE))) + .isEqualTo(HIGHLIGHT_MENU_KEY); cursor.moveToNext(); } } finally { @@ -187,6 +191,9 @@ public class SlicesIndexerTest { .isEqualTo(UNAVAILABLE_SLICE_SUBTITLE); assertThat(cursor.getInt( cursor.getColumnIndex(IndexColumns.PUBLIC_SLICE))).isEqualTo(1); + assertThat(cursor.getInt( + cursor.getColumnIndex(IndexColumns.HIGHLIGHT_MENU_RESOURCE))) + .isEqualTo(HIGHLIGHT_MENU_KEY); cursor.moveToNext(); } } finally { @@ -220,7 +227,8 @@ public class SlicesIndexerTest { .setUri(URI) .setPreferenceControllerClassName(PREF_CONTROLLER) .setSliceType(SLICE_TYPE) - .setUnavailableSliceSubtitle(UNAVAILABLE_SLICE_SUBTITLE); + .setUnavailableSliceSubtitle(UNAVAILABLE_SLICE_SUBTITLE) + .setHighlightMenuRes(HIGHLIGHT_MENU_KEY); if (isPublicSlice) { builder.setIsPublicSlice(true); diff --git a/tests/robotests/src/com/android/settings/testutils/FakeToggleController.java b/tests/robotests/src/com/android/settings/testutils/FakeToggleController.java index 68124512cfc..4e968a29c70 100644 --- a/tests/robotests/src/com/android/settings/testutils/FakeToggleController.java +++ b/tests/robotests/src/com/android/settings/testutils/FakeToggleController.java @@ -27,6 +27,7 @@ import com.android.settings.slices.SliceBackgroundWorker; public class FakeToggleController extends TogglePreferenceController { public static final String AVAILABILITY_KEY = "fake_toggle_availability_key"; + public static final int HIGHLIGHT_MENU_RES = 5678; public static final IntentFilter INTENT_FILTER = new IntentFilter( WifiManager.WIFI_AP_STATE_CHANGED_ACTION); @@ -70,6 +71,11 @@ public class FakeToggleController extends TogglePreferenceController { return true; } + @Override + public int getSliceHighlightMenuRes() { + return HIGHLIGHT_MENU_RES; + } + @Override public Class getBackgroundWorkerClass() { return TestWorker.class; diff --git a/tests/unit/src/com/android/settings/core/TogglePreferenceControllerTest.java b/tests/unit/src/com/android/settings/core/TogglePreferenceControllerTest.java index 8817a176203..13e8c13c5fa 100644 --- a/tests/unit/src/com/android/settings/core/TogglePreferenceControllerTest.java +++ b/tests/unit/src/com/android/settings/core/TogglePreferenceControllerTest.java @@ -119,6 +119,11 @@ public class TogglePreferenceControllerTest { return true; } + @Override + public int getSliceHighlightMenuRes() { + return 5678; + } + @Override public int getAvailabilityStatus() { return AVAILABLE; diff --git a/tests/unit/src/com/android/settings/network/ProviderModelSliceHelperTest.java b/tests/unit/src/com/android/settings/network/ProviderModelSliceHelperTest.java index 7d4323051c3..df6a38b20a1 100644 --- a/tests/unit/src/com/android/settings/network/ProviderModelSliceHelperTest.java +++ b/tests/unit/src/com/android/settings/network/ProviderModelSliceHelperTest.java @@ -302,6 +302,11 @@ public class ProviderModelSliceHelperTest { public Intent getIntent() { return new Intent(); } + + @Override + public int getSliceHighlightMenuRes() { + return 0; + } } private class MockProviderModelSliceHelper extends ProviderModelSliceHelper { diff --git a/tests/unit/src/com/android/settings/slices/SliceTestUtils.java b/tests/unit/src/com/android/settings/slices/SliceTestUtils.java index 1b035cd57a7..40a827a8a99 100644 --- a/tests/unit/src/com/android/settings/slices/SliceTestUtils.java +++ b/tests/unit/src/com/android/settings/slices/SliceTestUtils.java @@ -35,6 +35,7 @@ class SliceTestUtils { public static final int FAKE_ICON = 1234; public static final String FAKE_FRAGMENT_NAME = FakeIndexProvider.class.getName(); public static final String FAKE_CONTROLLER_NAME = FakeToggleController.class.getName(); + public static final int FAKE_HIGHLIGHT_MENU_RES = FakeToggleController.HIGHLIGHT_MENU_RES; public static void insertSliceToDb(Context context, String key) { @@ -75,6 +76,8 @@ class SliceTestUtils { values.put(SlicesDatabaseHelper.IndexColumns.UNAVAILABLE_SLICE_SUBTITLE, customizedUnavailableSliceSubtitle); values.put(SlicesDatabaseHelper.IndexColumns.PUBLIC_SLICE, isPublicSlice); + values.put(SlicesDatabaseHelper.IndexColumns.HIGHLIGHT_MENU_RESOURCE, + FAKE_HIGHLIGHT_MENU_RES); db.replaceOrThrow(SlicesDatabaseHelper.Tables.TABLE_SLICES_INDEX, null, values); db.close(); diff --git a/tests/unit/src/com/android/settings/slices/SpecialCaseSliceManagerTest.java b/tests/unit/src/com/android/settings/slices/SpecialCaseSliceManagerTest.java index 4fcbd15d16e..490b7bd62c6 100644 --- a/tests/unit/src/com/android/settings/slices/SpecialCaseSliceManagerTest.java +++ b/tests/unit/src/com/android/settings/slices/SpecialCaseSliceManagerTest.java @@ -143,5 +143,10 @@ public class SpecialCaseSliceManagerTest { public Intent getIntent() { return null; } + + @Override + public int getSliceHighlightMenuRes() { + return 0; + } } } diff --git a/tests/unit/src/com/android/settings/testutils/FakeToggleController.java b/tests/unit/src/com/android/settings/testutils/FakeToggleController.java index 9eda8b6a802..c232479d61c 100644 --- a/tests/unit/src/com/android/settings/testutils/FakeToggleController.java +++ b/tests/unit/src/com/android/settings/testutils/FakeToggleController.java @@ -27,6 +27,7 @@ import com.android.settings.slices.SliceBackgroundWorker; public class FakeToggleController extends TogglePreferenceController { public static final String AVAILABILITY_KEY = "fake_toggle_availability_key"; + public static final int HIGHLIGHT_MENU_RES = 5678; public static final IntentFilter INTENT_FILTER = new IntentFilter( WifiManager.WIFI_AP_STATE_CHANGED_ACTION); @@ -70,6 +71,11 @@ public class FakeToggleController extends TogglePreferenceController { return true; } + @Override + public int getSliceHighlightMenuRes() { + return HIGHLIGHT_MENU_RES; + } + @Override public Class getBackgroundWorkerClass() { return TestWorker.class;