From 835b2dd86371af9bf260deba1892881d4e4a1182 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Fri, 26 Nov 2021 15:28:10 +0100 Subject: [PATCH] Fixed chat messages not marked as read when chat bubble is opened when they are received --- .../activities/chat_bubble/ChatBubbleActivity.kt | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/app/src/main/java/org/linphone/activities/chat_bubble/ChatBubbleActivity.kt b/app/src/main/java/org/linphone/activities/chat_bubble/ChatBubbleActivity.kt index 47dde1db1..714773897 100644 --- a/app/src/main/java/org/linphone/activities/chat_bubble/ChatBubbleActivity.kt +++ b/app/src/main/java/org/linphone/activities/chat_bubble/ChatBubbleActivity.kt @@ -37,6 +37,8 @@ import org.linphone.activities.main.chat.adapters.ChatMessagesListAdapter import org.linphone.activities.main.chat.viewmodels.* import org.linphone.activities.main.viewmodels.ListTopBarViewModel import org.linphone.core.ChatRoom +import org.linphone.core.ChatRoomListenerStub +import org.linphone.core.EventLog import org.linphone.core.Factory import org.linphone.core.tools.Log import org.linphone.databinding.ChatBubbleActivityBinding @@ -58,6 +60,12 @@ class ChatBubbleActivity : GenericActivity() { } } + private val listener = object : ChatRoomListenerStub() { + override fun onChatMessageReceived(chatRoom: ChatRoom, eventLog: EventLog) { + chatRoom.markAsRead() + } + } + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -172,6 +180,8 @@ class ChatBubbleActivity : GenericActivity() { override fun onResume() { super.onResume() + viewModel.chatRoom.addListener(listener) + val peerAddress = viewModel.chatRoom.peerAddress.asStringUriOnly() coreContext.notificationsManager.currentlyDisplayedChatRoomAddress = peerAddress coreContext.notificationsManager.resetChatNotificationCounterForSipUri(peerAddress) @@ -184,6 +194,8 @@ class ChatBubbleActivity : GenericActivity() { } override fun onPause() { + viewModel.chatRoom.removeListener(listener) + coreContext.notificationsManager.currentlyDisplayedChatRoomAddress = null super.onPause()