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 {