Get the one and only inbox

This commit is contained in:
M66B
2025-07-04 22:40:54 +02:00
parent 41ac05d777
commit 0b7a495cc9
2 changed files with 8 additions and 10 deletions

View File

@@ -2992,14 +2992,9 @@ class Core {
try {
db.beginTransaction();
if (EntityFolder.INBOX.equalsIgnoreCase(fullName)) {
List<EntityFolder> inboxes = db.folder().getFoldersByName(account.id, fullName);
Log.i(account.name + ":" + fullName + " count=" + (inboxes == null ? -1 : inboxes.size()));
if (inboxes != null && inboxes.size() == 1)
folder = inboxes.get(0);
else
folder = db.folder().getFolderByName(account.id, fullName);
} else
if (EntityFolder.INBOX.equals(type)) // Case insensitive
folder = db.folder().getFolderByNameAndType(account.id, fullName, type);
else
folder = db.folder().getFolderByName(account.id, fullName);
if (folder == null) {
EntityFolder parent = null;

View File

@@ -232,8 +232,11 @@ public interface DaoFolder {
@Query("SELECT * FROM folder WHERE account = :account AND name = :name")
EntityFolder getFolderByName(Long account, String name);
@Query("SELECT * FROM folder WHERE account = :account AND name = :name COLLATE NOCASE")
List<EntityFolder> getFoldersByName(Long account, String name);
@Query("SELECT * FROM folder" +
" WHERE account = :account" +
" AND name = :name COLLATE NOCASE" +
" AND type = :type")
EntityFolder getFolderByNameAndType(Long account, String name, String type);
@Query("SELECT folder.* FROM folder" +
" WHERE account = :account AND type = :type")