Merge "[BugFix][Fingerprint]fix client was canceled by service by mistake"
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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 */);
|
||||
|
||||
@@ -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 */);
|
||||
|
||||
Reference in New Issue
Block a user