Announce UDPFS enrollment percentage

Bug: 187460696
Test: manual
Change-Id: I5989a67e1fa1ed078677a69b2d841d5f1f1ee691
This commit is contained in:
Kevin Chyn
2021-05-19 15:53:20 -07:00
parent 869e996874
commit e25713054a
2 changed files with 18 additions and 2 deletions

View File

@@ -1046,6 +1046,8 @@
<string name="security_settings_udfps_enroll_repeat_message">Touch &amp; hold each time the fingerprint icon moves. This helps capture your full fingerprint.</string>
<!-- Message shown in fingerprint enrollment asking users to repeat touching the fingerprint sensor.-->
<string name="security_settings_udfps_enroll_repeat_a11y_message">This helps capture your full fingerprint</string>
<!-- Message read to a11y users when enrollment progress is made. The number is from 0 to 100. [CHAR LIMIT=NONE]-->
<string name="security_settings_udfps_enroll_progress_a11y_message">Enrolling fingerprint <xliff:g id="percentage" example="10">%d</xliff:g> percent</string>
<!-- Title shown in fingerprint enrollment dialog once enrollment is completed [CHAR LIMIT=29] -->
<string name="security_settings_fingerprint_enroll_finish_title">Fingerprint added</string>
<!-- Message shown in fingerprint enrollment dialog once enrollment is completed -->

View File

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