Fixed resetting folder types

pull/147/head
M66B 7 years ago
parent ba116353d9
commit 7e2479d138

@ -69,11 +69,6 @@ public interface DaoFolder {
" GROUP BY folder.id") " GROUP BY folder.id")
LiveData<List<TupleFolderEx>> liveFolders(Long account); LiveData<List<TupleFolderEx>> liveFolders(Long account);
@Query("SELECT * FROM folder" +
" WHERE (:account < 0 OR folder.account = :account)" +
" AND type <> '" + EntityFolder.USER + "'")
LiveData<List<EntityFolder>> liveSystemFolders(long account);
@Query("SELECT folder.*, account.name AS accountName, account.color AS accountColor, account.state AS accountState" + @Query("SELECT folder.*, account.name AS accountName, account.color AS accountColor, account.state AS accountState" +
", COUNT(message.id) AS messages" + ", COUNT(message.id) AS messages" +
", SUM(CASE WHEN message.content = 1 THEN 1 ELSE 0 END) AS content" + ", SUM(CASE WHEN message.content = 1 THEN 1 ELSE 0 END) AS content" +
@ -170,6 +165,7 @@ public interface DaoFolder {
@Query("UPDATE folder" + @Query("UPDATE folder" +
" SET type = '" + EntityFolder.USER + "'" + " SET type = '" + EntityFolder.USER + "'" +
" WHERE account = :account" + " WHERE account = :account" +
" AND type <> '" + EntityFolder.INBOX + "'" +
" AND type <> '" + EntityFolder.SYSTEM + "'") " AND type <> '" + EntityFolder.SYSTEM + "'")
int setFoldersUser(long account); int setFoldersUser(long account);

@ -116,14 +116,14 @@ public class EntityFolder implements Serializable {
"Flagged" "Flagged"
); );
private static final List<String> SYSTEM_FOLDER_TYPE = Arrays.asList( private static final List<String> SYSTEM_FOLDER_TYPE = Arrays.asList(
ARCHIVE, ARCHIVE, // All
ARCHIVE, ARCHIVE,
DRAFTS, DRAFTS,
TRASH, TRASH,
JUNK, JUNK,
SENT, SENT,
SYSTEM, SYSTEM, // Important
SYSTEM SYSTEM // Flagged
); // MUST match SYSTEM_FOLDER_ATTR ); // MUST match SYSTEM_FOLDER_ATTR
static final List<String> FOLDER_SORT_ORDER = Arrays.asList( static final List<String> FOLDER_SORT_ORDER = Arrays.asList(

@ -2218,7 +2218,7 @@ public class ServiceSynchronize extends LifecycleService {
folder.account = account.id; folder.account = account.id;
folder.name = fullName; folder.name = fullName;
folder.display = display; folder.display = display;
folder.type = EntityFolder.USER; folder.type = (EntityFolder.SYSTEM.equals(type) ? type : EntityFolder.USER);
folder.level = level; folder.level = level;
folder.synchronize = false; folder.synchronize = false;
folder.poll = ("imap.gmail.com".equals(account.host)); folder.poll = ("imap.gmail.com".equals(account.host));

Loading…
Cancel
Save