From 9ce803667b6904c012c949393329ea49b4dab946 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Mon, 24 Mar 2025 09:49:34 +0100 Subject: [PATCH] Do not send meeting message invitation when chat is disabled --- .../ui/main/meetings/viewmodel/MeetingViewModel.kt | 3 ++- .../ui/main/meetings/viewmodel/MeetingsListViewModel.kt | 3 ++- .../ui/main/meetings/viewmodel/ScheduleMeetingViewModel.kt | 7 +++++-- app/src/main/res/layout/meeting_schedule_fragment.xml | 3 +++ 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/org/linphone/ui/main/meetings/viewmodel/MeetingViewModel.kt b/app/src/main/java/org/linphone/ui/main/meetings/viewmodel/MeetingViewModel.kt index 94499c278..c0490fa0d 100644 --- a/app/src/main/java/org/linphone/ui/main/meetings/viewmodel/MeetingViewModel.kt +++ b/app/src/main/java/org/linphone/ui/main/meetings/viewmodel/MeetingViewModel.kt @@ -24,6 +24,7 @@ import androidx.annotation.WorkerThread import androidx.lifecycle.MutableLiveData import java.util.TimeZone import org.linphone.LinphoneApplication.Companion.coreContext +import org.linphone.LinphoneApplication.Companion.corePreferences import org.linphone.core.Address import org.linphone.core.ConferenceInfo import org.linphone.core.ConferenceScheduler @@ -93,7 +94,7 @@ class MeetingViewModel "$TAG Conference ${conferenceScheduler.info?.subject} cancelled" ) val params = LinphoneUtils.getChatRoomParamsToCancelMeeting() - if (params != null) { + if (params != null && !corePreferences.disableChat) { conferenceScheduler.sendInvitations(params) } else { operationInProgress.postValue(false) diff --git a/app/src/main/java/org/linphone/ui/main/meetings/viewmodel/MeetingsListViewModel.kt b/app/src/main/java/org/linphone/ui/main/meetings/viewmodel/MeetingsListViewModel.kt index d9dfdd8ce..361f9a5e6 100644 --- a/app/src/main/java/org/linphone/ui/main/meetings/viewmodel/MeetingsListViewModel.kt +++ b/app/src/main/java/org/linphone/ui/main/meetings/viewmodel/MeetingsListViewModel.kt @@ -23,6 +23,7 @@ import androidx.annotation.UiThread import androidx.annotation.WorkerThread import androidx.lifecycle.MutableLiveData import org.linphone.LinphoneApplication.Companion.coreContext +import org.linphone.LinphoneApplication.Companion.corePreferences import org.linphone.core.Account import org.linphone.core.AccountListenerStub import org.linphone.core.Address @@ -88,7 +89,7 @@ class MeetingsListViewModel "$TAG Conference ${conferenceScheduler.info?.subject} cancelled" ) val params = LinphoneUtils.getChatRoomParamsToCancelMeeting() - if (params != null) { + if (params != null && !corePreferences.disableChat) { conferenceScheduler.sendInvitations(params) } else { operationInProgress.postValue(false) diff --git a/app/src/main/java/org/linphone/ui/main/meetings/viewmodel/ScheduleMeetingViewModel.kt b/app/src/main/java/org/linphone/ui/main/meetings/viewmodel/ScheduleMeetingViewModel.kt index 1302689fc..880da234a 100644 --- a/app/src/main/java/org/linphone/ui/main/meetings/viewmodel/ScheduleMeetingViewModel.kt +++ b/app/src/main/java/org/linphone/ui/main/meetings/viewmodel/ScheduleMeetingViewModel.kt @@ -80,6 +80,8 @@ class ScheduleMeetingViewModel val hideBroadcast = MutableLiveData() + val chatDisabled = MutableLiveData() + val conferenceCreatedEvent: MutableLiveData> by lazy { MutableLiveData>() } @@ -125,7 +127,7 @@ class ScheduleMeetingViewModel ) } - if (sendInvitations.value == true) { + if (sendInvitations.value == true && !corePreferences.disableChat) { Log.i("$TAG User asked for invitations to be sent, let's do it") val chatRoomParams = coreContext.core.createConferenceParams(null) @@ -178,10 +180,11 @@ class ScheduleMeetingViewModel init { coreContext.postOnCoreThread { hideBroadcast.postValue(corePreferences.disableBroadcasts) + chatDisabled.postValue(corePreferences.disableChat) + sendInvitations.postValue(!corePreferences.disableChat) } isBroadcastSelected.value = false showBroadcastHelp.value = false - sendInvitations.value = true selectedTimeZone.value = availableTimeZones.find { it.id == TimeZone.getDefault().id diff --git a/app/src/main/res/layout/meeting_schedule_fragment.xml b/app/src/main/res/layout/meeting_schedule_fragment.xml index 55b8b3573..ea6205b89 100644 --- a/app/src/main/res/layout/meeting_schedule_fragment.xml +++ b/app/src/main/res/layout/meeting_schedule_fragment.xml @@ -514,6 +514,8 @@ android:layout_marginEnd="16dp" android:textColor="@color/gray_main2_600" android:textSize="14sp" + android:visibility="@{viewModel.chatDisabled ? View.GONE : View.VISIBLE}" + android:enabled="@{!viewModel.chatDisabled}" android:checked="@={viewModel.sendInvitations}" app:layout_constraintTop_toBottomOf="@id/separator_5" app:layout_constraintStart_toStartOf="parent" /> @@ -524,6 +526,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="10dp" + android:visibility="@{viewModel.chatDisabled ? View.GONE : View.VISIBLE}" android:text="@string/meeting_schedule_send_invitations_title" app:layout_constraintStart_toEndOf="@id/send_invitations" app:layout_constraintTop_toTopOf="@id/send_invitations"