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

Commit 8edff180 authored by Curtis Belmonte's avatar Curtis Belmonte Committed by Automerger Merge Worker
Browse files

Merge "Fix a11y of BiometricPrompt icon and help text" into sc-dev am: f33717e7 am: 95d69b9d

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15276031

Change-Id: I60a075ad5b784a7d13f13a945e26dcee6a99d4a7
parents 8fda83f9 95d69b9d
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -52,6 +52,7 @@
            android:layout_width="@dimen/biometric_dialog_biometric_icon_size"
            android:layout_height="@dimen/biometric_dialog_biometric_icon_size"
            android:layout_gravity="center"
            android:contentDescription="@null"
            android:scaleType="fitXY" />

    </FrameLayout>
+27 −0
Original line number Diff line number Diff line
@@ -23,6 +23,8 @@ import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
import android.util.Log;

import androidx.annotation.Nullable;

import com.android.systemui.R;

public class AuthBiometricFingerprintView extends AuthBiometricView {
@@ -94,12 +96,37 @@ public class AuthBiometricFingerprintView extends AuthBiometricView {

        mIconView.setImageDrawable(icon);

        final CharSequence iconContentDescription = getIconContentDescription(newState);
        if (iconContentDescription != null) {
            mIconView.setContentDescription(iconContentDescription);
        }

        if (animation != null && shouldAnimateForTransition(lastState, newState)) {
            animation.forceAnimationOnUI();
            animation.start();
        }
    }

    @Nullable
    private CharSequence getIconContentDescription(int newState) {
        switch (newState) {
            case STATE_IDLE:
            case STATE_AUTHENTICATING_ANIMATING_IN:
            case STATE_AUTHENTICATING:
            case STATE_PENDING_CONFIRMATION:
            case STATE_AUTHENTICATED:
                return mContext.getString(
                        R.string.accessibility_fingerprint_dialog_fingerprint_icon);

            case STATE_ERROR:
            case STATE_HELP:
                return mContext.getString(R.string.biometric_dialog_try_again);

            default:
                return null;
        }
    }

    private boolean shouldAnimateForTransition(int oldState, int newState) {
        switch (newState) {
            case STATE_HELP:
+0 −1
Original line number Diff line number Diff line
@@ -636,7 +636,6 @@ public abstract class AuthBiometricView extends LinearLayout {
        mIndicatorView.setText(message);
        mIndicatorView.setTextColor(mTextColorError);
        mIndicatorView.setVisibility(View.VISIBLE);
        mIndicatorView.setSelected(true);
        mHandler.postDelayed(resetMessageRunnable, mInjector.getDelayAfterError());

        Utils.notifyAccessibilityContentChanged(mAccessibilityManager, this);
+2 −1
Original line number Diff line number Diff line
@@ -698,7 +698,8 @@ public class UdfpsController implements DozeReceiver {
                // This view overlaps the sensor area, so prevent it from being selectable
                // during a11y.
                if (reason == IUdfpsOverlayController.REASON_ENROLL_FIND_SENSOR
                        || reason == IUdfpsOverlayController.REASON_ENROLL_ENROLLING) {
                        || reason == IUdfpsOverlayController.REASON_ENROLL_ENROLLING
                        || reason == IUdfpsOverlayController.REASON_AUTH_BP) {
                    mView.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO);
                }