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

Commit 115b4239 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Update Biometric Prompt background cancel talkback string" into main

parents 1a110159 207f9a90
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
@@ -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(