From ba7e6c10b4b88b72c1006f94694e9e8c51f227ca Mon Sep 17 00:00:00 2001 From: M66B Date: Mon, 27 Jul 2020 14:41:58 +0200 Subject: [PATCH] Thread performance optimization --- app/src/main/java/eu/faircode/email/DaoMessage.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/DaoMessage.java b/app/src/main/java/eu/faircode/email/DaoMessage.java index 2adb7d235e..198800d3dc 100644 --- a/app/src/main/java/eu/faircode/email/DaoMessage.java +++ b/app/src/main/java/eu/faircode/email/DaoMessage.java @@ -217,11 +217,15 @@ public interface DaoMessage { " WHERE message.account = :account" + " AND message.thread = :thread" + " AND (:id IS NULL OR message.id = :id)" + - " AND (NOT :filter_archive OR folder.type <> '" + EntityFolder.ARCHIVE + - "' OR (SELECT COUNT(m.id) FROM message m" + - " WHERE m.account = message.account" + + " AND (NOT :filter_archive" + + " OR folder.type <> '" + EntityFolder.ARCHIVE + "'" + + " OR NOT EXISTS" + + " (SELECT * FROM message m" + + " WHERE m.id <> message.id" + + " AND m.account = message.account" + + " AND m.thread = message.thread" + " AND (m.hash = message.hash OR m.msgid = message.msgid)" + - " AND NOT m.ui_hide) = 1)" + + " AND NOT m.ui_hide))" + " AND (NOT message.ui_hide OR :debug)" + " ORDER BY CASE WHEN :ascending THEN message.received ELSE -message.received END" + ", CASE" +