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
This commit is contained in:
Treehugger Robot
2020-08-29 01:22:21 +00:00
committed by Automerger Merge Worker
3 changed files with 8 additions and 0 deletions

View File

@@ -217,6 +217,9 @@ public abstract class AuthenticationClient extends ClientMonitor {
} }
} }
result = lockoutMode != LOCKOUT_NONE; // in a lockout mode result = lockoutMode != LOCKOUT_NONE; // in a lockout mode
if(result) { // lockde out
mAlreadyDone = true;
}
} }
} catch (RemoteException e) { } catch (RemoteException e) {
Slog.e(getLogTag(), "Remote exception", e); Slog.e(getLogTag(), "Remote exception", e);

View File

@@ -945,6 +945,7 @@ public abstract class BiometricServiceBase extends SystemService
if (!client.onError(getHalDeviceId(), errorCode, 0 /* vendorCode */)) { if (!client.onError(getHalDeviceId(), errorCode, 0 /* vendorCode */)) {
Slog.w(getTag(), "Cannot send permanent lockout message to client"); Slog.w(getTag(), "Cannot send permanent lockout message to client");
} }
return; return;
} }
startClient(client, true /* initiatedByClient */); startClient(client, true /* initiatedByClient */);

View File

@@ -233,6 +233,10 @@ public abstract class ClientMonitor extends LoggableMonitor implements IBinder.D
@Override @Override
public void binderDied() { 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. // If the current client dies we should cancel the current operation.
Slog.e(getLogTag(), "Binder died, cancelling client"); Slog.e(getLogTag(), "Binder died, cancelling client");
stop(false /* initiatedByClient */); stop(false /* initiatedByClient */);