Merge "Check for null receiver in biometric AuthController"
This commit is contained in:
committed by
Android (Google) Code Review
commit
10236fdf0b
@@ -93,8 +93,11 @@ public class AuthController extends SystemUI implements CommandQueue.Callbacks,
|
||||
Log.w(TAG, "Evicting client due to: " + topPackage);
|
||||
mCurrentDialog.dismissWithoutCallback(true /* animate */);
|
||||
mCurrentDialog = null;
|
||||
mReceiver.onDialogDismissed(BiometricPrompt.DISMISSED_REASON_USER_CANCEL);
|
||||
mReceiver = null;
|
||||
if (mReceiver != null) {
|
||||
mReceiver.onDialogDismissed(
|
||||
BiometricPrompt.DISMISSED_REASON_USER_CANCEL);
|
||||
mReceiver = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (RemoteException e) {
|
||||
@@ -105,6 +108,10 @@ public class AuthController extends SystemUI implements CommandQueue.Callbacks,
|
||||
|
||||
@Override
|
||||
public void onTryAgainPressed() {
|
||||
if (mReceiver == null) {
|
||||
Log.e(TAG, "onTryAgainPressed: Receiver is null");
|
||||
return;
|
||||
}
|
||||
try {
|
||||
mReceiver.onTryAgainPressed();
|
||||
} catch (RemoteException e) {
|
||||
@@ -114,6 +121,10 @@ public class AuthController extends SystemUI implements CommandQueue.Callbacks,
|
||||
|
||||
@Override
|
||||
public void onDeviceCredentialPressed() {
|
||||
if (mReceiver == null) {
|
||||
Log.e(TAG, "onDeviceCredentialPressed: Receiver is null");
|
||||
return;
|
||||
}
|
||||
try {
|
||||
mReceiver.onDeviceCredentialPressed();
|
||||
} catch (RemoteException e) {
|
||||
@@ -161,7 +172,7 @@ public class AuthController extends SystemUI implements CommandQueue.Callbacks,
|
||||
|
||||
private void sendResultAndCleanUp(@DismissedReason int reason) {
|
||||
if (mReceiver == null) {
|
||||
Log.e(TAG, "Receiver is null");
|
||||
Log.e(TAG, "sendResultAndCleanUp: Receiver is null");
|
||||
return;
|
||||
}
|
||||
try {
|
||||
|
||||
@@ -389,6 +389,20 @@ public class AuthControllerTest extends SysuiTestCase {
|
||||
verify(mReceiver).onDialogDismissed(eq(BiometricPrompt.DISMISSED_REASON_USER_CANCEL));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDoesNotCrash_whenTryAgainPressedAfterDismissal() {
|
||||
showDialog(Authenticator.TYPE_BIOMETRIC, BiometricPrompt.TYPE_FACE);
|
||||
mAuthController.onDismissed(AuthDialogCallback.DISMISSED_USER_CANCELED);
|
||||
mAuthController.onTryAgainPressed();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDoesNotCrash_whenDeviceCredentialPressedAfterDismissal() {
|
||||
showDialog(Authenticator.TYPE_BIOMETRIC, BiometricPrompt.TYPE_FACE);
|
||||
mAuthController.onDismissed(AuthDialogCallback.DISMISSED_USER_CANCELED);
|
||||
mAuthController.onDeviceCredentialPressed();
|
||||
}
|
||||
|
||||
// Helpers
|
||||
|
||||
private void showDialog(int authenticators, int biometricModality) {
|
||||
|
||||
Reference in New Issue
Block a user