From fcce09843e80627145c6d8ab1bbade546bba0549 Mon Sep 17 00:00:00 2001 From: QuentinArguillere Date: Sun, 18 Aug 2024 22:57:54 +0200 Subject: [PATCH] Meeting cancellation: only delete meeting when pressing one of the confirmation popup buttons. --- Linphone/UI/Main/ContentView.swift | 14 ++++++++++---- .../Main/Meetings/Fragments/MeetingFragment.swift | 2 -- .../Fragments/MeetingsListBottomSheet.swift | 1 - .../Main/Meetings/ViewModel/MeetingViewModel.swift | 9 ++++----- 4 files changed, 14 insertions(+), 12 deletions(-) diff --git a/Linphone/UI/Main/ContentView.swift b/Linphone/UI/Main/ContentView.swift index 4e7417526..83eb74a19 100644 --- a/Linphone/UI/Main/ContentView.swift +++ b/Linphone/UI/Main/ContentView.swift @@ -1016,13 +1016,19 @@ struct ContentView: View { if isShowSendCancelMeetingNotificationPopup { PopupView(isShowPopup: $isShowSendCancelMeetingNotificationPopup, - title: Text("The meeting has been cancelled"), + title: Text("The meeting will be cancelled"), content: Text("Send notification to participants ?"), - titleFirstButton: Text("Cancel"), - actionFirstButton: { self.isShowSendCancelMeetingNotificationPopup.toggle() }, - titleSecondButton: Text("Ok"), + titleFirstButton: Text("Cancel for me only"), + actionFirstButton: { + meetingViewModel.displayedMeeting = nil + meetingsListViewModel.deleteSelectedMeeting() + self.isShowSendCancelMeetingNotificationPopup.toggle( + ) }, + titleSecondButton: Text("Send cancellation notifications"), actionSecondButton: { + meetingViewModel.displayedMeeting = nil if let meetingToDelete = self.meetingsListViewModel.selectedMeetingToDelete { + meetingsListViewModel.deleteSelectedMeeting() // We're in the meeting list view self.meetingViewModel.sendMeetingCancelledNotifications(meeting: meetingToDelete) self.isShowSendCancelMeetingNotificationPopup.toggle() diff --git a/Linphone/UI/Main/Meetings/Fragments/MeetingFragment.swift b/Linphone/UI/Main/Meetings/Fragments/MeetingFragment.swift index 8d0385256..5a597944a 100644 --- a/Linphone/UI/Main/Meetings/Fragments/MeetingFragment.swift +++ b/Linphone/UI/Main/Meetings/Fragments/MeetingFragment.swift @@ -111,8 +111,6 @@ struct MeetingFragment: View { Button(role: .destructive) { withAnimation { meetingsListViewModel.selectedMeetingToDelete = meetingViewModel.displayedMeeting - meetingViewModel.displayedMeeting = nil - meetingsListViewModel.deleteSelectedMeeting() isShowSendCancelMeetingNotificationPopup.toggle() } } label: { diff --git a/Linphone/UI/Main/Meetings/Fragments/MeetingsListBottomSheet.swift b/Linphone/UI/Main/Meetings/Fragments/MeetingsListBottomSheet.swift index cc37914d0..1f609e1e8 100644 --- a/Linphone/UI/Main/Meetings/Fragments/MeetingsListBottomSheet.swift +++ b/Linphone/UI/Main/Meetings/Fragments/MeetingsListBottomSheet.swift @@ -53,7 +53,6 @@ struct MeetingsListBottomSheet: View { } Button { - meetingsListViewModel.deleteSelectedMeeting() CoreContext.shared.doOnCoreQueue { core in if let organizerUri = self.meetingsListViewModel.selectedMeetingToDelete?.confInfo.organizer { if core.defaultAccount?.contactAddress?.weakEqual(address2: organizerUri) ?? false { diff --git a/Linphone/UI/Main/Meetings/ViewModel/MeetingViewModel.swift b/Linphone/UI/Main/Meetings/ViewModel/MeetingViewModel.swift index 362d7f405..ef07cd954 100644 --- a/Linphone/UI/Main/Meetings/ViewModel/MeetingViewModel.swift +++ b/Linphone/UI/Main/Meetings/ViewModel/MeetingViewModel.swift @@ -359,10 +359,9 @@ class MeetingViewModel: ObservableObject { } func sendMeetingCancelledNotifications(meeting: MeetingModel) { - Log.error("\(MeetingViewModel.TAG) - sendMeetingCancelledNotifications TODO") - //CoreContext.shared.doOnCoreQueue { core in - // self.resetConferenceSchedulerAndListeners(core: core) - // self.conferenceScheduler?.cancelConference(conferenceInfo: meeting.confInfo) - //} + CoreContext.shared.doOnCoreQueue { core in + self.resetConferenceSchedulerAndListeners(core: core) + self.conferenceScheduler?.cancelConference(conferenceInfo: meeting.confInfo) + } } }