diff --git a/.gitignore b/.gitignore index ac71cac..c0b24fc 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,6 @@ /out/production /.idea /jLSLauncher.iml -/out/artifacts/jLSLauncher_jar/config.dat -/config.dat +/out/artifacts/jLSLauncher_jar/config.json +/config.json # Created by .ignore support plugin (hsz.mobi) \ No newline at end of file diff --git a/.idea/artifacts/jLSLauncher_jar.xml b/.idea/artifacts/jLSLauncher_jar.xml index fafcc6d..1b76e2c 100644 --- a/.idea/artifacts/jLSLauncher_jar.xml +++ b/.idea/artifacts/jLSLauncher_jar.xml @@ -3,7 +3,7 @@ $PROJECT_DIR$/out/artifacts/jLSLauncher_jar - + \ No newline at end of file diff --git a/.idea/libraries/json_20140107.xml b/.idea/libraries/json_20140107.xml index b78ffb2..720b200 100644 --- a/.idea/libraries/json_20140107.xml +++ b/.idea/libraries/json_20140107.xml @@ -1,7 +1,7 @@ - + diff --git a/README.md b/README.md index abd7a85..8312f7b 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ Optionally you can download Livestreamer here: http://docs.livestreamer.io/insta `jLSLauncher.jar` does not need an installation and can be executed as is. You can move or copy this tool to any other location you like. -The configuration is stored in a file named `config.dat` which, if present, has to be moved to the same location. +The configuration is stored in a file named `config.json` which, if present, has to be moved to the same location. ### Usage of jLSLauncher diff --git a/jLSLauncher.iml b/jLSLauncher.iml index d4d626f..9d8785d 100644 --- a/jLSLauncher.iml +++ b/jLSLauncher.iml @@ -8,5 +8,6 @@ + \ No newline at end of file diff --git a/src/lib/JSON/json-20140107.jar b/lib/json-20140107.jar similarity index 100% rename from src/lib/JSON/json-20140107.jar rename to lib/json-20140107.jar diff --git a/lib/json-io-4.4.0.jar b/lib/json-io-4.4.0.jar new file mode 100644 index 0000000..976ff83 Binary files /dev/null and b/lib/json-io-4.4.0.jar differ diff --git a/src/com/ixab/ConfigHandling/Config.java b/src/com/ixab/ConfigHandling/Config.java index 9d1e1ac..7dbe98d 100644 --- a/src/com/ixab/ConfigHandling/Config.java +++ b/src/com/ixab/ConfigHandling/Config.java @@ -33,7 +33,6 @@ public class Config implements Serializable { } public void setLastSelectedQuality(int lastSelectedQuality) { this.lastSelectedQuality = lastSelectedQuality; - ConfigFileIOHandler.save(); } private int lastSelectedQuality; public Config() { diff --git a/src/com/ixab/ConfigHandling/ConfigFileIOHandler.java b/src/com/ixab/ConfigHandling/ConfigFileIOHandler.java index cf1df0c..ac289fc 100644 --- a/src/com/ixab/ConfigHandling/ConfigFileIOHandler.java +++ b/src/com/ixab/ConfigHandling/ConfigFileIOHandler.java @@ -1,53 +1,61 @@ package com.ixab.ConfigHandling; +import com.cedarsoftware.util.io.JsonReader; +import com.cedarsoftware.util.io.JsonWriter; import com.ixab.Logging.Logger; import java.io.*; +import java.util.Scanner; public class ConfigFileIOHandler { public static Config load(String path) { - Config c = null; - try - { - FileInputStream fileIn = new FileInputStream(path); - ObjectInputStream in = new ObjectInputStream(fileIn); - c = (Config) in.readObject(); - in.close(); - fileIn.close(); - }catch(IOException i) - { - i.printStackTrace(); + + String content; + StringBuilder sb = new StringBuilder(); + try { + String line = null; + FileReader fr = new FileReader(path); + BufferedReader br = new BufferedReader(fr); + while ((line = br.readLine()) != null) { + sb.append(line); + } + br.close(); + } catch (FileNotFoundException e) { + e.printStackTrace(); return null; - }catch(ClassNotFoundException e) - { - Logger.print("Config class not found"); + } catch (IOException e) { e.printStackTrace(); return null; } - return c; + content = sb.toString(); + Config c = (Config) JsonReader.jsonToJava(content); + if (c instanceof Config) { + Logger.print("Config loaded."); + return c; + } else { + return null; + } } public static void save(Config c, String path) { - try - { - FileOutputStream fileOut = - new FileOutputStream("config.dat"); - ObjectOutputStream out = new ObjectOutputStream(fileOut); - out.writeObject(c); - out.close(); - fileOut.close(); - Logger.print("Config data is saved in config.dat"); - }catch(IOException i) - { - i.printStackTrace(); + try { + FileWriter fw = new FileWriter(path); + BufferedWriter bw = new BufferedWriter(fw); + bw.write(JsonWriter.formatJson(JsonWriter.objectToJson(c))); + bw.close(); + Logger.print("Config saved."); + } catch (FileNotFoundException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); } } public static Config load() { - return load("config.dat"); + return load("config.json"); } public static void save(Config c) { - save(c, "config.dat"); + save(c, "config.json"); } public static void save() { - save(ConfigFileInstanceHandler.getConfig(), "config.dat"); + save(ConfigFileInstanceHandler.getConfig(), "config.json"); } } diff --git a/src/com/ixab/GUI/MainWindow.form b/src/com/ixab/GUI/MainWindow.form index f65638f..dd8c671 100644 --- a/src/com/ixab/GUI/MainWindow.form +++ b/src/com/ixab/GUI/MainWindow.form @@ -6,8 +6,8 @@ - - + + diff --git a/src/com/ixab/GUI/MainWindow.java b/src/com/ixab/GUI/MainWindow.java index cacfb39..2aa0331 100644 --- a/src/com/ixab/GUI/MainWindow.java +++ b/src/com/ixab/GUI/MainWindow.java @@ -242,6 +242,6 @@ public class MainWindow { frame.setLocationByPlatform(true); frame.setVisible(true); frame.setResizable(true); - frame.setMinimumSize(new Dimension(680, 400)); + frame.setMinimumSize(new Dimension(680, 440)); } } diff --git a/src/com/ixab/Main.java b/src/com/ixab/Main.java index f849eea..62523da 100644 --- a/src/com/ixab/Main.java +++ b/src/com/ixab/Main.java @@ -5,11 +5,12 @@ import com.ixab.ConfigHandling.ConfigFileIOHandler; import com.ixab.ConfigHandling.ConfigFileInstanceHandler; import com.ixab.GUI.AlertWindow; import com.ixab.GUI.MainWindow; +import com.ixab.Logging.Logger; import javax.swing.*; public class Main { - private final static String version = "0.52 Alpha"; + private final static String version = "0.55 Alpha"; private static Config c = null; public static void main(String[] args) { try {