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
This commit is contained in:
@@ -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++) {
|
||||
|
||||
@@ -4886,6 +4886,14 @@
|
||||
<item>0.875</item>
|
||||
</string-array>
|
||||
|
||||
<!-- When each intermediate SFPS enroll stage ends, as a fraction of total progress. -->
|
||||
<string-array name="config_sfps_enroll_stage_thresholds" translatable="false">
|
||||
<item>0</item> <!-- [-1 // <0/25] No animation 1x -->
|
||||
<item>0.36</item> <!-- [0 to 8 // <9/25] Pad center 9x -->
|
||||
<item>0.52</item> <!-- [9 to 12 // <13/25] Tip 4x -->
|
||||
<item>0.76</item> <!-- [13 to 18 // <19/25] Left 6x -->
|
||||
</string-array> <!-- [19 to 24 // <25/25] Right 6x -->
|
||||
|
||||
<!-- Messages that should not be shown to the user during face auth enrollment. This should be
|
||||
used to hide messages that may be too chatty or messages that the user can't do much about.
|
||||
Entries are defined in android.hardware.biometrics.face@1.0 types.hal -->
|
||||
|
||||
@@ -2702,7 +2702,7 @@
|
||||
<java-symbol type="integer" name="config_udfps_illumination_transition_ms" />
|
||||
<java-symbol type="bool" name="config_is_powerbutton_fps" />
|
||||
<java-symbol type="array" name="config_udfps_enroll_stage_thresholds" />
|
||||
|
||||
<java-symbol type="array" name="config_sfps_enroll_stage_thresholds" />
|
||||
<java-symbol type="array" name="config_face_acquire_enroll_ignorelist" />
|
||||
<java-symbol type="array" name="config_face_acquire_vendor_enroll_ignorelist" />
|
||||
<java-symbol type="array" name="config_face_acquire_keyguard_ignorelist" />
|
||||
|
||||
@@ -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"/>
|
||||
Reference in New Issue
Block a user