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