Added debug option to disable emergency file

This commit is contained in:
M66B
2023-01-18 00:12:29 +01:00
parent 4267aa92f9
commit 495412c16c
4 changed files with 56 additions and 26 deletions

View File

@@ -267,35 +267,42 @@ public abstract class DB extends RoomDatabase {
}
static void createEmergencyBackup(Context context) {
Log.i("Creating emergency backup");
try {
DB db = DB.getInstance(context);
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
boolean emergency_file = prefs.getBoolean("emergency_file", true);
JSONArray jaccounts = new JSONArray();
List<EntityAccount> accounts = db.account().getAccounts();
for (EntityAccount account : accounts) {
JSONObject jaccount = account.toJSON();
File emergency = new File(context.getFilesDir(), "emergency.json");
JSONArray jfolders = new JSONArray();
List<EntityFolder> folders = db.folder().getFolders(account.id, false, true);
for (EntityFolder folder : folders)
jfolders.put(folder.toJSON());
jaccount.put("folders", jfolders);
if (emergency_file) {
Log.i("Creating emergency backup");
try {
DB db = DB.getInstance(context);
JSONArray jidentities = new JSONArray();
List<EntityIdentity> identities = db.identity().getIdentities(account.id);
for (EntityIdentity identity : identities)
jidentities.put(identity.toJSON());
jaccount.put("identities", jidentities);
JSONArray jaccounts = new JSONArray();
List<EntityAccount> accounts = db.account().getAccounts();
for (EntityAccount account : accounts) {
JSONObject jaccount = account.toJSON();
jaccounts.put(jaccount);
JSONArray jfolders = new JSONArray();
List<EntityFolder> folders = db.folder().getFolders(account.id, false, true);
for (EntityFolder folder : folders)
jfolders.put(folder.toJSON());
jaccount.put("folders", jfolders);
JSONArray jidentities = new JSONArray();
List<EntityIdentity> identities = db.identity().getIdentities(account.id);
for (EntityIdentity identity : identities)
jidentities.put(identity.toJSON());
jaccount.put("identities", jidentities);
jaccounts.put(jaccount);
}
Helper.writeText(emergency, jaccounts.toString(2));
} catch (Throwable ex) {
Log.e(ex);
}
File emergency = new File(context.getFilesDir(), "emergency.json");
Helper.writeText(emergency, jaccounts.toString(2));
} catch (Throwable ex) {
Log.e(ex);
}
} else
emergency.delete();
}
private static void checkEmergencyBackup(Context context) {