diff --git a/app/src/main/java/eu/faircode/email/DaoFolder.java b/app/src/main/java/eu/faircode/email/DaoFolder.java index 57ad9fec70..49a30215e1 100644 --- a/app/src/main/java/eu/faircode/email/DaoFolder.java +++ b/app/src/main/java/eu/faircode/email/DaoFolder.java @@ -161,7 +161,8 @@ public interface DaoFolder { @Query("UPDATE folder" + " SET type = '" + EntityFolder.USER + "'" + - " WHERE account = :account") + " WHERE account = :account" + + " AND type <> '" + EntityFolder.SYSTEM + "'") int setFoldersUser(long account); @Query("UPDATE folder" + diff --git a/app/src/main/java/eu/faircode/email/FragmentAccount.java b/app/src/main/java/eu/faircode/email/FragmentAccount.java index 1e5e523041..c3feda3d31 100644 --- a/app/src/main/java/eu/faircode/email/FragmentAccount.java +++ b/app/src/main/java/eu/faircode/email/FragmentAccount.java @@ -816,8 +816,12 @@ public class FragmentAccount extends FragmentEx { } db.folder().setFoldersUser(account.id); + for (EntityFolder folder : folders) { folder.level = EntityFolder.getLevel(separator, folder.name); + if (account.prefix != null && folder.name.startsWith(account.prefix + separator)) + folder.display = folder.name.substring(account.prefix.length() + 1); + EntityFolder existing = db.folder().getFolderByName(account.id, folder.name); if (existing == null) { folder.account = account.id; diff --git a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java index b765302e08..1c6763c94f 100644 --- a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java +++ b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java @@ -2025,10 +2025,10 @@ public class ServiceSynchronize extends LifecycleService { db.folder().setFolderLevel(folder.id, level); + // Compatibility if ("Inbox_sub".equals(folder.type)) db.folder().setFolderType(folder.id, EntityFolder.USER); - else if (EntityFolder.USER.equals(folder.type) && - type != null && !EntityFolder.USER.equals(type)) + if (EntityFolder.USER.equals(folder.type) && EntityFolder.SYSTEM.equals(type)) db.folder().setFolderType(folder.id, type); } }