", 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"+
", COUNT(message.id) AS messages"+
", 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"+
", (SELECT COUNT(operation.id) FROM operation WHERE operation.folder = folder.id AND operation.state = 'executing') AS executing" +
", COUNT(operation.id) AS executing" +
" FROM folder"+
" 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 operation ON operation.folder = folder.id AND operation.state = 'executing'"+
" WHERE folder.account = :account AND account.synchronize"+
" GROUP BY folder.id")
List<TupleFolderEx>getFoldersEx(longaccount);
@ -65,13 +68,16 @@ public interface DaoFolder {
@Query("SELECT folder.*"+
", 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"+
", COUNT(message.id) AS messages"+
", 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"+
", (SELECT COUNT(operation.id) FROM operation WHERE operation.folder = folder.id AND operation.state = 'executing') AS executing" +
", COUNT(operation.id) AS executing" +
" FROM folder"+
" 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 operation ON operation.folder = folder.id AND operation.state = 'executing'"+
" WHERE CASE WHEN :account IS NULL"+
" THEN folder.unified AND account.synchronize"+
" ELSE folder.account = :account AND account.synchronize"+
@ -81,13 +87,16 @@ public interface DaoFolder {
@Query("SELECT folder.*"+
", 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"+
", COUNT(message.id) AS messages"+
", 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"+
", (SELECT COUNT(operation.id) FROM operation WHERE operation.folder = folder.id AND operation.state = 'executing') AS executing" +
", COUNT(operation.id) AS executing" +
" FROM folder"+
" 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 operation ON operation.folder = folder.id AND operation.state = 'executing'"+
" WHERE account.`synchronize`"+
" AND folder.unified"+
" GROUP BY folder.id")
@ -120,14 +129,18 @@ public interface DaoFolder {
@Query("SELECT folder.*"+
", 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"+
", COUNT(message.id) AS messages"+
", 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"+
", (SELECT COUNT(operation.id) FROM operation WHERE operation.folder = folder.id AND operation.state = 'executing') AS executing" +
", COUNT(operation.id) AS executing" +
" FROM folder"+
" 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"+
" WHERE folder.id = :id")
" LEFT JOIN operation ON operation.folder = folder.id AND operation.state = 'executing'"+
" WHERE folder.id = :id"+
" GROUP BY folder.id")
LiveData<TupleFolderEx>liveFolderEx(longid);
@Query("SELECT * FROM folder ORDER BY account, name COLLATE NOCASE")