[Biometric Onboarding & Edu] Update face settings page
- Added a feature provider for face settings page in FaceFeatureProvider
for customization
- When face is deleted, disabled the settings buttons instead of hiding
them.
- Updated new UX style for add/remove face button.
Bug: 370940762
Test: atest FaceSettingsEnrollButtonPreferenceControllerTest
FaceSettingsFooterPreferenceControllerTest
Test: manual - 1. Enroll face
2. Go Face Settings page and remove face
3. Enroll face again
Flag: com.android.settings.flags.biometrics_onboarding_education
Change-Id: I490e647523eeff2dd1a58aab07f638e3e5e0ffb8
This commit is contained in:
@@ -19,9 +19,11 @@ package com.android.settings.biometrics.face;
|
||||
import static android.provider.Settings.Secure.FACE_KEYGUARD_ENABLED;
|
||||
|
||||
import android.content.Context;
|
||||
import android.hardware.face.FaceManager;
|
||||
import android.provider.Settings;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.preference.Preference;
|
||||
|
||||
import com.android.settings.Utils;
|
||||
import com.android.settings.biometrics.activeunlock.ActiveUnlockStatusUtils;
|
||||
@@ -32,9 +34,12 @@ public class FaceSettingsKeyguardUnlockPreferenceController extends
|
||||
private static final int OFF = 0;
|
||||
private static final int DEFAULT = ON;
|
||||
|
||||
private FaceManager mFaceManager;
|
||||
|
||||
public FaceSettingsKeyguardUnlockPreferenceController(
|
||||
@NonNull Context context, @NonNull String key) {
|
||||
super(context, key);
|
||||
mFaceManager = Utils.getFaceManagerOrNull(context);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -49,6 +54,20 @@ public class FaceSettingsKeyguardUnlockPreferenceController extends
|
||||
FACE_KEYGUARD_ENABLED, isChecked ? ON : OFF, getUserId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateState(Preference preference) {
|
||||
super.updateState(preference);
|
||||
if (!FaceSettings.isFaceHardwareDetected(mContext)) {
|
||||
preference.setEnabled(false);
|
||||
} else if (!mFaceManager.hasEnrolledTemplates(getUserId())) {
|
||||
preference.setEnabled(false);
|
||||
} else if (getRestrictingAdmin() != null) {
|
||||
preference.setEnabled(false);
|
||||
} else {
|
||||
preference.setEnabled(true);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getAvailabilityStatus() {
|
||||
final ActiveUnlockStatusUtils activeUnlockStatusUtils =
|
||||
|
||||
Reference in New Issue
Block a user