Show in UI if admin has disabled face auth
Bug: 135747161 Test: manual Change-Id: I13bf681be36a2ea5192f841ffcf423390189474c
This commit is contained in:
@@ -29,7 +29,7 @@
|
||||
<PreferenceCategory
|
||||
android:key="security_settings_face_unlock_category"
|
||||
android:title="@string/security_settings_face_settings_use_face_category">
|
||||
<SwitchPreference
|
||||
<com.android.settingslib.RestrictedSwitchPreference
|
||||
android:key="security_settings_face_keyguard"
|
||||
android:title="@string/security_settings_face_settings_use_face_unlock_phone"
|
||||
app:keywords="@string/keywords_face_unlock"
|
||||
@@ -39,7 +39,7 @@
|
||||
android:title="@string/security_settings_face_settings_use_face_for_apps"
|
||||
app:keywords="@string/keywords_face_unlock"
|
||||
app:controller="com.android.settings.biometrics.face.FaceSettingsAppPreferenceController"/>
|
||||
<SwitchPreference
|
||||
<com.android.settingslib.RestrictedSwitchPreference
|
||||
android:key="security_lockscreen_bypass"
|
||||
android:title="@string/lockscreen_bypass_title"
|
||||
android:summary="@string/lockscreen_bypass_summary"
|
||||
|
@@ -25,6 +25,8 @@ import android.provider.Settings;
|
||||
import androidx.preference.Preference;
|
||||
|
||||
import com.android.settings.Utils;
|
||||
import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
|
||||
import com.android.settingslib.RestrictedSwitchPreference;
|
||||
|
||||
/**
|
||||
* Preference controller for Face settings page controlling the ability to unlock the phone
|
||||
@@ -53,7 +55,7 @@ public class FaceSettingsKeyguardPreferenceController extends FaceSettingsPrefer
|
||||
public boolean isChecked() {
|
||||
if (!FaceSettings.isAvailable(mContext)) {
|
||||
return false;
|
||||
} else if (adminDisabled()) {
|
||||
} else if (getRestrictingAdmin() != null) {
|
||||
return false;
|
||||
}
|
||||
return Settings.Secure.getIntForUser(mContext.getContentResolver(),
|
||||
@@ -73,11 +75,12 @@ public class FaceSettingsKeyguardPreferenceController extends FaceSettingsPrefer
|
||||
|
||||
@Override
|
||||
public void updateState(Preference preference) {
|
||||
EnforcedAdmin admin;
|
||||
super.updateState(preference);
|
||||
if (!FaceSettings.isAvailable(mContext)) {
|
||||
preference.setEnabled(false);
|
||||
} else if (adminDisabled()) {
|
||||
preference.setEnabled(false);
|
||||
} else if ((admin = getRestrictingAdmin()) != null) {
|
||||
((RestrictedSwitchPreference) preference).setDisabledByAdmin(admin);
|
||||
} else if (!mFaceManager.hasEnrolledTemplates(getUserId())) {
|
||||
preference.setEnabled(false);
|
||||
} else {
|
||||
|
@@ -26,6 +26,8 @@ import android.provider.Settings;
|
||||
import androidx.preference.Preference;
|
||||
|
||||
import com.android.internal.annotations.VisibleForTesting;
|
||||
import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
|
||||
import com.android.settingslib.RestrictedSwitchPreference;
|
||||
|
||||
public class FaceSettingsLockscreenBypassPreferenceController
|
||||
extends FaceSettingsPreferenceController {
|
||||
@@ -60,11 +62,12 @@ public class FaceSettingsLockscreenBypassPreferenceController
|
||||
|
||||
@Override
|
||||
public void updateState(Preference preference) {
|
||||
EnforcedAdmin admin;
|
||||
super.updateState(preference);
|
||||
if (!FaceSettings.isAvailable(mContext)) {
|
||||
preference.setEnabled(false);
|
||||
} else if (adminDisabled()) {
|
||||
preference.setEnabled(false);
|
||||
} else if ((admin = getRestrictingAdmin()) != null) {
|
||||
((RestrictedSwitchPreference) preference).setDisabledByAdmin(admin);
|
||||
} else if (!mFaceManager.hasEnrolledTemplates(getUserId())) {
|
||||
preference.setEnabled(false);
|
||||
} else {
|
||||
|
@@ -18,9 +18,10 @@ package com.android.settings.biometrics.face;
|
||||
|
||||
import android.app.admin.DevicePolicyManager;
|
||||
import android.content.Context;
|
||||
import android.os.UserHandle;
|
||||
|
||||
import com.android.settings.core.TogglePreferenceController;
|
||||
import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
|
||||
import com.android.settingslib.RestrictedLockUtilsInternal;
|
||||
|
||||
/**
|
||||
* Abstract base class for all face settings toggles.
|
||||
@@ -41,12 +42,8 @@ public abstract class FaceSettingsPreferenceController extends TogglePreferenceC
|
||||
return mUserId;
|
||||
}
|
||||
|
||||
protected boolean adminDisabled() {
|
||||
DevicePolicyManager dpm =
|
||||
(DevicePolicyManager) mContext.getSystemService(Context.DEVICE_POLICY_SERVICE);
|
||||
return dpm != null &&
|
||||
(dpm.getKeyguardDisabledFeatures(null, UserHandle.myUserId())
|
||||
& DevicePolicyManager.KEYGUARD_DISABLE_FACE)
|
||||
!= 0;
|
||||
protected EnforcedAdmin getRestrictingAdmin() {
|
||||
return RestrictedLockUtilsInternal.checkIfKeyguardFeaturesDisabled(
|
||||
mContext, DevicePolicyManager.KEYGUARD_DISABLE_FACE, mUserId);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user