diff --git a/G-Earth/src/main/java/gearth/ui/connection/ConnectionController.java b/G-Earth/src/main/java/gearth/ui/connection/ConnectionController.java index 77ea986..98fa961 100644 --- a/G-Earth/src/main/java/gearth/ui/connection/ConnectionController.java +++ b/G-Earth/src/main/java/gearth/ui/connection/ConnectionController.java @@ -98,7 +98,9 @@ public class ConnectionController extends SubForm { txtfield_hotelversion.setText(getHConnection().getHotelVersion()); btnConnect.setDisable(getHConnection().getState() == HState.PREPARING || getHConnection().getState() == HState.ABORTING); - if (!cbx_autodetect.isSelected() && !btnConnect.isDisable()) { + + + if (!cbx_autodetect.isSelected() && !btnConnect.isDisable() && useFlash()) { try { int i = Integer.parseInt(inpPort.getEditor().getText()); btnConnect.setDisable(i < 0 || i >= 256 * 256); @@ -110,6 +112,13 @@ public class ConnectionController extends SubForm { inpHost.setDisable(getHConnection().getState() != HState.NOT_CONNECTED || cbx_autodetect.isSelected()); inpPort.setDisable(getHConnection().getState() != HState.NOT_CONNECTED || cbx_autodetect.isSelected()); + + cbx_autodetect.setDisable(!useFlash()); + outHost.setDisable(!useFlash()); + outPort.setDisable(!useFlash()); + + inpHost.setDisable(!useFlash() || getHConnection().getState() != HState.NOT_CONNECTED || cbx_autodetect.isSelected()); + inpPort.setDisable(!useFlash() || getHConnection().getState() != HState.NOT_CONNECTED || cbx_autodetect.isSelected()); } public void onParentSet(){ @@ -134,14 +143,15 @@ public class ConnectionController extends SubForm { if (newState == HState.CONNECTED) { lblState.setText("Connected"); - outHost.setText(getHConnection().getDomain()); - outPort.setText(getHConnection().getServerPort()+""); } if (newState == HState.WAITING_FOR_CLIENT) { lblState.setText("Waiting for connection"); } - if (newState == HState.CONNECTED) { + if (newState == HState.CONNECTED && useFlash()) { + outHost.setText(getHConnection().getDomain()); + outPort.setText(getHConnection().getServerPort()+""); + JSONObject connectionSettings = new JSONObject(); connectionSettings.put(AUTODETECT_CACHE, cbx_autodetect.isSelected()); connectionSettings.put(HOST_CACHE, inpHost.getEditor().getText()); @@ -178,5 +188,12 @@ public class ConnectionController extends SubForm { protected void onExit() { getHConnection().abort(); } - + + public void changeClientMode() { + updateInputUI(); + } + + private boolean useFlash() { + return parentController.extraController.rd_flash.isSelected(); + } } diff --git a/G-Earth/src/main/java/gearth/ui/extra/ExtraController.java b/G-Earth/src/main/java/gearth/ui/extra/ExtraController.java index 49b8a37..d7212eb 100644 --- a/G-Earth/src/main/java/gearth/ui/extra/ExtraController.java +++ b/G-Earth/src/main/java/gearth/ui/extra/ExtraController.java @@ -10,12 +10,13 @@ import gearth.services.gpython.GPythonVersionUtils; import gearth.ui.SubForm; import gearth.ui.info.InfoController; import javafx.application.Platform; +import javafx.beans.InvalidationListener; +import javafx.beans.Observable; import javafx.event.ActionEvent; import javafx.scene.control.*; import javafx.scene.layout.FlowPane; import javafx.scene.layout.GridPane; import javafx.scene.layout.Region; -import javafx.scene.web.WebView; import org.json.JSONObject; /** @@ -29,6 +30,8 @@ public class ExtraController extends SubForm implements SocksConfiguration { public static final String SOCKS_CACHE_KEY = "socks_config"; public static final String GPYTHON_CACHE_KEY = "use_gpython"; + public static final String USE_UNITY_CLIENT_CACHE_KEY = "use_unity"; + public static final String SOCKS_IP = "ip"; public static final String SOCKS_PORT = "port"; // public static final String IGNORE_ONCE = "ignore_once"; @@ -52,9 +55,14 @@ public class ExtraController extends SubForm implements SocksConfiguration { public GridPane grd_socksInfo; public TextField txt_socksPort; public TextField txt_socksIp; -// public CheckBox cbx_socksUseIfNeeded; + + + public ToggleGroup tgl_clientMode; + public RadioButton rd_unity; + public RadioButton rd_flash; public void initialize() { + tgl_clientMode.selectedToggleProperty().addListener(observable -> parentController.connectionController.changeClientMode()); url_troubleshooting.setTooltip(new Tooltip("https://github.com/sirjonasxx/G-Earth/wiki/Troubleshooting")); InfoController.activateHyperlink(url_troubleshooting); @@ -75,6 +83,11 @@ public class ExtraController extends SubForm implements SocksConfiguration { cbx_gpython.setSelected(Cacher.getCacheContents().getBoolean(GPYTHON_CACHE_KEY)); } + if (Cacher.getCacheContents().has(USE_UNITY_CLIENT_CACHE_KEY)) { + rd_unity.setSelected(Cacher.getCacheContents().getBoolean(USE_UNITY_CLIENT_CACHE_KEY)); + rd_flash.setSelected(!Cacher.getCacheContents().getBoolean(USE_UNITY_CLIENT_CACHE_KEY)); + } + cbx_debug.selectedProperty().addListener(observable -> HConnection.DEBUG = cbx_debug.isSelected()); cbx_disableDecryption.selectedProperty().addListener(observable -> HConnection.DECRYPTPACKETS = !cbx_disableDecryption.isSelected()); @@ -102,6 +115,7 @@ public class ExtraController extends SubForm implements SocksConfiguration { protected void onExit() { Cacher.put(NOTEPAD_CACHE_KEY, txtarea_notepad.getText()); Cacher.put(GPYTHON_CACHE_KEY, cbx_gpython.isSelected()); + Cacher.put(USE_UNITY_CLIENT_CACHE_KEY, rd_unity.isSelected()); saveSocksConfig(); } diff --git a/G-Earth/src/main/resources/gearth/ui/extra/Extra.fxml b/G-Earth/src/main/resources/gearth/ui/extra/Extra.fxml index b896a11..d84f2ff 100644 --- a/G-Earth/src/main/resources/gearth/ui/extra/Extra.fxml +++ b/G-Earth/src/main/resources/gearth/ui/extra/Extra.fxml @@ -4,7 +4,7 @@ - + @@ -28,31 +28,31 @@ + - + - + - - - + + - + - + - - + + @@ -104,7 +104,7 @@ - + @@ -112,11 +112,31 @@ - + + + + + + + + + + + + + + + + + + + + +