Merge changes from topic "slice-highlight" into sc-v2-dev
* changes:
Add highlight menu keys for all toggle pref controllers and custom slices
Support slice deep links highlighting menu entries
diff --git a/src/com/android/settings/accessibility/AccessibilityShortcutPreferenceController.java b/src/com/android/settings/accessibility/AccessibilityShortcutPreferenceController.java
index ce3d294..d204bb7 100644
--- a/src/com/android/settings/accessibility/AccessibilityShortcutPreferenceController.java
+++ b/src/com/android/settings/accessibility/AccessibilityShortcutPreferenceController.java
@@ -23,6 +23,7 @@
import android.os.UserHandle;
import android.provider.Settings;
+import com.android.settings.R;
import com.android.settings.core.TogglePreferenceController;
/**
@@ -57,4 +58,9 @@
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 ca3befa..dd6edeb 100644
--- a/src/com/android/settings/accessibility/AccessibilitySlicePreferenceController.java
+++ b/src/com/android/settings/accessibility/AccessibilitySlicePreferenceController.java
@@ -26,6 +26,7 @@
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 @@
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 1f91a87..5630dd9 100644
--- a/src/com/android/settings/accessibility/DisableAnimationsPreferenceController.java
+++ b/src/com/android/settings/accessibility/DisableAnimationsPreferenceController.java
@@ -22,6 +22,7 @@
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 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 97f96a4..b59b3b2 100644
--- a/src/com/android/settings/accessibility/FontWeightAdjustmentPreferenceController.java
+++ b/src/com/android/settings/accessibility/FontWeightAdjustmentPreferenceController.java
@@ -20,6 +20,7 @@
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 @@
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 f4474d6..e98a28c 100644
--- a/src/com/android/settings/accessibility/HighTextContrastPreferenceController.java
+++ b/src/com/android/settings/accessibility/HighTextContrastPreferenceController.java
@@ -19,6 +19,7 @@
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 @@
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 a7ee3d5..0220245 100644
--- a/src/com/android/settings/accessibility/LargePointerIconPreferenceController.java
+++ b/src/com/android/settings/accessibility/LargePointerIconPreferenceController.java
@@ -21,6 +21,7 @@
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 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 a9716d5..5ed4b5c 100644
--- a/src/com/android/settings/accessibility/LockScreenRotationPreferenceController.java
+++ b/src/com/android/settings/accessibility/LockScreenRotationPreferenceController.java
@@ -23,6 +23,7 @@
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;
@@ -62,6 +63,11 @@
}
@Override
+ public int getSliceHighlightMenuRes() {
+ return R.string.menu_key_accessibility;
+ }
+
+ @Override
public void onStop() {
if (mRotationPolicyListener != null) {
RotationPolicy.unregisterRotationPolicyListener(mContext, mRotationPolicyListener);
diff --git a/src/com/android/settings/accessibility/MagnificationGesturesPreferenceController.java b/src/com/android/settings/accessibility/MagnificationGesturesPreferenceController.java
index 900e280..37d09a7 100644
--- a/src/com/android/settings/accessibility/MagnificationGesturesPreferenceController.java
+++ b/src/com/android/settings/accessibility/MagnificationGesturesPreferenceController.java
@@ -77,6 +77,11 @@
}
@Override
+ public int getSliceHighlightMenuRes() {
+ return R.string.menu_key_accessibility;
+ }
+
+ @Override
public CharSequence getSummary() {
int resId = 0;
if (mIsFromSUW) {
diff --git a/src/com/android/settings/accessibility/MagnificationNavbarPreferenceController.java b/src/com/android/settings/accessibility/MagnificationNavbarPreferenceController.java
index 9813bde..98855f7 100644
--- a/src/com/android/settings/accessibility/MagnificationNavbarPreferenceController.java
+++ b/src/com/android/settings/accessibility/MagnificationNavbarPreferenceController.java
@@ -83,6 +83,11 @@
}
@Override
+ public int getSliceHighlightMenuRes() {
+ return R.string.menu_key_accessibility;
+ }
+
+ @Override
public CharSequence getSummary() {
int resId = 0;
if (mIsFromSUW) {
diff --git a/src/com/android/settings/accessibility/PowerButtonEndsCallPreferenceController.java b/src/com/android/settings/accessibility/PowerButtonEndsCallPreferenceController.java
index 9ea9644..d409fa4 100644
--- a/src/com/android/settings/accessibility/PowerButtonEndsCallPreferenceController.java
+++ b/src/com/android/settings/accessibility/PowerButtonEndsCallPreferenceController.java
@@ -21,6 +21,7 @@
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 @@
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 bf12bde..5e69da7 100644
--- a/src/com/android/settings/accessibility/PrimaryMonoPreferenceController.java
+++ b/src/com/android/settings/accessibility/PrimaryMonoPreferenceController.java
@@ -20,6 +20,7 @@
import android.os.UserHandle;
import android.provider.Settings;
+import com.android.settings.R;
import com.android.settings.core.TogglePreferenceController;
/**
@@ -47,4 +48,9 @@
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 62051c1..7550a30 100644
--- a/src/com/android/settings/accessibility/ReduceBrightColorsPersistencePreferenceController.java
+++ b/src/com/android/settings/accessibility/ReduceBrightColorsPersistencePreferenceController.java
@@ -22,6 +22,7 @@
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 @@
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 d886a59..ca91219 100644
--- a/src/com/android/settings/accessibility/ReduceBrightColorsPreferenceController.java
+++ b/src/com/android/settings/accessibility/ReduceBrightColorsPreferenceController.java
@@ -95,6 +95,11 @@
}
@Override
+ public int getSliceHighlightMenuRes() {
+ return R.string.menu_key_accessibility;
+ }
+
+ @Override
public void onStart() {
mContext.getContentResolver().registerContentObserver(Settings.Secure.getUriFor(
Settings.Secure.REDUCE_BRIGHT_COLORS_ACTIVATED),
diff --git a/src/com/android/settings/accounts/CrossProfileCalendarPreferenceController.java b/src/com/android/settings/accounts/CrossProfileCalendarPreferenceController.java
index 863e790..3dc05ef 100644
--- a/src/com/android/settings/accounts/CrossProfileCalendarPreferenceController.java
+++ b/src/com/android/settings/accounts/CrossProfileCalendarPreferenceController.java
@@ -22,6 +22,7 @@
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 @@
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 f16bc3f..a6fa15a 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 77abfe7..1d395ee 100644
--- a/src/com/android/settings/applications/managedomainurls/InstantAppWebActionPreferenceController.java
+++ b/src/com/android/settings/applications/managedomainurls/InstantAppWebActionPreferenceController.java
@@ -19,6 +19,7 @@
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 @@
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 4dd2eb6..bf63e25 100644
--- a/src/com/android/settings/backup/AutoRestorePreferenceController.java
+++ b/src/com/android/settings/backup/AutoRestorePreferenceController.java
@@ -27,6 +27,7 @@
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 @@
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 2da8164..6351621 100644
--- a/src/com/android/settings/biometrics/combination/BiometricSettingsAppPreferenceController.java
+++ b/src/com/android/settings/biometrics/combination/BiometricSettingsAppPreferenceController.java
@@ -91,4 +91,10 @@
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 f6f2d5f..4101963 100644
--- a/src/com/android/settings/biometrics/combination/BiometricSettingsKeyguardPreferenceController.java
+++ b/src/com/android/settings/biometrics/combination/BiometricSettingsKeyguardPreferenceController.java
@@ -73,4 +73,10 @@
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 36984a2..a8bff6b 100644
--- a/src/com/android/settings/biometrics/face/FaceSettingsPreferenceController.java
+++ b/src/com/android/settings/biometrics/face/FaceSettingsPreferenceController.java
@@ -51,4 +51,10 @@
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 b09d180..508084d 100644
--- a/src/com/android/settings/bluetooth/BluetoothSliceBuilder.java
+++ b/src/com/android/settings/bluetooth/BluetoothSliceBuilder.java
@@ -98,7 +98,8 @@
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 c958a93..8b4d6d9 100644
--- a/src/com/android/settings/core/TogglePreferenceController.java
+++ b/src/com/android/settings/core/TogglePreferenceController.java
@@ -89,4 +89,7 @@
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 e25422f..2bab3e9 100644
--- a/src/com/android/settings/datetime/LocationTimeZoneDetectionPreferenceController.java
+++ b/src/com/android/settings/datetime/LocationTimeZoneDetectionPreferenceController.java
@@ -118,6 +118,12 @@
}
@Override
+ public int getSliceHighlightMenuRes() {
+ // not needed since it's not sliceable
+ return 0;
+ }
+
+ @Override
public int getAvailabilityStatus() {
TimeZoneCapabilities timeZoneCapabilities =
getTimeZoneCapabilitiesAndConfig(/* forceRefresh= */ false).getCapabilities();
diff --git a/src/com/android/settings/development/transcode/TranscodeDefaultOptionPreferenceController.java b/src/com/android/settings/development/transcode/TranscodeDefaultOptionPreferenceController.java
index 3cbf3cb..1c2fcd9 100644
--- a/src/com/android/settings/development/transcode/TranscodeDefaultOptionPreferenceController.java
+++ b/src/com/android/settings/development/transcode/TranscodeDefaultOptionPreferenceController.java
@@ -19,6 +19,7 @@
import android.content.Context;
import android.os.SystemProperties;
+import com.android.settings.R;
import com.android.settings.core.TogglePreferenceController;
/**
@@ -48,4 +49,9 @@
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 38c3208..c3b0624 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.os.SystemProperties;
import com.android.internal.annotations.VisibleForTesting;
+import com.android.settings.R;
import com.android.settings.core.TogglePreferenceController;
/**
@@ -50,4 +51,9 @@
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 c15806d..b2d446e 100644
--- a/src/com/android/settings/development/transcode/TranscodeGlobalTogglePreferenceController.java
+++ b/src/com/android/settings/development/transcode/TranscodeGlobalTogglePreferenceController.java
@@ -19,6 +19,7 @@
import android.content.Context;
import android.os.SystemProperties;
+import com.android.settings.R;
import com.android.settings.core.TogglePreferenceController;
/**
@@ -49,4 +50,9 @@
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 fd5ec5a..6b6692e 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.os.SystemProperties;
import com.android.internal.annotations.VisibleForTesting;
+import com.android.settings.R;
import com.android.settings.core.TogglePreferenceController;
/**
@@ -50,4 +51,9 @@
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 49456ff..ce82293 100644
--- a/src/com/android/settings/development/transcode/TranscodeUserControlPreferenceController.java
+++ b/src/com/android/settings/development/transcode/TranscodeUserControlPreferenceController.java
@@ -19,6 +19,7 @@
import android.content.Context;
import android.os.SystemProperties;
+import com.android.settings.R;
import com.android.settings.core.TogglePreferenceController;
/**
@@ -48,4 +49,9 @@
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 27374ef..c66f4ed 100644
--- a/src/com/android/settings/display/AlwaysOnDisplaySlice.java
+++ b/src/com/android/settings/display/AlwaysOnDisplaySlice.java
@@ -106,4 +106,9 @@
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 7749c8f..bf81727 100644
--- a/src/com/android/settings/display/AmbientDisplayAlwaysOnPreferenceController.java
+++ b/src/com/android/settings/display/AmbientDisplayAlwaysOnPreferenceController.java
@@ -68,6 +68,11 @@
}
@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 e143d73..a5b0aeb 100644
--- a/src/com/android/settings/display/AmbientDisplayNotificationsPreferenceController.java
+++ b/src/com/android/settings/display/AmbientDisplayNotificationsPreferenceController.java
@@ -25,6 +25,7 @@
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 @@
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 0018d84..d925de3 100644
--- a/src/com/android/settings/display/AutoBrightnessPreferenceController.java
+++ b/src/com/android/settings/display/AutoBrightnessPreferenceController.java
@@ -61,4 +61,9 @@
? 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 202a085..5dc2286 100644
--- a/src/com/android/settings/display/AutoRotatePreferenceController.java
+++ b/src/com/android/settings/display/AutoRotatePreferenceController.java
@@ -20,6 +20,7 @@
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;
@@ -87,6 +88,11 @@
}
@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 65fd846..00573a7 100644
--- a/src/com/android/settings/display/ControlsPrivacyPreferenceController.java
+++ b/src/com/android/settings/display/ControlsPrivacyPreferenceController.java
@@ -70,6 +70,11 @@
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 98d9a69..d07410e 100644
--- a/src/com/android/settings/display/DarkUIPreferenceController.java
+++ b/src/com/android/settings/display/DarkUIPreferenceController.java
@@ -95,6 +95,11 @@
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 6fc0b0e..805cb08 100644
--- a/src/com/android/settings/display/DisplayWhiteBalancePreferenceController.java
+++ b/src/com/android/settings/display/DisplayWhiteBalancePreferenceController.java
@@ -21,19 +21,19 @@
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 {
@@ -63,6 +63,11 @@
}
@Override
+ public int getSliceHighlightMenuRes() {
+ return R.string.menu_key_display;
+ }
+
+ @Override
public void onStart() {
if (!isAvailable()) {
return;
diff --git a/src/com/android/settings/display/NightDisplayActivationPreferenceController.java b/src/com/android/settings/display/NightDisplayActivationPreferenceController.java
index e6217ff..d0d4822 100644
--- a/src/com/android/settings/display/NightDisplayActivationPreferenceController.java
+++ b/src/com/android/settings/display/NightDisplayActivationPreferenceController.java
@@ -24,6 +24,7 @@
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;
@@ -66,6 +67,11 @@
}
@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 0f8ecc5..700b601 100644
--- a/src/com/android/settings/display/NightDisplayIntensityPreferenceController.java
+++ b/src/com/android/settings/display/NightDisplayIntensityPreferenceController.java
@@ -23,6 +23,7 @@
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;
@@ -56,6 +57,11 @@
}
@Override
+ public int getSliceHighlightMenuRes() {
+ return R.string.menu_key_display;
+ }
+
+ @Override
public void displayPreference(PreferenceScreen screen) {
super.displayPreference(screen);
final SeekBarPreference preference = screen.findPreference(getPreferenceKey());
diff --git a/src/com/android/settings/display/NightDisplayPreferenceController.java b/src/com/android/settings/display/NightDisplayPreferenceController.java
index 003373c..df9e849 100644
--- a/src/com/android/settings/display/NightDisplayPreferenceController.java
+++ b/src/com/android/settings/display/NightDisplayPreferenceController.java
@@ -96,6 +96,11 @@
}
@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 9b654dc..27ba340 100644
--- a/src/com/android/settings/display/PeakRefreshRatePreferenceController.java
+++ b/src/com/android/settings/display/PeakRefreshRatePreferenceController.java
@@ -120,6 +120,11 @@
}
@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 61bbd18..b88aa80 100644
--- a/src/com/android/settings/display/SmartAutoRotateController.java
+++ b/src/com/android/settings/display/SmartAutoRotateController.java
@@ -43,6 +43,7 @@
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 @@
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 849fbe7..afeea80 100644
--- a/src/com/android/settings/display/SmartAutoRotatePreferenceController.java
+++ b/src/com/android/settings/display/SmartAutoRotatePreferenceController.java
@@ -22,7 +22,6 @@
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.os.PowerManager;
import android.os.UserHandle;
import android.provider.Settings;
+import android.text.TextUtils;
import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
@@ -91,6 +91,11 @@
}
@Override
+ public int getSliceHighlightMenuRes() {
+ return R.string.menu_key_display;
+ }
+
+ @Override
public void displayPreference(PreferenceScreen screen) {
super.displayPreference(screen);
mPreference = screen.findPreference(getPreferenceKey());
diff --git a/src/com/android/settings/display/WalletPrivacyPreferenceController.java b/src/com/android/settings/display/WalletPrivacyPreferenceController.java
index 2e78fe3..92580f3 100644
--- a/src/com/android/settings/display/WalletPrivacyPreferenceController.java
+++ b/src/com/android/settings/display/WalletPrivacyPreferenceController.java
@@ -72,6 +72,11 @@
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 f6a79cc..add1b58f 100644
--- a/src/com/android/settings/dream/StartNowPreferenceController.java
+++ b/src/com/android/settings/dream/StartNowPreferenceController.java
@@ -20,6 +20,7 @@
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 @@
}
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 f9fb647..3d6695b 100644
--- a/src/com/android/settings/emergency/EmergencyGestureSoundPreferenceController.java
+++ b/src/com/android/settings/emergency/EmergencyGestureSoundPreferenceController.java
@@ -53,6 +53,12 @@
}
@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 bd7f486..f18d712 100644
--- a/src/com/android/settings/flashlight/FlashlightSlice.java
+++ b/src/com/android/settings/flashlight/FlashlightSlice.java
@@ -117,6 +117,12 @@
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 27b70cb..26c0ab9 100644
--- a/src/com/android/settings/fuelgauge/SmartBatteryPreferenceController.java
+++ b/src/com/android/settings/fuelgauge/SmartBatteryPreferenceController.java
@@ -24,6 +24,7 @@
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;
@@ -62,6 +63,11 @@
}
@Override
+ public int getSliceHighlightMenuRes() {
+ return R.string.menu_key_battery;
+ }
+
+ @Override
public void updateState(Preference preference) {
super.updateState(preference);
final boolean smartBatteryOn = Settings.Global.getInt(mContext.getContentResolver(),
diff --git a/src/com/android/settings/fuelgauge/batterysaver/BatterySaverButtonPreferenceController.java b/src/com/android/settings/fuelgauge/batterysaver/BatterySaverButtonPreferenceController.java
index 1a7fa38..2979151 100644
--- a/src/com/android/settings/fuelgauge/batterysaver/BatterySaverButtonPreferenceController.java
+++ b/src/com/android/settings/fuelgauge/batterysaver/BatterySaverButtonPreferenceController.java
@@ -119,6 +119,11 @@
}
@Override
+ public int getSliceHighlightMenuRes() {
+ return R.string.menu_key_battery;
+ }
+
+ @Override
public void onPowerSaveModeChanged() {
mHandler.postDelayed(() -> onPowerSaveModeChangedInternal(),
SWITCH_ANIMATION_DURATION);
diff --git a/src/com/android/settings/fuelgauge/batterysaver/BatterySaverStickyPreferenceController.java b/src/com/android/settings/fuelgauge/batterysaver/BatterySaverStickyPreferenceController.java
index 6754245..ce2cbb0 100644
--- a/src/com/android/settings/fuelgauge/batterysaver/BatterySaverStickyPreferenceController.java
+++ b/src/com/android/settings/fuelgauge/batterysaver/BatterySaverStickyPreferenceController.java
@@ -8,6 +8,7 @@
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 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 95fd9f1..159f479 100644
--- a/src/com/android/settings/gestures/GestureNavigationSettingsAssistController.java
+++ b/src/com/android/settings/gestures/GestureNavigationSettingsAssistController.java
@@ -19,6 +19,7 @@
import android.content.Context;
import android.provider.Settings;
+import com.android.settings.R;
import com.android.settings.core.TogglePreferenceController;
/**
@@ -50,4 +51,9 @@
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 c771abd..71c3c9a 100644
--- a/src/com/android/settings/gestures/GesturePreferenceController.java
+++ b/src/com/android/settings/gestures/GesturePreferenceController.java
@@ -78,6 +78,11 @@
}
}
+ @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 76964e5..d82cb10 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.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 static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
- new BaseSearchIndexProvider(R.xml.gestures);
+ new BaseSearchIndexProvider(R.xml.gestures) {
+ @Override
+ public List<String> getNonIndexableKeys(Context context) {
+ final List<String> 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 44494ee..82766db 100644
--- a/src/com/android/settings/gestures/LongPressPowerButtonPreferenceController.java
+++ b/src/com/android/settings/gestures/LongPressPowerButtonPreferenceController.java
@@ -120,6 +120,11 @@
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 2b7d7a0..3f84aba 100644
--- a/src/com/android/settings/gestures/OneHandedMainSwitchPreferenceController.java
+++ b/src/com/android/settings/gestures/OneHandedMainSwitchPreferenceController.java
@@ -21,6 +21,7 @@
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 @@
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 b3b39fb..5f880f7 100644
--- a/src/com/android/settings/gestures/PreventRingingParentPreferenceController.java
+++ b/src/com/android/settings/gestures/PreventRingingParentPreferenceController.java
@@ -138,6 +138,11 @@
}
@Override
+ public int getSliceHighlightMenuRes() {
+ return R.string.menu_key_sound;
+ }
+
+ @Override
public void onStart() {
if (mSettingObserver != null) {
mSettingObserver.register(mContext.getContentResolver());
diff --git a/src/com/android/settings/homepage/contextualcards/slices/BatteryFixSlice.java b/src/com/android/settings/homepage/contextualcards/slices/BatteryFixSlice.java
index 94d3f69..f10a2d7 100644
--- a/src/com/android/settings/homepage/contextualcards/slices/BatteryFixSlice.java
+++ b/src/com/android/settings/homepage/contextualcards/slices/BatteryFixSlice.java
@@ -147,12 +147,18 @@
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 bfdd13a..7e4730c 100644
--- a/src/com/android/settings/homepage/contextualcards/slices/BluetoothDevicesSlice.java
+++ b/src/com/android/settings/homepage/contextualcards/slices/BluetoothDevicesSlice.java
@@ -130,12 +130,18 @@
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);
if (enableBluetooth) {
diff --git a/src/com/android/settings/homepage/contextualcards/slices/ContextualAdaptiveSleepSlice.java b/src/com/android/settings/homepage/contextualcards/slices/ContextualAdaptiveSleepSlice.java
index f11b0e3..2291bd7 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 @@
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 f934d58..96924e4 100644
--- a/src/com/android/settings/homepage/contextualcards/slices/DarkThemeSlice.java
+++ b/src/com/android/settings/homepage/contextualcards/slices/DarkThemeSlice.java
@@ -149,6 +149,11 @@
}
@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 1b3ee10..7cf7d86 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 @@
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 3812534..22e3431 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 @@
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 80f6680..751dac7 100644
--- a/src/com/android/settings/inputmethod/GameControllerPreferenceController.java
+++ b/src/com/android/settings/inputmethod/GameControllerPreferenceController.java
@@ -101,6 +101,11 @@
}
@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 556de5f..7c7d792 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 051fd8d..b491ec9 100644
--- a/src/com/android/settings/location/BluetoothScanningMainSwitchPreferenceController.java
+++ b/src/com/android/settings/location/BluetoothScanningMainSwitchPreferenceController.java
@@ -68,6 +68,11 @@
}
@Override
+ public int getSliceHighlightMenuRes() {
+ return R.string.menu_key_location;
+ }
+
+ @Override
public void onSwitchChanged(Switch switchView, boolean isChecked) {
if (isChecked != isChecked()) {
setChecked(isChecked);
diff --git a/src/com/android/settings/location/LocationIndicatorsPreferenceController.java b/src/com/android/settings/location/LocationIndicatorsPreferenceController.java
index d39c280..75ffb3a 100644
--- a/src/com/android/settings/location/LocationIndicatorsPreferenceController.java
+++ b/src/com/android/settings/location/LocationIndicatorsPreferenceController.java
@@ -20,6 +20,7 @@
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 @@
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 f8add12..291e5e4 100644
--- a/src/com/android/settings/location/LocationSlice.java
+++ b/src/com/android/settings/location/LocationSlice.java
@@ -88,11 +88,16 @@
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 a69fdb8..546f1e1 100644
--- a/src/com/android/settings/location/WifiScanningMainSwitchPreferenceController.java
+++ b/src/com/android/settings/location/WifiScanningMainSwitchPreferenceController.java
@@ -69,6 +69,11 @@
}
@Override
+ public int getSliceHighlightMenuRes() {
+ return R.string.menu_key_location;
+ }
+
+ @Override
public void onSwitchChanged(Switch switchView, boolean isChecked) {
if (isChecked != isChecked()) {
setChecked(isChecked);
diff --git a/src/com/android/settings/media/MediaOutputIndicatorSlice.java b/src/com/android/settings/media/MediaOutputIndicatorSlice.java
index 10a8b79..e2232e7 100644
--- a/src/com/android/settings/media/MediaOutputIndicatorSlice.java
+++ b/src/com/android/settings/media/MediaOutputIndicatorSlice.java
@@ -93,6 +93,11 @@
}
@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 3d81c44..f856188 100644
--- a/src/com/android/settings/media/RemoteMediaSlice.java
+++ b/src/com/android/settings/media/RemoteMediaSlice.java
@@ -181,7 +181,9 @@
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,
@@ -222,6 +224,11 @@
}
@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 e3d779c..ea849f6 100644
--- a/src/com/android/settings/network/AdaptiveConnectivityTogglePreferenceController.java
+++ b/src/com/android/settings/network/AdaptiveConnectivityTogglePreferenceController.java
@@ -22,6 +22,7 @@
import androidx.preference.PreferenceScreen;
+import com.android.settings.R;
import com.android.settings.widget.SettingsMainSwitchPreferenceController;
/**
@@ -62,4 +63,9 @@
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 6839037..e74f3ae 100644
--- a/src/com/android/settings/network/AirplaneModePreferenceController.java
+++ b/src/com/android/settings/network/AirplaneModePreferenceController.java
@@ -121,6 +121,11 @@
}
@Override
+ public int getSliceHighlightMenuRes() {
+ return R.string.menu_key_network;
+ }
+
+ @Override
public void onStart() {
if (isAvailable()) {
mAirplaneModeEnabler.start();
diff --git a/src/com/android/settings/network/CarrierWifiTogglePreferenceController.java b/src/com/android/settings/network/CarrierWifiTogglePreferenceController.java
index c5d8b97..26679c6 100644
--- a/src/com/android/settings/network/CarrierWifiTogglePreferenceController.java
+++ b/src/com/android/settings/network/CarrierWifiTogglePreferenceController.java
@@ -22,6 +22,7 @@
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;
@@ -89,6 +90,11 @@
}
@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 146b11a..0aae349 100644
--- a/src/com/android/settings/network/ProviderModelSlice.java
+++ b/src/com/android/settings/network/ProviderModelSlice.java
@@ -290,7 +290,7 @@
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 822aa72..b1627f2 100644
--- a/src/com/android/settings/network/TetherBasePreferenceController.java
+++ b/src/com/android/settings/network/TetherBasePreferenceController.java
@@ -25,6 +25,7 @@
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;
@@ -118,6 +119,11 @@
}
@Override
+ public int getSliceHighlightMenuRes() {
+ return R.string.menu_key_network;
+ }
+
+ @Override
public void onTetherStateUpdated(@TetherEnabler.TetheringState int state) {
mTetheringState = state;
updateState(mPreference);
diff --git a/src/com/android/settings/network/telephony/MobileDataSlice.java b/src/com/android/settings/network/telephony/MobileDataSlice.java
index 7ec31be..22bb581 100644
--- a/src/com/android/settings/network/telephony/MobileDataSlice.java
+++ b/src/com/android/settings/network/telephony/MobileDataSlice.java
@@ -146,6 +146,11 @@
}
@Override
+ public int getSliceHighlightMenuRes() {
+ return R.string.menu_key_network;
+ }
+
+ @Override
public Class<? extends SliceBackgroundWorker> 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 7fe5f1d..46f279d 100644
--- a/src/com/android/settings/network/telephony/TelephonyTogglePreferenceController.java
+++ b/src/com/android/settings/network/telephony/TelephonyTogglePreferenceController.java
@@ -65,6 +65,12 @@
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 b30e7c3f..483fead 100644
--- a/src/com/android/settings/nfc/NfcPreferenceController.java
+++ b/src/com/android/settings/nfc/NfcPreferenceController.java
@@ -27,6 +27,7 @@
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 @@
return;
}
- mPreference = (MainSwitchPreference) screen.findPreference(getPreferenceKey());
+ mPreference = screen.findPreference(getPreferenceKey());
mPreference.addOnSwitchChangeListener(this);
mNfcEnabler = new NfcEnabler(mContext, mPreference);
}
@@ -104,6 +105,11 @@
}
@Override
+ public int getSliceHighlightMenuRes() {
+ return R.string.menu_key_connected_devices;
+ }
+
+ @Override
public Class<? extends SliceBackgroundWorker> getBackgroundWorkerClass() {
return NfcSliceWorker.class;
}
diff --git a/src/com/android/settings/nfc/SecureNfcPreferenceController.java b/src/com/android/settings/nfc/SecureNfcPreferenceController.java
index 4e548d1..e1d27d0 100644
--- a/src/com/android/settings/nfc/SecureNfcPreferenceController.java
+++ b/src/com/android/settings/nfc/SecureNfcPreferenceController.java
@@ -21,6 +21,7 @@
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;
@@ -82,6 +83,11 @@
}
@Override
+ public int getSliceHighlightMenuRes() {
+ return R.string.menu_key_connected_devices;
+ }
+
+ @Override
public void onResume() {
if (mSecureNfcEnabler != null) {
mSecureNfcEnabler.resume();
diff --git a/src/com/android/settings/notification/BadgingNotificationPreferenceController.java b/src/com/android/settings/notification/BadgingNotificationPreferenceController.java
index 613204b..69d95a8 100644
--- a/src/com/android/settings/notification/BadgingNotificationPreferenceController.java
+++ b/src/com/android/settings/notification/BadgingNotificationPreferenceController.java
@@ -30,6 +30,7 @@
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;
@@ -88,6 +89,11 @@
}
@Override
+ public int getSliceHighlightMenuRes() {
+ return R.string.menu_key_notifications;
+ }
+
+ @Override
public boolean isChecked() {
return Settings.Secure.getInt(mContext.getContentResolver(),
NOTIFICATION_BADGING, ON) == ON;
diff --git a/src/com/android/settings/notification/BubbleNotificationPreferenceController.java b/src/com/android/settings/notification/BubbleNotificationPreferenceController.java
index 37723b1..9e35664 100644
--- a/src/com/android/settings/notification/BubbleNotificationPreferenceController.java
+++ b/src/com/android/settings/notification/BubbleNotificationPreferenceController.java
@@ -89,6 +89,12 @@
}
@Override
+ public int getSliceHighlightMenuRes() {
+ // not needed since it's not sliceable
+ return 0;
+ }
+
+ @Override
public boolean isChecked() {
return Settings.Global.getInt(mContext.getContentResolver(),
NOTIFICATION_BUBBLES, ON) == ON;
diff --git a/src/com/android/settings/notification/NotificationAssistantPreferenceController.java b/src/com/android/settings/notification/NotificationAssistantPreferenceController.java
index bdbc478..91031c8 100644
--- a/src/com/android/settings/notification/NotificationAssistantPreferenceController.java
+++ b/src/com/android/settings/notification/NotificationAssistantPreferenceController.java
@@ -24,6 +24,7 @@
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 @@
}
}
+ @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 7885520..ad53fc3 100644
--- a/src/com/android/settings/notification/PulseNotificationPreferenceController.java
+++ b/src/com/android/settings/notification/PulseNotificationPreferenceController.java
@@ -28,6 +28,7 @@
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 @@
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 d0326bb..db34e5e 100644
--- a/src/com/android/settings/notification/RedactNotificationPreferenceController.java
+++ b/src/com/android/settings/notification/RedactNotificationPreferenceController.java
@@ -32,6 +32,7 @@
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;
@@ -147,6 +148,11 @@
}
@Override
+ public int getSliceHighlightMenuRes() {
+ return R.string.menu_key_notifications;
+ }
+
+ @Override
public void onStart() {
mContext.getContentResolver().registerContentObserver(
Settings.Secure.getUriFor(Settings.Secure.LOCK_SCREEN_SHOW_NOTIFICATIONS),
diff --git a/src/com/android/settings/notification/SilentStatusBarPreferenceController.java b/src/com/android/settings/notification/SilentStatusBarPreferenceController.java
index 0585382..4c4c99d 100644
--- a/src/com/android/settings/notification/SilentStatusBarPreferenceController.java
+++ b/src/com/android/settings/notification/SilentStatusBarPreferenceController.java
@@ -18,6 +18,7 @@
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 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 03170e4..2c89f74 100644
--- a/src/com/android/settings/notification/SnoozeNotificationPreferenceController.java
+++ b/src/com/android/settings/notification/SnoozeNotificationPreferenceController.java
@@ -21,10 +21,11 @@
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 @@
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 1420076..7bca516 100644
--- a/src/com/android/settings/notification/SpatialAudioPreferenceController.java
+++ b/src/com/android/settings/notification/SpatialAudioPreferenceController.java
@@ -20,6 +20,7 @@
import android.media.AudioManager;
import android.media.Spatializer;
+import com.android.settings.R;
import com.android.settings.core.TogglePreferenceController;
/**
@@ -53,4 +54,9 @@
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 b32f922..d170159 100644
--- a/src/com/android/settings/notification/VolumeSeekBarPreferenceController.java
+++ b/src/com/android/settings/notification/VolumeSeekBarPreferenceController.java
@@ -23,6 +23,7 @@
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;
@@ -76,6 +77,11 @@
}
@Override
+ public int getSliceHighlightMenuRes() {
+ return R.string.menu_key_sound;
+ }
+
+ @Override
public int getSliderPosition() {
if (mPreference != null) {
return mPreference.getProgress();
diff --git a/src/com/android/settings/notification/zen/ZenModeSliceBuilder.java b/src/com/android/settings/notification/zen/ZenModeSliceBuilder.java
index 5ea01ea..1f553a2 100644
--- a/src/com/android/settings/notification/zen/ZenModeSliceBuilder.java
+++ b/src/com/android/settings/notification/zen/ZenModeSliceBuilder.java
@@ -120,7 +120,7 @@
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 c1e15e8..6b1e435 100644
--- a/src/com/android/settings/panel/NfcPanel.java
+++ b/src/com/android/settings/panel/NfcPanel.java
@@ -62,7 +62,8 @@
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 3b36a57..95ebb33 100644
--- a/src/com/android/settings/panel/WifiPanel.java
+++ b/src/com/android/settings/panel/WifiPanel.java
@@ -62,10 +62,11 @@
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 47610aa..3cf72b2 100644
--- a/src/com/android/settings/privacy/EnableContentCapturePreferenceController.java
+++ b/src/com/android/settings/privacy/EnableContentCapturePreferenceController.java
@@ -18,8 +18,8 @@
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 @@
&& 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 77aab34..c3878d5 100644
--- a/src/com/android/settings/privacy/EnableContentCaptureWithServiceSettingsPreferenceController.java
+++ b/src/com/android/settings/privacy/EnableContentCaptureWithServiceSettingsPreferenceController.java
@@ -28,8 +28,8 @@
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 @@
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 50b023b..53b1a2f 100644
--- a/src/com/android/settings/privacy/SensorToggleController.java
+++ b/src/com/android/settings/privacy/SensorToggleController.java
@@ -22,6 +22,7 @@
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 @@
(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 cf05ff4..ad57073 100644
--- a/src/com/android/settings/privacy/ShowClipAccessNotificationPreferenceController.java
+++ b/src/com/android/settings/privacy/ShowClipAccessNotificationPreferenceController.java
@@ -27,6 +27,7 @@
import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
+import com.android.settings.R;
import com.android.settings.core.TogglePreferenceController;
/**
@@ -72,6 +73,11 @@
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 472101b..696854a 100644
--- a/src/com/android/settings/security/ShowPasswordPreferenceController.java
+++ b/src/com/android/settings/security/ShowPasswordPreferenceController.java
@@ -58,5 +58,9 @@
? 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 64ca853..9e82e78 100644
--- a/src/com/android/settings/security/VisiblePatternProfilePreferenceController.java
+++ b/src/com/android/settings/security/VisiblePatternProfilePreferenceController.java
@@ -28,6 +28,7 @@
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;
@@ -119,6 +120,11 @@
}
@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 d06ad1e..2c807c4 100644
--- a/src/com/android/settings/slices/CustomSliceable.java
+++ b/src/com/android/settings/slices/CustomSliceable.java
@@ -103,6 +103,9 @@
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 2957df2..4cefa4e 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 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 @@
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 @@
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 60f5e3f..01b29b2 100644
--- a/src/com/android/settings/slices/SliceData.java
+++ b/src/com/android/settings/slices/SliceData.java
@@ -19,6 +19,7 @@
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 @@
int SLIDER = 2;
}
+ private static final String TAG = "SliceData";
+
private final String mKey;
private final String mTitle;
@@ -68,6 +71,8 @@
private final String mPreferenceController;
+ private final int mHighlightMenuRes;
+
@SliceType
private final int mSliceType;
@@ -119,6 +124,10 @@
return mUnavailableSliceSubtitle;
}
+ public int getHighlightMenuRes() {
+ return mHighlightMenuRes;
+ }
+
public boolean isPublicSlice() {
return mIsPublicSlice;
}
@@ -136,6 +145,7 @@
mSliceType = builder.mSliceType;
mUnavailableSliceSubtitle = builder.mUnavailableSliceSubtitle;
mIsPublicSlice = builder.mIsPublicSlice;
+ mHighlightMenuRes = builder.mHighlightMenuRes;
}
@Override
@@ -175,6 +185,8 @@
private String mUnavailableSliceSubtitle;
+ private int mHighlightMenuRes;
+
private boolean mIsPublicSlice;
public Builder setKey(String key) {
@@ -233,6 +245,11 @@
return this;
}
+ public Builder setHighlightMenuRes(int highlightMenuRes) {
+ mHighlightMenuRes = highlightMenuRes;
+ return this;
+ }
+
public Builder setIsPublicSlice(boolean isPublicSlice) {
mIsPublicSlice = isPublicSlice;
return this;
@@ -255,6 +272,10 @@
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 5608169..eb08c5f 100644
--- a/src/com/android/settings/slices/SliceDataConverter.java
+++ b/src/com/android/settings/slices/SliceDataConverter.java
@@ -213,6 +213,7 @@
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 @@
.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 ad27b7c..31555df 100644
--- a/src/com/android/settings/slices/Sliceable.java
+++ b/src/com/android/settings/slices/Sliceable.java
@@ -50,6 +50,8 @@
* - Must be understandable as a stand-alone Setting.
* <p>
* This does not guarantee the setting is available.
+ * <p>
+ * {@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 @@
default Class<? extends SliceBackgroundWorker> 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 c0bb8de..75f0220 100644
--- a/src/com/android/settings/slices/SlicesDatabaseAccessor.java
+++ b/src/com/android/settings/slices/SlicesDatabaseAccessor.java
@@ -50,6 +50,7 @@
IndexColumns.CONTROLLER,
IndexColumns.SLICE_TYPE,
IndexColumns.UNAVAILABLE_SLICE_SUBTITLE,
+ IndexColumns.HIGHLIGHT_MENU_RESOURCE,
};
private final Context mContext;
@@ -163,6 +164,8 @@
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 @@
.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 fe4420b..69ad702 100644
--- a/src/com/android/settings/slices/SlicesDatabaseHelper.java
+++ b/src/com/android/settings/slices/SlicesDatabaseHelper.java
@@ -36,7 +36,7 @@
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 @@
* 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 e527fd6..ac30c6c 100644
--- a/src/com/android/settings/slices/SlicesIndexer.java
+++ b/src/com/android/settings/slices/SlicesIndexer.java
@@ -116,6 +116,7 @@
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 ad09e2a..e180b34 100644
--- a/src/com/android/settings/sound/MediaControlsPreferenceController.java
+++ b/src/com/android/settings/sound/MediaControlsPreferenceController.java
@@ -23,6 +23,7 @@
import androidx.annotation.VisibleForTesting;
+import com.android.settings.R;
import com.android.settings.core.TogglePreferenceController;
/**
@@ -50,4 +51,9 @@
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 682cb5b..842a141 100644
--- a/src/com/android/settings/sound/MediaControlsRecommendationController.java
+++ b/src/com/android/settings/sound/MediaControlsRecommendationController.java
@@ -21,6 +21,7 @@
import android.content.Context;
import android.provider.Settings;
+import com.android.settings.R;
import com.android.settings.core.TogglePreferenceController;
/**
@@ -50,4 +51,9 @@
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 f931fa4..ce5533e 100644
--- a/src/com/android/settings/users/AddUserWhenLockedPreferenceController.java
+++ b/src/com/android/settings/users/AddUserWhenLockedPreferenceController.java
@@ -20,6 +20,7 @@
import androidx.preference.Preference;
+import com.android.settings.R;
import com.android.settings.core.TogglePreferenceController;
import com.android.settingslib.RestrictedSwitchPreference;
@@ -69,4 +70,9 @@
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 8b330a9..ad040ed 100644
--- a/src/com/android/settings/uwb/UwbPreferenceController.java
+++ b/src/com/android/settings/uwb/UwbPreferenceController.java
@@ -162,5 +162,10 @@
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 eab50a6..59ad440 100644
--- a/src/com/android/settings/wifi/CellularFallbackPreferenceController.java
+++ b/src/com/android/settings/wifi/CellularFallbackPreferenceController.java
@@ -22,6 +22,7 @@
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 @@
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 6455f5b..4b7506d 100644
--- a/src/com/android/settings/wifi/NotifyOpenNetworksPreferenceController.java
+++ b/src/com/android/settings/wifi/NotifyOpenNetworksPreferenceController.java
@@ -26,6 +26,7 @@
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 @@
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 e9fd350..2cc7f8e 100644
--- a/src/com/android/settings/wifi/WifiWakeupPreferenceController.java
+++ b/src/com/android/settings/wifi/WifiWakeupPreferenceController.java
@@ -135,6 +135,11 @@
}
}
+ @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 ffbb682..8226bc0 100644
--- a/src/com/android/settings/wifi/details2/WifiAutoConnectPreferenceController2.java
+++ b/src/com/android/settings/wifi/details2/WifiAutoConnectPreferenceController2.java
@@ -18,6 +18,7 @@
import android.content.Context;
+import com.android.settings.R;
import com.android.settings.core.TogglePreferenceController;
import com.android.wifitrackerlib.WifiEntry;
@@ -54,4 +55,9 @@
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 f6604dd..29a2bd6 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.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.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 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 c2c67e3..c7a4b2f 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 @@
.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 df3d84f..a880681 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 @@
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 1c9164a..97beeb3 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 @@
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 @@
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 b4385d8..cacd32c 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 @@
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 @@
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 @@
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 @@
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 @@
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 a943ac0..f025d3d 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 @@
@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 @@
.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 @@
.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 @@
.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 6812451..4e968a2 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 @@
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);
@@ -71,6 +72,11 @@
}
@Override
+ public int getSliceHighlightMenuRes() {
+ return HIGHLIGHT_MENU_RES;
+ }
+
+ @Override
public Class<? extends SliceBackgroundWorker> 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 8817a17..13e8c13 100644
--- a/tests/unit/src/com/android/settings/core/TogglePreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/core/TogglePreferenceControllerTest.java
@@ -120,6 +120,11 @@
}
@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 7d43230..df6a38b 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 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 1b035cd..40a827a 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 @@
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 @@
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 4fcbd15..490b7bd 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 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 9eda8b6..c232479 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 @@
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);
@@ -71,6 +72,11 @@
}
@Override
+ public int getSliceHighlightMenuRes() {
+ return HIGHLIGHT_MENU_RES;
+ }
+
+ @Override
public Class<? extends SliceBackgroundWorker> getBackgroundWorkerClass() {
return TestWorker.class;
}