Merge "Cache context for generateChallenge response." into tm-qpr-dev am: aeb042d965

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

Change-Id: I668ff41be6cda1b42c8815eb5ad382ab4757e763
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Joe Bolinger
2022-08-22 21:22:40 +00:00
committed by Automerger Merge Worker

View File

@@ -127,13 +127,14 @@ public abstract class BiometricsSettingsBase extends DashboardFragment {
@Override
public boolean onPreferenceTreeClick(Preference preference) {
final String key = preference.getKey();
final Context context = requireActivity().getApplicationContext();
// Generate challenge (and request LSS to create a HAT) each time the preference is clicked,
// since FingerprintSettings and FaceSettings revoke the challenge when finishing.
if (getFacePreferenceKey().equals(key)) {
mDoNotFinishActivity = true;
mFaceManager.generateChallenge(mUserId, (sensorId, userId, challenge) -> {
final byte[] token = BiometricUtils.requestGatekeeperHat(getActivity(), mGkPwHandle,
final byte[] token = BiometricUtils.requestGatekeeperHat(context, mGkPwHandle,
mUserId, challenge);
final Bundle extras = preference.getExtras();
extras.putByteArray(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN, token);
@@ -146,7 +147,7 @@ public abstract class BiometricsSettingsBase extends DashboardFragment {
} else if (getFingerprintPreferenceKey().equals(key)) {
mDoNotFinishActivity = true;
mFingerprintManager.generateChallenge(mUserId, (sensorId, userId, challenge) -> {
final byte[] token = BiometricUtils.requestGatekeeperHat(getActivity(), mGkPwHandle,
final byte[] token = BiometricUtils.requestGatekeeperHat(context, mGkPwHandle,
mUserId, challenge);
final Bundle extras = preference.getExtras();
extras.putByteArray(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN, token);