From 14582fe9b6af4f7b6641da62b3bcb3093a888631 Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Tue, 12 Aug 2025 11:29:58 -0400 Subject: [PATCH] Recalculating subject and last message when deletes happen --- .../amethyst/model/privateChats/Chatroom.kt | 27 +++++++++++++------ 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/model/privateChats/Chatroom.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/model/privateChats/Chatroom.kt index 969e84bb4..40360848e 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/model/privateChats/Chatroom.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/model/privateChats/Chatroom.kt @@ -78,14 +78,25 @@ class Chatroom : NotesGatherer { messages = messages - msg msg.removeGatherer(this) - messages - .filter { it.event?.subject() != null } - .sortedBy { it.createdAt() } - .lastOrNull() - ?.let { - subject.tryEmit(it.event?.subject()) - subjectCreatedAt = it.createdAt() - } + if (msg == lastMessage) { + lastMessage = messages.maxByOrNull { it.createdAt() ?: 0 } + } + + if (msg.event?.subject() == subject.value) { + messages + .maxByOrNull { + val noteEvent = it.event + if (noteEvent?.subject() != null) { + noteEvent.createdAt + } else { + 0 + } + }?.let { + subject.tryEmit(it.event?.subject()) + subjectCreatedAt = it.createdAt() + } + } + return true } return false