From 8ab1de6804d8456a2230cfd6911ef5349502b0bf Mon Sep 17 00:00:00 2001 From: Kevin Chyn Date: Tue, 14 May 2019 12:19:07 -0700 Subject: [PATCH] Fix several accessibility issues with BiometricPrompt 1) Ensure spaces can be tapped/double-tapped with talkback enabled 2) Do not explicitly set focus 3) Give empty spaces content description for talkback Fixes: 132376836 Fixes: 132378618 Test: Enabled talkback, the above are fixed Change-Id: Ic923ba8aed4922e852a8b82b6120644ca627d651 --- packages/SystemUI/res/layout/biometric_dialog.xml | 3 ++- packages/SystemUI/res/values/strings.xml | 4 +++- .../android/systemui/biometrics/BiometricDialogView.java | 8 +------- 3 files changed, 6 insertions(+), 9 deletions(-) diff --git a/packages/SystemUI/res/layout/biometric_dialog.xml b/packages/SystemUI/res/layout/biometric_dialog.xml index 1abb8735ddabf..c560d7e8f1267 100644 --- a/packages/SystemUI/res/layout/biometric_dialog.xml +++ b/packages/SystemUI/res/layout/biometric_dialog.xml @@ -37,7 +37,8 @@ android:id="@+id/space" android:layout_width="match_parent" android:layout_height="0dp" - android:layout_weight="1" /> + android:layout_weight="1" + android:contentDescription="@string/biometric_dialog_empty_space_description"/> Confirm - + Try again + + Empty region, tap to cancel authentication Touch the fingerprint sensor diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/BiometricDialogView.java b/packages/SystemUI/src/com/android/systemui/biometrics/BiometricDialogView.java index f99587b6cdc24..a70ebb38944eb 100644 --- a/packages/SystemUI/src/com/android/systemui/biometrics/BiometricDialogView.java +++ b/packages/SystemUI/src/com/android/systemui/biometrics/BiometricDialogView.java @@ -33,7 +33,6 @@ import android.util.DisplayMetrics; import android.util.Log; import android.view.KeyEvent; import android.view.LayoutInflater; -import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; import android.view.WindowManager; @@ -228,9 +227,6 @@ public abstract class BiometricDialogView extends LinearLayout { showTryAgainButton(false /* show */); mCallback.onTryAgainPressed(); }); - - mLayout.setFocusableInTouchMode(true); - mLayout.requestFocus(); } public void onSaveState(Bundle bundle) { @@ -278,7 +274,6 @@ public abstract class BiometricDialogView extends LinearLayout { mTitleText.setVisibility(View.VISIBLE); mTitleText.setText(titleText); - mTitleText.setSelected(true); final CharSequence subtitleText = mBundle.getCharSequence(BiometricPrompt.KEY_SUBTITLE); if (TextUtils.isEmpty(subtitleText)) { @@ -323,11 +318,10 @@ public abstract class BiometricDialogView extends LinearLayout { private void setDismissesDialog(View v) { v.setClickable(true); - v.setOnTouchListener((View view, MotionEvent event) -> { + v.setOnClickListener(v1 -> { if (mState != STATE_AUTHENTICATED && shouldGrayAreaDismissDialog()) { mCallback.onUserCanceled(); } - return true; }); }