From b6132572ea9ab2bd4213019d1c7640422ffc117f Mon Sep 17 00:00:00 2001 From: Jacky Wang Date: Wed, 20 Nov 2024 19:08:26 +0800 Subject: [PATCH] [Catalyst] Migrate "Lock screen" entry point Bug: 372307567 Flag: com.android.settings.flags.catalyst_lockscreen_from_display_settings Test: manual Change-Id: I0c269c550c678362f345c9b5438a133c7a76fe10 --- res/xml/security_lockscreen_settings.xml | 1 + .../settings/dashboard/DashboardFragment.java | 4 ++++ .../android/settings/display/DisplayScreen.kt | 15 +++++++++------ .../security/LockScreenPreferenceScreen.kt | 16 +++++++++++----- 4 files changed, 25 insertions(+), 11 deletions(-) diff --git a/res/xml/security_lockscreen_settings.xml b/res/xml/security_lockscreen_settings.xml index 15d530357d9..fdc738afca8 100644 --- a/res/xml/security_lockscreen_settings.xml +++ b/res/xml/security_lockscreen_settings.xml @@ -17,6 +17,7 @@ keys = getPreferenceKeysInHierarchy(); Iterator iterator = mControllers.iterator(); + Lifecycle lifecycle = getSettingsLifecycle(); while (iterator.hasNext()) { AbstractPreferenceController controller = iterator.next(); String key = controller.getPreferenceKey(); @@ -438,6 +439,9 @@ public abstract class DashboardFragment extends SettingsPreferenceFragment if (controllers != null) { controllers.remove(controller); } + if (controller instanceof LifecycleObserver) { + lifecycle.removeObserver((LifecycleObserver) controller); + } } } } diff --git a/src/com/android/settings/display/DisplayScreen.kt b/src/com/android/settings/display/DisplayScreen.kt index 422ea67618a..d8a6be11e21 100644 --- a/src/com/android/settings/display/DisplayScreen.kt +++ b/src/com/android/settings/display/DisplayScreen.kt @@ -21,6 +21,7 @@ import com.android.settings.R import com.android.settings.Settings.DisplaySettingsActivity import com.android.settings.display.darkmode.DarkModeScreen import com.android.settings.flags.Flags +import com.android.settings.security.LockScreenPreferenceScreen import com.android.settings.utils.makeLaunchIntent import com.android.settingslib.metadata.PreferenceAvailabilityProvider import com.android.settingslib.metadata.PreferenceIconProvider @@ -50,12 +51,14 @@ open class DisplayScreen : override fun fragmentClass() = DisplaySettings::class.java - override fun getPreferenceHierarchy(context: Context) = preferenceHierarchy(this) { - +BrightnessLevelPreference() - +AutoBrightnessScreen.KEY - +DarkModeScreen.KEY - +PeakRefreshRateSwitchPreference() - } + override fun getPreferenceHierarchy(context: Context) = + preferenceHierarchy(this) { + +BrightnessLevelPreference() + +AutoBrightnessScreen.KEY + +LockScreenPreferenceScreen.KEY + +DarkModeScreen.KEY + +PeakRefreshRateSwitchPreference() + } override fun getLaunchIntent(context: Context, metadata: PreferenceMetadata?) = makeLaunchIntent(context, DisplaySettingsActivity::class.java, metadata?.key) diff --git a/src/com/android/settings/security/LockScreenPreferenceScreen.kt b/src/com/android/settings/security/LockScreenPreferenceScreen.kt index 0c7877f88e5..55c18d96ff8 100644 --- a/src/com/android/settings/security/LockScreenPreferenceScreen.kt +++ b/src/com/android/settings/security/LockScreenPreferenceScreen.kt @@ -18,12 +18,14 @@ package com.android.settings.security import android.content.Context import com.android.settings.R import com.android.settings.flags.Flags +import com.android.settings.notification.LockScreenNotificationPreferenceController +import com.android.settingslib.metadata.PreferenceSummaryProvider import com.android.settingslib.metadata.ProvidePreferenceScreen import com.android.settingslib.metadata.preferenceHierarchy import com.android.settingslib.preference.PreferenceScreenCreator @ProvidePreferenceScreen -open class LockScreenPreferenceScreen : PreferenceScreenCreator { +open class LockScreenPreferenceScreen : PreferenceScreenCreator, PreferenceSummaryProvider { override val key: String get() = KEY @@ -33,17 +35,21 @@ open class LockScreenPreferenceScreen : PreferenceScreenCreator { override val keywords: Int get() = R.string.keywords_ambient_display_screen + override fun getSummary(context: Context): CharSequence? = + context.getString(LockScreenNotificationPreferenceController.getSummaryResource(context)) + override fun isFlagEnabled(context: Context) = Flags.catalystLockscreenFromDisplaySettings() override fun hasCompleteHierarchy() = false override fun fragmentClass() = LockscreenDashboardFragment::class.java - override fun getPreferenceHierarchy(context: Context) = preferenceHierarchy(this) { - // add hierarchy here - } + override fun getPreferenceHierarchy(context: Context) = + preferenceHierarchy(this) { + // add hierarchy here + } companion object { const val KEY = "lockscreen_from_display_settings" } -} \ No newline at end of file +}