diff --git a/app/src/main/java/org/linphone/activities/main/chat/adapters/ChatMessagesListAdapter.kt b/app/src/main/java/org/linphone/activities/main/chat/adapters/ChatMessagesListAdapter.kt index 95f3322dd..2b08a173c 100644 --- a/app/src/main/java/org/linphone/activities/main/chat/adapters/ChatMessagesListAdapter.kt +++ b/app/src/main/java/org/linphone/activities/main/chat/adapters/ChatMessagesListAdapter.kt @@ -451,12 +451,18 @@ private class ChatMessageDiffCallback : DiffUtil.ItemCallback() { oldItem: EventLogData, newItem: EventLogData ): Boolean { - return if (newItem.eventLog.type == EventLog.Type.ConferenceChatMessage) { + return if (oldItem.eventLog.type == EventLog.Type.ConferenceChatMessage && + newItem.eventLog.type == EventLog.Type.ConferenceChatMessage + ) { val oldData = (oldItem.data as ChatMessageData) val newData = (newItem.data as ChatMessageData) + val previous = oldData.hasPreviousMessage == newData.hasPreviousMessage val next = oldData.hasNextMessage == newData.hasNextMessage newItem.eventLog.chatMessage?.state == ChatMessage.State.Displayed && previous && next - } else true + } else { + oldItem.eventLog.type != EventLog.Type.ConferenceChatMessage && + newItem.eventLog.type != EventLog.Type.ConferenceChatMessage + } } } diff --git a/app/src/main/java/org/linphone/activities/main/chat/fragments/DetailChatRoomFragment.kt b/app/src/main/java/org/linphone/activities/main/chat/fragments/DetailChatRoomFragment.kt index 8f65669c0..59a4b1dd9 100644 --- a/app/src/main/java/org/linphone/activities/main/chat/fragments/DetailChatRoomFragment.kt +++ b/app/src/main/java/org/linphone/activities/main/chat/fragments/DetailChatRoomFragment.kt @@ -175,10 +175,20 @@ class DetailChatRoomFragment : MasterFragment listViewModel.deleteMessage(chatMessage) + viewModel.updateLastMessageToDisplay() } } ) @@ -607,6 +618,7 @@ class DetailChatRoomFragment : MasterFragment() for (chatRoom in coreContext.core.chatRooms) {