diff options
| author | 2024-07-31 17:05:12 +0000 | |
|---|---|---|
| committer | 2024-07-31 17:05:12 +0000 | |
| commit | 115b4239cc8cdc9f87f278052824d40b7c79955f (patch) | |
| tree | 4f498f48ea911ef4b8ea8413d36a3ee535827885 | |
| parent | 1a11015960e42ebd94ea658e2e61046af73fdce2 (diff) | |
| parent | 207f9a907b2f737e2f15edc4313f707a21328c64 (diff) | |
Merge "Update Biometric Prompt background cancel talkback string" into main
4 files changed, 25 insertions, 18 deletions
diff --git a/packages/SystemUI/res/layout/biometric_prompt_one_pane_layout.xml b/packages/SystemUI/res/layout/biometric_prompt_one_pane_layout.xml index 4670f34f11a7..3b3ed39c8993 100644 --- a/packages/SystemUI/res/layout/biometric_prompt_one_pane_layout.xml +++ b/packages/SystemUI/res/layout/biometric_prompt_one_pane_layout.xml @@ -10,7 +10,7 @@ android:id="@+id/background" android:layout_width="0dp" android:layout_height="0dp" - android:contentDescription="@string/biometric_dialog_empty_space_description" + android:contentDescription="@string/cancel" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" diff --git a/packages/SystemUI/res/layout/biometric_prompt_two_pane_layout.xml b/packages/SystemUI/res/layout/biometric_prompt_two_pane_layout.xml index c599f9e05b38..e6ae2e1094ab 100644 --- a/packages/SystemUI/res/layout/biometric_prompt_two_pane_layout.xml +++ b/packages/SystemUI/res/layout/biometric_prompt_two_pane_layout.xml @@ -11,7 +11,7 @@ android:layout_height="match_parent"> android:id="@+id/background" android:layout_width="0dp" android:layout_height="0dp" - android:contentDescription="@string/biometric_dialog_empty_space_description" + android:contentDescription="@string/cancel" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/AuthContainerView.java b/packages/SystemUI/src/com/android/systemui/biometrics/AuthContainerView.java index 430ff0716ee0..0352da30f531 100644 --- a/packages/SystemUI/src/com/android/systemui/biometrics/AuthContainerView.java +++ b/packages/SystemUI/src/com/android/systemui/biometrics/AuthContainerView.java @@ -65,9 +65,6 @@ import android.window.OnBackInvokedCallback; import android.window.OnBackInvokedDispatcher; import androidx.constraintlayout.widget.ConstraintLayout; -import androidx.core.view.AccessibilityDelegateCompat; -import androidx.core.view.ViewCompat; -import androidx.core.view.accessibility.AccessibilityNodeInfoCompat; import com.android.app.animation.Interpolators; import com.android.internal.annotations.VisibleForTesting; @@ -385,19 +382,6 @@ public class AuthContainerView extends LinearLayout mBiometricScrollView = mLayout.findViewById(R.id.biometric_scrollview); addView(mLayout); mBackgroundView = mLayout.findViewById(R.id.background); - ViewCompat.setAccessibilityDelegate(mBackgroundView, new AccessibilityDelegateCompat() { - @Override - public void onInitializeAccessibilityNodeInfo(View host, - AccessibilityNodeInfoCompat info) { - super.onInitializeAccessibilityNodeInfo(host, info); - info.addAction( - new AccessibilityNodeInfoCompat.AccessibilityActionCompat( - AccessibilityNodeInfoCompat.ACTION_CLICK, - mContext.getString(R.string.biometric_dialog_cancel_authentication) - ) - ); - } - }); mPanelView = mLayout.findViewById(R.id.panel); if (!constraintBp()) { diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/ui/binder/BiometricViewBinder.kt b/packages/SystemUI/src/com/android/systemui/biometrics/ui/binder/BiometricViewBinder.kt index 9f6d565875e2..7f236f75a23d 100644 --- a/packages/SystemUI/src/com/android/systemui/biometrics/ui/binder/BiometricViewBinder.kt +++ b/packages/SystemUI/src/com/android/systemui/biometrics/ui/binder/BiometricViewBinder.kt @@ -34,6 +34,10 @@ import android.widget.Button import android.widget.ImageView import android.widget.LinearLayout import android.widget.TextView +import androidx.core.view.AccessibilityDelegateCompat +import androidx.core.view.ViewCompat +import androidx.core.view.accessibility.AccessibilityNodeInfoCompat +import androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat import androidx.lifecycle.DefaultLifecycleObserver import androidx.lifecycle.Lifecycle import androidx.lifecycle.LifecycleOwner @@ -145,6 +149,25 @@ object BiometricViewBinder { val confirmationButton = view.requireViewById<Button>(R.id.button_confirm) val retryButton = view.requireViewById<Button>(R.id.button_try_again) + // Handles custom "Cancel Authentication" talkback action + val cancelDelegate: AccessibilityDelegateCompat = + object : AccessibilityDelegateCompat() { + override fun onInitializeAccessibilityNodeInfo( + host: View, + info: AccessibilityNodeInfoCompat + ) { + super.onInitializeAccessibilityNodeInfo(host, info) + info.addAction( + AccessibilityActionCompat( + AccessibilityNodeInfoCompat.ACTION_CLICK, + view.context.getString(R.string.biometric_dialog_cancel_authentication) + ) + ) + } + } + ViewCompat.setAccessibilityDelegate(backgroundView, cancelDelegate) + ViewCompat.setAccessibilityDelegate(cancelButton, cancelDelegate) + // TODO(b/330788871): temporary workaround for the unsafe callbacks & legacy controllers val adapter = Spaghetti( |