mirror of
https://github.com/M66B/FairEmail.git
synced 2025-12-30 17:40:34 +01:00
Fixes, improvements
This commit is contained in:
@@ -25,7 +25,6 @@ import androidx.lifecycle.LiveData;
|
||||
import androidx.paging.DataSource;
|
||||
import androidx.room.Dao;
|
||||
import androidx.room.Insert;
|
||||
import androidx.room.OnConflictStrategy;
|
||||
import androidx.room.Query;
|
||||
import androidx.room.Update;
|
||||
|
||||
@@ -56,6 +55,7 @@ public interface DaoMessage {
|
||||
", MAX(CASE WHEN folder.id = :folder THEN message.id ELSE 0 END) as dummy" +
|
||||
" FROM message" +
|
||||
" JOIN folder ON folder.id = message.folder" +
|
||||
" LEFT JOIN folder f ON f.id = :folder" +
|
||||
" WHERE (NOT message.ui_hide OR :debug)" +
|
||||
" GROUP BY CASE WHEN message.thread IS NULL THEN message.id ELSE message.thread END, message.subject" +
|
||||
" HAVING SUM(CASE WHEN folder.id = :folder THEN 1 ELSE 0 END) > 0" +
|
||||
@@ -83,9 +83,12 @@ public interface DaoMessage {
|
||||
@Query("SELECT * FROM message WHERE msgid = :msgid")
|
||||
EntityMessage getMessageByMsgId(String msgid);
|
||||
|
||||
@Query("SELECT * FROM message WHERE account = :account AND thread = :thread")
|
||||
List<EntityMessage> getMessageByThread(long account, String thread);
|
||||
|
||||
@Query("SELECT message.*, folder.name as folderName, folder.type as folderType" +
|
||||
", (SELECT COUNT(m.id) FROM message m WHERE m.account = message.account AND m.thread = message.thread AND NOT m.ui_hide) AS count" +
|
||||
", (SELECT COUNT(m.id) FROM message m WHERE m.account = message.account AND m.thread = message.thread AND NOT m.ui_hide AND NOT m.ui_seen) AS unseen" +
|
||||
", (SELECT COUNT(m1.id) FROM message m1 WHERE m1.account = message.account AND m1.thread = message.thread AND NOT m1.ui_hide) AS count" +
|
||||
", (SELECT COUNT(m2.id) FROM message m2 WHERE m2.account = message.account AND m2.thread = message.thread AND NOT m2.ui_hide AND NOT m2.ui_seen) AS unseen" +
|
||||
", (SELECT COUNT(a.id) FROM attachment a WHERE a.message = message.id) AS attachments" +
|
||||
" FROM message" +
|
||||
" JOIN folder ON folder.id = message.folder" +
|
||||
@@ -98,8 +101,7 @@ public interface DaoMessage {
|
||||
@Query("SELECT uid FROM message WHERE folder = :folder AND received >= :received AND NOT uid IS NULL")
|
||||
List<Long> getUids(long folder, long received);
|
||||
|
||||
// in case of duplicate message IDs
|
||||
@Insert(onConflict = OnConflictStrategy.REPLACE)
|
||||
@Insert
|
||||
long insertMessage(EntityMessage message);
|
||||
|
||||
@Update
|
||||
|
||||
Reference in New Issue
Block a user