Merge "Fix regression of pressing power key cancel sfps enrollment" into tm-qpr-dev am: b9263732ee
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/19880527
Change-Id: I60e52637331ca2801845999334a8d83f4bec04fd
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java
index b1b18ff..64a08d3 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java
@@ -203,7 +203,9 @@
// Do NOT cancel enrollment progress after rotating, adding mIsOrientationChanged
// to judge if the focus changed was triggered by rotation, current WMS has triple callbacks
// (true > false > true), we need to reset mIsOrientationChanged when !hasFocus callback.
- if (!mIsOrientationChanged) {
+ // Side fps do not have to synchronize udfpsController overlay state, we should bypass sfps
+ // from onWindowFocusChanged() as long press sfps power key will prompt dialog to users.
+ if (!mIsOrientationChanged && !mCanAssumeSfps) {
onCancelEnrollment(FINGERPRINT_ERROR_USER_CANCELED);
} else {
mIsOrientationChanged = false;
diff --git a/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrollingTest.java b/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrollingTest.java
index da47955..64786ea 100644
--- a/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrollingTest.java
+++ b/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrollingTest.java
@@ -222,6 +222,16 @@
);
}
+ @Test
+ public void fingerprintSfpsEnrollment_loseFocus_shouldNotCancel() {
+ initializeActivityFor(FingerprintSensorProperties.TYPE_POWER_BUTTON);
+
+ mActivity.onEnrollmentProgressChange(1, 1);
+ mActivity.onWindowFocusChanged(true);
+
+ verify(mActivity, never()).onCancelEnrollment(anyInt());
+ }
+
private void initializeActivityFor(int sensorType) {
final List<ComponentInfoInternal> componentInfo = new ArrayList<>();
final FingerprintSensorPropertiesInternal prop =