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

Commit 38d75fdf authored by Curtis Belmonte's avatar Curtis Belmonte Committed by Automerger Merge Worker
Browse files

Merge "Show fingerprint icon when face fails on BiometricPrompt" into sc-dev am: a69ceda9

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

Change-Id: I9bc3faec17629a340e54aa2099a0eed423dc47ea
parents a3759b40 a69ceda9
Loading
Loading
Loading
Loading
+10 −3
Original line number Diff line number Diff line
@@ -44,11 +44,17 @@ public class AuthBiometricFaceToFingerprintView extends AuthBiometricFaceView {
    private static final String TAG = "BiometricPrompt/AuthBiometricFaceToFingerprintView";

    protected static class UdfpsIconController extends IconController {
        @BiometricState private int mIconState = STATE_IDLE;

        protected UdfpsIconController(
                @NonNull Context context, @NonNull ImageView iconView, @NonNull TextView textView) {
            super(context, iconView, textView);
        }

        void updateState(@BiometricState int newState) {
            updateState(mIconState, newState);
        }

        @Override
        protected void updateState(int lastState, int newState) {
            final boolean lastStateIsErrorIcon =
@@ -86,6 +92,7 @@ public class AuthBiometricFaceToFingerprintView extends AuthBiometricFaceView {
            }

            mState = newState;
            mIconState = newState;
        }
    }

@@ -191,11 +198,11 @@ public class AuthBiometricFaceToFingerprintView extends AuthBiometricFaceView {

                // Deactivate the face icon controller so it stops drawing to the view
                mFaceIconController.deactivate();
                // Then, activate this icon controller. We need to start in the "error" state
                mUdfpsIconController.updateState(mState, newState);
                // Then, activate this icon controller. We need to start in the "idle" state
                mUdfpsIconController.updateState(STATE_IDLE);
            }
        } else { // Fingerprint
            mUdfpsIconController.updateState(mState, newState);
            mUdfpsIconController.updateState(newState);
        }

        super.updateState(newState);
+4 −6
Original line number Diff line number Diff line
@@ -101,7 +101,7 @@ public class AuthBiometricFaceToFingerprintViewTest extends SysuiTestCase {
        mFaceToFpView.onDialogAnimatedIn();
        verify(mFaceToFpView.mFaceIconController)
                .updateState(anyInt(), eq(AuthBiometricFaceToFingerprintView.STATE_AUTHENTICATING));
        verify(mFaceToFpView.mUdfpsIconController, never()).updateState(anyInt(), anyInt());
        verify(mFaceToFpView.mUdfpsIconController, never()).updateState(anyInt());
    }

    @Test
@@ -109,13 +109,13 @@ public class AuthBiometricFaceToFingerprintViewTest extends SysuiTestCase {
        mFaceToFpView.onDialogAnimatedIn();
        verify(mFaceToFpView.mFaceIconController)
                .updateState(anyInt(), eq(AuthBiometricFaceToFingerprintView.STATE_AUTHENTICATING));
        verify(mFaceToFpView.mUdfpsIconController, never()).updateState(anyInt(), anyInt());
        verify(mFaceToFpView.mUdfpsIconController, never()).updateState(anyInt());

        mFaceToFpView.updateState(AuthBiometricFaceView.STATE_AUTHENTICATED);
        verify(mFaceToFpView.mFaceIconController).updateState(
                eq(AuthBiometricFaceToFingerprintView.STATE_AUTHENTICATING),
                eq(AuthBiometricFaceToFingerprintView.STATE_AUTHENTICATED));
        verify(mFaceToFpView.mUdfpsIconController, never()).updateState(anyInt(), anyInt());
        verify(mFaceToFpView.mUdfpsIconController, never()).updateState(anyInt());

        assertEquals(AuthBiometricFaceToFingerprintView.STATE_AUTHENTICATED, mFaceToFpView.mState);
    }
@@ -130,14 +130,12 @@ public class AuthBiometricFaceToFingerprintViewTest extends SysuiTestCase {

        verify(mFaceToFpView.mFaceIconController).deactivate();
        verify(mFaceToFpView.mUdfpsIconController).updateState(
                eq(AuthBiometricFaceToFingerprintView.STATE_AUTHENTICATING),
                eq(AuthBiometricFaceToFingerprintView.STATE_ERROR));
                eq(AuthBiometricFaceToFingerprintView.STATE_IDLE));
        verify(mConfirmButton).setVisibility(eq(View.GONE));

        mFaceToFpView.updateState(AuthBiometricFaceToFingerprintView.STATE_AUTHENTICATING);

        verify(mFaceToFpView.mUdfpsIconController).updateState(
                eq(AuthBiometricFaceToFingerprintView.STATE_ERROR),
                eq(AuthBiometricFaceToFingerprintView.STATE_AUTHENTICATING));
    }