From 1b827bcf761d07281fdce667a1a9c83dffab3965 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Fri, 15 Dec 2023 10:04:18 +0100 Subject: [PATCH] Fixed menu button showing in '@' participants menu --- .../ui/main/chat/model/ParticipantModel.kt | 1 + .../viewmodel/ConversationInfoViewModel.kt | 28 +++++++++++++------ .../res/layout/chat_participant_list_cell.xml | 1 + 3 files changed, 22 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/org/linphone/ui/main/chat/model/ParticipantModel.kt b/app/src/main/java/org/linphone/ui/main/chat/model/ParticipantModel.kt index 894ed1953..dc980b5d0 100644 --- a/app/src/main/java/org/linphone/ui/main/chat/model/ParticipantModel.kt +++ b/app/src/main/java/org/linphone/ui/main/chat/model/ParticipantModel.kt @@ -29,6 +29,7 @@ class ParticipantModel @WorkerThread constructor( val address: Address, val isMyselfAdmin: Boolean = false, val isParticipantAdmin: Boolean = false, + val showMenu: Boolean = false, private val onClicked: ((model: ParticipantModel) -> Unit)? = null, private val onMenuClicked: ((view: View, model: ParticipantModel) -> Unit)? = null ) { diff --git a/app/src/main/java/org/linphone/ui/main/chat/viewmodel/ConversationInfoViewModel.kt b/app/src/main/java/org/linphone/ui/main/chat/viewmodel/ConversationInfoViewModel.kt index 8055dcb10..197fbd0dd 100644 --- a/app/src/main/java/org/linphone/ui/main/chat/viewmodel/ConversationInfoViewModel.kt +++ b/app/src/main/java/org/linphone/ui/main/chat/viewmodel/ConversationInfoViewModel.kt @@ -506,19 +506,31 @@ class ConversationInfoViewModel @UiThread constructor() : ViewModel() { val friends = arrayListOf() val participantsList = arrayListOf() if (chatRoom.hasCapability(ChatRoom.Capabilities.Basic.toInt())) { - val model = ParticipantModel(chatRoom.peerAddress, selfAdmin, false) { view, model -> - // openMenu - showParticipantAdminPopupMenuEvent.postValue(Event(Pair(view, model))) - } + val model = ParticipantModel( + chatRoom.peerAddress, + selfAdmin, + isParticipantAdmin = false, + showMenu = true, + onMenuClicked = { view, model -> + // openMenu + showParticipantAdminPopupMenuEvent.postValue(Event(Pair(view, model))) + } + ) friends.add(model.avatarModel.friend) participantsList.add(model) } else { for (participant in chatRoom.participants) { val isParticipantAdmin = if (groupChatRoom) participant.isAdmin else false - val model = ParticipantModel(participant.address, selfAdmin, isParticipantAdmin, onMenuClicked = { view, model -> - // openMenu - showParticipantAdminPopupMenuEvent.postValue(Event(Pair(view, model))) - }) + val model = ParticipantModel( + participant.address, + selfAdmin, + isParticipantAdmin = isParticipantAdmin, + showMenu = true, + onMenuClicked = { view, model -> + // openMenu + showParticipantAdminPopupMenuEvent.postValue(Event(Pair(view, model))) + } + ) friends.add(model.avatarModel.friend) participantsList.add(model) } diff --git a/app/src/main/res/layout/chat_participant_list_cell.xml b/app/src/main/res/layout/chat_participant_list_cell.xml index 2a048dd5c..8a677fea6 100644 --- a/app/src/main/res/layout/chat_participant_list_cell.xml +++ b/app/src/main/res/layout/chat_participant_list_cell.xml @@ -87,6 +87,7 @@ android:layout_width="@dimen/icon_size" android:layout_height="@dimen/icon_size" android:src="@drawable/dots_three_vertical" + android:visibility="@{model.showMenu ? View.VISIBLE : View.GONE}" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toEndOf="@id/name" app:layout_constraintTop_toTopOf="parent"