Merge "Fixed race condition with different profiles" into qt-r1-dev

This commit is contained in:
TreeHugger Robot
2019-07-25 04:06:20 +00:00
committed by Android (Google) Code Review
2 changed files with 26 additions and 14 deletions

View File

@@ -912,8 +912,12 @@ public abstract class BiometricServiceBase extends SystemService
}
protected void setActiveUserInternal(int userId) {
// Do not put on handler, since it should finish before returning to caller.
updateActiveGroup(userId, null /* clientPackage */);
mHandler.post(() -> {
if (DEBUG) {
Slog.d(getTag(), "setActiveUser(" + userId + ")");
}
updateActiveGroup(userId, null /* clientPackage */);
});
}
protected void removeInternal(RemovalClient client) {

View File

@@ -611,27 +611,32 @@ public class FaceService extends BiometricServiceBase {
public void resetLockout(byte[] token) {
checkPermission(MANAGE_BIOMETRIC);
if (!FaceService.this.hasEnrolledBiometrics(mCurrentUserId)) {
Slog.w(TAG, "Ignoring lockout reset, no templates enrolled");
return;
}
mHandler.post(() -> {
if (!FaceService.this.hasEnrolledBiometrics(mCurrentUserId)) {
Slog.w(TAG, "Ignoring lockout reset, no templates enrolled");
return;
}
Slog.d(TAG, "Resetting lockout for user: " + mCurrentUserId);
Slog.d(TAG, "Resetting lockout for user: " + mCurrentUserId);
try {
mDaemonWrapper.resetLockout(token);
} catch (RemoteException e) {
Slog.e(getTag(), "Unable to reset lockout", e);
}
try {
mDaemonWrapper.resetLockout(token);
} catch (RemoteException e) {
Slog.e(getTag(), "Unable to reset lockout", e);
}
});
}
@Override
public void setFeature(int userId, int feature, boolean enabled, final byte[] token,
IFaceServiceReceiver receiver, final String opPackageName) {
checkPermission(MANAGE_BIOMETRIC);
updateActiveGroup(userId, opPackageName);
mHandler.post(() -> {
if (DEBUG) {
Slog.d(TAG, "setFeature for user(" + userId + ")");
}
updateActiveGroup(userId, opPackageName);
if (!FaceService.this.hasEnrolledBiometrics(mCurrentUserId)) {
Slog.e(TAG, "No enrolled biometrics while setting feature: " + feature);
return;
@@ -662,9 +667,12 @@ public class FaceService extends BiometricServiceBase {
public void getFeature(int userId, int feature, IFaceServiceReceiver receiver,
final String opPackageName) {
checkPermission(MANAGE_BIOMETRIC);
updateActiveGroup(userId, opPackageName);
mHandler.post(() -> {
if (DEBUG) {
Slog.d(TAG, "getFeature for user(" + userId + ")");
}
updateActiveGroup(userId, opPackageName);
// This should ideally return tri-state, but the user isn't shown settings unless
// they are enrolled so it's fine for now.
if (!FaceService.this.hasEnrolledBiometrics(mCurrentUserId)) {