diff --git a/app/src/main/java/eu/faircode/email/DaoMessage.java b/app/src/main/java/eu/faircode/email/DaoMessage.java index a19a2de8b3..918834bcd8 100644 --- a/app/src/main/java/eu/faircode/email/DaoMessage.java +++ b/app/src/main/java/eu/faircode/email/DaoMessage.java @@ -68,7 +68,7 @@ public interface DaoMessage { ", SUM(message.attachments) AS totalAttachments" + ", SUM(message.total) AS totalSize" + ", message.priority AS ui_priority" + - ", message.importance AS ui_importance" + + ", MAX(message.importance) AS ui_importance" + ", MAX(CASE WHEN" + " (:found AND folder.type <> '" + EntityFolder.ARCHIVE + "')" + " OR (NOT :found AND :type IS NULL AND folder.unified)" + @@ -97,7 +97,7 @@ public interface DaoMessage { " AND (NOT :filter_snoozed OR message.ui_snoozed IS NULL OR " + is_drafts + ")" + " AND (NOT :filter_deleted OR NOT message.ui_deleted)" + " AND (:filter_language IS NULL OR SUM(message.language = :filter_language) > 0)" + - " ORDER BY CASE WHEN :found THEN 0 ELSE -IFNULL(message.importance, 1) END" + + " ORDER BY CASE WHEN :found THEN 0 ELSE -IFNULL(MAX(message.importance), 1) END" + ", CASE WHEN :group_category THEN account.category ELSE '' END COLLATE NOCASE" + ", CASE" + " WHEN 'unread' = :sort1 THEN SUM(1 - message.ui_seen) = 0" + @@ -150,7 +150,7 @@ public interface DaoMessage { ", SUM(message.attachments) AS totalAttachments" + ", SUM(message.total) AS totalSize" + ", message.priority AS ui_priority" + - ", message.importance AS ui_importance" + + ", MAX(message.importance) AS ui_importance" + ", MAX(CASE WHEN" + " (:found AND folder.type <> '" + EntityFolder.ARCHIVE + "')" + " OR (NOT :found AND folder.id = :folder)" + @@ -178,7 +178,7 @@ public interface DaoMessage { " AND (NOT :filter_snoozed OR message.ui_snoozed IS NULL OR " + is_outbox + " OR " + is_drafts + ")" + " AND (NOT :filter_deleted OR NOT message.ui_deleted)" + " AND (:filter_language IS NULL OR SUM(message.language = :filter_language) > 0 OR " + is_outbox + ")" + - " ORDER BY CASE WHEN :found THEN 0 ELSE -IFNULL(message.importance, 1) END" + + " ORDER BY CASE WHEN :found THEN 0 ELSE -IFNULL(MAX(message.importance), 1) END" + ", CASE" + " WHEN 'unread' = :sort1 THEN SUM(1 - message.ui_seen) = 0" + " WHEN 'starred' = :sort1 THEN COUNT(message.id) - SUM(1 - message.ui_flagged) = 0" + @@ -1132,7 +1132,7 @@ public interface DaoMessage { ", SUM(message.attachments) AS totalAttachments" + ", SUM(message.total) AS totalSize" + ", message.priority AS ui_priority" + - ", message.importance AS ui_importance" + + ", MAX(message.importance) AS ui_importance" + ", MAX(CASE WHEN" + " (:found AND folder.type <> '" + EntityFolder.ARCHIVE + "')" + " OR (NOT :found AND :type IS NULL AND folder.unified)" + @@ -1161,7 +1161,7 @@ public interface DaoMessage { " AND (NOT :filter_snoozed OR message.ui_snoozed IS NULL OR " + is_drafts + ")" + " AND (NOT :filter_deleted OR NOT message.ui_deleted)" + " AND (:filter_language IS NULL OR SUM(message.language = :filter_language) > 0)" + - " ORDER BY CASE WHEN :found THEN 0 ELSE -IFNULL(message.importance, 1) END" + + " ORDER BY CASE WHEN :found THEN 0 ELSE -IFNULL(MAX(message.importance), 1) END" + ", CASE WHEN :group_category THEN account.category ELSE '' END COLLATE NOCASE" + ", CASE" + " WHEN 'unread' = :sort1 THEN SUM(1 - message.ui_seen) = 0" + @@ -1215,7 +1215,7 @@ public interface DaoMessage { ", SUM(message.attachments) AS totalAttachments" + ", SUM(message.total) AS totalSize" + ", message.priority AS ui_priority" + - ", message.importance AS ui_importance" + + ", MAX(message.importance) AS ui_importance" + ", MAX(CASE WHEN" + " (:found AND folder.type <> '" + EntityFolder.ARCHIVE + "')" + " OR (NOT :found AND folder.id = :folder)" + @@ -1243,7 +1243,7 @@ public interface DaoMessage { " AND (NOT :filter_snoozed OR message.ui_snoozed IS NULL OR " + is_outbox + " OR " + is_drafts + ")" + " AND (NOT :filter_deleted OR NOT message.ui_deleted)" + " AND (:filter_language IS NULL OR SUM(message.language = :filter_language) > 0 OR " + is_outbox + ")" + - " ORDER BY CASE WHEN :found THEN 0 ELSE -IFNULL(message.importance, 1) END" + + " ORDER BY CASE WHEN :found THEN 0 ELSE -IFNULL(MAX(message.importance), 1) END" + ", CASE" + " WHEN 'unread' = :sort1 THEN SUM(1 - message.ui_seen) = 0" + " WHEN 'starred' = :sort1 THEN COUNT(message.id) - SUM(1 - message.ui_flagged) = 0" + diff --git a/app/src/main/java/eu/faircode/email/FragmentMessages.java b/app/src/main/java/eu/faircode/email/FragmentMessages.java index d201b5296f..bd8074067c 100644 --- a/app/src/main/java/eu/faircode/email/FragmentMessages.java +++ b/app/src/main/java/eu/faircode/email/FragmentMessages.java @@ -5062,7 +5062,7 @@ public class FragmentMessages extends FragmentBase continue; List messages = db.message().getMessagesByThread( - message.account, message.thread, threading ? null : id, message.folder); + message.account, message.thread, threading ? null : id, null); for (EntityMessage threaded : messages) { db.message().setMessageImportance(threaded.id, importance); @@ -11897,7 +11897,7 @@ public class FragmentMessages extends FragmentBase result.color = Color.TRANSPARENT; } - int i = (message.importance == null ? EntityMessage.PRIORITIY_NORMAL : message.importance); + int i = (threaded.importance == null ? EntityMessage.PRIORITIY_NORMAL : threaded.importance); if (result.importance == null) result.importance = i; else if (!result.importance.equals(i))