[Catalyst] Migrate "Lock screen" entry point

Bug: 372307567
Flag: com.android.settings.flags.catalyst_lockscreen_from_display_settings
Test: manual
Change-Id: I0c269c550c678362f345c9b5438a133c7a76fe10
This commit is contained in:
Jacky Wang
2024-11-20 19:08:26 +08:00
parent 9b65eafc84
commit b6132572ea
4 changed files with 25 additions and 11 deletions

View File

@@ -17,6 +17,7 @@
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:settings="http://schemas.android.com/apk/res-auto"
android:key="lockscreen_from_display_settings"
android:title="@string/lockscreen_settings_title">
<PreferenceCategory

View File

@@ -427,6 +427,7 @@ public abstract class DashboardFragment extends SettingsPreferenceFragment
private void removeControllersForHybridMode() {
Set<String> keys = getPreferenceKeysInHierarchy();
Iterator<AbstractPreferenceController> 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);
}
}
}
}

View File

@@ -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,9 +51,11 @@ open class DisplayScreen :
override fun fragmentClass() = DisplaySettings::class.java
override fun getPreferenceHierarchy(context: Context) = preferenceHierarchy(this) {
override fun getPreferenceHierarchy(context: Context) =
preferenceHierarchy(this) {
+BrightnessLevelPreference()
+AutoBrightnessScreen.KEY
+LockScreenPreferenceScreen.KEY
+DarkModeScreen.KEY
+PeakRefreshRateSwitchPreference()
}

View File

@@ -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,13 +35,17 @@ 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) {
override fun getPreferenceHierarchy(context: Context) =
preferenceHierarchy(this) {
// add hierarchy here
}