Simplified and changed updated process to be more versatile and flexible
This commit is contained in:
parent
3c9ef9c987
commit
141374eee3
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -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
|
||||
|
|
|
@ -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()){
|
||||
up.checkForUpdate();
|
||||
new Thread(new Runnable() {
|
||||
|
||||
public void run() {
|
||||
Updater up = new Updater();
|
||||
up.checkForUpdate();
|
||||
}
|
||||
}).start();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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{
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -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{
|
||||
uc.upToDate();
|
||||
} else{
|
||||
if(uc.getLatestVersion() == Start.VERSION){
|
||||
MainGui.addNotification("QuickLaunch is up to date", 2);
|
||||
uT = new Thread(new UpdateThread());
|
||||
uT.start();
|
||||
}
|
||||
uc.close();
|
||||
}catch(Exception e){
|
||||
else {
|
||||
MainGui.addNotification("Update server unavailable", 2);
|
||||
}
|
||||
new UpdateFileHandler().launch();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue