diff --git a/app/src/main/java/eu/faircode/email/Core.java b/app/src/main/java/eu/faircode/email/Core.java index fd5c95c2b3..994de27c50 100644 --- a/app/src/main/java/eu/faircode/email/Core.java +++ b/app/src/main/java/eu/faircode/email/Core.java @@ -2992,9 +2992,16 @@ class Core { try { db.beginTransaction(); - if (EntityFolder.INBOX.equals(type)) // Case insensitive - folder = db.folder().getFolderByType(account.id, type); - else + if (EntityFolder.INBOX.equals(type)) { // Case insensitive + List inboxes = db.folder().getFoldersByType(account.id, type); + if (inboxes == null || inboxes.isEmpty()) + folder = null; + else { + folder = inboxes.get(0); + for (int i = 1; i < inboxes.size(); i++) + db.folder().deleteFolder(inboxes.get(i).id); + } + } else folder = db.folder().getFolderByName(account.id, fullName); if (folder == null) { EntityFolder parent = null; diff --git a/app/src/main/java/eu/faircode/email/DaoFolder.java b/app/src/main/java/eu/faircode/email/DaoFolder.java index eff2fb4e24..ad149abc1f 100644 --- a/app/src/main/java/eu/faircode/email/DaoFolder.java +++ b/app/src/main/java/eu/faircode/email/DaoFolder.java @@ -236,6 +236,11 @@ public interface DaoFolder { " WHERE account = :account AND type = :type") EntityFolder getFolderByType(long account, String type); + @Query("SELECT folder.* FROM folder" + + " WHERE account = :account AND type = :type" + + " ORDER BY folder.id") + List getFoldersByType(long account, String type); + @Query("SELECT folder.* FROM folder" + " JOIN account ON account.id = folder.account" + " WHERE account.synchronize" +