HunterHuang0X7C7
2023-08-12 1c7c28f03215f03e97387d7e6b45ae752c396dcb
src/main/java/com/github/hunter0x7c7/sync/ctrls/Controller.java
@@ -114,10 +114,10 @@
    }
    @Override
    /*@Override
    protected void finalize() throws Throwable {
        super.finalize();
    }
    }*/
    private void init() {
        mCompositeDisposable = new CompositeDisposable();
@@ -219,13 +219,14 @@
                                    setInputText(tvInputTargetDbName, cb.getTargetDbName());
                                    setInputText(tvInputFreq, cb.getFreqValue());
                                    cbSelectFreqUnit.getSelectionModel().select(cb.getFreqUnit());
                                    //默认启动同步功能
                                    if (cb.isStartSync()) {
                                        startSync();    //启动同步功能
                                    }
                                }
                            });
                            //默认启动同步功能
                            if (cb.isStartSync()) {
                                startSync();    //启动同步功能
                            }
                        } else if (BuildType.equals(BuildTypeEnum.DEBUG)) {
                            try {
                                String srcHost = ConfigProperties.SRC_HOST;
@@ -338,24 +339,54 @@
    //点击:退出
    private void clickExit() {
        if (isSyncing()) {
            stopSync();//停止同步
        }
        //系统托盘
        SystemTray tray = SystemTray.getSystemTray();
        if (tray != null) {
            TrayIcon[] icons = tray.getTrayIcons();
            for (TrayIcon icon : icons) {
                if (icon == null) continue;
                //退出之前先移除系统托盘图标
                if (APPID.equals(icon.getActionCommand())) {
                    tray.remove(icon);
                }
            }
        }
        //退出
        Platform.exit();
        addSubscribe(Observable.just(true)
                .subscribeOn(Schedulers.newThread())
                .observeOn(Schedulers.io())
                .doOnNext(new Consumer<Object>() {
                    @Override
                    public void accept(Object o) throws Exception {
                        if (isSyncing()) {
                            stopSync();//停止同步
                        }
                    }
                })
                .doOnNext(new Consumer<Object>() {
                    @Override
                    public void accept(Object o) throws Exception {
                        //检查系统是否支持托盘
                        if (SystemTray.isSupported()) {
                            //系统托盘
                            SystemTray tray = SystemTray.getSystemTray();
                            if (tray != null) {
                                TrayIcon[] icons = tray.getTrayIcons();
                                for (TrayIcon icon : icons) {
                                    if (icon == null) continue;
                                    //退出之前先移除系统托盘图标
                                    if (APPID.equals(icon.getActionCommand())) {
                                        tray.remove(icon);
                                    }
                                }
                            }
                        }
                    }
                })
                .subscribe(new Consumer<Boolean>() {
                    @Override
                    public void accept(Boolean aBoolean) throws Exception {
                        TrayUtil.getInstance().exitApp();//退出
                    }
                }, new Consumer<Throwable>() {
                    @Override
                    public void accept(Throwable e) throws Exception {
                        e.printStackTrace();
                        TrayUtil.getInstance().exitApp();//退出
                    }
                }));
    }
    //点击:关于
    private void clickAbout() {
@@ -394,7 +425,7 @@
                                , targetFreq, freqSelect, startSync);
                        //写入文件
                        String path = PathUtil.projectPath + "\\config.json";
                        String path = PathUtil.getConfigFilePath("config.json");
                        String content = JsonUtil.toJson(cb);
                        //使用 BufferedWriter 写文件
@@ -461,7 +492,7 @@
    //从本地配置文件中获取配置信息
    private ConfigBean getSaveConfig() {
        try {
            String json = FileUtil.bufferedReader(PathUtil.projectPath + "\\config.json");
            String json = FileUtil.bufferedReader(PathUtil.getConfigFilePath("config.json"));
            return JsonUtil.fromJson(json, ConfigBean.class);
        } catch (Exception e) {
            e.printStackTrace();
@@ -567,7 +598,7 @@
        operate.setAlignment(Pos.CENTER_RIGHT);
        operate.setSpacing(8);
//        operate.setStyle("-fx-background-color: #F0F0F0");
        operate.setPadding(new Insets(12, 20, 6, 20));
        operate.setPadding(new Insets(12, 20, 12, 20));
        operate.getChildren().addAll(defButton, cancelButton);
        VBox vBox = new VBox();
@@ -858,7 +889,7 @@
                        }
                        cb.setStartSync(startSync);
                        String path = PathUtil.projectPath + "\\config.json";
                        String path = PathUtil.getConfigFilePath("config.json");
                        String content = JsonUtil.toJson(cb);
                        //使用 BufferedWriter 写文件