Snap for 9154961 from 4fd86cc096 to tm-qpr2-release

Change-Id: Iaa11309145b70aed6ac0052889b4993a77d2294c
This commit is contained in:
Android Build Coastguard Worker
2022-10-08 21:29:52 +00:00
4 changed files with 25 additions and 3 deletions

View File

@@ -168,7 +168,8 @@ public class FingerprintEnrollEnrolling extends BiometricsEnrollEnrolling {
private Vibrator mVibrator; private Vibrator mVibrator;
private boolean mIsSetupWizard; private boolean mIsSetupWizard;
private boolean mIsOrientationChanged; private boolean mIsOrientationChanged;
private boolean mIsCanceled; @VisibleForTesting
boolean mIsCanceled;
private AccessibilityManager mAccessibilityManager; private AccessibilityManager mAccessibilityManager;
private boolean mIsAccessibilityEnabled; private boolean mIsAccessibilityEnabled;
private LottieAnimationView mIllustrationLottie; private LottieAnimationView mIllustrationLottie;
@@ -196,7 +197,7 @@ public class FingerprintEnrollEnrolling extends BiometricsEnrollEnrolling {
@Override @Override
public void onWindowFocusChanged(boolean hasFocus) { public void onWindowFocusChanged(boolean hasFocus) {
if (hasFocus) { if (hasFocus || mIsCanceled) {
return; return;
} }
@@ -411,8 +412,10 @@ public class FingerprintEnrollEnrolling extends BiometricsEnrollEnrolling {
@VisibleForTesting @VisibleForTesting
void onCancelEnrollment(@IdRes int errorMsgId) { void onCancelEnrollment(@IdRes int errorMsgId) {
FingerprintErrorDialog.showErrorDialog(this, errorMsgId); // showErrorDialog() will cause onWindowFocusChanged(false), set mIsCanceled to false
// before showErrorDialog() to prevent that another error dialog is triggered again.
mIsCanceled = true; mIsCanceled = true;
FingerprintErrorDialog.showErrorDialog(this, errorMsgId);
mIsOrientationChanged = false; mIsOrientationChanged = false;
cancelEnrollment(); cancelEnrollment();
stopIconAnimation(); stopIconAnimation();

View File

@@ -72,6 +72,7 @@ public class FingerprintErrorDialog extends InstrumentedDialogFragment {
dialog.dismiss(); dialog.dismiss();
Activity activity = getActivity(); Activity activity = getActivity();
Intent intent = activity.getIntent(); Intent intent = activity.getIntent();
intent.addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT);
intent.putExtra(KEY_STATE_CANCELED, false); intent.putExtra(KEY_STATE_CANCELED, false);
activity.startActivity(intent); activity.startActivity(intent);
activity.finish(); activity.finish();

View File

@@ -669,6 +669,14 @@ public class FingerprintSettings extends SubSettings {
mLaunchedConfirm = false; mLaunchedConfirm = false;
if (resultCode == RESULT_FINISHED || resultCode == RESULT_OK) { if (resultCode == RESULT_FINISHED || resultCode == RESULT_OK) {
if (data != null && BiometricUtils.containsGatekeeperPasswordHandle(data)) { if (data != null && BiometricUtils.containsGatekeeperPasswordHandle(data)) {
if (!mHasFirstEnrolled && !mIsEnrolling) {
final Activity activity = getActivity();
if (activity != null) {
// Apply pending transition for auto adding first fingerprint case
activity.overridePendingTransition(R.anim.sud_slide_next_in,
R.anim.sud_slide_next_out);
}
}
mFingerprintManager.generateChallenge(mUserId, mFingerprintManager.generateChallenge(mUserId,
(sensorId, userId, challenge) -> { (sensorId, userId, challenge) -> {
mToken = BiometricUtils.requestGatekeeperHat(getActivity(), mToken = BiometricUtils.requestGatekeeperHat(getActivity(),

View File

@@ -150,6 +150,16 @@ public class FingerprintEnrollEnrollingTest {
verify(mActivity, never()).onCancelEnrollment(anyInt()); verify(mActivity, never()).onCancelEnrollment(anyInt());
} }
@Test
public void fingerprintUdfpsOverlayEnrollment_loseFocusWithCancelFlag_shouldNotCancelAgain() {
initializeActivityFor(TYPE_UDFPS_OPTICAL);
mActivity.mIsCanceled = true;
mActivity.onWindowFocusChanged(true);
verify(mActivity, never()).onCancelEnrollment(anyInt());
}
@Test @Test
public void fingerprintSfpsEnroll_PlaysAllAnimationsAssetsCorrectly() { public void fingerprintSfpsEnroll_PlaysAllAnimationsAssetsCorrectly() {
initializeActivityFor(TYPE_POWER_BUTTON); initializeActivityFor(TYPE_POWER_BUTTON);