diff --git a/gui/src/main/java/cn/octopusyan/alistgui/Application.java b/gui/src/main/java/cn/octopusyan/alistgui/Application.java index 60e18a6..c1d8166 100644 --- a/gui/src/main/java/cn/octopusyan/alistgui/Application.java +++ b/gui/src/main/java/cn/octopusyan/alistgui/Application.java @@ -41,7 +41,7 @@ public class Application extends javafx.application.Application { long delay = 0L; // 更新重启检查 File upgradeFile = new File(Constants.DATA_DIR_PATH + File.separator + new Gui().getReleaseFile()); - logger.error("{}{}{}", Constants.DATA_DIR_PATH, File.separator, new Gui().getReleaseFile()); +// logger.error("{}{}{}", Constants.DATA_DIR_PATH, File.separator, new Gui().getReleaseFile()); if (upgradeFile.exists()) { logger.error("upgradeFile.exists"); FileUtil.del(upgradeFile); @@ -165,7 +165,7 @@ public class Application extends javafx.application.Application { instanceCheckLatch.countDown(); while (true) { - logger.error(STR."====\{instanceId}===="); + logger.debug(STR."====\{instanceId}===="); try ( Socket clientSocket = serverSocket.accept(); BufferedReader in = new BufferedReader( diff --git a/gui/src/main/java/cn/octopusyan/alistgui/manager/AListManager.java b/gui/src/main/java/cn/octopusyan/alistgui/manager/AListManager.java index 9307628..79153a8 100644 --- a/gui/src/main/java/cn/octopusyan/alistgui/manager/AListManager.java +++ b/gui/src/main/java/cn/octopusyan/alistgui/manager/AListManager.java @@ -143,24 +143,21 @@ public class AListManager { ConsoleLog.info(getText("alist.status.stop")); if (!running.get()) { ConsoleLog.warning(getText("alist.status.stop.stopped")); - return; } util.destroy(); } - static ChangeListener restartListener; + static ChangeListener restartListener = (_, _, run) -> { + if (run) return; + running.removeListener(AListManager.restartListener); + start(); + }; public static void restart() { if (!running.get()) { start(); } else { stop(); - - restartListener = (_, _, run) -> { - if (run) return; - running.removeListener(restartListener); - start(); - }; running.addListener(restartListener); } } @@ -194,7 +191,7 @@ public class AListManager { //============================={ private }==================================== /** - * TODO 点击开始时检查 aList 执行文件 + * 点击开始时检查 aList 执行文件 */ private static boolean checkAList() { if (new File(Constants.ALIST_FILE).exists()) return true; @@ -216,6 +213,11 @@ public class AListManager { return false; } + /** + * 开始下载AList + * + * @param version 下载版本号 + */ private static void showDownload(String version) { String content = STR.""" \{getText("msg.alist.download.notfile")} diff --git a/gui/src/main/java/cn/octopusyan/alistgui/viewModel/AboutViewModule.java b/gui/src/main/java/cn/octopusyan/alistgui/viewModel/AboutViewModule.java index 0a0663f..5d400c2 100644 --- a/gui/src/main/java/cn/octopusyan/alistgui/viewModel/AboutViewModule.java +++ b/gui/src/main/java/cn/octopusyan/alistgui/viewModel/AboutViewModule.java @@ -17,6 +17,7 @@ import cn.octopusyan.alistgui.view.alert.AlertUtil; import cn.octopusyan.alistgui.view.alert.builder.AlertBuilder; import javafx.application.Platform; import javafx.beans.property.*; +import javafx.beans.value.ChangeListener; import lombok.extern.slf4j.Slf4j; /** @@ -144,8 +145,13 @@ public class AboutViewModule extends BaseViewModel { Platform.runLater(() -> { switch (app) { case AList _ -> { - // 下载完成后,解压并删除文件 - DownloadUtil.unzip(app); + if(AListManager.isRunning()) { + AListManager.stop(); + AListManager.runningProperty().addListener(updateListener); + } else { + // 下载完成后,解压并删除文件 + DownloadUtil.unzip(app); + } // 设置应用版本 aListVersion.setValue(aListNewVersion.getValue()); AListManager.restart(); @@ -163,4 +169,12 @@ public class AboutViewModule extends BaseViewModel { }).execute(); }); } + + static final ChangeListener updateListener = (_, _, run) -> { + if (!run) { + // 下载完成后,解压并删除文件 + DownloadUtil.unzip(ConfigManager.aList()); + } + AListManager.runningProperty().removeListener(AboutViewModule.updateListener); + }; }