Simplified classifier backup

pull/207/head
M66B 4 years ago
parent 7e1c4fd8de
commit 1db5741187

@ -2716,7 +2716,7 @@ public class Log {
attachment.id = db.attachment().insertAttachment(attachment); attachment.id = db.attachment().insertAttachment(attachment);
MessageClassifier.save(context); MessageClassifier.save(context);
File source = MessageClassifier.getFile(context); File source = MessageClassifier.getFile(context, false);
File target = attachment.getFile(context); File target = attachment.getFile(context);
Helper.copy(source, target); Helper.copy(source, target);

@ -399,16 +399,11 @@ public class MessageClassifier {
long start = new Date().getTime(); long start = new Date().getTime();
File file = getFile(context); File file = getFile(context, false);
if (file.exists()) File backup = getFile(context, true);
try {
File backup = getBackupFile(context);
Log.i("Classifier backup " + backup);
backup.delete(); backup.delete();
if (file.exists())
file.renameTo(backup); file.renameTo(backup);
} catch (Throwable ex) {
Log.w(ex);
}
Log.i("Classifier save " + file); Log.i("Classifier save " + file);
try (JsonWriter writer = new JsonWriter(new BufferedWriter(new FileWriter(file)))) { try (JsonWriter writer = new JsonWriter(new BufferedWriter(new FileWriter(file)))) {
@ -477,6 +472,8 @@ public class MessageClassifier {
writer.endObject(); writer.endObject();
} }
backup.delete();
dirty = false; dirty = false;
long elapsed = new Date().getTime() - start; long elapsed = new Date().getTime() - start;
@ -488,21 +485,12 @@ public class MessageClassifier {
return; return;
clear(context); clear(context);
File file = getFile(context); File file = getFile(context, false);
try { File backup = getFile(context, true);
_load(file);
} catch (MalformedJsonException ex) {
Log.w(ex);
clear(context);
File backup = getBackupFile(context);
if (backup.exists()) if (backup.exists())
file = backup;
try { try {
_load(backup); _load(file);
} catch (Throwable ex1) {
Log.e(ex1);
backup.delete();
clear(context);
}
} catch (Throwable ex) { } catch (Throwable ex) {
Log.e(ex); Log.e(ex);
file.delete(); file.delete();
@ -689,12 +677,9 @@ public class MessageClassifier {
return prefs.getBoolean("classification", false); return prefs.getBoolean("classification", false);
} }
static File getFile(@NonNull Context context) { static File getFile(@NonNull Context context, boolean backup) {
return new File(context.getFilesDir(), "classifier.json"); return new File(context.getFilesDir(),
} backup ? "classifier.backup" : "classifier.json");
static File getBackupFile(@NonNull Context context) {
return new File(context.getFilesDir(), "classifier.backup");
} }
private static class State { private static class State {

Loading…
Cancel
Save