mirror of
https://github.com/olgamiller/SSTVEncoder2.git
synced 2025-12-06 06:52:01 +01:00
Added ModeClassName to Settings,
Use beginObject and endObject once while writing to and reading from settings file, Set image uri to null instead of empty in Settings class, if no uri is set
This commit is contained in:
parent
dbbfa21d75
commit
f26ee7bc1d
|
|
@ -74,9 +74,7 @@ public class MainActivity extends AppCompatActivity {
|
|||
mTextOverlayTemplate = new TextOverlayTemplate();
|
||||
mTextOverlayTemplate.load(mCropView.getLabels(), mSettings.getTextOverlayFile());
|
||||
|
||||
IModeInfo mode = mEncoder.getModeInfo();
|
||||
mCropView.setModeSize(mode.getModeSize());
|
||||
setTitle(mode.getModeName());
|
||||
setMode(mSettings.getModeClassName());
|
||||
loadImage(getIntent());
|
||||
}
|
||||
|
||||
|
|
@ -329,12 +327,17 @@ public class MainActivity extends AppCompatActivity {
|
|||
return true;
|
||||
default:
|
||||
String className = item.getIntent().getStringExtra(CLASS_NAME);
|
||||
if (mEncoder.setMode(className)) {
|
||||
setMode(className);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
private void setMode(String modeClassName) {
|
||||
if (mEncoder.setMode(modeClassName)) {
|
||||
IModeInfo modeInfo = mEncoder.getModeInfo();
|
||||
mCropView.setModeSize(modeInfo.getModeSize());
|
||||
setTitle(modeInfo.getModeName());
|
||||
}
|
||||
return true;
|
||||
mSettings.setModeClassName(modeClassName);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -29,6 +29,10 @@ public final class ModeFactory {
|
|||
return Robot36.class;
|
||||
}
|
||||
|
||||
public static String getDefaultModeClassName() {
|
||||
return (new ModeInfo(getDefaultMode())).getModeClassName();
|
||||
}
|
||||
|
||||
public static IModeInfo[] getModeInfoList() {
|
||||
return new IModeInfo[]{
|
||||
new ModeInfo(Martin1.class), new ModeInfo(Martin2.class),
|
||||
|
|
|
|||
|
|
@ -30,22 +30,26 @@ import java.io.InputStreamReader;
|
|||
import java.io.OutputStream;
|
||||
import java.io.OutputStreamWriter;
|
||||
|
||||
import om.sstvencoder.Modes.ModeFactory;
|
||||
|
||||
class Settings {
|
||||
private final static String IMAGE_URI = "image_uri";
|
||||
private final static String TEXT_OVERLAY_PATH = "text_overlay_path";
|
||||
private final static String MODE_CLASS_NAME = "mode_class_name";
|
||||
private final String mFileName;
|
||||
private Context mContext;
|
||||
private String mModeClassName;
|
||||
private String mImageUri;
|
||||
private String mTextOverlayPath;
|
||||
|
||||
private Settings() {
|
||||
mFileName = "settings.json";
|
||||
mModeClassName = ModeFactory.getDefaultModeClassName();
|
||||
}
|
||||
|
||||
Settings(Context context) {
|
||||
this();
|
||||
mContext = context;
|
||||
mImageUri = "";
|
||||
}
|
||||
|
||||
boolean load() {
|
||||
|
|
@ -54,8 +58,7 @@ class Settings {
|
|||
try {
|
||||
InputStream in = new FileInputStream(getFile());
|
||||
reader = new JsonReader(new InputStreamReader(in, "UTF-8"));
|
||||
readImageUri(reader);
|
||||
readTextOverlayPath(reader);
|
||||
read(reader);
|
||||
loaded = true;
|
||||
} catch (Exception ignore) {
|
||||
} finally {
|
||||
|
|
@ -76,8 +79,7 @@ class Settings {
|
|||
OutputStream out = new FileOutputStream(getFile());
|
||||
writer = new JsonWriter(new OutputStreamWriter(out, "UTF-8"));
|
||||
writer.setIndent(" ");
|
||||
writeImageUri(writer);
|
||||
writeTextOverlayPath(writer);
|
||||
write(writer);
|
||||
saved = true;
|
||||
} catch (Exception ignore) {
|
||||
} finally {
|
||||
|
|
@ -91,12 +93,20 @@ class Settings {
|
|||
return saved;
|
||||
}
|
||||
|
||||
void setModeClassName(String modeClassName) {
|
||||
mModeClassName = modeClassName;
|
||||
}
|
||||
|
||||
String getModeClassName() {
|
||||
return mModeClassName;
|
||||
}
|
||||
|
||||
void setImageUri(Uri uri) {
|
||||
mImageUri = uri == null ? "" : uri.toString();
|
||||
mImageUri = uri == null ? null : uri.toString();
|
||||
}
|
||||
|
||||
Uri getImageUri() {
|
||||
if ("".equals(mImageUri))
|
||||
if (mImageUri == null)
|
||||
return null;
|
||||
return Uri.parse(mImageUri);
|
||||
}
|
||||
|
|
@ -111,21 +121,44 @@ class Settings {
|
|||
return new File(mContext.getFilesDir(), mFileName);
|
||||
}
|
||||
|
||||
private void writeImageUri(JsonWriter writer) throws IOException {
|
||||
private void write(JsonWriter writer) throws IOException {
|
||||
writer.beginObject();
|
||||
writer.name(IMAGE_URI).value(mImageUri);
|
||||
{
|
||||
writeModeClassName(writer);
|
||||
writeImageUri(writer);
|
||||
writeTextOverlayPath(writer);
|
||||
}
|
||||
writer.endObject();
|
||||
}
|
||||
|
||||
private void writeModeClassName(JsonWriter writer) throws IOException {
|
||||
writer.name(MODE_CLASS_NAME).value(mModeClassName);
|
||||
}
|
||||
|
||||
private void writeImageUri(JsonWriter writer) throws IOException {
|
||||
writer.name(IMAGE_URI).value(mImageUri);
|
||||
}
|
||||
|
||||
private void writeTextOverlayPath(JsonWriter writer) throws IOException {
|
||||
writer.beginObject();
|
||||
writer.name(TEXT_OVERLAY_PATH).value(mTextOverlayPath);
|
||||
writer.endObject();
|
||||
}
|
||||
|
||||
private void read(JsonReader reader) throws IOException {
|
||||
reader.beginObject();
|
||||
{
|
||||
readModeClassName(reader);
|
||||
readImageUri(reader);
|
||||
readTextOverlayPath(reader);
|
||||
}
|
||||
reader.endObject();
|
||||
}
|
||||
|
||||
private void readModeClassName(JsonReader reader) throws IOException {
|
||||
reader.nextName();
|
||||
mModeClassName = reader.nextString();
|
||||
}
|
||||
|
||||
private void readImageUri(JsonReader reader) throws IOException {
|
||||
reader.beginObject();
|
||||
{
|
||||
reader.nextName();
|
||||
if (reader.peek() == JsonToken.NULL) {
|
||||
reader.nextNull();
|
||||
|
|
@ -133,15 +166,9 @@ class Settings {
|
|||
} else
|
||||
mImageUri = reader.nextString();
|
||||
}
|
||||
reader.endObject();
|
||||
}
|
||||
|
||||
private void readTextOverlayPath(JsonReader reader) throws IOException {
|
||||
reader.beginObject();
|
||||
{
|
||||
reader.nextName();
|
||||
mTextOverlayPath = reader.nextString();
|
||||
}
|
||||
reader.endObject();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue