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