Search improvements

This commit is contained in:
M66B
2018-10-20 17:56:09 +00:00
parent e0393c9739
commit 24991d621b
8 changed files with 1081 additions and 51 deletions

View File

@@ -54,6 +54,7 @@ public interface DaoMessage {
" JOIN folder ON folder.id = message.folder" +
" WHERE account.`synchronize`" +
" AND (NOT message.ui_hide OR :debug)" +
" AND NOT ui_found" +
" GROUP BY account.id, CASE WHEN message.thread IS NULL THEN message.id ELSE message.thread END" +
" HAVING SUM(unified) > 0" +
" ORDER BY CASE" +
@@ -83,7 +84,7 @@ public interface DaoMessage {
" JOIN folder f ON f.id = :folder" +
" WHERE (message.account = f.account OR folder.type = '" + EntityFolder.OUTBOX + "')" +
" AND (NOT message.ui_hide OR :debug)" +
" AND (NOT :found OR ui_found = :found)" +
" AND ui_found = :found" +
" GROUP BY CASE WHEN message.thread IS NULL THEN message.id ELSE message.thread END" +
" HAVING SUM(CASE WHEN folder.id = :folder THEN 1 ELSE 0 END) > 0" +
" ORDER BY CASE" +
@@ -126,26 +127,30 @@ public interface DaoMessage {
@Query("SELECT *" +
" FROM message" +
" WHERE folder = :folder" +
" AND uid = :uid")
EntityMessage getMessageByUid(long folder, long uid);
" AND uid = :uid" +
" AND ui_found = :found")
EntityMessage getMessageByUid(long folder, long uid, boolean found);
@Query("SELECT *" +
" FROM message" +
" WHERE folder = :folder")
" WHERE folder = :folder" +
" AND NOT ui_found")
List<EntityMessage> getMessageByFolder(long folder);
@Query("SELECT *" +
" FROM message" +
" WHERE account = :account" +
" AND thread = :thread")
" AND thread = :thread" +
" AND NOT ui_found")
List<EntityMessage> getMessageByThread(long account, String thread);
@Query("SELECT message.* FROM message" +
" JOIN folder ON folder.id = message.folder" +
" WHERE message.account = :account" +
" AND (message.msgid = :msgid" +
" OR message.msgid = :reference)")
List<EntityMessage> getMessageByMsgId(long account, String msgid, String reference);
" OR message.msgid = :reference)" +
" AND ui_found = :found")
List<EntityMessage> getMessageByMsgId(long account, String msgid, String reference, boolean found);
@Query("SELECT message.*" +
", account.name AS accountName, account.color AS accountColor" +
@@ -167,6 +172,7 @@ public interface DaoMessage {
" AND folder.unified" +
" AND NOT message.ui_seen" +
" AND NOT message.ui_hide" +
" AND NOT message.ui_found" +
" AND NOT message.ui_ignored" +
" ORDER BY message.received")
LiveData<List<EntityMessage>> liveUnseenUnified();
@@ -208,9 +214,6 @@ public interface DaoMessage {
@Query("UPDATE message SET error = :error WHERE id = :id")
int setMessageError(long id, String error);
@Query("UPDATE message SET ui_found = :found WHERE id = :id")
int setMessageFound(long id, boolean found);
@Query("UPDATE message SET content = :content WHERE id = :id")
int setMessageContent(long id, boolean content);