mirror of
https://github.com/M66B/FairEmail.git
synced 2025-02-25 15:32:52 +00:00
Fixed message count
This commit is contained in:
parent
1a606cbf6d
commit
270aa6eab6
1 changed files with 8 additions and 16 deletions
|
@ -33,16 +33,14 @@ public interface DaoFolder {
|
||||||
|
|
||||||
@Query("SELECT folder.*" +
|
@Query("SELECT folder.*" +
|
||||||
", account.id AS accountId, account.`order` AS accountOrder, account.name AS accountName, account.color AS accountColor, account.state AS accountState" +
|
", account.id AS accountId, account.`order` AS accountOrder, account.name AS accountName, account.color AS accountColor, account.state AS accountState" +
|
||||||
", COUNT(rule.id) AS rules" +
|
", (SELECT COUNT(rule.id) FROM rule WHERE rule.folder = folder.id AND rule.enabled) AS rules" +
|
||||||
", 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" +
|
||||||
", SUM(CASE WHEN message.ui_seen = 0 THEN 1 ELSE 0 END) AS unseen" +
|
", SUM(CASE WHEN message.ui_seen = 0 THEN 1 ELSE 0 END) AS unseen" +
|
||||||
", COUNT(operation.id) AS executing" +
|
", (SELECT COUNT(operation.id) FROM operation WHERE operation.folder = folder.id AND operation.state = 'executing') AS executing" +
|
||||||
" FROM folder" +
|
" FROM folder" +
|
||||||
" LEFT JOIN account ON account.id = folder.account" +
|
" LEFT JOIN account ON account.id = folder.account" +
|
||||||
" LEFT JOIN rule ON rule.folder = folder.id AND rule.enabled" +
|
|
||||||
" LEFT JOIN message ON message.folder = folder.id AND NOT message.ui_hide" +
|
" LEFT JOIN message ON message.folder = folder.id AND NOT message.ui_hide" +
|
||||||
" LEFT JOIN operation ON operation.folder = folder.id AND operation.state = 'executing'" +
|
|
||||||
" WHERE folder.account = :account AND account.synchronize" +
|
" WHERE folder.account = :account AND account.synchronize" +
|
||||||
" GROUP BY folder.id")
|
" GROUP BY folder.id")
|
||||||
List<TupleFolderEx> getFoldersEx(long account);
|
List<TupleFolderEx> getFoldersEx(long account);
|
||||||
|
@ -68,16 +66,14 @@ public interface DaoFolder {
|
||||||
|
|
||||||
@Query("SELECT folder.*" +
|
@Query("SELECT folder.*" +
|
||||||
", account.id AS accountId, account.`order` AS accountOrder, account.name AS accountName, account.color AS accountColor, account.state AS accountState" +
|
", account.id AS accountId, account.`order` AS accountOrder, account.name AS accountName, account.color AS accountColor, account.state AS accountState" +
|
||||||
", COUNT(rule.id) AS rules" +
|
", (SELECT COUNT(rule.id) FROM rule WHERE rule.folder = folder.id AND rule.enabled) AS rules" +
|
||||||
", 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" +
|
||||||
", SUM(CASE WHEN message.ui_seen = 0 THEN 1 ELSE 0 END) AS unseen" +
|
", SUM(CASE WHEN message.ui_seen = 0 THEN 1 ELSE 0 END) AS unseen" +
|
||||||
", COUNT(operation.id) AS executing" +
|
", (SELECT COUNT(operation.id) FROM operation WHERE operation.folder = folder.id AND operation.state = 'executing') AS executing" +
|
||||||
" FROM folder" +
|
" FROM folder" +
|
||||||
" LEFT JOIN account ON account.id = folder.account" +
|
" LEFT JOIN account ON account.id = folder.account" +
|
||||||
" LEFT JOIN rule ON rule.folder = folder.id AND rule.enabled" +
|
|
||||||
" LEFT JOIN message ON message.folder = folder.id AND NOT message.ui_hide" +
|
" LEFT JOIN message ON message.folder = folder.id AND NOT message.ui_hide" +
|
||||||
" LEFT JOIN operation ON operation.folder = folder.id AND operation.state = 'executing'" +
|
|
||||||
" WHERE CASE WHEN :account IS NULL" +
|
" WHERE CASE WHEN :account IS NULL" +
|
||||||
" THEN folder.unified AND account.synchronize" +
|
" THEN folder.unified AND account.synchronize" +
|
||||||
" ELSE folder.account = :account AND account.synchronize" +
|
" ELSE folder.account = :account AND account.synchronize" +
|
||||||
|
@ -87,16 +83,14 @@ public interface DaoFolder {
|
||||||
|
|
||||||
@Query("SELECT folder.*" +
|
@Query("SELECT folder.*" +
|
||||||
", account.id AS accountId, account.`order` AS accountOrder, account.name AS accountName, account.color AS accountColor, account.state AS accountState" +
|
", account.id AS accountId, account.`order` AS accountOrder, account.name AS accountName, account.color AS accountColor, account.state AS accountState" +
|
||||||
", COUNT(rule.id) AS rules" +
|
", (SELECT COUNT(rule.id) FROM rule WHERE rule.folder = folder.id AND rule.enabled) AS rules" +
|
||||||
", 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" +
|
||||||
", SUM(CASE WHEN message.ui_seen = 0 THEN 1 ELSE 0 END) AS unseen" +
|
", SUM(CASE WHEN message.ui_seen = 0 THEN 1 ELSE 0 END) AS unseen" +
|
||||||
", COUNT(operation.id) AS executing" +
|
", (SELECT COUNT(operation.id) FROM operation WHERE operation.folder = folder.id AND operation.state = 'executing') AS executing" +
|
||||||
" FROM folder" +
|
" FROM folder" +
|
||||||
" JOIN account ON account.id = folder.account" +
|
" JOIN account ON account.id = folder.account" +
|
||||||
" LEFT JOIN rule ON rule.folder = folder.id AND rule.enabled" +
|
|
||||||
" LEFT JOIN message ON message.folder = folder.id AND NOT message.ui_hide" +
|
" LEFT JOIN message ON message.folder = folder.id AND NOT message.ui_hide" +
|
||||||
" LEFT JOIN operation ON operation.folder = folder.id AND operation.state = 'executing'" +
|
|
||||||
" WHERE account.`synchronize`" +
|
" WHERE account.`synchronize`" +
|
||||||
" AND folder.unified" +
|
" AND folder.unified" +
|
||||||
" GROUP BY folder.id")
|
" GROUP BY folder.id")
|
||||||
|
@ -129,16 +123,14 @@ public interface DaoFolder {
|
||||||
|
|
||||||
@Query("SELECT folder.*" +
|
@Query("SELECT folder.*" +
|
||||||
", account.id AS accountId, account.`order` AS accountOrder, account.name AS accountName, account.color AS accountColor, account.state AS accountState" +
|
", account.id AS accountId, account.`order` AS accountOrder, account.name AS accountName, account.color AS accountColor, account.state AS accountState" +
|
||||||
", COUNT(rule.id) AS rules" +
|
", (SELECT COUNT(rule.id) FROM rule WHERE rule.folder = folder.id AND rule.enabled) AS rules" +
|
||||||
", 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" +
|
||||||
", SUM(CASE WHEN message.ui_seen = 0 THEN 1 ELSE 0 END) AS unseen" +
|
", SUM(CASE WHEN message.ui_seen = 0 THEN 1 ELSE 0 END) AS unseen" +
|
||||||
", COUNT(operation.id) AS executing" +
|
", (SELECT COUNT(operation.id) FROM operation WHERE operation.folder = folder.id AND operation.state = 'executing') AS executing" +
|
||||||
" FROM folder" +
|
" FROM folder" +
|
||||||
" LEFT JOIN account ON account.id = folder.account" +
|
" LEFT JOIN account ON account.id = folder.account" +
|
||||||
" LEFT JOIN rule ON rule.folder = folder.id AND rule.enabled" +
|
|
||||||
" LEFT JOIN message ON message.folder = folder.id AND NOT message.ui_hide" +
|
" LEFT JOIN message ON message.folder = folder.id AND NOT message.ui_hide" +
|
||||||
" LEFT JOIN operation ON operation.folder = folder.id AND operation.state = 'executing'" +
|
|
||||||
" WHERE folder.id = :id" +
|
" WHERE folder.id = :id" +
|
||||||
" GROUP BY folder.id")
|
" GROUP BY folder.id")
|
||||||
LiveData<TupleFolderEx> liveFolderEx(long id);
|
LiveData<TupleFolderEx> liveFolderEx(long id);
|
||||||
|
|
Loading…
Reference in a new issue