Update combined settings summary

Display strings based on number of enrollments

Bug: 185804815
Test: manual on-device
Change-Id: I47be2a53b37c36b3136cd233001db7cadf123ae9
This commit is contained in:
Kevin Chyn
2021-04-29 17:02:11 -07:00
parent a435a5a288
commit 50dcf7955a
2 changed files with 42 additions and 6 deletions

View File

@@ -887,8 +887,8 @@
<string name="fingerprint_enable_keyguard_toggle_title">screen lock</string> <string name="fingerprint_enable_keyguard_toggle_title">screen lock</string>
<!-- Message showing the current number of fingerprints set up. Shown for a menu item that launches fingerprint settings or enrollment. --> <!-- Message showing the current number of fingerprints set up. Shown for a menu item that launches fingerprint settings or enrollment. -->
<plurals name="security_settings_fingerprint_preference_summary"> <plurals name="security_settings_fingerprint_preference_summary">
<item quantity="one"><xliff:g id="count">%1$d</xliff:g> fingerprint set up</item> <item quantity="one">Fingerprint added</item>
<item quantity="other"><xliff:g id="count">%1$d</xliff:g> fingerprints set up</item> <item quantity="other"><xliff:g id="count">%1$d</xliff:g> fingerprints added</item>
</plurals> </plurals>
<!-- message shown in summary field when no fingerprints are registered --> <!-- message shown in summary field when no fingerprints are registered -->
<string name="security_settings_fingerprint_preference_summary_none"></string> <string name="security_settings_fingerprint_preference_summary_none"></string>
@@ -969,9 +969,13 @@
<!-- Biometric settings --><skip /> <!-- Biometric settings --><skip />
<!-- Title shown for menu item that launches biometric settings. [CHAR LIMIT=66] --> <!-- Title shown for menu item that launches biometric settings. [CHAR LIMIT=66] -->
<string name="security_settings_biometric_preference_title">Face &amp; fingerprint unlock</string> <string name="security_settings_biometric_preference_title">Face &amp; Fingerprint Unlock</string>
<!-- Message shown in summary field of biometric settings. [CHAR LIMIT=66] --> <!-- Message shown in summary field of biometric settings. [CHAR LIMIT=66] -->
<string name="security_settings_biometric_preference_summary">Face and fingerprint</string> <string name="security_settings_biometric_preference_summary_none_enrolled">Tap to set up</string>
<!-- Message shown in summary field of biometric settings when face is enrolled, and multiple fingerprints are enrolled. [CHAR LIMIT=66]-->
<string name="security_settings_biometric_preference_summary_both_fp_multiple">Face and fingerprints added</string>
<!-- Message shown in summary field of biometric settings when face is enrolled, and a single fingerprintis enrolled. [CHAR LIMIT=66]-->
<string name="security_settings_biometric_preference_summary_both_fp_single">Face and fingerprint added</string>
<!-- Introduction shown in face and fingerprint page to introduce the biometric feature. [CHAR LIMIT=NONE]--> <!-- Introduction shown in face and fingerprint page to introduce the biometric feature. [CHAR LIMIT=NONE]-->
<string name="biometric_settings_intro">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.</string> <string name="biometric_settings_intro">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.</string>
<!-- Biometric category title - biometric options for unlocking the device. [CHAR LIMIT=50] --> <!-- Biometric category title - biometric options for unlocking the device. [CHAR LIMIT=50] -->

View File

@@ -16,6 +16,10 @@
package com.android.settings.biometrics.combination; package com.android.settings.biometrics.combination;
import android.content.Context; 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.R;
import com.android.settings.Settings; import com.android.settings.Settings;
@@ -30,6 +34,10 @@ public class CombinedBiometricStatusPreferenceController extends
BiometricStatusPreferenceController { BiometricStatusPreferenceController {
private static final String KEY_BIOMETRIC_SETTINGS = "biometric_settings"; private static final String KEY_BIOMETRIC_SETTINGS = "biometric_settings";
@Nullable
FingerprintManager mFingerprintManager;
@Nullable
FaceManager mFaceManager;
public CombinedBiometricStatusPreferenceController(Context context) { public CombinedBiometricStatusPreferenceController(Context context) {
this(context, KEY_BIOMETRIC_SETTINGS); this(context, KEY_BIOMETRIC_SETTINGS);
@@ -37,6 +45,8 @@ public class CombinedBiometricStatusPreferenceController extends
public CombinedBiometricStatusPreferenceController(Context context, String key) { public CombinedBiometricStatusPreferenceController(Context context, String key) {
super(context, key); super(context, key);
mFingerprintManager = Utils.getFingerprintManagerOrNull(context);
mFaceManager = Utils.getFaceManagerOrNull(context);
} }
@Override @Override
@@ -51,12 +61,34 @@ public class CombinedBiometricStatusPreferenceController extends
@Override @Override
protected String getSummaryTextEnrolled() { 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 @Override
protected String getSummaryTextNoneEnrolled() { 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 @Override