Merge cherrypicks of [9007561, 9007562, 9007563, 9007600, 9007801, 9007895, 9007389] into qt-release
Change-Id: Ib68db973c7a9b5875ecd65bcb683793978020065
diff --git a/src/com/android/settings/password/BiometricFragment.java b/src/com/android/settings/password/BiometricFragment.java
index bd5a10d..66b665b 100644
--- a/src/com/android/settings/password/BiometricFragment.java
+++ b/src/com/android/settings/password/BiometricFragment.java
@@ -58,11 +58,13 @@
private Bundle mBundle;
private BiometricPrompt mBiometricPrompt;
private CancellationSignal mCancellationSignal;
+ private boolean mAuthenticating;
private AuthenticationCallback mAuthenticationCallback =
new AuthenticationCallback() {
@Override
public void onAuthenticationError(int error, @NonNull CharSequence message) {
+ mAuthenticating = false;
mClientExecutor.execute(() -> {
mClientCallback.onAuthenticationError(error, message);
});
@@ -71,6 +73,7 @@
@Override
public void onAuthenticationSucceeded(AuthenticationResult result) {
+ mAuthenticating = false;
mClientExecutor.execute(() -> {
mClientCallback.onAuthenticationSucceeded(result);
});
@@ -134,6 +137,10 @@
}
}
+ boolean isAuthenticating() {
+ return mAuthenticating;
+ }
+
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -180,6 +187,7 @@
mCancellationSignal = new CancellationSignal();
// TODO: CC doesn't use crypto for now
+ mAuthenticating = true;
mBiometricPrompt.authenticateUser(mCancellationSignal, mClientExecutor,
mAuthenticationCallback, mUserId, mCancelCallback);
}
diff --git a/src/com/android/settings/password/ConfirmDeviceCredentialActivity.java b/src/com/android/settings/password/ConfirmDeviceCredentialActivity.java
index 53841e8..8476f92 100644
--- a/src/com/android/settings/password/ConfirmDeviceCredentialActivity.java
+++ b/src/com/android/settings/password/ConfirmDeviceCredentialActivity.java
@@ -251,7 +251,10 @@
if (!isChangingConfigurations()) {
mGoingToBackground = true;
if (mBiometricFragment != null) {
- mBiometricFragment.cancel();
+ Log.d(TAG, "Authenticating: " + mBiometricFragment.isAuthenticating());
+ if (mBiometricFragment.isAuthenticating()) {
+ mBiometricFragment.cancel();
+ }
}
if (mIsFallback && !mCCLaunched) {