workaround with duplicate filtering, underlying issue still exists

Signed-off-by: rapterjet2004 <juliuslinus1@gmail.com>
This commit is contained in:
rapterjet2004 2025-03-14 12:04:44 -05:00
parent d6d7a11573
commit 57bcc062f4
No known key found for this signature in database
GPG Key ID: A6A69CFF84968EA1

View File

@ -211,7 +211,6 @@ import java.util.Date
import java.util.Locale import java.util.Locale
import java.util.concurrent.ExecutionException import java.util.concurrent.ExecutionException
import javax.inject.Inject import javax.inject.Inject
import kotlin.collections.set
import kotlin.math.roundToInt import kotlin.math.roundToInt
@AutoInjector(NextcloudTalkApplication::class) @AutoInjector(NextcloudTalkApplication::class)
@ -785,7 +784,7 @@ class ChatActivity :
.onEach { triple -> .onEach { triple ->
val lookIntoFuture = triple.first val lookIntoFuture = triple.first
val setUnreadMessagesMarker = triple.second val setUnreadMessagesMarker = triple.second
var chatMessageList = triple.third var chatMessageList = triple.third.filterDuplicates()
chatMessageList = handleSystemMessages(chatMessageList) chatMessageList = handleSystemMessages(chatMessageList)
if (chatMessageList.isEmpty()) { if (chatMessageList.isEmpty()) {
@ -2732,6 +2731,17 @@ class ChatActivity :
(message2.lastEditTimestamp == 0L || message1.lastEditTimestamp == 0L) (message2.lastEditTimestamp == 0L || message1.lastEditTimestamp == 0L)
} }
private fun List<ChatMessage>.filterDuplicates(): List<ChatMessage> {
val newlist = mutableListOf<ChatMessage>()
val currentList = adapter!!.items.filter { it.item is ChatMessage }.map { it.item as ChatMessage }.reversed()
for (message in this) {
if (!currentList.any { it.id == message.id }) {
newlist.add(message)
}
}
return newlist
}
private fun determinePreviousMessageIds(chatMessageList: List<ChatMessage>) { private fun determinePreviousMessageIds(chatMessageList: List<ChatMessage>) {
var previousMessageId = NO_PREVIOUS_MESSAGE_ID var previousMessageId = NO_PREVIOUS_MESSAGE_ID
for (i in chatMessageList.indices.reversed()) { for (i in chatMessageList.indices.reversed()) {