From c9718332ed864048b754b3ad9cdf82f65b908309 Mon Sep 17 00:00:00 2001 From: M66B Date: Thu, 26 Dec 2024 12:26:56 +0100 Subject: [PATCH] Fixed updating folders on saving account --- .../java/eu/faircode/email/FragmentAccount.java | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/FragmentAccount.java b/app/src/main/java/eu/faircode/email/FragmentAccount.java index 2801cd4a6e..bf2202d4ee 100644 --- a/app/src/main/java/eu/faircode/email/FragmentAccount.java +++ b/app/src/main/java/eu/faircode/email/FragmentAccount.java @@ -79,7 +79,9 @@ import java.security.cert.X509Certificate; import java.util.ArrayList; import java.util.Collections; import java.util.Date; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.Objects; public class FragmentAccount extends FragmentBase { @@ -1450,11 +1452,15 @@ public class FragmentAccount extends FragmentBase { } } + Map current = new HashMap<>(); + for (EntityFolder folder : db.folder().getFolders(account.id, false, false)) + current.put(folder.name, folder); + db.folder().setFoldersUser(account.id); for (EntityFolder folder : folders) { Log.i("Checking folder=" + folder.name + ":" + folder.type); - EntityFolder existing = db.folder().getFolderByName(account.id, folder.name); + EntityFolder existing = current.get(folder.name); if (existing == null) { folder.id = null; folder.account = account.id; @@ -1464,12 +1470,11 @@ public class FragmentAccount extends FragmentBase { if (folder.synchronize && account.synchronize) EntityOperation.sync(context, folder.id, true); } else { - EntityLog.log(context, "Updated folder=" + folder.name + ":" + folder.type + - " existing=" + existing.name + ":" + existing.type); db.folder().setFolderType(existing.id, folder.type); if (folder.synchronize && account.synchronize && !Objects.equals(existing.type, folder.type)) { - EntityLog.log(context, "Updated folder=" + folder.name + ":" + folder.type); + EntityLog.log(context, "Updated folder=" + folder.name + ":" + folder.type + + " existing=" + existing.name + ":" + existing.type); db.folder().setFolderSynchronize(existing.id, true); EntityOperation.sync(context, existing.id, true); }