Simplified and changed updated process to be more versatile and flexible

This commit is contained in:
ChococookieOS 2019-04-15 10:20:43 +02:00
parent 3c9ef9c987
commit 141374eee3
17 changed files with 106 additions and 158 deletions

Binary file not shown.

Binary file not shown.

View File

@ -1,4 +1,4 @@
#Sat Oct 06 17:21:25 CEST 2018
#Sun Apr 14 19:07:39 CEST 2019
Load-File-on-startup=true
key2=44
key1=29

View File

@ -29,7 +29,6 @@ public class BasicGuiApp extends Application{
public static Stage mainStage;
public static Scene mainScene;
public static KeyChecker listener;
public static Updater up = new Updater();
public BasicGuiApp(){
@ -78,8 +77,13 @@ public class BasicGuiApp extends Application{
primaryStage.show();
if(SettingManager.isCheckUptdateOnBoot()){
new Thread(new Runnable() {
public void run() {
Updater up = new Updater();
up.checkForUpdate();
}
}).start();
}
}

View File

@ -23,18 +23,23 @@ public class ResourceManager {
fontBig = Font.loadFont(ResourceManager.class.getResourceAsStream("/LiberationSerif-Regular.ttf"), 40);
fontSmall = Font.loadFont(ResourceManager.class.getResourceAsStream("/LiberationSerif-Regular.ttf"), 17);
addImage = new ImageView(new Image(ResourceManager.class.getResourceAsStream("/plus.png"), 32, 32, true, false));
addImage = loadIcon("/plus.png");
addImage.setFitWidth(32);
addImage.setFitHeight(32);
addImage.setPreserveRatio(true);
backImage = new ImageView(new Image(ResourceManager.class.getResourceAsStream("/back.png"), 32, 32 ,true, false));
editImage = new ImageView(new Image(ResourceManager.class.getResourceAsStream("/edit.png"),32 ,32, true, false));
lockImage = new ImageView(new Image(ResourceManager.class.getResourceAsStream("/lock.png"), 32, 32, true, false));
saveImage = new ImageView(new Image(ResourceManager.class.getResourceAsStream("/save.png"), 32, 32 ,true, false));
unsavedImage = new ImageView(new Image(ResourceManager.class.getResourceAsStream("/unsaved.png"), 32, 32, true, false));
backImage = loadIcon("/back.png");
editImage = loadIcon("/edit.png");
lockImage = loadIcon("/lock.png");
saveImage = loadIcon("/save.png");
unsavedImage = loadIcon("/unsaved.png");
trashImage = new ImageView(new Image(ResourceManager.class.getResourceAsStream("/trash.png"), 32, 32 ,true, false));
trashImage = loadIcon("/trash.png");
}
private static ImageView loadIcon(String path) {
return new ImageView(new Image(ResourceManager.class.getResourceAsStream(path), 32, 32,true , false));
}
public static Font getFontBig() {
@ -65,8 +70,6 @@ public class ResourceManager {
return lockImage;
}
public static ImageView getSaveImage() {
return saveImage;
}

View File

@ -21,13 +21,8 @@ public class SettingManager {
private static int key1 = -1,key2 = -1;
private static OperatingSystem currentOS = null;
private static String jarDirectory = "";
public SettingManager(){
if(System.getProperty("os.name").toLowerCase().contains("nux")){
currentOS = OperatingSystem.LINUX;
@ -57,10 +52,10 @@ public class SettingManager {
try{
input = new FileInputStream(settingFile);
prop.load(input);
loadFileOnBoot = Boolean.parseBoolean(prop.getProperty("Load-File-on-startup"));
checkUptdateOnBoot = Boolean.parseBoolean(prop.getProperty("Check-for-updates-on-startup"));
key1 = Integer.parseInt(prop.getProperty("key1"));
key2 = Integer.parseInt(prop.getProperty("key2"));
loadFileOnBoot = Boolean.parseBoolean(prop.getProperty("Load-File-on-startup", "true"));
checkUptdateOnBoot = Boolean.parseBoolean(prop.getProperty("Check-for-updates-on-startup", "true"));
key1 = Integer.parseInt(prop.getProperty("key1", "-1"));
key2 = Integer.parseInt(prop.getProperty("key2", "-1"));
}catch (IOException e) {
e.printStackTrace();
}finally{

View File

@ -17,6 +17,7 @@ import javafx.stage.StageStyle;
import main.Start;
import manager.SettingManager;
import scenes.SettingScene;
import update.Updater;
public class QuickLaunch extends BasicMod {
@ -94,7 +95,13 @@ public class QuickLaunch extends BasicMod {
}
private void checkForUpdates() {
BasicGuiApp.up.checkForUpdate();
new Thread(new Runnable() {
public void run() {
Updater up = new Updater();
up.checkForUpdate();
}
}).start();
}
private void loadFile() throws IOException {

View File

@ -6,81 +6,42 @@ import java.io.IOException;
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.HashMap;
public class UpdateChecker {
Socket socket;
DataInputStream in;
DataOutputStream out;
String ip;
int port;
float feedback = -1;
String linkToFile = "";
public UpdateChecker(String ip, int port){
this.ip = ip;
this.port = port;
HashMap<String, String> serverData = new HashMap<>();
public void requestServerData(){
try {
socket = new Socket();
socket.connect(new InetSocketAddress(InetAddress.getByName("cookiestudios.org"), port), 700);
in = new DataInputStream(socket.getInputStream());
out = new DataOutputStream(socket.getOutputStream());
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
Socket socket = new Socket();
socket.connect(new InetSocketAddress(InetAddress.getByName("cookiestudios.org"), 9999), 700);
DataInputStream in = new DataInputStream(socket.getInputStream());
DataOutputStream out = new DataOutputStream(socket.getOutputStream());
StringBuilder data = new StringBuilder();
data.append(System.getProperty("os.name")).append(";");
data.append(System.getProperty("os.version")).append(";");
data.append(System.getProperty("os.arch")).append(";");
data.append(System.getProperty("java.version"));
out.writeUTF(data.toString());
String[] response = in.readUTF().split(";");
for(String str: response) {
String[] keyValue = str.split("=");
serverData.put(keyValue[0], keyValue[1]);
}
}
public float getCurrentVersion(){
try {
feedback = in.readFloat();
out.writeUTF(System.getProperty("os.name"));
out.writeUTF(System.getProperty("os.version"));
out.writeUTF(System.getProperty("os.arch"));
out.writeUTF(System.getProperty("java.version"));
return feedback;
} catch (IOException e) {
e.printStackTrace();
return feedback;
}
}
public String getDownloadLink(){
try {
out.writeBoolean(true);
linkToFile = in.readUTF();
} catch (IOException e) {
e.printStackTrace();
}
return linkToFile;
}
public void upToDate() {
try {
out.writeBoolean(false);
} catch (IOException e) {
e.printStackTrace();
}
}
public void close(){
try {
out.writeBoolean(false);
in.close();
out.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public float getLatestVersion() {
if(serverData.containsKey("VERSION")) {
return Float.parseFloat(serverData.get("VERSION"));
}
return -1;
}
}

View File

@ -7,23 +7,22 @@ import java.nio.file.StandardCopyOption;
import manager.SettingManager;
public class UpdateThread implements Runnable {
public class UpdateFileHandler {
File sq;
File qlN;
File fMark;
public UpdateThread(){
public UpdateFileHandler(){
sq = new File(SettingManager.getJarDirectory()+File.separator+"Squirrel.jar");
qlN = new File(SettingManager.getJarDirectory()+File.separator+"QuickLaunch.jar");
fMark = new File(SettingManager.getJarDirectory()+File.separator+"f.MARK");
}
public void run(){
public void launch(){
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
if(sq.exists()){
@ -35,16 +34,11 @@ public class UpdateThread implements Runnable {
try {
Files.copy(sq.toPath(), qlN.toPath(),StandardCopyOption.REPLACE_EXISTING);
fMark.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}

View File

@ -1,10 +1,8 @@
package update;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.nio.channels.Channels;
import java.nio.channels.ReadableByteChannel;
@ -19,16 +17,12 @@ import manager.SettingManager;
public class Updater {
Thread uT;
public void checkForUpdate(){
try{
UpdateChecker uc = new UpdateChecker("cookiestudios.org", 9999);
float tmpversion = uc.getCurrentVersion();
System.out.println("got version: " + tmpversion);
if(tmpversion > Start.VERSION){
String dl = uc.getDownloadLink();
UpdateChecker uc = new UpdateChecker();
uc.requestServerData();
System.out.println("got version: " + uc.getLatestVersion());
if(uc.getLatestVersion() > Start.VERSION){
String dl = "https://cookiestudios.org/software/QuickLaunch/QuickLaunch.jar";
Alert updateAlert = new Alert(AlertType.INFORMATION,
"There is a newer version of QuickLaunch available\nDownload now?",
ButtonType.YES,
@ -44,39 +38,29 @@ public class Updater {
FileOutputStream fos = new FileOutputStream(SettingManager.getJarDirectory()+File.separator+"Squirrel.jar");
fos.getChannel().transferFrom(rbc, 0, Integer.MAX_VALUE);
fos.close();
System.out.println("Done");
try {
ProcessBuilder pb = new ProcessBuilder("java","-jar",SettingManager.getJarDirectory()+File.separator+"Squirrel.jar");
pb.directory(new File(SettingManager.getJarDirectory()));
pb.redirectErrorStream(true);
pb.redirectOutput(ProcessBuilder.Redirect.INHERIT);
pb.start();
}catch(Exception e) {
e.printStackTrace();
}
System.out.println("started newer version");
System.exit(0);
} catch (MalformedURLException e) {
e.printStackTrace();
MainGui.addNotification("Couldn´t reach update server", 2);
} catch (FileNotFoundException e) {
e.printStackTrace();
MainGui.addNotification("Couldn´t reach update server", 2);
} catch (IOException e) {
e.printStackTrace();
MainGui.addNotification("Couldn´t reach update server", 2);
MainGui.addNotification("Couldn't download update", 2);
}
}
} else{
if(uc.getLatestVersion() == Start.VERSION){
MainGui.addNotification("QuickLaunch is up to date", 2);
}
else {
uc.upToDate();
MainGui.addNotification("QuickLaunch is up to date", 2);
uT = new Thread(new UpdateThread());
uT.start();
MainGui.addNotification("Update server unavailable", 2);
}
uc.close();
}catch(Exception e){
new UpdateFileHandler().launch();
}
}