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:
@@ -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();
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
Reference in New Issue
Block a user