From 99412f294f486225828818c8ba1d05300e736abc Mon Sep 17 00:00:00 2001 From: M66B Date: Mon, 29 Jul 2019 20:05:23 +0200 Subject: [PATCH] Fixed mapping folders on importing rules --- .../java/eu/faircode/email/ActivitySetup.java | 31 ++++++++++--------- .../java/eu/faircode/email/EntityAccount.java | 3 +- 2 files changed, 19 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/ActivitySetup.java b/app/src/main/java/eu/faircode/email/ActivitySetup.java index 99c7c786f3..563fe5e261 100644 --- a/app/src/main/java/eu/faircode/email/ActivitySetup.java +++ b/app/src/main/java/eu/faircode/email/ActivitySetup.java @@ -759,7 +759,7 @@ public class ActivitySetup extends ActivityBase implements FragmentManager.OnBac answer.id = db.answer().insertAnswer(answer); xAnswer.put(id, answer.id); - Log.i("Imported answer=" + answer.name); + Log.i("Imported answer=" + answer.name + " id=" + answer.id + " (" + id + ")"); } // Accounts @@ -767,6 +767,8 @@ public class ActivitySetup extends ActivityBase implements FragmentManager.OnBac for (int a = 0; a < jaccounts.length(); a++) { JSONObject jaccount = (JSONObject) jaccounts.get(a); EntityAccount account = EntityAccount.fromJSON(jaccount); + Long aid = account.id; + account.id = null; // Forward referenced Long swipe_left = account.swipe_left; @@ -778,7 +780,7 @@ public class ActivitySetup extends ActivityBase implements FragmentManager.OnBac account.created = new Date().getTime(); account.id = db.account().insertAccount(account); - Log.i("Imported account=" + account.name); + Log.i("Imported account=" + account.name + " id=" + account.id + " (" + aid + ")"); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { account.deleteNotificationChannel(context); @@ -809,7 +811,7 @@ public class ActivitySetup extends ActivityBase implements FragmentManager.OnBac identity.id = db.identity().insertIdentity(identity); xIdentity.put(id, identity.id); - Log.i("Imported identity=" + identity.email); + Log.i("Imported identity=" + identity.email + " id=" + identity + id + " (" + id + ")"); } Map xFolder = new HashMap<>(); @@ -854,14 +856,14 @@ public class ActivitySetup extends ActivityBase implements FragmentManager.OnBac rules.add(rule); } } - Log.i("Imported folder=" + folder.name); + Log.i("Imported folder=" + folder.name + " id=" + folder.id + " (" + id + ")"); } for (EntityRule rule : rules) { try { JSONObject jaction = new JSONObject(rule.action); - int type = jaction.getInt("type"); + int type = jaction.getInt("type"); switch (type) { case EntityRule.TYPE_MOVE: case EntityRule.TYPE_COPY: @@ -870,14 +872,16 @@ public class ActivitySetup extends ActivityBase implements FragmentManager.OnBac jaction.put("target", xFolder.get(target)); break; case EntityRule.TYPE_ANSWER: - long iid = jaction.getLong("identity"); - long aid = jaction.getLong("answer"); - Log.i("XLAT identity " + iid + " > " + xIdentity.get(iid)); - Log.i("XLAT target " + aid + " > " + xAnswer.get(aid)); - jaction.put("identity", xIdentity.get(iid)); - jaction.put("answer", xAnswer.get(aid)); + long identity = jaction.getLong("identity"); + long answer = jaction.getLong("answer"); + Log.i("XLAT identity " + identity + " > " + xIdentity.get(identity)); + Log.i("XLAT answer " + answer + " > " + xAnswer.get(answer)); + jaction.put("identity", xIdentity.get(identity)); + jaction.put("answer", xAnswer.get(answer)); break; } + + rule.action = jaction.toString(); } catch (JSONException ex) { Log.e(ex); } @@ -892,11 +896,10 @@ public class ActivitySetup extends ActivityBase implements FragmentManager.OnBac JSONObject jcontact = (JSONObject) jcontacts.get(c); EntityContact contact = EntityContact.fromJSON(jcontact); contact.account = account.id; - if (db.contact().getContact(contact.account, contact.type, contact.email) == null) { + if (db.contact().getContact(contact.account, contact.type, contact.email) == null) contact.id = db.contact().insertContact(contact); - Log.i("Imported contact=" + contact); - } } + Log.i("Imported contacts=" + jcontacts.length()); } // Update swipe left/right diff --git a/app/src/main/java/eu/faircode/email/EntityAccount.java b/app/src/main/java/eu/faircode/email/EntityAccount.java index f46f0cfe03..5b14043c45 100644 --- a/app/src/main/java/eu/faircode/email/EntityAccount.java +++ b/app/src/main/java/eu/faircode/email/EntityAccount.java @@ -178,7 +178,8 @@ public class EntityAccount extends EntityOrder implements Serializable { public static EntityAccount fromJSON(JSONObject json) throws JSONException { EntityAccount account = new EntityAccount(); - // id + if (json.has("id")) + account.id = json.getLong("id"); if (json.has("order")) account.order = json.getInt("order");