From e25713054abf6a5db0774a93f9913f8965e4ddf9 Mon Sep 17 00:00:00 2001 From: Kevin Chyn Date: Wed, 19 May 2021 15:53:20 -0700 Subject: [PATCH] Announce UDPFS enrollment percentage Bug: 187460696 Test: manual Change-Id: I5989a67e1fa1ed078677a69b2d841d5f1f1ee691 --- res/values/strings.xml | 2 ++ .../FingerprintEnrollEnrolling.java | 18 ++++++++++++++++-- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index 3c9856a7dad..e25deb35d69 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -1046,6 +1046,8 @@ Touch & hold each time the fingerprint icon moves. This helps capture your full fingerprint. This helps capture your full fingerprint + + Enrolling fingerprint %d percent Fingerprint added diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java index d987c05d521..9b19ef796c0 100644 --- a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java +++ b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java @@ -37,6 +37,7 @@ import android.text.TextUtils; import android.util.Log; import android.view.MotionEvent; import android.view.View; +import android.view.accessibility.AccessibilityEvent; import android.view.accessibility.AccessibilityManager; import android.view.animation.AnimationUtils; import android.view.animation.Interpolator; @@ -112,6 +113,7 @@ public class FingerprintEnrollEnrolling extends BiometricsEnrollEnrolling { private boolean mRestoring; private Vibrator mVibrator; private boolean mIsSetupWizard; + private AccessibilityManager mAccessibilityManager; private boolean mIsAccessibilityEnabled; @Override @@ -123,8 +125,8 @@ public class FingerprintEnrollEnrolling extends BiometricsEnrollEnrolling { fingerprintManager.getSensorPropertiesInternal(); mCanAssumeUdfps = props.size() == 1 && props.get(0).isAnyUdfpsType(); - final AccessibilityManager am = getSystemService(AccessibilityManager.class); - mIsAccessibilityEnabled = am.isEnabled(); + mAccessibilityManager = getSystemService(AccessibilityManager.class); + mIsAccessibilityEnabled = mAccessibilityManager.isEnabled(); if (mCanAssumeUdfps) { if (BiometricUtils.isReverseLandscape(getApplicationContext())) { @@ -359,6 +361,18 @@ public class FingerprintEnrollEnrolling extends BiometricsEnrollEnrolling { if (!mCanAssumeUdfps) { mErrorText.removeCallbacks(mTouchAgainRunnable); mErrorText.postDelayed(mTouchAgainRunnable, HINT_TIMEOUT_DURATION); + } else { + if (mIsAccessibilityEnabled) { + final int percent = (int) (((float)(steps - remaining) / (float) steps) * 100); + CharSequence cs = getString( + R.string.security_settings_udfps_enroll_progress_a11y_message, percent); + AccessibilityEvent e = AccessibilityEvent.obtain(); + e.setEventType(AccessibilityEvent.TYPE_ANNOUNCEMENT); + e.setClassName(getClass().getName()); + e.setPackageName(getPackageName()); + e.getText().add(cs); + mAccessibilityManager.sendAccessibilityEvent(e); + } } }