From e8c67dc9dd5005e4415bcd77b474b05f0915e724 Mon Sep 17 00:00:00 2001 From: Adrien Beraud <adrien.beraud@savoirfairelinux.com> Date: Mon, 17 Jun 2024 14:26:34 -0400 Subject: [PATCH] conversation: optimize computing last displayed GitLab: #1643 Change-Id: Ia6fcd85a2c648bb05a19cc3c55cf22fb3f1dcdcd --- .../main/java/cx/ring/adapters/ConversationAdapter.kt | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/jami-android/app/src/main/java/cx/ring/adapters/ConversationAdapter.kt b/jami-android/app/src/main/java/cx/ring/adapters/ConversationAdapter.kt index 19b548d73..23921312d 100644 --- a/jami-android/app/src/main/java/cx/ring/adapters/ConversationAdapter.kt +++ b/jami-android/app/src/main/java/cx/ring/adapters/ConversationAdapter.kt @@ -352,13 +352,12 @@ class ConversationAdapter( // Remove user from statusMap. val modifiedStatusMap = interaction.statusMap .filter { conversation.findContact(net.jami.model.Uri.fromId(it.key))?.isUser != true } - val isDisplayed = modifiedStatusMap.any { it.value == Interaction.MessageStates.DISPLAYED } val isReceived = modifiedStatusMap.any { it.value == Interaction.MessageStates.SUCCESS } - val lastDisplayedIdx = conversation.lastDisplayedMessages - .mapValues { mInteractions.indexOf(conversation.getMessage(it.value)) } - val currentIdx = mInteractions.indexOf(interaction) - val contacts = lastDisplayedIdx.filter { it.value == currentIdx }.map { it.key } + + val contacts = conversation.lastDisplayedMessages + .filter { it.value == interaction.messageId } + .map { it.key } // Case 1: Message is sending if(!isDisplayed && !isReceived){ -- GitLab