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

Commit a123b82d 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: 38d75fdf

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

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


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

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


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

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


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


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


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


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


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


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


        mFaceToFpView.updateState(AuthBiometricFaceToFingerprintView.STATE_AUTHENTICATING);
        mFaceToFpView.updateState(AuthBiometricFaceToFingerprintView.STATE_AUTHENTICATING);


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