diff --git a/src/com/android/settings/biometrics/face/FaceSettingsLockscreenBypassPreferenceController.java b/src/com/android/settings/biometrics/face/FaceSettingsLockscreenBypassPreferenceController.java index 50c45ba86e4..5c46a3d9cc9 100644 --- a/src/com/android/settings/biometrics/face/FaceSettingsLockscreenBypassPreferenceController.java +++ b/src/com/android/settings/biometrics/face/FaceSettingsLockscreenBypassPreferenceController.java @@ -47,6 +47,11 @@ public class FaceSettingsLockscreenBypassPreferenceController @Override public boolean isChecked() { + if (!FaceSettings.isAvailable(mContext)) { + return false; + } else if (getRestrictingAdmin() != null) { + return false; + } int defaultValue = mContext.getResources().getBoolean( com.android.internal.R.bool.config_faceAuthDismissesKeyguard) ? 1 : 0; return Settings.Secure.getIntForUser(mContext.getContentResolver(), diff --git a/tests/robotests/src/com/android/settings/biometrics/face/FaceSettingsLockscreenBypassPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/biometrics/face/FaceSettingsLockscreenBypassPreferenceControllerTest.java index 5fc3f2a1645..df4678e9e1a 100644 --- a/tests/robotests/src/com/android/settings/biometrics/face/FaceSettingsLockscreenBypassPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/biometrics/face/FaceSettingsLockscreenBypassPreferenceControllerTest.java @@ -93,6 +93,7 @@ public class FaceSettingsLockscreenBypassPreferenceControllerTest { boolean state = Settings.Secure.getInt(mContext.getContentResolver(), Settings.Secure.FACE_UNLOCK_DISMISSES_KEYGUARD, defaultValue ? 1 : 0) != 0; + assertThat(mController.isChecked()).isFalse(); assertThat(mController.onPreferenceChange(mPreference, !state)).isTrue(); boolean newState = Settings.Secure.getInt(mContext.getContentResolver(), Settings.Secure.FACE_UNLOCK_DISMISSES_KEYGUARD, 0) != 0;