Cache context for generateChallenge response.
Fix: 232678514 Test: manual Change-Id: I7deac5f296260bf667b15300e600195c42c0cbc1
This commit is contained in:
@@ -127,13 +127,14 @@ public abstract class BiometricsSettingsBase extends DashboardFragment {
|
|||||||
@Override
|
@Override
|
||||||
public boolean onPreferenceTreeClick(Preference preference) {
|
public boolean onPreferenceTreeClick(Preference preference) {
|
||||||
final String key = preference.getKey();
|
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,
|
// Generate challenge (and request LSS to create a HAT) each time the preference is clicked,
|
||||||
// since FingerprintSettings and FaceSettings revoke the challenge when finishing.
|
// since FingerprintSettings and FaceSettings revoke the challenge when finishing.
|
||||||
if (getFacePreferenceKey().equals(key)) {
|
if (getFacePreferenceKey().equals(key)) {
|
||||||
mDoNotFinishActivity = true;
|
mDoNotFinishActivity = true;
|
||||||
mFaceManager.generateChallenge(mUserId, (sensorId, userId, challenge) -> {
|
mFaceManager.generateChallenge(mUserId, (sensorId, userId, challenge) -> {
|
||||||
final byte[] token = BiometricUtils.requestGatekeeperHat(getActivity(), mGkPwHandle,
|
final byte[] token = BiometricUtils.requestGatekeeperHat(context, mGkPwHandle,
|
||||||
mUserId, challenge);
|
mUserId, challenge);
|
||||||
final Bundle extras = preference.getExtras();
|
final Bundle extras = preference.getExtras();
|
||||||
extras.putByteArray(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN, token);
|
extras.putByteArray(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN, token);
|
||||||
@@ -146,7 +147,7 @@ public abstract class BiometricsSettingsBase extends DashboardFragment {
|
|||||||
} else if (getFingerprintPreferenceKey().equals(key)) {
|
} else if (getFingerprintPreferenceKey().equals(key)) {
|
||||||
mDoNotFinishActivity = true;
|
mDoNotFinishActivity = true;
|
||||||
mFingerprintManager.generateChallenge(mUserId, (sensorId, userId, challenge) -> {
|
mFingerprintManager.generateChallenge(mUserId, (sensorId, userId, challenge) -> {
|
||||||
final byte[] token = BiometricUtils.requestGatekeeperHat(getActivity(), mGkPwHandle,
|
final byte[] token = BiometricUtils.requestGatekeeperHat(context, mGkPwHandle,
|
||||||
mUserId, challenge);
|
mUserId, challenge);
|
||||||
final Bundle extras = preference.getExtras();
|
final Bundle extras = preference.getExtras();
|
||||||
extras.putByteArray(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN, token);
|
extras.putByteArray(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN, token);
|
||||||
|
Reference in New Issue
Block a user