Add userId parameter to all uses of challenge in settings.
Bug: 184915229 Test: manually on device (as normal, extra user, & work profile) Change-Id: Id509b5866d53525b38a5bb95bbbcc723d6651745
This commit is contained in:
@@ -126,7 +126,7 @@ public abstract class BiometricEnrollIntroduction extends BiometricEnrollBase
|
||||
public abstract void onClick(LinkSpan span);
|
||||
|
||||
protected interface GenerateChallengeCallback {
|
||||
void onChallengeGenerated(int sensorId, long challenge);
|
||||
void onChallengeGenerated(int sensorId, int userId, long challenge);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -261,7 +261,7 @@ public abstract class BiometricEnrollIntroduction extends BiometricEnrollBase
|
||||
updatePasswordQuality();
|
||||
overridePendingTransition(R.anim.sud_slide_next_in, R.anim.sud_slide_next_out);
|
||||
getNextButton().setEnabled(false);
|
||||
getChallenge(((sensorId, challenge) -> {
|
||||
getChallenge(((sensorId, userId, challenge) -> {
|
||||
mSensorId = sensorId;
|
||||
mChallenge = challenge;
|
||||
mToken = BiometricUtils.requestGatekeeperHat(this, data, mUserId, challenge);
|
||||
@@ -277,7 +277,7 @@ public abstract class BiometricEnrollIntroduction extends BiometricEnrollBase
|
||||
if (resultCode == RESULT_OK && data != null) {
|
||||
overridePendingTransition(R.anim.sud_slide_next_in, R.anim.sud_slide_next_out);
|
||||
getNextButton().setEnabled(false);
|
||||
getChallenge(((sensorId, challenge) -> {
|
||||
getChallenge(((sensorId, userId, challenge) -> {
|
||||
mSensorId = sensorId;
|
||||
mChallenge = challenge;
|
||||
mToken = BiometricUtils.requestGatekeeperHat(this, data, mUserId, challenge);
|
||||
|
@@ -67,7 +67,7 @@ public class MultiBiometricEnrollHelper {
|
||||
|
||||
private void launchFaceEnroll() {
|
||||
final FaceManager faceManager = mActivity.getSystemService(FaceManager.class);
|
||||
faceManager.generateChallenge((sensorId, challenge) -> {
|
||||
faceManager.generateChallenge(mUserId, (sensorId, userId, challenge) -> {
|
||||
final byte[] hardwareAuthToken = BiometricUtils.requestGatekeeperHat(mActivity,
|
||||
mGkPwHandle, mUserId, challenge);
|
||||
final Intent faceIntent = BiometricUtils.getFaceIntroIntent(mActivity,
|
||||
@@ -96,7 +96,7 @@ public class MultiBiometricEnrollHelper {
|
||||
private void launchFingerprintEnroll() {
|
||||
final FingerprintManager fingerprintManager = mActivity
|
||||
.getSystemService(FingerprintManager.class);
|
||||
fingerprintManager.generateChallenge(mUserId, ((sensorId, challenge) -> {
|
||||
fingerprintManager.generateChallenge(mUserId, ((sensorId, userId, challenge) -> {
|
||||
final byte[] hardwareAuthToken = BiometricUtils.requestGatekeeperHat(mActivity,
|
||||
mGkPwHandle, mUserId, challenge);
|
||||
final Intent intent = BiometricUtils.getFingerprintIntroIntent(mActivity,
|
||||
|
@@ -115,7 +115,7 @@ public abstract class BiometricsSettingsBase extends DashboardFragment {
|
||||
// since FingerprintSettings and FaceSettings revoke the challenge when finishing.
|
||||
if (getFacePreferenceKey().equals(key)) {
|
||||
mDoNotFinishActivity = true;
|
||||
mFaceManager.generateChallenge((sensorId, challenge) -> {
|
||||
mFaceManager.generateChallenge(mUserId, (sensorId, userId, challenge) -> {
|
||||
final byte[] token = BiometricUtils.requestGatekeeperHat(getActivity(), mGkPwHandle,
|
||||
mUserId, challenge);
|
||||
final Bundle extras = preference.getExtras();
|
||||
@@ -125,7 +125,7 @@ public abstract class BiometricsSettingsBase extends DashboardFragment {
|
||||
});
|
||||
} else if (getFingerprintPreferenceKey().equals(key)) {
|
||||
mDoNotFinishActivity = true;
|
||||
mFingerprintManager.generateChallenge(mUserId, (sensorId, challenge) -> {
|
||||
mFingerprintManager.generateChallenge(mUserId, (sensorId, userId, challenge) -> {
|
||||
final byte[] token = BiometricUtils.requestGatekeeperHat(getActivity(), mGkPwHandle,
|
||||
mUserId, challenge);
|
||||
final Bundle extras = preference.getExtras();
|
||||
|
@@ -110,7 +110,7 @@ public class FaceEnrollIntroduction extends BiometricEnrollIntroduction {
|
||||
mFooterBarMixin.getPrimaryButton().setEnabled(false);
|
||||
// We either block on generateChallenge, or need to gray out the "next" button until
|
||||
// the challenge is ready. Let's just do this for now.
|
||||
mFaceManager.generateChallenge((sensorId, challenge) -> {
|
||||
mFaceManager.generateChallenge(mUserId, (sensorId, userId, challenge) -> {
|
||||
mToken = BiometricUtils.requestGatekeeperHat(this, getIntent(), mUserId, challenge);
|
||||
mSensorId = sensorId;
|
||||
mChallenge = challenge;
|
||||
@@ -196,10 +196,10 @@ public class FaceEnrollIntroduction extends BiometricEnrollIntroduction {
|
||||
protected void getChallenge(GenerateChallengeCallback callback) {
|
||||
mFaceManager = Utils.getFaceManagerOrNull(this);
|
||||
if (mFaceManager == null) {
|
||||
callback.onChallengeGenerated(0, 0L);
|
||||
callback.onChallengeGenerated(0, 0, 0L);
|
||||
return;
|
||||
}
|
||||
mFaceManager.generateChallenge(callback::onChallengeGenerated);
|
||||
mFaceManager.generateChallenge(mUserId, callback::onChallengeGenerated);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@@ -249,7 +249,7 @@ public class FaceSettings extends DashboardFragment {
|
||||
if (requestCode == CONFIRM_REQUEST) {
|
||||
if (resultCode == RESULT_FINISHED || resultCode == RESULT_OK) {
|
||||
// The pin/pattern/password was set.
|
||||
mFaceManager.generateChallenge((sensorId, challenge) -> {
|
||||
mFaceManager.generateChallenge(mUserId, (sensorId, userId, challenge) -> {
|
||||
mToken = BiometricUtils.requestGatekeeperHat(getPrefContext(), data, mUserId,
|
||||
challenge);
|
||||
mSensorId = sensorId;
|
||||
|
@@ -81,7 +81,7 @@ public class FingerprintEnrollFindSensor extends BiometricEnrollBase implements
|
||||
// adb shell am start -a android.app.action.SET_NEW_PASSWORD
|
||||
if (mToken == null && BiometricUtils.containsGatekeeperPasswordHandle(getIntent())) {
|
||||
final FingerprintManager fpm = getSystemService(FingerprintManager.class);
|
||||
fpm.generateChallenge(mUserId, (sensorId, challenge) -> {
|
||||
fpm.generateChallenge(mUserId, (sensorId, userId, challenge) -> {
|
||||
mChallenge = challenge;
|
||||
mSensorId = sensorId;
|
||||
mToken = BiometricUtils.requestGatekeeperHat(this, getIntent(), mUserId, challenge);
|
||||
|
@@ -157,7 +157,7 @@ public class FingerprintEnrollIntroduction extends BiometricEnrollIntroduction {
|
||||
protected void getChallenge(GenerateChallengeCallback callback) {
|
||||
mFingerprintManager = Utils.getFingerprintManagerOrNull(this);
|
||||
if (mFingerprintManager == null) {
|
||||
callback.onChallengeGenerated(0, 0L);
|
||||
callback.onChallengeGenerated(0, 0, 0L);
|
||||
return;
|
||||
}
|
||||
mFingerprintManager.generateChallenge(mUserId, callback::onChallengeGenerated);
|
||||
|
@@ -601,12 +601,15 @@ public class FingerprintSettings extends SubSettings {
|
||||
mLaunchedConfirm = false;
|
||||
if (resultCode == RESULT_FINISHED || resultCode == RESULT_OK) {
|
||||
if (data != null && BiometricUtils.containsGatekeeperPasswordHandle(data)) {
|
||||
mFingerprintManager.generateChallenge(mUserId, (sensorId, challenge) -> {
|
||||
mToken = BiometricUtils.requestGatekeeperHat(getActivity(), data,
|
||||
mUserId, challenge);
|
||||
mChallenge = challenge;
|
||||
BiometricUtils.removeGatekeeperPasswordHandle(getActivity(), data);
|
||||
updateAddPreference();
|
||||
mFingerprintManager.generateChallenge(mUserId,
|
||||
(sensorId, userId, challenge) -> {
|
||||
mToken = BiometricUtils.requestGatekeeperHat(getActivity(),
|
||||
data,
|
||||
mUserId, challenge);
|
||||
mChallenge = challenge;
|
||||
BiometricUtils.removeGatekeeperPasswordHandle(getActivity(),
|
||||
data);
|
||||
updateAddPreference();
|
||||
});
|
||||
} else {
|
||||
Log.d(TAG, "Data null or GK PW missing");
|
||||
|
Reference in New Issue
Block a user