Settings: Add app lock settings for alternate security settings provider

* When google security settings provider overrides security settings,
  app lock settings cannot be found.
* Add same to advanced settings.

Fixes: https://github.com/crdroidandroid/crdroid_features/issues/101
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
This commit is contained in:
Pranav Vashi
2023-10-14 22:42:52 +05:30
committed by Joey
parent 5ed3dd40b6
commit 81a32f493f
3 changed files with 11 additions and 2 deletions

View File

@@ -158,6 +158,11 @@
android:key="security_settings_device_admin_category"
android:layout="@layout/preference_category_no_label">
<!-- App lock -->
<com.android.settingslib.RestrictedPreference
android:key="app_lock"
android:title="@string/app_lock_title" />
<Preference
android:key="manage_device_admin"
android:title="@string/manage_device_admin"

View File

@@ -39,6 +39,7 @@ import com.android.settings.notification.LockScreenNotificationPreferenceControl
import com.android.settings.privacy.PrivacyDashboardFragment;
import com.android.settings.security.ChangeProfileScreenLockPreferenceController;
import com.android.settings.security.LockUnificationPreferenceController;
import com.android.settings.security.applock.AppLockSettingsPreferenceController;
import com.android.settings.security.trustagent.TrustAgentListPreferenceController;
import com.android.settings.widget.PreferenceCategoryController;
import com.android.settingslib.core.AbstractPreferenceController;
@@ -55,6 +56,7 @@ public final class SafetyCenterUtils {
"privacy_work_profile_notifications_category";
private static final String KEY_NOTIFICATION_WORK_PROFILE_NOTIFICATIONS =
"privacy_lock_screen_work_profile_notifications";
private static final String APP_LOCK_PREF_KEY = "app_lock";
/**
* Returns preference controllers related to advanced security entries. This is used in {@link
@@ -80,6 +82,8 @@ public final class SafetyCenterUtils {
.add(new CombinedBiometricProfileStatusPreferenceController(context, lifecycle));
controllers.add(new PreferenceCategoryController(context, WORK_PROFILE_SECURITY_CATEGORY)
.setChildren(profileSecurityControllers));
controllers.add(new AppLockSettingsPreferenceController(
context, APP_LOCK_PREF_KEY, host, lifecycle));
controllers.addAll(profileSecurityControllers);
return controllers;
}

View File

@@ -35,8 +35,8 @@ import com.android.internal.widget.LockPatternUtils
import com.android.settings.R
import com.android.settings.Utils.SETTINGS_PACKAGE_NAME
import com.android.settings.core.SubSettingLauncher
import com.android.settings.dashboard.DashboardFragment
import com.android.settings.password.ConfirmDeviceCredentialActivity
import com.android.settings.security.SecuritySettings
import com.android.settingslib.core.lifecycle.Lifecycle
import com.android.settingslib.transition.SettingsTransitionHelper.TransitionType.TRANSITION_SLIDE
import com.android.settings.core.BasePreferenceController
@@ -48,7 +48,7 @@ import com.android.settingslib.core.instrumentation.MetricsFeatureProvider
class AppLockSettingsPreferenceController(
context: Context,
preferenceKey: String,
private val host: SecuritySettings?,
private val host: DashboardFragment?,
lifecycle: Lifecycle?,
) : BasePreferenceController(context, preferenceKey),
LifecycleEventObserver {