code clean up

This commit is contained in:
Jannik 2017-11-15 22:00:28 +01:00
parent 0a208f5a6b
commit 2b17d34841
2 changed files with 62 additions and 61 deletions

View File

@ -1558,7 +1558,7 @@ public class MainWindowController {
timePlayedBtnTransition.play(); timePlayedBtnTransition.play();
} }
void playBtnSlideOut(){ private void playBtnSlideOut(){
playTrue = false; playTrue = false;
TranslateTransition playBtnTransition = new TranslateTransition(Duration.millis(300), playBtn); TranslateTransition playBtnTransition = new TranslateTransition(Duration.millis(300), playBtn);
playBtnTransition.setFromY(0); playBtnTransition.setFromY(0);

View File

@ -43,110 +43,112 @@ import com.eclipsesource.json.JsonValue;
import javafx.application.Platform; import javafx.application.Platform;
public class UpdateController implements Runnable{ public class UpdateController implements Runnable {
private MainWindowController mainWindowController; private MainWindowController mainWindowController;
private String buildNumber; private String buildNumber;
private String apiOutput; private String apiOutput;
private String updateBuildNumber; //tag_name from Github private String updateBuildNumber; // tag_name from Github
private String browserDownloadUrl; //update download link private String browserDownloadUrl; // update download link
private String githubApiRelease = "https://api.github.com/repos/Seil0/cemu_UI/releases/latest"; private String githubApiRelease = "https://api.github.com/repos/Seil0/cemu_UI/releases/latest";
private String githubApiBeta = "https://api.github.com/repos/Seil0/cemu_UI/releases"; private String githubApiBeta = "https://api.github.com/repos/Seil0/cemu_UI/releases";
private URL githubApiUrl; private URL githubApiUrl;
private boolean useBeta; private boolean useBeta;
private static final Logger LOGGER = LogManager.getLogger(UpdateController.class.getName()); private static final Logger LOGGER = LogManager.getLogger(UpdateController.class.getName());
/** /**
* updater for cemu_UI based on Project HomeFlix * updater for cemu_UI based on Project HomeFlix checks for Updates and download
* checks for Updates and download it in case there is one * it in case there is one
*/ */
public UpdateController(MainWindowController mwc, String buildNumber, boolean useBeta){ public UpdateController(MainWindowController mwc, String buildNumber, boolean useBeta) {
mainWindowController = mwc; mainWindowController = mwc;
this.buildNumber = buildNumber; this.buildNumber = buildNumber;
this.useBeta = useBeta; this.useBeta = useBeta;
} }
public void run(){ @Override
public void run() {
System.out.println("checking for updates ..."); System.out.println("checking for updates ...");
Platform.runLater(() -> { Platform.runLater(() -> {
mainWindowController.getUpdateBtn().setText("checking for updates ..."); mainWindowController.getUpdateBtn().setText("checking for updates ...");
}); });
try { try {
if (useBeta) { if (useBeta) {
githubApiUrl = new URL(githubApiBeta); githubApiUrl = new URL(githubApiBeta);
} else { } else {
githubApiUrl = new URL(githubApiRelease); githubApiUrl = new URL(githubApiRelease);
} }
// URL githubApiUrl = new URL(githubApiRelease); // URL githubApiUrl = new URL(githubApiRelease);
BufferedReader ina = new BufferedReader(new InputStreamReader(githubApiUrl.openStream())); BufferedReader ina = new BufferedReader(new InputStreamReader(githubApiUrl.openStream()));
apiOutput = ina.readLine(); apiOutput = ina.readLine();
ina.close(); ina.close();
} catch (IOException e) { } catch (IOException e) {
Platform.runLater(() -> { Platform.runLater(() -> {
LOGGER.error("could not check update version", e); LOGGER.error("could not check update version", e);
}); });
} }
if (useBeta) { if (useBeta) {
JsonArray objectArray = Json.parse("{\"items\": " + apiOutput + "}").asObject().get("items").asArray(); JsonArray objectArray = Json.parse("{\"items\": " + apiOutput + "}").asObject().get("items").asArray();
JsonValue object = objectArray.get(0); JsonValue object = objectArray.get(0);
JsonArray objectAssets = object.asObject().get("assets").asArray(); JsonArray objectAssets = object.asObject().get("assets").asArray();
updateBuildNumber = object.asObject().getString("tag_name", "");
// updateName = object.asObject().getString("name", "");
// updateChanges = object.asObject().getString("body", "");
for (JsonValue asset : objectAssets) { updateBuildNumber = object.asObject().getString("tag_name", "");
browserDownloadUrl = asset.asObject().getString("browser_download_url", ""); // updateName = object.asObject().getString("name", "");
} // updateChanges = object.asObject().getString("body", "");
for (JsonValue asset : objectAssets) {
browserDownloadUrl = asset.asObject().getString("browser_download_url", "");
}
} else { } else {
JsonObject object = Json.parse(apiOutput).asObject(); JsonObject object = Json.parse(apiOutput).asObject();
JsonArray objectAssets = Json.parse(apiOutput).asObject().get("assets").asArray(); JsonArray objectAssets = Json.parse(apiOutput).asObject().get("assets").asArray();
updateBuildNumber = object.getString("tag_name", ""); updateBuildNumber = object.getString("tag_name", "");
// updateName = object.getString("name", ""); // updateName = object.getString("name", "");
// updateChanges = object.getString("body", ""); // updateChanges = object.getString("body", "");
for (JsonValue asset : objectAssets) { for (JsonValue asset : objectAssets) {
browserDownloadUrl = asset.asObject().getString("browser_download_url", ""); browserDownloadUrl = asset.asObject().getString("browser_download_url", "");
} }
} }
LOGGER.info("Build: "+buildNumber+", Update: "+updateBuildNumber); LOGGER.info("Build: " + buildNumber + ", Update: " + updateBuildNumber);
//Compares the program BuildNumber with the current BuildNumber if program BuildNumber < current BuildNumber then perform a update // Compares the program BuildNumber with the current BuildNumber if program
// BuildNumber < current BuildNumber then perform a update
int iversion = Integer.parseInt(buildNumber); int iversion = Integer.parseInt(buildNumber);
int iaktVersion = Integer.parseInt(updateBuildNumber.replace(".", "")); int iaktVersion = Integer.parseInt(updateBuildNumber.replace(".", ""));
if(iversion >= iaktVersion){ if (iversion >= iaktVersion) {
Platform.runLater(() -> { Platform.runLater(() -> {
mainWindowController.getUpdateBtn().setText("no update available"); mainWindowController.getUpdateBtn().setText("no update available");
}); });
LOGGER.info("no update available"); LOGGER.info("no update available");
}else{ } else {
Platform.runLater(() -> { Platform.runLater(() -> {
mainWindowController.getUpdateBtn().setText("update available"); mainWindowController.getUpdateBtn().setText("update available");
}); });
LOGGER.info("update available"); LOGGER.info("update available");
LOGGER.info("download link: " + browserDownloadUrl); LOGGER.info("download link: " + browserDownloadUrl);
try { try {
//open new Http connection, ProgressMonitorInputStream for downloading the data // open new Http connection, ProgressMonitorInputStream for downloading the data
HttpURLConnection conn = (HttpURLConnection) new URL(browserDownloadUrl).openConnection(); HttpURLConnection conn = (HttpURLConnection) new URL(browserDownloadUrl).openConnection();
ProgressMonitorInputStream pmis = new ProgressMonitorInputStream(null, "Downloading...", conn.getInputStream()); ProgressMonitorInputStream pmis = new ProgressMonitorInputStream(null, "Downloading...", conn.getInputStream());
ProgressMonitor pm = pmis.getProgressMonitor(); ProgressMonitor pm = pmis.getProgressMonitor();
pm.setMillisToDecideToPopup(0); pm.setMillisToDecideToPopup(0);
pm.setMillisToPopup(0); pm.setMillisToPopup(0);
pm.setMinimum(0);// tell the progress bar that we start at the beginning of the stream pm.setMinimum(0);// tell the progress bar that we start at the beginning of the stream
pm.setMaximum(conn.getContentLength());// tell the progress bar the total number of bytes we are going to read. pm.setMaximum(conn.getContentLength());// tell the progress bar the total number of bytes we are going to read.
FileUtils.copyInputStreamToFile(pmis, new File("cemu_UI_update.jar")); //download update FileUtils.copyInputStreamToFile(pmis, new File("cemu_UI_update.jar")); // download update
org.apache.commons.io.FileUtils.copyFile(new File("cemu_UI_update.jar"), new File("cemu_UI.jar")); //TODO rename update to old name org.apache.commons.io.FileUtils.copyFile(new File("cemu_UI_update.jar"), new File("cemu_UI.jar")); // TODO rename update to old name
org.apache.commons.io.FileUtils.deleteQuietly(new File("cemu_UI_update.jar")); //delete update org.apache.commons.io.FileUtils.deleteQuietly(new File("cemu_UI_update.jar")); // delete update
Runtime.getRuntime().exec("java -jar cemu_UI.jar"); //start again Runtime.getRuntime().exec("java -jar cemu_UI.jar"); // start again
System.exit(0); //finishes itself System.exit(0); // finishes itself
} catch (IOException e) { } catch (IOException e) {
Platform.runLater(() -> { Platform.runLater(() -> {
LOGGER.info("could not download update files", e); LOGGER.info("could not download update files", e);
@ -155,4 +157,3 @@ public class UpdateController implements Runnable{
} }
} }
} }