From a50b74d04262c66d0d8164a645c741b1e76c99d8 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Tue, 23 Jan 2024 13:38:07 +0100 Subject: [PATCH] Hidden some options of conversation long press menu if read only --- .../ui/main/chat/fragment/ConversationDialogFragment.kt | 2 ++ .../ui/main/chat/fragment/ConversationsListFragment.kt | 1 + .../org/linphone/ui/main/chat/model/ConversationModel.kt | 2 ++ app/src/main/res/layout/chat_long_press_menu.xml | 8 ++++++-- 4 files changed, 11 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/linphone/ui/main/chat/fragment/ConversationDialogFragment.kt b/app/src/main/java/org/linphone/ui/main/chat/fragment/ConversationDialogFragment.kt index e6a524afa..ec506ed17 100644 --- a/app/src/main/java/org/linphone/ui/main/chat/fragment/ConversationDialogFragment.kt +++ b/app/src/main/java/org/linphone/ui/main/chat/fragment/ConversationDialogFragment.kt @@ -35,6 +35,7 @@ import org.linphone.databinding.ChatLongPressMenuBinding class ConversationDialogFragment( private val isMuted: Boolean, private val isGroup: Boolean, + private val isReadOnly: Boolean, private val onDismiss: (() -> Unit)? = null, private val onMarkConversationAsRead: (() -> Unit)? = null, private val onToggleMute: (() -> Unit)? = null, @@ -72,6 +73,7 @@ class ConversationDialogFragment( val view = ChatLongPressMenuBinding.inflate(layoutInflater) view.isMuted = isMuted view.isGroup = isGroup + view.isReadOnly = isReadOnly view.setMarkAsReadClickListener { onMarkConversationAsRead?.invoke() diff --git a/app/src/main/java/org/linphone/ui/main/chat/fragment/ConversationsListFragment.kt b/app/src/main/java/org/linphone/ui/main/chat/fragment/ConversationsListFragment.kt index 04ef77796..bdfc2b159 100644 --- a/app/src/main/java/org/linphone/ui/main/chat/fragment/ConversationsListFragment.kt +++ b/app/src/main/java/org/linphone/ui/main/chat/fragment/ConversationsListFragment.kt @@ -131,6 +131,7 @@ class ConversationsListFragment : AbstractTopBarFragment() { val modalBottomSheet = ConversationDialogFragment( model.isMuted.value == true, model.isGroup, + model.isReadOnly, { // onDismiss adapter.resetSelection() }, diff --git a/app/src/main/java/org/linphone/ui/main/chat/model/ConversationModel.kt b/app/src/main/java/org/linphone/ui/main/chat/model/ConversationModel.kt index 5e008575b..4e25f04c4 100644 --- a/app/src/main/java/org/linphone/ui/main/chat/model/ConversationModel.kt +++ b/app/src/main/java/org/linphone/ui/main/chat/model/ConversationModel.kt @@ -55,6 +55,8 @@ class ConversationModel @WorkerThread constructor(val chatRoom: ChatRoom) { Capabilities.Conference.toInt() ) + val isReadOnly = chatRoom.isReadOnly + val subject = MutableLiveData() val lastUpdateTime = MutableLiveData() diff --git a/app/src/main/res/layout/chat_long_press_menu.xml b/app/src/main/res/layout/chat_long_press_menu.xml index c5a0e9114..65f117d5c 100644 --- a/app/src/main/res/layout/chat_long_press_menu.xml +++ b/app/src/main/res/layout/chat_long_press_menu.xml @@ -25,6 +25,9 @@ + @@ -70,7 +74,7 @@ android:background="@drawable/menu_item_background" android:layout_marginBottom="1dp" android:drawableStart="@drawable/phone" - android:visibility="@{isGroup ? View.GONE : View.VISIBLE}" + android:visibility="@{isGroup || isReadOnly ? View.GONE : View.VISIBLE}" app:layout_constraintBottom_toTopOf="@id/delete_chat_room" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent"/> @@ -92,7 +96,7 @@