From 33ba2451495795d0543a8e3dae29a31215d14a4e Mon Sep 17 00:00:00 2001 From: Kevin Chyn Date: Mon, 3 May 2021 14:43:34 -0700 Subject: [PATCH] Cancel enrollment when back or negative buttons pressed Fixes: 183671394 Test: Go through enrollment flow and test various buttons Change-Id: I8d3939de42ecd0a889f0c6d3c94002199285ef8b --- .../biometrics/BiometricsEnrollEnrolling.java | 17 +++++++++++------ .../FingerprintEnrollFindSensor.java | 17 +++++++++++++++++ 2 files changed, 28 insertions(+), 6 deletions(-) diff --git a/src/com/android/settings/biometrics/BiometricsEnrollEnrolling.java b/src/com/android/settings/biometrics/BiometricsEnrollEnrolling.java index 0bfe56e36a1..302c9e183fe 100644 --- a/src/com/android/settings/biometrics/BiometricsEnrollEnrolling.java +++ b/src/com/android/settings/biometrics/BiometricsEnrollEnrolling.java @@ -89,6 +89,17 @@ public abstract class BiometricsEnrollEnrolling extends BiometricEnrollBase @Override public void onBackPressed() { + cancelEnrollment(); + super.onBackPressed(); + } + + protected void onSkipButtonClick(View view) { + cancelEnrollment(); + setResult(RESULT_SKIP); + finish(); + } + + public void cancelEnrollment() { if (mSidecar != null) { mSidecar.setListener(null); mSidecar.cancelEnrollment(); @@ -96,12 +107,6 @@ public abstract class BiometricsEnrollEnrolling extends BiometricEnrollBase .beginTransaction().remove(mSidecar).commitAllowingStateLoss(); mSidecar = null; } - super.onBackPressed(); - } - - protected void onSkipButtonClick(View view) { - setResult(RESULT_SKIP); - finish(); } public void startEnrollment() { diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFindSensor.java b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFindSensor.java index faa0c8414a1..69624ab50bf 100644 --- a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFindSensor.java +++ b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFindSensor.java @@ -111,6 +111,12 @@ public class FingerprintEnrollFindSensor extends BiometricEnrollBase implements } } + @Override + public void onBackPressed() { + stopLookingForFingerprint(); + super.onBackPressed(); + } + protected int getContentView() { if (mCanAssumeUdfps) { if (BiometricUtils.isReverseLandscape(getApplicationContext())) { @@ -130,6 +136,16 @@ public class FingerprintEnrollFindSensor extends BiometricEnrollBase implements } } + private void stopLookingForFingerprint() { + if (mSidecar != null) { + mSidecar.setListener(null); + mSidecar.cancelEnrollment(); + getSupportFragmentManager() + .beginTransaction().remove(mSidecar).commitAllowingStateLoss(); + mSidecar = null; + } + } + private void startLookingForFingerprint() { mSidecar = (FingerprintEnrollSidecar) getSupportFragmentManager().findFragmentByTag( FingerprintEnrollEnrolling.TAG_SIDECAR); @@ -185,6 +201,7 @@ public class FingerprintEnrollFindSensor extends BiometricEnrollBase implements } protected void onSkipButtonClick(View view) { + stopLookingForFingerprint(); setResult(RESULT_SKIP); finish(); }