Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 207f9a90 authored by Austin Delgado's avatar Austin Delgado
Browse files

Update Biometric Prompt background cancel talkback string

Changes Biometric Prompt background to "Cancel" to match cancel button.
Also updates cancel button to match cancel button talkback action to
match background action of "Double tap to Cancel Authentication"

Test: atest AuthContainerViewTest
Bug: 353631541
Flag: EXEMPT bugfix
Change-Id: I6be1d718cafa3fe1abd376db5de0f04c3f357919
parent 3e7d8f33
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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"
+1 −1
Original line number Diff line number Diff line
@@ -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"
+0 −16
Original line number Diff line number Diff line
@@ -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()) {
+23 −0
Original line number Diff line number Diff line
@@ -35,6 +35,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
@@ -147,6 +151,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(