From ec3dfb908c2824efed92f0a117c46245c48b406e Mon Sep 17 00:00:00 2001 From: huanghongxun Date: Tue, 12 Oct 2021 22:53:35 +0800 Subject: [PATCH] fix(auth): OAuth login dialog logging state. --- .../ui/account/OAuthAccountLoginDialog.java | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/account/OAuthAccountLoginDialog.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/account/OAuthAccountLoginDialog.java index f7798666b..0d7891150 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/account/OAuthAccountLoginDialog.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/account/OAuthAccountLoginDialog.java @@ -67,14 +67,17 @@ public class OAuthAccountLoginDialog extends DialogPane { @Override protected void onAccept() { setLoading(); - + logging.set(true); Task.supplyAsync(account::logInWhenCredentialsExpired) - .whenComplete(Schedulers.javafx(), authInfo -> { - success.accept(authInfo); - onSuccess(); - }, e -> { - LOG.log(Level.INFO, "Failed to login when credentials expired: " + account, e); - onFailure(Accounts.localizeErrorMessage(e)); + .whenComplete(Schedulers.javafx(), (authInfo, exception) -> { + logging.set(false); + if (exception == null) { + success.accept(authInfo); + onSuccess(); + } else { + LOG.log(Level.INFO, "Failed to login when credentials expired: " + account, exception); + onFailure(Accounts.localizeErrorMessage(exception)); + } }).start(); }