From f1415638309378753b9327c4344a09d2c4f4443a Mon Sep 17 00:00:00 2001 From: Chris Antol Date: Fri, 18 Oct 2024 00:11:28 +0000 Subject: [PATCH] Add Lock Screen page skeleton and TS flag Bug: 372307567 Test: none Flag: com.android.settings.flags.catalyst_lockscreen_from_display_settings Change-Id: I0740fea06e8f69bb8408ef5389b34756cfe475c7 --- aconfig/catalyst/lockscreen.aconfig | 9 ++++ .../security/LockScreenPreferenceScreen.kt | 49 +++++++++++++++++++ .../security/LockscreenDashboardFragment.java | 7 +++ 3 files changed, 65 insertions(+) create mode 100644 aconfig/catalyst/lockscreen.aconfig create mode 100644 src/com/android/settings/security/LockScreenPreferenceScreen.kt diff --git a/aconfig/catalyst/lockscreen.aconfig b/aconfig/catalyst/lockscreen.aconfig new file mode 100644 index 00000000000..9a84f66af15 --- /dev/null +++ b/aconfig/catalyst/lockscreen.aconfig @@ -0,0 +1,9 @@ +package: "com.android.settings.flags" +container: "system" + +flag { + name: "catalyst_lockscreen_from_display_settings" + namespace: "android_settings" + description: "Flag for Display & touch > Lock screen" + bug: "323791114" +} diff --git a/src/com/android/settings/security/LockScreenPreferenceScreen.kt b/src/com/android/settings/security/LockScreenPreferenceScreen.kt new file mode 100644 index 00000000000..0c7877f88e5 --- /dev/null +++ b/src/com/android/settings/security/LockScreenPreferenceScreen.kt @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.settings.security + +import android.content.Context +import com.android.settings.R +import com.android.settings.flags.Flags +import com.android.settingslib.metadata.ProvidePreferenceScreen +import com.android.settingslib.metadata.preferenceHierarchy +import com.android.settingslib.preference.PreferenceScreenCreator + +@ProvidePreferenceScreen +open class LockScreenPreferenceScreen : PreferenceScreenCreator { + override val key: String + get() = KEY + + override val title: Int + get() = R.string.lockscreen_settings_title + + override val keywords: Int + get() = R.string.keywords_ambient_display_screen + + 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 + } + + companion object { + const val KEY = "lockscreen_from_display_settings" + } +} \ No newline at end of file diff --git a/src/com/android/settings/security/LockscreenDashboardFragment.java b/src/com/android/settings/security/LockscreenDashboardFragment.java index 2e4a1f28917..1e299a36cf5 100644 --- a/src/com/android/settings/security/LockscreenDashboardFragment.java +++ b/src/com/android/settings/security/LockscreenDashboardFragment.java @@ -29,6 +29,8 @@ import android.os.Handler; import android.os.Looper; import android.provider.Settings; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; import com.android.settings.R; @@ -160,6 +162,11 @@ public class LockscreenDashboardFragment extends DashboardFragment } } + @Override + public @Nullable String getPreferenceScreenBindingKey(@NonNull Context context) { + return LockScreenPreferenceScreen.KEY; + } + private AmbientDisplayConfiguration getConfig(Context context) { if (mConfig == null) { mConfig = new AmbientDisplayConfiguration(context);