From 7219cfbdf75d182c621ca44be71c3f31aa381846 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Wed, 9 Feb 2022 12:11:05 +0100 Subject: [PATCH] Fixed chat room UI not updated when kicked/invited back while in it --- .../chat/viewmodels/ChatMessageSendingViewModel.kt | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/app/src/main/java/org/linphone/activities/main/chat/viewmodels/ChatMessageSendingViewModel.kt b/app/src/main/java/org/linphone/activities/main/chat/viewmodels/ChatMessageSendingViewModel.kt index 3226c17f1..37290f8f3 100644 --- a/app/src/main/java/org/linphone/activities/main/chat/viewmodels/ChatMessageSendingViewModel.kt +++ b/app/src/main/java/org/linphone/activities/main/chat/viewmodels/ChatMessageSendingViewModel.kt @@ -107,9 +107,19 @@ class ChatMessageSendingViewModel(private val chatRoom: ChatRoom) : ViewModel() stopVoiceRecordPlayer() } + private val chatRoomListener: ChatRoomListenerStub = object : ChatRoomListenerStub() { + override fun onStateChanged(chatRoom: ChatRoom, state: ChatRoom.State) { + if (state == ChatRoom.State.Created || state == ChatRoom.State.Terminated) { + isReadOnly.value = chatRoom.hasBeenLeft() + } + } + } + private val scope = CoroutineScope(Dispatchers.IO + SupervisorJob()) init { + chatRoom.addListener(chatRoomListener) + attachments.value = arrayListOf() attachFileEnabled.value = true @@ -138,6 +148,7 @@ class ChatMessageSendingViewModel(private val chatRoom: ChatRoom) : ViewModel() voiceRecordingPlayer.removeListener(playerListener) } + chatRoom.removeListener(chatRoomListener) scope.cancel() super.onCleared() }