ResetLockout should be scheduled on FaceService's handler
Fixes: 138501368
Test: Reject 5 times and get locked out
Enter password
Go back to lockscreen, no longer locked out
Change-Id: I23e3022bcca533f3cacb03aa79bf0a68a9e01de2
(cherry picked from commit 7a207e47163fd57d0b59d165f741f77560ae1303)
diff --git a/services/core/java/com/android/server/biometrics/face/FaceService.java b/services/core/java/com/android/server/biometrics/face/FaceService.java
index 9d51abee..a706521 100644
--- a/services/core/java/com/android/server/biometrics/face/FaceService.java
+++ b/services/core/java/com/android/server/biometrics/face/FaceService.java
@@ -344,16 +344,19 @@
@Override // Binder call
public int revokeChallenge(IBinder token) {
checkPermission(MANAGE_BIOMETRIC);
- // TODO(b/137106905): Schedule binder calls in FaceService to avoid deadlocks.
- if (getCurrentClient() == null) {
- // if we aren't handling any other HIDL calls (mCurrentClient == null), revoke the
- // challenge right away.
- return startRevokeChallenge(token);
- } else {
- // postpone revoking the challenge until we finish processing the current HIDL call.
- mRevokeChallengePending = true;
- return Status.OK;
- }
+ mHandler.post(() -> {
+ // TODO(b/137106905): Schedule binder calls in FaceService to avoid deadlocks.
+ if (getCurrentClient() == null) {
+ // if we aren't handling any other HIDL calls (mCurrentClient == null), revoke
+ // the challenge right away.
+ startRevokeChallenge(token);
+ } else {
+ // postpone revoking the challenge until we finish processing the current HIDL
+ // call.
+ mRevokeChallengePending = true;
+ }
+ });
+ return Status.OK;
}
@Override // Binder call