From 891be0eb9bcc2446623afa40407ab6c49abe3f9f Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Tue, 11 Jan 2022 15:40:29 +0100 Subject: [PATCH] Properly update last chat room message for when going back to chat rooms list --- .../main/chat/adapters/ChatMessagesListAdapter.kt | 10 ++++++++-- .../main/chat/fragments/DetailChatRoomFragment.kt | 15 ++++++++++++++- .../chat/fragments/MasterChatRoomsFragment.kt | 4 +++- .../main/chat/viewmodels/ChatRoomViewModel.kt | 2 +- .../chat/viewmodels/ChatRoomsListViewModel.kt | 4 +--- 5 files changed, 27 insertions(+), 8 deletions(-) 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) {