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