Update face & fingerprint pref logic

This change makes it possible for face & fingerprint settings to be
presented to the user only to delete their face/fingerprint if the
feature has been disabled by a device admin.

Bug: 323280069
Test: atest BiometricFaceStatusPreferenceControllerTest
BiometricFingerprintStatusPreferenceControllerTest

Change-Id: I62cab3ddf7cf708d1b0b4da61dc3ffb7052dee84
This commit is contained in:
Joshua McCloskey
2024-04-29 22:22:31 +00:00
parent 1eca5e767d
commit 3e25356829
18 changed files with 213 additions and 13 deletions

View File

@@ -27,8 +27,6 @@ import androidx.preference.Preference;
import com.android.internal.annotations.VisibleForTesting;
import com.android.settings.Utils;
import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
import com.android.settingslib.RestrictedSwitchPreference;
public class FaceSettingsLockscreenBypassPreferenceController
extends FaceSettingsPreferenceController {
@@ -68,12 +66,11 @@ public class FaceSettingsLockscreenBypassPreferenceController
@Override
public void updateState(Preference preference) {
EnforcedAdmin admin;
super.updateState(preference);
if (!FaceSettings.isFaceHardwareDetected(mContext)) {
preference.setEnabled(false);
} else if ((admin = getRestrictingAdmin()) != null) {
((RestrictedSwitchPreference) preference).setDisabledByAdmin(admin);
} else if (getRestrictingAdmin() != null) {
preference.setEnabled(false);
} else if (!mFaceManager.hasEnrolledTemplates(getUserId())) {
preference.setEnabled(false);
} else {