ConfirmDeviceCredential should respond to cancel when launched through BP
Fixes: 128747871 Test: BiometricPrompt launched by ConfirmDeviceCredential is canceled Test: ConfirmLock* can also now be canceled Test: No effect on non-biometric related paths Change-Id: I237de136e63d523fece87fad7a93f4ecd66d800b
This commit is contained in:
@@ -19,6 +19,7 @@ package com.android.settings.password;
|
||||
import android.app.KeyguardManager;
|
||||
import android.hardware.biometrics.BiometricConstants;
|
||||
import android.hardware.biometrics.BiometricManager;
|
||||
import android.hardware.biometrics.IBiometricConfirmDeviceCredentialCallback;
|
||||
import android.os.Bundle;
|
||||
import android.os.UserManager;
|
||||
import android.util.Log;
|
||||
@@ -51,6 +52,15 @@ public abstract class ConfirmDeviceCredentialBaseActivity extends SettingsActivi
|
||||
private ConfirmCredentialTheme mConfirmCredentialTheme;
|
||||
private BiometricManager mBiometricManager;
|
||||
|
||||
// TODO(b/123378871): Remove when moved.
|
||||
private final IBiometricConfirmDeviceCredentialCallback mCancelCallback
|
||||
= new IBiometricConfirmDeviceCredentialCallback.Stub() {
|
||||
@Override
|
||||
public void cancel() {
|
||||
finish();
|
||||
}
|
||||
};
|
||||
|
||||
private boolean isInternalActivity() {
|
||||
return (this instanceof ConfirmLockPassword.InternalActivity)
|
||||
|| (this instanceof ConfirmLockPattern.InternalActivity);
|
||||
@@ -81,6 +91,7 @@ public abstract class ConfirmDeviceCredentialBaseActivity extends SettingsActivi
|
||||
super.onCreate(savedState);
|
||||
|
||||
mBiometricManager = getSystemService(BiometricManager.class);
|
||||
mBiometricManager.registerCancellationCallback(mCancelCallback);
|
||||
|
||||
if (mConfirmCredentialTheme == ConfirmCredentialTheme.NORMAL) {
|
||||
// Prevent the content parent from consuming the window insets because GlifLayout uses
|
||||
|
Reference in New Issue
Block a user