confirm SIM deletion should be disabled when the guest mode is enabled.

Bug: 228451314
Change-Id: I83337980fe4bcfa6771de290fd0e44217ea51dec
Test: manual
This commit is contained in:
Edgar Wang
2022-06-29 06:02:30 +00:00
parent fb2c38dea7
commit 1496ba9276

View File

@@ -19,6 +19,7 @@ package com.android.settings.security;
import android.app.KeyguardManager;
import android.app.settings.SettingsEnums;
import android.content.Context;
import android.os.UserManager;
import android.provider.Settings;
import androidx.preference.Preference;
@@ -39,6 +40,8 @@ public class ConfirmSimDeletionPreferenceController extends BasePreferenceContro
ConfirmationSimDeletionPredicate.KEY_CONFIRM_SIM_DELETION;
private boolean mConfirmationDefaultOn;
private MetricsFeatureProvider mMetricsFeatureProvider;
private UserManager mUserManager;
private KeyguardManager mKeyguardManager;
public ConfirmSimDeletionPreferenceController(Context context, String key) {
super(context, key);
@@ -46,6 +49,9 @@ public class ConfirmSimDeletionPreferenceController extends BasePreferenceContro
context.getResources()
.getBoolean(R.bool.config_sim_deletion_confirmation_default_on);
mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
mUserManager = context.getSystemService(UserManager.class);
mKeyguardManager = mContext.getSystemService(KeyguardManager.class);
}
@Override
@@ -99,8 +105,7 @@ public class ConfirmSimDeletionPreferenceController extends BasePreferenceContro
@Override
public void updateState(Preference preference) {
final KeyguardManager keyguardManager = mContext.getSystemService(KeyguardManager.class);
if (!keyguardManager.isKeyguardSecure()) {
if (!mKeyguardManager.isKeyguardSecure() && mUserManager.isGuestUser()) {
preference.setEnabled(false);
if (preference instanceof TwoStatePreference) {
((TwoStatePreference) preference).setChecked(false);