From 50dcf7955a505c96c09c03792a06e7203b2c86e0 Mon Sep 17 00:00:00 2001 From: Kevin Chyn Date: Thu, 29 Apr 2021 17:02:11 -0700 Subject: [PATCH] Update combined settings summary Display strings based on number of enrollments Bug: 185804815 Test: manual on-device Change-Id: I47be2a53b37c36b3136cd233001db7cadf123ae9 --- res/values/strings.xml | 12 ++++--- ...edBiometricStatusPreferenceController.java | 36 +++++++++++++++++-- 2 files changed, 42 insertions(+), 6 deletions(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index a2282b5564f..04f231cdeaa 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -887,8 +887,8 @@ screen lock - %1$d fingerprint set up - %1$d fingerprints set up + Fingerprint added + %1$d fingerprints added @@ -969,9 +969,13 @@ - Face & fingerprint unlock + Face & Fingerprint Unlock - Face and fingerprint + Tap to set up + + Face and fingerprints added + + Face and fingerprint added 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. diff --git a/src/com/android/settings/biometrics/combination/CombinedBiometricStatusPreferenceController.java b/src/com/android/settings/biometrics/combination/CombinedBiometricStatusPreferenceController.java index c3db1742755..6e989d8b5e3 100644 --- a/src/com/android/settings/biometrics/combination/CombinedBiometricStatusPreferenceController.java +++ b/src/com/android/settings/biometrics/combination/CombinedBiometricStatusPreferenceController.java @@ -16,6 +16,10 @@ package com.android.settings.biometrics.combination; import android.content.Context; +import android.hardware.face.FaceManager; +import android.hardware.fingerprint.FingerprintManager; + +import androidx.annotation.Nullable; import com.android.settings.R; import com.android.settings.Settings; @@ -30,6 +34,10 @@ public class CombinedBiometricStatusPreferenceController extends BiometricStatusPreferenceController { private static final String KEY_BIOMETRIC_SETTINGS = "biometric_settings"; + @Nullable + FingerprintManager mFingerprintManager; + @Nullable + FaceManager mFaceManager; public CombinedBiometricStatusPreferenceController(Context context) { this(context, KEY_BIOMETRIC_SETTINGS); @@ -37,6 +45,8 @@ public class CombinedBiometricStatusPreferenceController extends public CombinedBiometricStatusPreferenceController(Context context, String key) { super(context, key); + mFingerprintManager = Utils.getFingerprintManagerOrNull(context); + mFaceManager = Utils.getFaceManagerOrNull(context); } @Override @@ -51,12 +61,34 @@ public class CombinedBiometricStatusPreferenceController extends @Override protected String getSummaryTextEnrolled() { - return mContext.getString(R.string.security_settings_biometric_preference_summary); + // Note that this is currently never called (see the super class) + return mContext.getString( + R.string.security_settings_biometric_preference_summary_none_enrolled); } @Override protected String getSummaryTextNoneEnrolled() { - return mContext.getString(R.string.security_settings_biometric_preference_summary); + final int numFingerprintsEnrolled = mFingerprintManager != null ? + mFingerprintManager.getEnrolledFingerprints(getUserId()).size() : 0; + final boolean faceEnrolled = mFaceManager != null + && mFaceManager.hasEnrolledTemplates(getUserId()); + + if (faceEnrolled && numFingerprintsEnrolled > 1) { + return mContext.getString( + R.string.security_settings_biometric_preference_summary_both_fp_multiple); + } else if (faceEnrolled && numFingerprintsEnrolled == 1) { + return mContext.getString( + R.string.security_settings_biometric_preference_summary_both_fp_single); + } else if (faceEnrolled) { + return mContext.getString(R.string.security_settings_face_preference_summary); + } else if (numFingerprintsEnrolled > 0) { + return mContext.getResources().getQuantityString( + R.plurals.security_settings_fingerprint_preference_summary, + numFingerprintsEnrolled, numFingerprintsEnrolled); + } else { + return mContext.getString( + R.string.security_settings_biometric_preference_summary_none_enrolled); + } } @Override