Merge "Do not show 2nd FingerprintErrorDialog" into tm-qpr-dev am: 4fd86cc096

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/20120050

Change-Id: I68b6a8afeb51b04b1c48cf7e4c94e6e9ff5f346e
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
TreeHugger Robot
2022-10-08 07:21:06 +00:00
committed by Automerger Merge Worker
3 changed files with 17 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

@@ -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);