From 7957047dd8e8175afd9ed1f9ea6d1ff37bb89d98 Mon Sep 17 00:00:00 2001 From: Grace Cheng Date: Mon, 1 Aug 2022 19:54:42 +0000 Subject: [PATCH] Implement SFPS guided enrollment for T6 Reduces perception of long enrollment process by introducing new enrollment layout and stages for SFPS. Also adds user feedback via new animated assets with dynamic colors, and all associated strings and a11y labels. Test: Observe new guided enrollment process on T6 Test: make RunSettingsRoboTests ROBOTEST_FILTER=FingerprintEnrollEnrollingTest Fixes: 232024488 Fixes: 233091341 Fixes: 241165082 Fixes: 242218240 Fixes: 243813773 Change-Id: Ifa8788e78dce4c682ec4a9e2fe2c077418f8bddb --- .../hardware/fingerprint/FingerprintManager.java | 13 ++++++++++--- core/res/res/values/config.xml | 8 ++++++++ core/res/res/values/symbols.xml | 2 +- packages/SystemUI/res/layout/sidefps_view.xml | 2 +- 4 files changed, 20 insertions(+), 5 deletions(-) diff --git a/core/java/android/hardware/fingerprint/FingerprintManager.java b/core/java/android/hardware/fingerprint/FingerprintManager.java index c614cdbc31993..72d8122693740 100644 --- a/core/java/android/hardware/fingerprint/FingerprintManager.java +++ b/core/java/android/hardware/fingerprint/FingerprintManager.java @@ -1433,10 +1433,17 @@ public class FingerprintManager implements BiometricAuthenticator, BiometricFing } @NonNull - private static float[] createEnrollStageThresholds(@NonNull Context context) { + @RequiresPermission(USE_BIOMETRIC_INTERNAL) + private float[] createEnrollStageThresholds(@NonNull Context context) { // TODO(b/200604947): Fetch this value from FingerprintService, rather than internal config - final String[] enrollStageThresholdStrings = context.getResources().getStringArray( - com.android.internal.R.array.config_udfps_enroll_stage_thresholds); + final String[] enrollStageThresholdStrings; + if (isPowerbuttonFps()) { + enrollStageThresholdStrings = context.getResources().getStringArray( + com.android.internal.R.array.config_sfps_enroll_stage_thresholds); + } else { + enrollStageThresholdStrings = context.getResources().getStringArray( + com.android.internal.R.array.config_udfps_enroll_stage_thresholds); + } final float[] enrollStageThresholds = new float[enrollStageThresholdStrings.length]; for (int i = 0; i < enrollStageThresholds.length; i++) { diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml index 8152b79c86591..a27b1872430fb 100644 --- a/core/res/res/values/config.xml +++ b/core/res/res/values/config.xml @@ -4886,6 +4886,14 @@ 0.875 + + + 0 + 0.36 + 0.52 + 0.76 + + diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml index c96e452658974..607711b6806cc 100644 --- a/core/res/res/values/symbols.xml +++ b/core/res/res/values/symbols.xml @@ -2702,7 +2702,7 @@ - + diff --git a/packages/SystemUI/res/layout/sidefps_view.xml b/packages/SystemUI/res/layout/sidefps_view.xml index 921f788309810..73050c253d72f 100644 --- a/packages/SystemUI/res/layout/sidefps_view.xml +++ b/packages/SystemUI/res/layout/sidefps_view.xml @@ -23,4 +23,4 @@ app:lottie_autoPlay="true" app:lottie_loop="true" app:lottie_rawRes="@raw/sfps_pulse" - android:contentDescription="@string/accessibility_fingerprint_label"/> + android:importantForAccessibility="no"/> \ No newline at end of file