From 4e4cb26862c56fabde22e4a10ca054152d6fa171 Mon Sep 17 00:00:00 2001 From: Marcel Hibbe Date: Fri, 9 Feb 2024 11:14:00 +0100 Subject: [PATCH] fix to update adapter for "edited messages" by system message This will update the message when an edit was made on other devices. So the system message will trigger that you are informed about a change. But instead to show the system message, you use it's information to immediately update the adapter. Signed-off-by: Marcel Hibbe --- .../java/com/nextcloud/talk/chat/ChatActivity.kt | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/app/src/main/java/com/nextcloud/talk/chat/ChatActivity.kt b/app/src/main/java/com/nextcloud/talk/chat/ChatActivity.kt index 499821afa..bfac6f729 100644 --- a/app/src/main/java/com/nextcloud/talk/chat/ChatActivity.kt +++ b/app/src/main/java/com/nextcloud/talk/chat/ChatActivity.kt @@ -3857,6 +3857,10 @@ class ChatActivity : // delete poll system messages chatMessageIterator.remove() } else if (isEditMessage(currentMessage)) { + if (!chatMessageMap.containsKey(currentMessage.value.parentMessage!!.id)) { + setMessageAsEdited(currentMessage.value.parentMessage) + } + chatMessageIterator.remove() } } @@ -4464,6 +4468,17 @@ class ChatActivity : adapter?.update(messageTemp) } + private fun setMessageAsEdited(message: IMessage?) { + val messageTemp = message as ChatMessage + messageTemp.lastEditTimestamp = message.timestamp + + messageTemp.isOneToOneConversation = + currentConversation?.type == ConversationType.ROOM_TYPE_ONE_TO_ONE_CALL + messageTemp.activeUser = conversationUser + + adapter?.update(messageTemp) + } + private fun updateAdapterForReaction(message: IMessage?) { val messageTemp = message as ChatMessage