From 77753bd3778f692740909e0d761148f7eff7076d Mon Sep 17 00:00:00 2001 From: 0xboobface <0xboobface@gmail.com> Date: Sat, 5 Jan 2019 16:38:48 +0100 Subject: [PATCH] Use TextArea and Okhttp to show the chnagelog Instead of using a WebView use TextArea and Okhttp, so that we can get rid of javafx-web --- client/src/main/java/ctbrec/ui/UpdateTab.java | 40 +++++++++++-------- 1 file changed, 24 insertions(+), 16 deletions(-) diff --git a/client/src/main/java/ctbrec/ui/UpdateTab.java b/client/src/main/java/ctbrec/ui/UpdateTab.java index 43eb3e61..f6c8fbfb 100644 --- a/client/src/main/java/ctbrec/ui/UpdateTab.java +++ b/client/src/main/java/ctbrec/ui/UpdateTab.java @@ -3,23 +3,25 @@ package ctbrec.ui; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import ctbrec.Config; +import ctbrec.io.HttpException; import ctbrec.ui.CamrecApplication.Release; +import ctbrec.ui.controls.Dialogs; import javafx.geometry.Insets; import javafx.geometry.Pos; import javafx.scene.control.Button; import javafx.scene.control.Label; import javafx.scene.control.Tab; +import javafx.scene.control.TextArea; import javafx.scene.layout.Priority; import javafx.scene.layout.VBox; -import javafx.scene.web.WebEngine; -import javafx.scene.web.WebView; +import okhttp3.Request; +import okhttp3.Response; public class UpdateTab extends Tab { private static final transient Logger LOG = LoggerFactory.getLogger(UpdateTab.class); - private WebView browser; + private TextArea changelog; public UpdateTab(Release latest) { setText("Update Available"); @@ -32,18 +34,24 @@ public class UpdateTab extends Tab { vbox.getChildren().add(button); VBox.setMargin(button, new Insets(0, 0, 10, 0)); vbox.setAlignment(Pos.CENTER); - - browser = new WebView(); - try { - WebEngine webEngine = browser.getEngine(); - webEngine.load("https://raw.githubusercontent.com/0xboobface/ctbrec/master/CHANGELOG.md"); - webEngine.setUserDataDirectory(Config.getInstance().getConfigDir()); - vbox.getChildren().add(browser); - VBox.setVgrow(browser, Priority.ALWAYS); - } catch (Exception e) { - LOG.error("Couldn't load changelog", e); - } - + changelog = new TextArea(); + changelog.setEditable(false); + vbox.getChildren().add(changelog); + VBox.setVgrow(changelog, Priority.ALWAYS); setContent(vbox); + + new Thread(() -> { + Request req = new Request.Builder().url("https://raw.githubusercontent.com/0xboobface/ctbrec/master/CHANGELOG.md").build(); + try(Response resp = CamrecApplication.httpClient.execute(req)) { + if(resp.isSuccessful()) { + changelog.setText(resp.body().string()); + } else { + throw new HttpException(resp.code(), resp.message()); + } + } catch (Exception e1) { + LOG.error("Couldn't download the changelog", e1); + Dialogs.showError("Communication error", "Couldn't download the changelog", e1); + } + }).start(); } }