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

Commit a0bf2bcf 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...

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

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

Change-Id: Id5c2ccd83df4871ba379ca1766637771ef241970
parents 42b4824e fb9d4311
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));
    }