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 boolean mIsSetupWizard;
private boolean mIsOrientationChanged;
private boolean mIsCanceled;
@VisibleForTesting
boolean mIsCanceled;
private AccessibilityManager mAccessibilityManager;
private boolean mIsAccessibilityEnabled;
private LottieAnimationView mIllustrationLottie;
@@ -196,7 +197,7 @@ public class FingerprintEnrollEnrolling extends BiometricsEnrollEnrolling {
@Override
public void onWindowFocusChanged(boolean hasFocus) {
if (hasFocus) {
if (hasFocus || mIsCanceled) {
return;
}
@@ -411,8 +412,10 @@ public class FingerprintEnrollEnrolling extends BiometricsEnrollEnrolling {
@VisibleForTesting
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;
FingerprintErrorDialog.showErrorDialog(this, errorMsgId);
mIsOrientationChanged = false;
cancelEnrollment();
stopIconAnimation();

View File

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

View File

@@ -669,6 +669,14 @@ public class FingerprintSettings extends SubSettings {
mLaunchedConfirm = false;
if (resultCode == RESULT_FINISHED || resultCode == RESULT_OK) {
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,
(sensorId, userId, challenge) -> {
mToken = BiometricUtils.requestGatekeeperHat(getActivity(),

View File

@@ -150,6 +150,16 @@ public class FingerprintEnrollEnrollingTest {
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
public void fingerprintSfpsEnroll_PlaysAllAnimationsAssetsCorrectly() {
initializeActivityFor(TYPE_POWER_BUTTON);