Added version to Settings

pull/3/head
Olga Miller 2017-02-28 16:38:20 +01:00
rodzic be8b66828b
commit 949eddfeed
1 zmienionych plików z 18 dodań i 3 usunięć

Wyświetl plik

@ -33,9 +33,11 @@ import java.io.OutputStreamWriter;
import om.sstvencoder.Modes.ModeFactory; import om.sstvencoder.Modes.ModeFactory;
class Settings { class Settings {
private final static String VERSION = "version";
private final static String IMAGE_URI = "image_uri"; private final static String IMAGE_URI = "image_uri";
private final static String TEXT_OVERLAY_PATH = "text_overlay_path"; private final static String TEXT_OVERLAY_PATH = "text_overlay_path";
private final static String MODE_CLASS_NAME = "mode_class_name"; private final static String MODE_CLASS_NAME = "mode_class_name";
private final int mVersion;
private final String mFileName; private final String mFileName;
private Context mContext; private Context mContext;
private String mModeClassName; private String mModeClassName;
@ -43,6 +45,7 @@ class Settings {
private String mTextOverlayPath; private String mTextOverlayPath;
private Settings() { private Settings() {
mVersion = 1;
mFileName = "settings.json"; mFileName = "settings.json";
mModeClassName = ModeFactory.getDefaultModeClassName(); mModeClassName = ModeFactory.getDefaultModeClassName();
} }
@ -124,6 +127,7 @@ class Settings {
private void write(JsonWriter writer) throws IOException { private void write(JsonWriter writer) throws IOException {
writer.beginObject(); writer.beginObject();
{ {
writeVersion(writer);
writeModeClassName(writer); writeModeClassName(writer);
writeImageUri(writer); writeImageUri(writer);
writeTextOverlayPath(writer); writeTextOverlayPath(writer);
@ -131,6 +135,10 @@ class Settings {
writer.endObject(); writer.endObject();
} }
private void writeVersion(JsonWriter writer) throws IOException {
writer.name(VERSION).value(mVersion);
}
private void writeModeClassName(JsonWriter writer) throws IOException { private void writeModeClassName(JsonWriter writer) throws IOException {
writer.name(MODE_CLASS_NAME).value(mModeClassName); writer.name(MODE_CLASS_NAME).value(mModeClassName);
} }
@ -146,13 +154,20 @@ class Settings {
private void read(JsonReader reader) throws IOException { private void read(JsonReader reader) throws IOException {
reader.beginObject(); reader.beginObject();
{ {
if (readVersion(reader) == mVersion) {
readModeClassName(reader); readModeClassName(reader);
readImageUri(reader); readImageUri(reader);
readTextOverlayPath(reader); readTextOverlayPath(reader);
} }
}
reader.endObject(); reader.endObject();
} }
private int readVersion(JsonReader reader) throws IOException {
reader.nextName();
return reader.nextInt();
}
private void readModeClassName(JsonReader reader) throws IOException { private void readModeClassName(JsonReader reader) throws IOException {
reader.nextName(); reader.nextName();
mModeClassName = reader.nextString(); mModeClassName = reader.nextString();