From e2a04f2e9517bd3792aac295e3357c1483c421bf Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Thu, 10 Jun 2021 16:39:38 +0200 Subject: [PATCH] Fixed messages marked as read even when conversation is not visible --- .../main/chat/viewmodels/ChatMessagesListViewModel.kt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/linphone/activities/main/chat/viewmodels/ChatMessagesListViewModel.kt b/app/src/main/java/org/linphone/activities/main/chat/viewmodels/ChatMessagesListViewModel.kt index 64a7a7ca1..bb25d2069 100644 --- a/app/src/main/java/org/linphone/activities/main/chat/viewmodels/ChatMessagesListViewModel.kt +++ b/app/src/main/java/org/linphone/activities/main/chat/viewmodels/ChatMessagesListViewModel.kt @@ -23,6 +23,7 @@ import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider import java.util.* +import org.linphone.LinphoneApplication.Companion.coreContext import org.linphone.core.* import org.linphone.core.tools.Log import org.linphone.mediastream.Version @@ -56,7 +57,10 @@ class ChatMessagesListViewModel(private val chatRoom: ChatRoom) : ViewModel() { private val chatRoomListener: ChatRoomListenerStub = object : ChatRoomListenerStub() { override fun onChatMessageReceived(chatRoom: ChatRoom, eventLog: EventLog) { - chatRoom.markAsRead() + // Do not mark as read if DetailChatRoomFragment was opened before app was put in background + if (coreContext.notificationsManager.currentlyDisplayedChatRoomAddress == chatRoom.peerAddress.asStringUriOnly()) { + chatRoom.markAsRead() + } if (eventLog.type == EventLog.Type.ConferenceChatMessage) { val chatMessage = eventLog.chatMessage