mirror of
https://github.com/octopusYan/alist-gui.git
synced 2025-12-11 10:31:57 +08:00
feat: 代理测试
todo: 关于页
This commit is contained in:
@ -2,6 +2,7 @@ package cn.octopusyan.alistgui.base;
|
||||
|
||||
import cn.octopusyan.alistgui.Application;
|
||||
import cn.octopusyan.alistgui.config.Context;
|
||||
import cn.octopusyan.alistgui.manager.WindowsUtil;
|
||||
import cn.octopusyan.alistgui.util.FxmlUtil;
|
||||
import javafx.fxml.FXML;
|
||||
import javafx.fxml.Initializable;
|
||||
@ -20,7 +21,6 @@ import java.util.ResourceBundle;
|
||||
*/
|
||||
public abstract class BaseController<P extends Pane> implements Initializable {
|
||||
protected final Logger logger = LoggerFactory.getLogger(this.getClass());
|
||||
private double xOffSet = 0, yOffSet = 0;
|
||||
|
||||
public BaseController() {
|
||||
//初始化时保存当前Controller实例
|
||||
@ -33,14 +33,7 @@ public abstract class BaseController<P extends Pane> implements Initializable {
|
||||
// 全局窗口拖拽
|
||||
if (dragWindow()) {
|
||||
// 窗口拖拽
|
||||
getRootPanel().setOnMousePressed(event -> {
|
||||
xOffSet = event.getSceneX();
|
||||
yOffSet = event.getSceneY();
|
||||
});
|
||||
getRootPanel().setOnMouseDragged(event -> {
|
||||
getWindow().setX(event.getScreenX() - xOffSet);
|
||||
getWindow().setY(event.getScreenY() - yOffSet);
|
||||
});
|
||||
WindowsUtil.bindDragged(getRootPanel());
|
||||
}
|
||||
|
||||
// 初始化数据
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package cn.octopusyan.alistgui.config;
|
||||
|
||||
import cn.octopusyan.alistgui.base.BaseController;
|
||||
import cn.octopusyan.alistgui.controller.AboutController;
|
||||
import cn.octopusyan.alistgui.controller.MainController;
|
||||
import cn.octopusyan.alistgui.controller.RootController;
|
||||
import cn.octopusyan.alistgui.controller.SetupController;
|
||||
@ -34,7 +35,7 @@ public class Context {
|
||||
private static final Logger log = LoggerFactory.getLogger(Context.class);
|
||||
private static Scene scene;
|
||||
private static final IntegerProperty currentViewIndexProperty = new SimpleIntegerProperty(0);
|
||||
// 获取控制器集合
|
||||
|
||||
/**
|
||||
* 控制器集合
|
||||
*/
|
||||
@ -51,7 +52,7 @@ public class Context {
|
||||
/**
|
||||
* 支持的语言集合,应与语言资源文件同步手动更新
|
||||
*/
|
||||
public static final List<Locale> SUPPORT_LANGUAGE_LIST = Arrays.asList(Locale.CHINESE, Locale.ENGLISH);
|
||||
public static final List<Locale> SUPPORT_LANGUAGE_LIST = Arrays.asList(Locale.SIMPLIFIED_CHINESE, Locale.ENGLISH);
|
||||
/**
|
||||
* 记录当前所选时区
|
||||
*/
|
||||
@ -70,6 +71,7 @@ public class Context {
|
||||
case RootController root -> root;
|
||||
case MainController main -> main;
|
||||
case SetupController setup -> setup;
|
||||
case AboutController about -> about;
|
||||
default -> throw new IllegalStateException(STR."Unexpected value: \{type}");
|
||||
};
|
||||
} catch (Exception e) {
|
||||
@ -107,6 +109,7 @@ public class Context {
|
||||
// 更新界面语言
|
||||
public static void setLanguage(Locale locale) {
|
||||
setCurrentLocale(locale);
|
||||
Locale.setDefault(locale);
|
||||
ConfigManager.language(locale);
|
||||
LANGUAGE_RESOURCE_FACTORY.setResourceBundle(ResourceBundle.getBundle(LANGUAGE_RESOURCE_NAME, locale));
|
||||
}
|
||||
@ -133,7 +136,7 @@ public class Context {
|
||||
* 初始化 语言
|
||||
*/
|
||||
private static void initI18n() {
|
||||
currentLocaleProperty().addListener((_, _, _) -> Platform.runLater(() -> {
|
||||
currentLocaleProperty().addListener((_, _, locale) -> Platform.runLater(() -> {
|
||||
try {
|
||||
loadScene();
|
||||
} catch (IOException e) {
|
||||
|
||||
@ -0,0 +1,54 @@
|
||||
package cn.octopusyan.alistgui.controller;
|
||||
|
||||
import cn.octopusyan.alistgui.base.BaseController;
|
||||
import cn.octopusyan.alistgui.viewModel.AboutViewModule;
|
||||
import javafx.fxml.FXML;
|
||||
import javafx.scene.control.Button;
|
||||
import javafx.scene.control.Label;
|
||||
import javafx.scene.layout.VBox;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
/**
|
||||
* 关于
|
||||
*
|
||||
* @author octopus_yan
|
||||
*/
|
||||
public class AboutController extends BaseController<VBox> {
|
||||
protected final Logger logger = LoggerFactory.getLogger(this.getClass());
|
||||
|
||||
@FXML
|
||||
public VBox aboutView;
|
||||
|
||||
@FXML
|
||||
public Label aListVersion;
|
||||
@FXML
|
||||
public Button checkAppVersion;
|
||||
|
||||
private final AboutViewModule viewModule = new AboutViewModule();
|
||||
|
||||
@Override
|
||||
public VBox getRootPanel() {
|
||||
return aboutView;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initData() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initViewStyle() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initViewAction() {
|
||||
aListVersion.textProperty().bindBidirectional(viewModule.aListVersionProperty());
|
||||
}
|
||||
|
||||
@FXML
|
||||
public void checkAListUpdate() {
|
||||
viewModule.checkAListUpdate();
|
||||
}
|
||||
}
|
||||
@ -8,25 +8,29 @@ import cn.octopusyan.alistgui.viewModel.SetupViewModel;
|
||||
import javafx.collections.FXCollections;
|
||||
import javafx.fxml.FXML;
|
||||
import javafx.fxml.Initializable;
|
||||
import javafx.scene.control.*;
|
||||
import javafx.scene.layout.AnchorPane;
|
||||
import javafx.scene.control.Button;
|
||||
import javafx.scene.control.CheckBox;
|
||||
import javafx.scene.control.ComboBox;
|
||||
import javafx.scene.control.TextField;
|
||||
import javafx.scene.layout.Pane;
|
||||
import javafx.scene.layout.VBox;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
/**
|
||||
* 设置页面控制器
|
||||
*
|
||||
* @author octopus_yan
|
||||
*/
|
||||
public class SetupController extends BaseController<AnchorPane> implements Initializable {
|
||||
public class SetupController extends BaseController<VBox> implements Initializable {
|
||||
protected final Logger logger = LoggerFactory.getLogger(this.getClass());
|
||||
|
||||
@FXML
|
||||
public AnchorPane setupView;
|
||||
public VBox setupView;
|
||||
@FXML
|
||||
public CheckBox autoStartCheckBox;
|
||||
@FXML
|
||||
@ -43,15 +47,11 @@ public class SetupController extends BaseController<AnchorPane> implements Initi
|
||||
public TextField proxyHost;
|
||||
@FXML
|
||||
public TextField proxyPort;
|
||||
@FXML
|
||||
public Label aListVersion;
|
||||
@FXML
|
||||
public Button checkAppVersion;
|
||||
|
||||
private final SetupViewModel setupViewModel = new SetupViewModel();
|
||||
private final SetupViewModel viewModule = new SetupViewModel();
|
||||
|
||||
@Override
|
||||
public AnchorPane getRootPanel() {
|
||||
public VBox getRootPanel() {
|
||||
return setupView;
|
||||
}
|
||||
|
||||
@ -75,21 +75,19 @@ public class SetupController extends BaseController<AnchorPane> implements Initi
|
||||
|
||||
@Override
|
||||
public void initViewAction() {
|
||||
autoStartCheckBox.selectedProperty().bindBidirectional(setupViewModel.autoStartProperty());
|
||||
silentStartupCheckBox.selectedProperty().bindBidirectional(setupViewModel.silentStartupProperty());
|
||||
proxySetupComboBox.getSelectionModel().selectedItemProperty()
|
||||
.addListener((_, _, newValue) -> setupViewModel.proxySetupProperty().set(newValue));
|
||||
proxyHost.textProperty().bindBidirectional(setupViewModel.proxyHostProperty());
|
||||
proxyPort.textProperty().bindBidirectional(setupViewModel.proxyPortProperty());
|
||||
languageComboBox.getSelectionModel().selectedItemProperty().addListener((_, _, newValue) -> {
|
||||
setupViewModel.languageProperty().set(newValue);
|
||||
logger.info("language changed to {}", newValue);
|
||||
autoStartCheckBox.selectedProperty().bindBidirectional(viewModule.autoStartProperty());
|
||||
silentStartupCheckBox.selectedProperty().bindBidirectional(viewModule.silentStartupProperty());
|
||||
proxySetupComboBox.getSelectionModel().selectedItemProperty().addListener((_, _, newValue) -> viewModule.proxySetupProperty().set(newValue));
|
||||
proxyHost.textProperty().bindBidirectional(viewModule.proxyHostProperty());
|
||||
proxyPort.textProperty().bindBidirectional(viewModule.proxyPortProperty());
|
||||
languageComboBox.getSelectionModel().selectedItemProperty().subscribe(locale -> {
|
||||
viewModule.languageProperty().set(locale);
|
||||
logger.info("language changed to {}", locale);
|
||||
});
|
||||
aListVersion.textProperty().bindBidirectional(setupViewModel.aListVersionProperty());
|
||||
}
|
||||
|
||||
@FXML
|
||||
public void checkAListUpdate() {
|
||||
setupViewModel.checkAListUpdate();
|
||||
public void proxyTest() {
|
||||
viewModule.proxyTest();
|
||||
}
|
||||
}
|
||||
|
||||
@ -32,7 +32,7 @@ import java.util.regex.Matcher;
|
||||
public class ConfigManager {
|
||||
private static final Logger logger = LoggerFactory.getLogger(ConfigManager.class);
|
||||
public static ObjectMapper objectMapper = new ObjectMapper(new YAMLFactory());
|
||||
public static final Locale DEFAULT_LANGUAGE = Locale.CHINESE;
|
||||
public static final Locale DEFAULT_LANGUAGE = Locale.SIMPLIFIED_CHINESE;
|
||||
private static GuiConfig guiConfig;
|
||||
private static UpgradeConfig upgradeConfig;
|
||||
|
||||
@ -69,7 +69,7 @@ public class ConfigManager {
|
||||
&& Integer.parseInt(proxyInfo.getPort()) > 0;
|
||||
}
|
||||
|
||||
private static ProxyInfo getProxyInfo() {
|
||||
public static ProxyInfo getProxyInfo() {
|
||||
return guiConfig.getProxyInfo();
|
||||
}
|
||||
|
||||
@ -129,6 +129,14 @@ public class ConfigManager {
|
||||
return ProxySetup.valueOf(StringUtils.upperCase(guiConfig.getProxySetup()));
|
||||
}
|
||||
|
||||
public static void proxyTestUrl(String url) {
|
||||
guiConfig.setProxyTestUrl(url);
|
||||
}
|
||||
|
||||
public static String proxyTestUrl() {
|
||||
return guiConfig.getProxyTestUrl();
|
||||
}
|
||||
|
||||
public static void proxySetup(ProxySetup setup) {
|
||||
guiConfig.setProxySetup(setup.getName());
|
||||
|
||||
|
||||
@ -0,0 +1,31 @@
|
||||
package cn.octopusyan.alistgui.manager;
|
||||
|
||||
import javafx.scene.layout.Pane;
|
||||
import javafx.stage.Window;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author octopus_yan
|
||||
*/
|
||||
public class WindowsUtil {
|
||||
public static final Map<Pane, Double> paneXOffset = new HashMap<>();
|
||||
public static final Map<Pane, Double> paneYOffset = new HashMap<>();
|
||||
|
||||
public static void bindDragged(Pane pane) {
|
||||
Window stage = getStage(pane);
|
||||
pane.setOnMousePressed(event -> {
|
||||
paneXOffset.put(pane, stage.getX() - event.getScreenX());
|
||||
paneYOffset.put(pane, stage.getY() - event.getScreenY());
|
||||
});
|
||||
pane.setOnMouseDragged(event -> {
|
||||
stage.setX(event.getScreenX() + paneXOffset.get(pane));
|
||||
stage.setY(event.getScreenY() + paneYOffset.get(pane));
|
||||
});
|
||||
}
|
||||
|
||||
public static Window getStage(Pane pane) {
|
||||
return pane.getScene().getWindow();
|
||||
}
|
||||
}
|
||||
@ -20,4 +20,5 @@ public class GuiConfig {
|
||||
private ProxyInfo proxyInfo;
|
||||
private String proxySetup = ProxySetup.NO_PROXY.getName();
|
||||
private String language = ConfigManager.DEFAULT_LANGUAGE.toString();
|
||||
private String proxyTestUrl = "http://";
|
||||
}
|
||||
|
||||
@ -0,0 +1,26 @@
|
||||
package cn.octopusyan.alistgui.task;
|
||||
|
||||
import cn.octopusyan.alistgui.base.BaseTask;
|
||||
import cn.octopusyan.alistgui.manager.http.HttpUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
/**
|
||||
* 代理检测任务
|
||||
*
|
||||
* @author octopus_yan
|
||||
*/
|
||||
@Slf4j
|
||||
public class ProxyCheckTask extends BaseTask {
|
||||
private final String checkUrl;
|
||||
|
||||
public ProxyCheckTask(String checkUrl) {
|
||||
this.checkUrl = checkUrl;
|
||||
this.updateProgress(0d, 1d);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void task() throws Exception {
|
||||
String response = HttpUtil.getInstance().get(checkUrl, null, null);
|
||||
log.debug(STR."Proxy check response result => \n\{response}");
|
||||
}
|
||||
}
|
||||
@ -6,7 +6,7 @@ import cn.octopusyan.alistgui.manager.http.HttpUtil;
|
||||
import cn.octopusyan.alistgui.model.UpgradeConfig;
|
||||
import cn.octopusyan.alistgui.model.upgrade.UpgradeApp;
|
||||
import cn.octopusyan.alistgui.util.JsonUtil;
|
||||
import cn.octopusyan.alistgui.viewModel.SetupViewModel;
|
||||
import cn.octopusyan.alistgui.viewModel.AboutViewModule;
|
||||
import com.fasterxml.jackson.databind.JsonNode;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
@ -16,10 +16,10 @@ import org.apache.commons.lang3.StringUtils;
|
||||
* @author octopus_yan
|
||||
*/
|
||||
public class UpgradeTask extends BaseTask {
|
||||
private final SetupViewModel vm;
|
||||
private final AboutViewModule vm;
|
||||
private final UpgradeApp app;
|
||||
|
||||
public UpgradeTask(SetupViewModel viewModel, UpgradeApp app) {
|
||||
public UpgradeTask(AboutViewModule viewModel, UpgradeApp app) {
|
||||
this.vm = viewModel;
|
||||
this.app = app;
|
||||
}
|
||||
|
||||
@ -0,0 +1,73 @@
|
||||
package cn.octopusyan.alistgui.viewModel;
|
||||
|
||||
import cn.octopusyan.alistgui.base.BaseTask;
|
||||
import cn.octopusyan.alistgui.config.Context;
|
||||
import cn.octopusyan.alistgui.manager.ConfigManager;
|
||||
import cn.octopusyan.alistgui.task.UpgradeTask;
|
||||
import cn.octopusyan.alistgui.util.alert.AlertUtil;
|
||||
import javafx.beans.property.*;
|
||||
import javafx.scene.control.ButtonType;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
/**
|
||||
* 关于
|
||||
*
|
||||
* @author octopus_yan
|
||||
*/
|
||||
@Slf4j
|
||||
public class AboutViewModule {
|
||||
private final StringProperty aListVersion = new SimpleStringProperty(ConfigManager.aListVersion());
|
||||
private final StringProperty aListNewVersion = new SimpleStringProperty("");
|
||||
private final BooleanProperty aListUpgrade = new SimpleBooleanProperty(false);
|
||||
|
||||
public AboutViewModule() {
|
||||
aListVersion.addListener((_, _, newValue) -> ConfigManager.aListVersion(newValue));
|
||||
}
|
||||
|
||||
public Property<String> aListVersionProperty() {
|
||||
return aListVersion;
|
||||
}
|
||||
|
||||
public BooleanProperty aListUpgradeProperty() {
|
||||
return aListUpgrade;
|
||||
}
|
||||
|
||||
public StringProperty aListNewVersionProperty() {
|
||||
return aListNewVersion;
|
||||
}
|
||||
|
||||
/**
|
||||
* 检查alist更新
|
||||
*/
|
||||
public void checkAListUpdate() {
|
||||
var task = new UpgradeTask(this, ConfigManager.aList());
|
||||
task.onListen(new BaseTask.Listener() {
|
||||
@Override
|
||||
public void onSucceeded() {
|
||||
AlertUtil.confirm()
|
||||
.content(STR."""
|
||||
当前版本 : \{aListVersion.get()}
|
||||
最新版本 : \{aListNewVersion.get()}
|
||||
""")
|
||||
.title(Context.getLanguageBinding("about.alist.update").getValue())
|
||||
.show(new AlertUtil.OnChoseListener() {
|
||||
@Override
|
||||
public void confirm() {
|
||||
log.info("========confirm==========");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void cancelOrClose(ButtonType buttonType) {
|
||||
log.info("========cancelOrClose==========");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailed(Throwable throwable) {
|
||||
AlertUtil.exception(new Exception(throwable)).show();
|
||||
}
|
||||
});
|
||||
task.execute();
|
||||
}
|
||||
}
|
||||
@ -1,13 +1,19 @@
|
||||
package cn.octopusyan.alistgui.viewModel;
|
||||
|
||||
import cn.hutool.core.net.NetUtil;
|
||||
import cn.octopusyan.alistgui.base.BaseTask;
|
||||
import cn.octopusyan.alistgui.config.Context;
|
||||
import cn.octopusyan.alistgui.enums.ProxySetup;
|
||||
import cn.octopusyan.alistgui.manager.ConfigManager;
|
||||
import cn.octopusyan.alistgui.task.UpgradeTask;
|
||||
import cn.octopusyan.alistgui.manager.http.HttpUtil;
|
||||
import cn.octopusyan.alistgui.task.ProxyCheckTask;
|
||||
import cn.octopusyan.alistgui.util.alert.AlertUtil;
|
||||
import javafx.application.Platform;
|
||||
import javafx.beans.property.*;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import java.net.InetSocketAddress;
|
||||
import java.util.Locale;
|
||||
|
||||
/**
|
||||
@ -15,6 +21,7 @@ import java.util.Locale;
|
||||
*
|
||||
* @author octopus_yan
|
||||
*/
|
||||
@Slf4j
|
||||
public class SetupViewModel {
|
||||
private final BooleanProperty autoStart = new SimpleBooleanProperty(ConfigManager.autoStart());
|
||||
private final BooleanProperty silentStartup = new SimpleBooleanProperty(ConfigManager.silentStartup());
|
||||
@ -22,18 +29,22 @@ public class SetupViewModel {
|
||||
private final StringProperty proxyPort = new SimpleStringProperty(ConfigManager.proxyPort());
|
||||
private final ObjectProperty<Locale> language = new SimpleObjectProperty<>(ConfigManager.language());
|
||||
private final ObjectProperty<ProxySetup> proxySetup = new SimpleObjectProperty<>(ConfigManager.proxySetup());
|
||||
private final StringProperty aListVersion = new SimpleStringProperty(ConfigManager.aListVersion());
|
||||
private final StringProperty aListNewVersion = new SimpleStringProperty("");
|
||||
private final BooleanProperty aListUpgrade = new SimpleBooleanProperty(false);
|
||||
private final StringProperty proxyTestUrl = new SimpleStringProperty(ConfigManager.proxyTestUrl());
|
||||
|
||||
|
||||
public SetupViewModel() {
|
||||
aListVersion.addListener((_, _, newValue) -> ConfigManager.aListVersion(newValue));
|
||||
autoStart.addListener((_, _, newValue) -> ConfigManager.autoStart(newValue));
|
||||
silentStartup.addListener((_, _, newValue) -> ConfigManager.silentStartup(newValue));
|
||||
proxySetup.addListener((_, _, newValue) -> ConfigManager.proxySetup(newValue));
|
||||
proxyHost.addListener((_, _, newValue) -> ConfigManager.proxyHost(newValue));
|
||||
proxyPort.addListener((_, _, newValue) -> ConfigManager.proxyPort(newValue));
|
||||
proxyTestUrl.addListener((_, _, newValue) -> ConfigManager.proxyTestUrl(newValue));
|
||||
proxyHost.addListener((_, _, newValue) -> {
|
||||
ConfigManager.proxyHost(newValue);
|
||||
checkProxy();
|
||||
});
|
||||
proxyPort.addListener((_, _, newValue) -> {
|
||||
ConfigManager.proxyPort(newValue);
|
||||
checkProxy();
|
||||
});
|
||||
language.addListener((_, _, newValue) -> Context.setLanguage(newValue));
|
||||
}
|
||||
|
||||
@ -61,39 +72,54 @@ public class SetupViewModel {
|
||||
return proxyPort;
|
||||
}
|
||||
|
||||
public Property<String> aListVersionProperty() {
|
||||
return aListVersion;
|
||||
public void proxyTest() {
|
||||
var checkUrl = AlertUtil.input("URL :", proxyTestUrl.getValue())
|
||||
.title(Context.getLanguageBinding("proxy.test.title").getValue())
|
||||
.header(Context.getLanguageBinding("proxy.test.header").getValue())
|
||||
.getInput();
|
||||
|
||||
if (StringUtils.isEmpty(checkUrl)) return;
|
||||
|
||||
proxyTestUrl.setValue(checkUrl);
|
||||
|
||||
getProxyCheckTask(checkUrl).execute();
|
||||
}
|
||||
|
||||
public BooleanProperty aListUpgradeProperty() {
|
||||
return aListUpgrade;
|
||||
private void checkProxy() {
|
||||
try {
|
||||
InetSocketAddress address = NetUtil.createAddress(proxyHost.get(), Integer.parseInt(proxyPort.getValue()));
|
||||
if (NetUtil.isOpen(address, 2000)) {
|
||||
HttpUtil.getInstance().proxy(proxySetup.get(), ConfigManager.getProxyInfo());
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.debug(STR."host=\{proxyHost.get()},port=\{proxyPort.get()}");
|
||||
}
|
||||
}
|
||||
|
||||
public StringProperty aListNewVersionProperty() {
|
||||
return aListNewVersion;
|
||||
}
|
||||
|
||||
/**
|
||||
* 检查alist更新
|
||||
*/
|
||||
public void checkAListUpdate() {
|
||||
var task = new UpgradeTask(this, ConfigManager.aList());
|
||||
private static ProxyCheckTask getProxyCheckTask(String checkUrl) {
|
||||
var task = new ProxyCheckTask(checkUrl);
|
||||
final var progress = AlertUtil.progress();
|
||||
progress.title(Context.getLanguageBinding("proxy.test.title").get());
|
||||
task.onListen(new BaseTask.Listener() {
|
||||
|
||||
@Override
|
||||
public void onRunning() {
|
||||
progress.onCancel(task::cancel).show();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSucceeded() {
|
||||
AlertUtil.info(STR."""
|
||||
当前版本 : \{aListVersion.get()}
|
||||
最新版本 : \{aListNewVersion.get()}
|
||||
""")
|
||||
.title("AList 更新提示")
|
||||
.show();
|
||||
Platform.runLater(progress::close);
|
||||
AlertUtil.info(Context.getLanguageBinding("proxy.test.result.success").getValue()).show();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailed(Throwable throwable) {
|
||||
AlertUtil.exception(new Exception(throwable)).show();
|
||||
Platform.runLater(progress::close);
|
||||
final var tmp = Context.getLanguageBinding("proxy.test.result.failed").getValue();
|
||||
AlertUtil.error(tmp + throwable.getMessage()).show();
|
||||
}
|
||||
});
|
||||
task.execute();
|
||||
return task;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user