Allow clearing Google backup

pull/217/head
M66B 11 months ago
parent ac4c3b7036
commit b173082b5b

@ -65,12 +65,10 @@ public class FairEmailBackupAgent extends BackupAgent {
EntityLog.log(this, "Backup start enabled=" + enabled);
if (!enabled)
return;
JSONObject jroot = new JSONObject();
jroot.put("version", 1);
if (enabled) {
JSONObject jsettings = new JSONObject();
jsettings.put("enabled", prefs.getBoolean("enabled", true));
jsettings.put("poll_interval", prefs.getInt("poll_interval", 0));
@ -108,6 +106,7 @@ public class FairEmailBackupAgent extends BackupAgent {
Log.e(ex);
}
jroot.put("accounts", jaccounts);
}
byte[] dataBuf = jroot.toString().getBytes(StandardCharsets.UTF_8);
String dataHash = Helper.sha256(dataBuf);
@ -153,14 +152,11 @@ public class FairEmailBackupAgent extends BackupAgent {
@Override
public void onRestore(BackupDataInput data, int appVersionCode, ParcelFileDescriptor newState) {
try {
EntityLog.log(this, "Restore start version=" + appVersionCode);
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
boolean enabled = prefs.getBoolean("google_backup", BuildConfig.PLAY_STORE_RELEASE);
EntityLog.log(this, "Restore start enabled=" + enabled + " version=" + appVersionCode);
if (!enabled)
return;
while (data.readNextHeader()) {
String dataKey = data.getKey();
int dataSize = data.getDataSize();
@ -181,6 +177,11 @@ public class FairEmailBackupAgent extends BackupAgent {
JSONObject jroot = new JSONObject(new String(dataBuf, StandardCharsets.UTF_8));
EntityLog.log(this, "Restore version=" + jroot.optInt("version", 0));
if (!enabled || !jroot.has("accounts")) {
EntityLog.log(this, "Restore empty or disabled");
continue;
}
SharedPreferences.Editor editor = prefs.edit();
JSONObject jsettings = jroot.getJSONObject("settings");
editor.putBoolean("enabled", jsettings.optBoolean("enabled"));

Loading…
Cancel
Save