diff --git a/common/src/main/java/com/codename1/fingerprint/impl/InternalCallback.java b/common/src/main/java/com/codename1/fingerprint/impl/InternalCallback.java index 270e313..faba0c1 100644 --- a/common/src/main/java/com/codename1/fingerprint/impl/InternalCallback.java +++ b/common/src/main/java/com/codename1/fingerprint/impl/InternalCallback.java @@ -121,7 +121,11 @@ public static void requestSuccess(int requestId, String value) { } requests.remove(requestId); if (!req.isDone()) { - req.complete(value); + Display.getInstance().callSerially(() -> { + if (!req.isDone()) { + req.complete(value); + } + }); } } @@ -132,11 +136,15 @@ public static void requestError(int requestId, String message) { } requests.remove(requestId); if (!req.isDone()) { - if ("__CANCELLED__".equals(message)) { - req.cancel(true); - } else { - req.error(new RuntimeException(message)); - } + Display.getInstance().callSerially(() -> { + if (!req.isDone()) { + if ("__CANCELLED__".equals(message)) { + req.cancel(true); + } else { + req.error(new RuntimeException(message)); + } + } + }); } } @@ -147,11 +155,15 @@ public static void requestKeyRevokedError(int requestId, String message) { } requests.remove(requestId); if (!req.isDone()) { - if ("__CANCELLED__".equals(message)) { - req.cancel(true); - } else { - req.error(new KeyRevokedException(message)); - } + Display.getInstance().callSerially(() -> { + if (!req.isDone()) { + if ("__CANCELLED__".equals(message)) { + req.cancel(true); + } else { + req.error(new KeyRevokedException(message)); + } + } + }); } } @@ -162,7 +174,11 @@ public static void requestComplete(int requestId, boolean success) { } requests.remove(requestId); if (!req.isDone()) { - req.complete(success); + Display.getInstance().callSerially(() -> { + if (!req.isDone()) { + req.complete(success); + } + }); } } }