Update Settings together with generateChallenge/revokeChallenge
The internal implementation of generate/revoke in system_server is now asynchronous. To keep existing clients working, the manager classes introduce a blocking version of the generateChallenge calls. This change updates Settings to use the backward-compatible blocking calls. Bug: 157790417 Test: Enroll fingerprint/face Test: After enrollment, toggle setFeature or do subsequent enrollment in face/fingerprint settings Change-Id: Ib4dfdc5f12530b938ab9b1745f5a19cd9e2eceee
This commit is contained in:
@@ -176,7 +176,7 @@ public class FaceEnrollIntroduction extends BiometricEnrollIntroduction {
|
||||
if (mFaceManager == null) {
|
||||
return 0;
|
||||
}
|
||||
return mFaceManager.generateChallenge();
|
||||
return mFaceManager.generateChallengeBlocking();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@@ -205,7 +205,7 @@ public class FaceSettings extends DashboardFragment {
|
||||
// Generate challenge in onResume instead of onCreate, since FaceSettings can be
|
||||
// created while Keyguard is showing, in which case the resetLockout revokeChallenge
|
||||
// will invalidate the too-early created challenge here.
|
||||
final long challenge = mFaceManager.generateChallenge();
|
||||
final long challenge = mFaceManager.generateChallengeBlocking();
|
||||
ChooseLockSettingsHelper helper = new ChooseLockSettingsHelper(getActivity(), this);
|
||||
|
||||
mConfirmingPassword = true;
|
||||
@@ -266,10 +266,7 @@ public class FaceSettings extends DashboardFragment {
|
||||
&& !mConfirmingPassword) {
|
||||
// Revoke challenge and finish
|
||||
if (mToken != null) {
|
||||
final int result = mFaceManager.revokeChallenge();
|
||||
if (result < 0) {
|
||||
Log.w(TAG, "revokeChallenge failed, result: " + result);
|
||||
}
|
||||
mFaceManager.revokeChallenge();
|
||||
mToken = null;
|
||||
}
|
||||
finish();
|
||||
|
@@ -140,10 +140,7 @@ public class FingerprintEnrollFinish extends BiometricEnrollBase {
|
||||
private void postEnroll() {
|
||||
final FingerprintManager fpm = Utils.getFingerprintManagerOrNull(this);
|
||||
if (fpm != null) {
|
||||
int result = fpm.postEnroll();
|
||||
if (result < 0) {
|
||||
Log.w(TAG, "postEnroll failed: result = " + result);
|
||||
}
|
||||
fpm.revokeChallenge();
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -136,7 +136,7 @@ public class FingerprintEnrollIntroduction extends BiometricEnrollIntroduction {
|
||||
if (mFingerprintManager == null) {
|
||||
return 0;
|
||||
}
|
||||
return mFingerprintManager.preEnroll();
|
||||
return mFingerprintManager.generateChallengeBlocking();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@@ -594,10 +594,7 @@ public class FingerprintSettings extends SubSettings {
|
||||
public void onDestroy() {
|
||||
super.onDestroy();
|
||||
if (getActivity().isFinishing()) {
|
||||
int result = mFingerprintManager.postEnroll();
|
||||
if (result < 0) {
|
||||
Log.w(TAG, "postEnroll failed: result = " + result);
|
||||
}
|
||||
mFingerprintManager.revokeChallenge();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -638,7 +635,7 @@ public class FingerprintSettings extends SubSettings {
|
||||
|
||||
private void launchChooseOrConfirmLock() {
|
||||
Intent intent = new Intent();
|
||||
long challenge = mFingerprintManager.preEnroll();
|
||||
long challenge = mFingerprintManager.generateChallengeBlocking();
|
||||
ChooseLockSettingsHelper helper = new ChooseLockSettingsHelper(getActivity(), this);
|
||||
if (!helper.launchConfirmationActivity(CONFIRM_REQUEST,
|
||||
getString(R.string.security_settings_fingerprint_preference_title),
|
||||
|
@@ -135,7 +135,7 @@ final class SetNewPasswordController {
|
||||
|
||||
private Bundle getFingerprintChooseLockExtras() {
|
||||
Bundle chooseLockExtras = new Bundle();
|
||||
long challenge = mFingerprintManager.preEnroll();
|
||||
long challenge = mFingerprintManager.generateChallengeBlocking();
|
||||
chooseLockExtras.putInt(ChooseLockGeneric.ChooseLockGenericFragment.MINIMUM_QUALITY_KEY,
|
||||
PASSWORD_QUALITY_SOMETHING);
|
||||
chooseLockExtras.putBoolean(
|
||||
@@ -148,7 +148,7 @@ final class SetNewPasswordController {
|
||||
|
||||
private Bundle getFaceChooseLockExtras() {
|
||||
Bundle chooseLockExtras = new Bundle();
|
||||
long challenge = mFaceManager.generateChallenge();
|
||||
long challenge = mFaceManager.generateChallengeBlocking();
|
||||
chooseLockExtras.putInt(ChooseLockGeneric.ChooseLockGenericFragment.MINIMUM_QUALITY_KEY,
|
||||
PASSWORD_QUALITY_SOMETHING);
|
||||
chooseLockExtras.putBoolean(
|
||||
|
@@ -80,10 +80,10 @@ public final class SetNewPasswordControllerTest {
|
||||
CURRENT_USER_ID, mPackageManager, mFingerprintManager, mFaceManager,
|
||||
mDevicePolicyManager, mUi);
|
||||
|
||||
when(mFingerprintManager.preEnroll()).thenReturn(FINGERPRINT_CHALLENGE);
|
||||
when(mFingerprintManager.generateChallengeBlocking()).thenReturn(FINGERPRINT_CHALLENGE);
|
||||
when(mPackageManager.hasSystemFeature(eq(FEATURE_FINGERPRINT))).thenReturn(true);
|
||||
|
||||
when(mFaceManager.generateChallenge()).thenReturn(FACE_CHALLENGE);
|
||||
when(mFaceManager.generateChallengeBlocking()).thenReturn(FACE_CHALLENGE);
|
||||
when(mPackageManager.hasSystemFeature(eq(FEATURE_FACE))).thenReturn(true);
|
||||
}
|
||||
|
||||
|
@@ -31,4 +31,9 @@ public class ShadowFingerprintManager extends org.robolectric.shadows.ShadowFing
|
||||
protected List<Fingerprint> getEnrolledFingerprints(int userId) {
|
||||
return getEnrolledFingerprints();
|
||||
}
|
||||
|
||||
@Implementation
|
||||
protected long generateChallengeBlocking() {
|
||||
return 0L;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user