From 60030695b38d58dd7bdfcf3aa166d5dcb5f740e3 Mon Sep 17 00:00:00 2001 From: Henry Le Grys Date: Thu, 23 Feb 2023 23:56:48 +0000 Subject: [PATCH] Fix update manager not displaying self-update errors --- .../src/main/java/com/skcraft/launcher/Launcher.java | 9 ++++++--- .../java/com/skcraft/launcher/dialog/LauncherFrame.java | 6 +++--- .../java/com/skcraft/launcher/update/UpdateManager.java | 6 ++++-- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/launcher/src/main/java/com/skcraft/launcher/Launcher.java b/launcher/src/main/java/com/skcraft/launcher/Launcher.java index 962f64f8a..baef3da7e 100644 --- a/launcher/src/main/java/com/skcraft/launcher/Launcher.java +++ b/launcher/src/main/java/com/skcraft/launcher/Launcher.java @@ -105,7 +105,7 @@ public void run() { } }); - updateManager.checkForUpdate(); + updateManager.checkForUpdate(null); } /** @@ -401,8 +401,11 @@ public URL propUrl(String key, String... args) { /** * Show the launcher. */ - public void showLauncherWindow() { - mainWindowSupplier.get().setVisible(true); + public Window showLauncherWindow() { + Window window = mainWindowSupplier.get(); + window.setVisible(true); + + return window; } /** diff --git a/launcher/src/main/java/com/skcraft/launcher/dialog/LauncherFrame.java b/launcher/src/main/java/com/skcraft/launcher/dialog/LauncherFrame.java index 664afcdf7..497d1aadf 100644 --- a/launcher/src/main/java/com/skcraft/launcher/dialog/LauncherFrame.java +++ b/launcher/src/main/java/com/skcraft/launcher/dialog/LauncherFrame.java @@ -132,7 +132,7 @@ public void tableChanged(TableModelEvent e) { @Override public void actionPerformed(ActionEvent e) { loadInstances(); - launcher.getUpdateManager().checkForUpdate(); + launcher.getUpdateManager().checkForUpdate(LauncherFrame.this); webView.browse(launcher.getNewsURL(), false); } }); @@ -394,8 +394,8 @@ public void gameStarted() { @Override public void gameClosed() { - launcher.showLauncherWindow(); - launcher.getUpdateManager().checkForUpdate(); + Window newLauncherWindow = launcher.showLauncherWindow(); + launcher.getUpdateManager().checkForUpdate(newLauncherWindow); } } diff --git a/launcher/src/main/java/com/skcraft/launcher/update/UpdateManager.java b/launcher/src/main/java/com/skcraft/launcher/update/UpdateManager.java index 1d6ee2071..e24e8f370 100644 --- a/launcher/src/main/java/com/skcraft/launcher/update/UpdateManager.java +++ b/launcher/src/main/java/com/skcraft/launcher/update/UpdateManager.java @@ -50,7 +50,7 @@ public boolean getPendingUpdate() { return pendingUpdate != null; } - public void checkForUpdate() { + public void checkForUpdate(final Window window) { ListenableFuture future = launcher.getExecutor().submit(new UpdateChecker(launcher)); Futures.addCallback(future, new FutureCallback() { @@ -63,9 +63,11 @@ public void onSuccess(LatestVersionInfo result) { @Override public void onFailure(Throwable t) { - + // Error handler attached below. } }, SwingExecutor.INSTANCE); + + SwingHelper.addErrorDialogCallback(window, future); } public void performUpdate(final Window window) {