From 8e0559fb3b6e07d18f2e3528b7a5b11a22dd29d7 Mon Sep 17 00:00:00 2001 From: yushijinhun Date: Tue, 17 Jul 2018 19:24:53 +0800 Subject: [PATCH] Remove proxyType --- .../org/jackhuang/hmcl/setting/Config.java | 4 ++- .../org/jackhuang/hmcl/setting/Proxies.java | 36 ------------------- .../org/jackhuang/hmcl/setting/Settings.java | 16 ++------- .../org/jackhuang/hmcl/ui/SettingsPage.java | 4 +-- 4 files changed, 7 insertions(+), 53 deletions(-) delete mode 100644 HMCL/src/main/java/org/jackhuang/hmcl/setting/Proxies.java diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/setting/Config.java b/HMCL/src/main/java/org/jackhuang/hmcl/setting/Config.java index 6231714a4..960c314a3 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/setting/Config.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/setting/Config.java @@ -19,6 +19,7 @@ package org.jackhuang.hmcl.setting; import java.io.File; import java.lang.reflect.Modifier; +import java.net.Proxy; import java.util.Map; import java.util.TreeMap; import java.util.stream.Stream; @@ -66,6 +67,7 @@ public final class Config implements Cloneable, Observable { .registerTypeAdapter(ObservableMap.class, new ObservableMapCreator()) .registerTypeAdapterFactory(new JavaFxPropertyTypeAdapterFactory(true, true)) .registerTypeAdapter(EnumBackgroundImage.class, new EnumOrdinalDeserializer<>(EnumBackgroundImage.class)) // backward compatibility for backgroundType + .registerTypeAdapter(Proxy.Type.class, new EnumOrdinalDeserializer<>(Proxy.Type.class)) // backward compatibility for hasProxy .setPrettyPrinting() .create(); @@ -96,7 +98,7 @@ public final class Config implements Cloneable, Observable { public final BooleanProperty hasProxyAuth = new SimpleBooleanProperty(); @SerializedName("proxyType") - public final IntegerProperty proxyType = new SimpleIntegerProperty(); + public final ObjectProperty proxyType = new SimpleObjectProperty<>(Proxy.Type.DIRECT); @SerializedName("proxyHost") public final StringProperty proxyHost = new SimpleStringProperty(); diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/setting/Proxies.java b/HMCL/src/main/java/org/jackhuang/hmcl/setting/Proxies.java deleted file mode 100644 index 919351d30..000000000 --- a/HMCL/src/main/java/org/jackhuang/hmcl/setting/Proxies.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Hello Minecraft! Launcher. - * Copyright (C) 2018 huangyuhui - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see {http://www.gnu.org/licenses/}. - */ -package org.jackhuang.hmcl.setting; - -import org.jackhuang.hmcl.util.Lang; - -import java.net.Proxy; -import java.util.List; - -/** - * @author huangyuhui - */ -public final class Proxies { - private Proxies() {} - - public static final List PROXIES = Lang.immutableListOf(Proxy.Type.DIRECT, Proxy.Type.HTTP, Proxy.Type.SOCKS); - - public static Proxy.Type getProxyType(int index) { - return Lang.get(PROXIES, index).orElse(null); - } -} diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/setting/Settings.java b/HMCL/src/main/java/org/jackhuang/hmcl/setting/Settings.java index ec0026fbd..b06ed7848 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/setting/Settings.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/setting/Settings.java @@ -137,27 +137,15 @@ public class Settings { return proxy; } - private Proxy.Type proxyType = Proxies.getProxyType(ConfigHolder.CONFIG.proxyType.get()); - - public Proxy.Type getProxyType() { - return proxyType; - } - - public void setProxyType(Proxy.Type proxyType) { - this.proxyType = proxyType; - ConfigHolder.CONFIG.proxyType.set(Proxies.PROXIES.indexOf(proxyType)); - loadProxy(); - } - private void loadProxy() { String host = ConfigHolder.CONFIG.proxyHost.get(); Integer port = Lang.toIntOrNull(ConfigHolder.CONFIG.proxyPort.get()); - if (!ConfigHolder.CONFIG.hasProxy.get() || StringUtils.isBlank(host) || port == null || getProxyType() == Proxy.Type.DIRECT) + if (!ConfigHolder.CONFIG.hasProxy.get() || StringUtils.isBlank(host) || port == null || ConfigHolder.CONFIG.proxyType.get() == Proxy.Type.DIRECT) proxy = Proxy.NO_PROXY; else { System.setProperty("http.proxyHost", ConfigHolder.CONFIG.proxyHost.get()); System.setProperty("http.proxyPort", ConfigHolder.CONFIG.proxyPort.get()); - proxy = new Proxy(proxyType, new InetSocketAddress(host, port)); + proxy = new Proxy(ConfigHolder.CONFIG.proxyType.get(), new InetSocketAddress(host, port)); String user = ConfigHolder.CONFIG.proxyUser.get(); String pass = ConfigHolder.CONFIG.proxyPass.get(); diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/SettingsPage.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/SettingsPage.java index 2d547d118..e496a2bac 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/SettingsPage.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/SettingsPage.java @@ -155,7 +155,7 @@ public final class SettingsPage extends StackPane implements DecoratorPage { chkProxySocks.setToggleGroup(proxyConfigurationGroup); for (Toggle toggle : proxyConfigurationGroup.getToggles()) - if (toggle.getUserData() == Settings.INSTANCE.getProxyType()) + if (toggle.getUserData() == ConfigHolder.CONFIG.proxyType.get()) toggle.setSelected(true); ToggleGroup hasProxyGroup = new ToggleGroup(); @@ -171,7 +171,7 @@ public final class SettingsPage extends StackPane implements DecoratorPage { ConfigHolder.CONFIG.hasProxy.set(newValue != chkNoProxy)); proxyConfigurationGroup.selectedToggleProperty().addListener((a, b, newValue) -> - Settings.INSTANCE.setProxyType((Proxy.Type) newValue.getUserData())); + ConfigHolder.CONFIG.proxyType.set((Proxy.Type) newValue.getUserData())); chkProxyAuthentication.setSelected(ConfigHolder.CONFIG.hasProxyAuth.get()); chkProxyAuthentication.selectedProperty().addListener((a, b, newValue) -> ConfigHolder.CONFIG.hasProxyAuth.set(newValue));