Fix crash after confirmLock

Stop everything in generateChallenge() on "Face and Fingerprint Unlock"
page if activity is null or finishing

Also fix ignored test cases in CombinedBiometricProfileSettingsTest

Bug: 292125215
Test: RunSettingsRoboTests ROBOTEST_FILTER=CombinedBiometricProfileSettingsTest
Change-Id: I7a272e813bfddd5d066417a74cbd63d22f511000
This commit is contained in:
Milton Wu
2023-08-08 06:48:40 +00:00
parent 9635d1cf45
commit 432560177c
2 changed files with 125 additions and 13 deletions

View File

@@ -21,6 +21,7 @@ import static android.hardware.biometrics.BiometricAuthenticator.TYPE_FINGERPRIN
import static com.android.settings.password.ChooseLockPattern.RESULT_FINISHED;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.hardware.biometrics.SensorProperties;
@@ -179,6 +180,12 @@ public abstract class BiometricsSettingsBase extends DashboardFragment {
}
mFaceManager.generateChallenge(mUserId, (sensorId, userId, challenge) -> {
final Activity activity = getActivity();
if (activity == null || activity.isFinishing()) {
Log.e(getLogTag(), "Stop during generating face unlock challenge"
+ " because activity is null or finishing");
return;
}
try {
final byte[] token = requestGatekeeperHat(context, mGkPwHandle, mUserId,
challenge);
@@ -215,6 +222,12 @@ public abstract class BiometricsSettingsBase extends DashboardFragment {
}
mFingerprintManager.generateChallenge(mUserId, (sensorId, userId, challenge) -> {
final Activity activity = getActivity();
if (activity == null || activity.isFinishing()) {
Log.e(getLogTag(), "Stop during generating fingerprint challenge"
+ " because activity is null or finishing");
return;
}
try {
final byte[] token = requestGatekeeperHat(context, mGkPwHandle, mUserId,
challenge);