From d77f51a5e2cf3fd55ae9204bddf23ff61fcc2039 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Tue, 13 Feb 2024 10:09:47 +0100 Subject: [PATCH] Prevent replying & transfering messages to read only or disabled conversations --- .../ui/main/chat/fragment/ConversationFragment.kt | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/linphone/ui/main/chat/fragment/ConversationFragment.kt b/app/src/main/java/org/linphone/ui/main/chat/fragment/ConversationFragment.kt index af059b6ad..778b7b26f 100644 --- a/app/src/main/java/org/linphone/ui/main/chat/fragment/ConversationFragment.kt +++ b/app/src/main/java/org/linphone/ui/main/chat/fragment/ConversationFragment.kt @@ -304,6 +304,10 @@ class ConversationFragment : SlidingPaneChildFragment() { Log.e("$TAG Swipe viewHolder index [$index] is out of bounds!") } else { adapter.notifyItemChanged(index) + if (viewModel.isReadOnly.value == true || viewModel.isDisabledBecauseNotSecured.value == true) { + Log.w("$TAG Do not handle swipe action because conversation is read only") + return@RecyclerViewSwipeUtilsCallback + } val chatMessageEventLog = adapter.currentList[index] val chatMessageModel = (chatMessageEventLog.model as? MessageModel) @@ -344,7 +348,13 @@ class ConversationFragment : SlidingPaneChildFragment() { sharedViewModel.messageToForwardEvent.observe(viewLifecycleOwner) { event -> event.consume { toForward -> Log.i("$TAG Found message to forward") - sendMessageViewModel.forwardMessage(toForward) + if (viewModel.isReadOnly.value == true || viewModel.isDisabledBecauseNotSecured.value == true) { + Log.w( + "$TAG Can't forward message in this conversation as it is read only" + ) + } else { + sendMessageViewModel.forwardMessage(toForward) + } } } }