From 6121040bda2e6768de4972340f66eb8816a4993c Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Wed, 29 Jan 2025 15:38:45 +0100 Subject: [PATCH] Fixed missing conversations until tab was left & opened again --- .../chat/viewmodel/ConversationsListViewModel.kt | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/linphone/ui/main/chat/viewmodel/ConversationsListViewModel.kt b/app/src/main/java/org/linphone/ui/main/chat/viewmodel/ConversationsListViewModel.kt index e5e69fb99..996571137 100644 --- a/app/src/main/java/org/linphone/ui/main/chat/viewmodel/ConversationsListViewModel.kt +++ b/app/src/main/java/org/linphone/ui/main/chat/viewmodel/ConversationsListViewModel.kt @@ -76,7 +76,17 @@ class ConversationsListViewModel chatRoom: ChatRoom, messages: Array ) { - reorderChatRooms() + val id = LinphoneUtils.getChatRoomId(chatRoom) + val found = conversations.value.orEmpty().find { + it.id == id + } + if (found == null) { + Log.i("$TAG Message(s) received for a conversation not yet in the list (probably was empty), adding it") + addChatRoom(chatRoom) + } else { + Log.i("$TAG Message(s) received for an existing conversation, re-order them") + reorderChatRooms() + } } } @@ -170,7 +180,8 @@ class ConversationsListViewModel } val hideEmptyChatRooms = coreContext.core.config.getBool("misc", "hide_empty_chat_rooms", true) - if (hideEmptyChatRooms && chatRoom.lastMessageInHistory == null) { + // Hide empty chat rooms only applies to 1-1 conversations + if (hideEmptyChatRooms && !LinphoneUtils.isChatRoomAGroup(chatRoom) && chatRoom.lastMessageInHistory == null) { Log.w("$TAG Chat room with local address [${localAddress.asStringUriOnly()}] and peer address [${peerAddress.asStringUriOnly()}] is empty, not adding it to match Core setting") return }