From 7edebeef7e29f3f8738f8b989201c98b0dc9347e Mon Sep 17 00:00:00 2001 From: Mill Chen Date: Fri, 9 Apr 2021 23:14:27 +0800 Subject: [PATCH] Combined biometric settings implementation There will be multiple biometrics authentications existing at the same time, so we added a new page for multiple biometrics to control biometrics settings. Bug: 183449119 Test: manual test Change-Id: I359082caf771e07dfd5b24973cb8a3cf372c1b30 --- AndroidManifest.xml | 16 ++++ res/values/strings.xml | 20 +++++ res/xml/security_dashboard_settings.xml | 11 +++ .../security_settings_combined_biometric.xml | 69 +++++++++++++++ ...ty_settings_combined_biometric_profile.xml | 56 ++++++++++++ res/xml/security_settings_face.xml | 10 ++- src/com/android/settings/Settings.java | 2 + src/com/android/settings/Utils.java | 7 ++ ...FaceProfileStatusPreferenceController.java | 42 +++++++++ ...ometricFaceStatusPreferenceController.java | 37 ++++++++ ...rintProfileStatusPreferenceController.java | 42 +++++++++ ...FingerprintStatusPreferenceController.java | 38 ++++++++ ...metricSettingsAppPreferenceController.java | 86 +++++++++++++++++++ ...cSettingsKeyguardPreferenceController.java | 67 +++++++++++++++ .../CombinedBiometricProfileSettings.java | 60 +++++++++++++ ...tricProfileStatusPreferenceController.java | 60 +++++++++++++ .../CombinedBiometricSettings.java | 63 ++++++++++++++ ...edBiometricStatusPreferenceController.java | 71 +++++++++++++++ .../FaceSettingsAppPreferenceController.java | 5 ++ ...eSettingsKeyguardPreferenceController.java | 3 +- ...sLockscreenBypassPreferenceController.java | 6 ++ .../face/FaceStatusPreferenceController.java | 2 +- ...aceUnlockCategoryPreferenceController.java | 36 ++++++++ ...FingerprintStatusPreferenceController.java | 3 +- .../core/gateway/SettingsGateway.java | 4 + .../settings/security/SecuritySettings.java | 5 ++ 26 files changed, 817 insertions(+), 4 deletions(-) create mode 100644 res/xml/security_settings_combined_biometric.xml create mode 100644 res/xml/security_settings_combined_biometric_profile.xml create mode 100644 src/com/android/settings/biometrics/combination/BiometricFaceProfileStatusPreferenceController.java create mode 100644 src/com/android/settings/biometrics/combination/BiometricFaceStatusPreferenceController.java create mode 100644 src/com/android/settings/biometrics/combination/BiometricFingerprintProfileStatusPreferenceController.java create mode 100644 src/com/android/settings/biometrics/combination/BiometricFingerprintStatusPreferenceController.java create mode 100644 src/com/android/settings/biometrics/combination/BiometricSettingsAppPreferenceController.java create mode 100644 src/com/android/settings/biometrics/combination/BiometricSettingsKeyguardPreferenceController.java create mode 100644 src/com/android/settings/biometrics/combination/CombinedBiometricProfileSettings.java create mode 100644 src/com/android/settings/biometrics/combination/CombinedBiometricProfileStatusPreferenceController.java create mode 100644 src/com/android/settings/biometrics/combination/CombinedBiometricSettings.java create mode 100644 src/com/android/settings/biometrics/combination/CombinedBiometricStatusPreferenceController.java create mode 100644 src/com/android/settings/biometrics/face/FaceUnlockCategoryPreferenceController.java diff --git a/AndroidManifest.xml b/AndroidManifest.xml index c352694f9f5..9b11fe81c98 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -494,6 +494,22 @@ android:value="com.android.settings.biometrics.fingerprint.FingerprintSettings$FingerprintSettingsFragment" /> + + + + + + + + Use your fingerprint to unlock your phone or for authentication, like when you sign in to apps or approve a purchase\n\nLearn more + + + Face & fingerprint unlock + + Face and fingerprint + + When you set up face unlock and fingerprint, your phone will ask for your fingerprint when you wear a mask or are in a dark area. + + Ways to unlock + + Use face and fingerprint to + + Unlocking your phone + + Authentication in apps + Skip screen lock? @@ -7990,6 +8006,7 @@ backup, back up gesture face, unlock, auth, sign in + face, unlock, auth, sign in, fingerprint, biometric imei, meid, min, prl version, imei sv network, mobile network state, service state, signal strength, mobile network type, roaming, iccid, eid serial number, hardware version @@ -8015,6 +8032,9 @@ fingerprint, add fingerprint + + face, fingerprint, add fingerprint + dim screen, touchscreen, battery, smart brightness, dynamic brightness, Auto brightness diff --git a/res/xml/security_dashboard_settings.xml b/res/xml/security_dashboard_settings.xml index fd9f3186996..be1f34cebe3 100644 --- a/res/xml/security_dashboard_settings.xml +++ b/res/xml/security_dashboard_settings.xml @@ -55,6 +55,12 @@ android:title="@string/security_settings_face_preference_title" android:summary="@string/summary_placeholder" settings:keywords="@string/keywords_face_settings" /> + + @@ -91,6 +97,11 @@ android:title="@string/security_settings_face_preference_title" android:summary="@string/summary_placeholder" /> + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/res/xml/security_settings_combined_biometric_profile.xml b/res/xml/security_settings_combined_biometric_profile.xml new file mode 100644 index 00000000000..57111528603 --- /dev/null +++ b/res/xml/security_settings_combined_biometric_profile.xml @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/res/xml/security_settings_face.xml b/res/xml/security_settings_face.xml index 1fc1ca82de5..131f222685c 100644 --- a/res/xml/security_settings_face.xml +++ b/res/xml/security_settings_face.xml @@ -31,7 +31,8 @@ + android:title="@string/security_settings_face_settings_use_face_category" + settings:controller="com.android.settings.biometrics.face.FaceUnlockCategoryPreferenceController"> + + securityPreferenceControllers = new ArrayList<>(); securityPreferenceControllers.add(new FaceStatusPreferenceController(context)); securityPreferenceControllers.add(new FingerprintStatusPreferenceController(context)); + securityPreferenceControllers.add(new CombinedBiometricStatusPreferenceController(context)); securityPreferenceControllers.add(new ChangeScreenLockPreferenceController(context, host)); controllers.add(new PreferenceCategoryController(context, SECURITY_CATEGORY) .setChildren(securityPreferenceControllers)); @@ -128,6 +131,8 @@ public class SecuritySettings extends DashboardFragment { context, lifecycle)); profileSecurityControllers.add(new FaceProfileStatusPreferenceController(context)); profileSecurityControllers.add(new FingerprintProfileStatusPreferenceController(context)); + profileSecurityControllers + .add(new CombinedBiometricProfileStatusPreferenceController(context)); controllers.add(new PreferenceCategoryController(context, WORK_PROFILE_SECURITY_CATEGORY) .setChildren(profileSecurityControllers)); controllers.addAll(profileSecurityControllers);