Update fingerprint suggestion enable state when back pressed
Test: manual test && atest SetupFingerprintEnrollFinishTest
Bug: b/130666973
Change-Id: Ie6be2f6ce77f29c9f25743f92597b5f7297048a9
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFinish.java b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFinish.java
index 05ee7be..b8ec103 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFinish.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFinish.java
@@ -22,6 +22,7 @@
import android.content.pm.PackageManager;
import android.hardware.fingerprint.FingerprintManager;
import android.os.Bundle;
+import android.util.Log;
import android.view.View;
import androidx.annotation.VisibleForTesting;
@@ -38,6 +39,7 @@
*/
public class FingerprintEnrollFinish extends BiometricEnrollBase {
+ private static final String TAG = "FingerprintEnrollFinish";
@VisibleForTesting
static final int REQUEST_ADD_ANOTHER = 1;
@VisibleForTesting
@@ -70,6 +72,13 @@
}
@Override
+ public void onBackPressed() {
+ super.onBackPressed();
+
+ updateFingerprintSuggestionEnableState();
+ }
+
+ @Override
protected void onResume() {
super.onResume();
@@ -93,12 +102,12 @@
@Override
protected void onNextButtonClick(View view) {
- setFingerprintSuggestionEnabled();
+ updateFingerprintSuggestionEnableState();
setResult(RESULT_FINISHED);
finish();
}
- private void setFingerprintSuggestionEnabled() {
+ private void updateFingerprintSuggestionEnableState() {
final FingerprintManager fpm = Utils.getFingerprintManagerOrNull(this);
if (fpm != null) {
int enrolled = fpm.getEnrolledFingerprints(mUserId).size();
@@ -114,6 +123,7 @@
FINGERPRINT_SUGGESTION_ACTIVITY);
getPackageManager().setComponentEnabledSetting(
componentName, flag, PackageManager.DONT_KILL_APP);
+ Log.d(TAG, FINGERPRINT_SUGGESTION_ACTIVITY + " enabled state = " + (enrolled == 1));
}
}
@@ -123,7 +133,7 @@
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
- setFingerprintSuggestionEnabled();
+ updateFingerprintSuggestionEnableState();
if (requestCode == REQUEST_ADD_ANOTHER && resultCode != RESULT_CANCELED) {
setResult(resultCode, data);
finish();
diff --git a/tests/robotests/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollFinishTest.java b/tests/robotests/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollFinishTest.java
index 74b35c9..57a56fc 100644
--- a/tests/robotests/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollFinishTest.java
+++ b/tests/robotests/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollFinishTest.java
@@ -142,4 +142,24 @@
assertThat(application.getPackageManager().getComponentEnabledSetting(
mComponentName)).isEqualTo(PackageManager.COMPONENT_ENABLED_STATE_ENABLED);
}
+
+ @Test
+ public void onBackPressed_fingerprintCountIsNotOne_fingerprintSuggestionActivityDisabled() {
+ Shadows.shadowOf((FingerprintManager) mFingerprintManager).setDefaultFingerprints(2);
+
+ mActivity.onBackPressed();
+
+ assertThat(application.getPackageManager().getComponentEnabledSetting(
+ mComponentName)).isEqualTo(PackageManager.COMPONENT_ENABLED_STATE_DISABLED);
+ }
+
+ @Test
+ public void onBackPressed_fingerprintCountIsOne_fngerprintSuggestionActivityEnabled() {
+ Shadows.shadowOf((FingerprintManager) mFingerprintManager).setDefaultFingerprints(1);
+
+ mActivity.onBackPressed();
+
+ assertThat(application.getPackageManager().getComponentEnabledSetting(
+ mComponentName)).isEqualTo(PackageManager.COMPONENT_ENABLED_STATE_ENABLED);
+ }
}
\ No newline at end of file