diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFinish.java b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFinish.java index 05ee7be7447..b8ec103b015 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.Intent; 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 @@ import com.google.android.setupcompat.template.FooterButton; */ public class FingerprintEnrollFinish extends BiometricEnrollBase { + private static final String TAG = "FingerprintEnrollFinish"; @VisibleForTesting static final int REQUEST_ADD_ANOTHER = 1; @VisibleForTesting @@ -69,6 +71,13 @@ public class FingerprintEnrollFinish extends BiometricEnrollBase { ); } + @Override + public void onBackPressed() { + super.onBackPressed(); + + updateFingerprintSuggestionEnableState(); + } + @Override protected void onResume() { super.onResume(); @@ -93,12 +102,12 @@ public class FingerprintEnrollFinish extends BiometricEnrollBase { @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 @@ public class FingerprintEnrollFinish extends BiometricEnrollBase { 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 @@ public class FingerprintEnrollFinish extends BiometricEnrollBase { @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 74b35c9bb21..57a56fc7359 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 @@ public class SetupFingerprintEnrollFinishTest { 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