BiometricEnrollIntro should use non-blocking generateChallenge am: 66bfe45f99

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/12276442

Change-Id: Ib3bc708fb8bce148e2828fb63f47287629f427d6
This commit is contained in:
Kevin Chyn
2020-08-08 00:10:13 +00:00
committed by Automerger Merge Worker
3 changed files with 24 additions and 11 deletions

View File

@@ -101,7 +101,7 @@ public abstract class BiometricEnrollIntroduction extends BiometricEnrollBase
/**
* @return the challenge generated by the biometric hardware
*/
protected abstract long getChallenge();
protected abstract void getChallenge(GenerateChallengeCallback callback);
/**
* @return one of the ChooseLockSettingsHelper#EXTRA_KEY_FOR_* constants
@@ -125,6 +125,10 @@ public abstract class BiometricEnrollIntroduction extends BiometricEnrollBase
*/
public abstract void onClick(LinkSpan span);
protected interface GenerateChallengeCallback {
void onChallengeGenerated(long challenge);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -267,12 +271,15 @@ public abstract class BiometricEnrollIntroduction extends BiometricEnrollBase
return;
}
} else if (requestCode == CHOOSE_LOCK_GENERIC_REQUEST) {
mConfirmingCredentials = false;
if (resultCode == RESULT_FINISHED) {
updatePasswordQuality();
mToken = BiometricUtils.requestGatekeeperHat(this, data, mUserId, getChallenge());
overridePendingTransition(R.anim.sud_slide_next_in, R.anim.sud_slide_next_out);
mConfirmingCredentials = false;
return;
getNextButton().setEnabled(false);
getChallenge((challenge -> {
mToken = BiometricUtils.requestGatekeeperHat(this, data, mUserId, challenge);
getNextButton().setEnabled(true);
}));
} else {
setResult(resultCode, data);
finish();
@@ -280,8 +287,12 @@ public abstract class BiometricEnrollIntroduction extends BiometricEnrollBase
} else if (requestCode == CONFIRM_REQUEST) {
mConfirmingCredentials = false;
if (resultCode == RESULT_OK && data != null) {
mToken = BiometricUtils.requestGatekeeperHat(this, data, mUserId, getChallenge());
overridePendingTransition(R.anim.sud_slide_next_in, R.anim.sud_slide_next_out);
getNextButton().setEnabled(false);
getChallenge((challenge -> {
mToken = BiometricUtils.requestGatekeeperHat(this, data, mUserId, challenge);
getNextButton().setEnabled(true);
}));
} else {
setResult(resultCode, data);
finish();

View File

@@ -180,12 +180,13 @@ public class FaceEnrollIntroduction extends BiometricEnrollIntroduction {
}
@Override
protected long getChallenge() {
protected void getChallenge(GenerateChallengeCallback callback) {
mFaceManager = Utils.getFaceManagerOrNull(this);
if (mFaceManager == null) {
return 0;
callback.onChallengeGenerated(0L);
return;
}
return mFaceManager.generateChallengeBlocking();
mFaceManager.generateChallenge(callback::onChallengeGenerated);
}
@Override

View File

@@ -131,12 +131,13 @@ public class FingerprintEnrollIntroduction extends BiometricEnrollIntroduction {
}
@Override
protected long getChallenge() {
protected void getChallenge(GenerateChallengeCallback callback) {
mFingerprintManager = Utils.getFingerprintManagerOrNull(this);
if (mFingerprintManager == null) {
return 0;
callback.onChallengeGenerated(0L);
return;
}
return mFingerprintManager.generateChallengeBlocking();
mFingerprintManager.generateChallenge(callback::onChallengeGenerated);
}
@Override