|
|
|
@ -226,17 +226,14 @@ public interface DaoMessage {
|
|
|
|
|
" OR `keywords` LIKE :find COLLATE NOCASE" +
|
|
|
|
|
" OR `preview` LIKE :find COLLATE NOCASE) AS matched" +
|
|
|
|
|
" FROM message" +
|
|
|
|
|
" WHERE (:folder IS NULL OR folder = :folder)" +
|
|
|
|
|
" AND NOT ui_hide" +
|
|
|
|
|
" AND (:seen IS NULL OR message.ui_seen = :seen)" +
|
|
|
|
|
" AND (:flagged IS NULL OR message.ui_flagged = :flagged)" +
|
|
|
|
|
" AND CASE :snoozed" +
|
|
|
|
|
" WHEN 0 THEN message.ui_snoozed IS NULL" +
|
|
|
|
|
" WHEN 1 THEN message.ui_snoozed IS NOT NULL" +
|
|
|
|
|
" ELSE 1 END" + // NULL: true
|
|
|
|
|
" ORDER BY message.received DESC" +
|
|
|
|
|
" WHERE NOT ui_hide" +
|
|
|
|
|
" AND (:folder IS NULL OR folder = :folder)" +
|
|
|
|
|
" AND (:seen IS NULL OR ui_seen = :seen)" +
|
|
|
|
|
" AND (:flagged IS NULL OR ui_flagged = :flagged)" +
|
|
|
|
|
" AND (:hidden IS NULL OR (CASE WHEN ui_snoozed IS NULL THEN 0 ELSE 1 END) = :hidden)" +
|
|
|
|
|
" ORDER BY received DESC" +
|
|
|
|
|
" LIMIT :limit OFFSET :offset")
|
|
|
|
|
List<TupleMatch> matchMessages(Long folder, String find, Boolean seen, Boolean flagged, Boolean snoozed, int limit, int offset);
|
|
|
|
|
List<TupleMatch> matchMessages(Long folder, String find, Boolean seen, Boolean flagged, Boolean hidden, int limit, int offset);
|
|
|
|
|
|
|
|
|
|
@Query("SELECT id" +
|
|
|
|
|
" FROM message" +
|
|
|
|
|