summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Treehugger Robot <treehugger-gerrit@google.com> 2020-08-29 01:22:21 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2020-08-29 01:22:21 +0000
commit5bfd8bcc4e33c49657659c827203ec67ad2ce25a (patch)
treea3a054fd77b1b254fdb5c049df955f8a48589e26
parent618efc989b4ebd7b7cc4a9fc36769753256d7e0e (diff)
parent72eda1bb48c76ba5903441022aff4f761cd9bb4e (diff)
Merge "[BugFix][Fingerprint]fix client was canceled by service by mistake" am: 72eda1bb48
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1372057 Change-Id: I4172f144a1e4400cf8a23c1010dd6c54dea6727f
-rw-r--r--services/core/java/com/android/server/biometrics/AuthenticationClient.java3
-rw-r--r--services/core/java/com/android/server/biometrics/BiometricServiceBase.java1
-rw-r--r--services/core/java/com/android/server/biometrics/ClientMonitor.java4
3 files changed, 8 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/biometrics/AuthenticationClient.java b/services/core/java/com/android/server/biometrics/AuthenticationClient.java
index 4a9ccdee0522..13a2c19c1d99 100644
--- a/services/core/java/com/android/server/biometrics/AuthenticationClient.java
+++ b/services/core/java/com/android/server/biometrics/AuthenticationClient.java
@@ -217,6 +217,9 @@ public abstract class AuthenticationClient extends ClientMonitor {
}
}
result = lockoutMode != LOCKOUT_NONE; // in a lockout mode
+ if(result) { // lockde out
+ mAlreadyDone = true;
+ }
}
} catch (RemoteException e) {
Slog.e(getLogTag(), "Remote exception", e);
diff --git a/services/core/java/com/android/server/biometrics/BiometricServiceBase.java b/services/core/java/com/android/server/biometrics/BiometricServiceBase.java
index f3f9754bd32b..a4768f42cca2 100644
--- a/services/core/java/com/android/server/biometrics/BiometricServiceBase.java
+++ b/services/core/java/com/android/server/biometrics/BiometricServiceBase.java
@@ -945,6 +945,7 @@ public abstract class BiometricServiceBase extends SystemService
if (!client.onError(getHalDeviceId(), errorCode, 0 /* vendorCode */)) {
Slog.w(getTag(), "Cannot send permanent lockout message to client");
}
+
return;
}
startClient(client, true /* initiatedByClient */);
diff --git a/services/core/java/com/android/server/biometrics/ClientMonitor.java b/services/core/java/com/android/server/biometrics/ClientMonitor.java
index 942e0501d88d..8234a520e5db 100644
--- a/services/core/java/com/android/server/biometrics/ClientMonitor.java
+++ b/services/core/java/com/android/server/biometrics/ClientMonitor.java
@@ -233,6 +233,10 @@ public abstract class ClientMonitor extends LoggableMonitor implements IBinder.D
@Override
public void binderDied() {
+ if (isAlreadyDone()) {
+ Slog.w(getLogTag(), "Binder died but client is finished, ignoring");
+ return;
+ }
// If the current client dies we should cancel the current operation.
Slog.e(getLogTag(), "Binder died, cancelling client");
stop(false /* initiatedByClient */);