Merge "Show fingerprint icon when face fails on BiometricPrompt" into sc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
a69ceda9c4
@@ -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);
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user