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); + } } }