From 615a8bb1e747de9d26a9fe3da71de245062948e0 Mon Sep 17 00:00:00 2001 From: Gibran Chevalley Date: Fri, 14 Feb 2025 14:40:29 +0100 Subject: [PATCH] fix: Also take into account duplicates when computing the snooze states of a Thread --- .../mail/data/models/thread/Thread.kt | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/infomaniak/mail/data/models/thread/Thread.kt b/app/src/main/java/com/infomaniak/mail/data/models/thread/Thread.kt index e798fc4aea..4f9781f774 100644 --- a/app/src/main/java/com/infomaniak/mail/data/models/thread/Thread.kt +++ b/app/src/main/java/com/infomaniak/mail/data/models/thread/Thread.kt @@ -202,6 +202,14 @@ class Thread : RealmObject { private fun updateThread() { + fun Thread.updateSnoozeSatesBasedOn(message: Message) { + message.snoozeState?.let { + _snoozeState = it.apiValue + snoozeEndDate = message.snoozeEndDate + snoozeAction = message.snoozeAction + } + } + messages.sortBy { it.date } messages.forEach { message -> @@ -222,11 +230,11 @@ class Thread : RealmObject { if (message.hasAttachable) hasAttachable = true if (message.isScheduledDraft) numberOfScheduledDrafts++ - message.snoozeState?.let { - _snoozeState = it.apiValue - snoozeEndDate = message.snoozeEndDate - snoozeAction = message.snoozeAction - } + updateSnoozeSatesBasedOn(message) + } + + duplicates.forEach { duplicate -> + updateSnoozeSatesBasedOn(duplicate) } date = messages.last { it.folderId == folderId }.date