diff --git a/Classes/Swift/Conference/Data/ScheduledConferenceData.swift b/Classes/Swift/Conference/Data/ScheduledConferenceData.swift index 82558fd35..2e351a8c0 100644 --- a/Classes/Swift/Conference/Data/ScheduledConferenceData.swift +++ b/Classes/Swift/Conference/Data/ScheduledConferenceData.swift @@ -40,7 +40,7 @@ class ScheduledConferenceData { let canEdit = MutableLiveData(false) let isFinished : Bool let selectedForDeletion = MutableLiveData(false) - + init (conferenceInfo: ConferenceInfo, isFinished: Bool = false) { self.conferenceInfo = conferenceInfo @@ -98,4 +98,11 @@ class ScheduledConferenceData { func gotoAssociatedChat() { } + func deleteConference() { + if (conferenceInfo.state != .Cancelled && canEdit.value == true) { + Log.i("[Scheduled Conferences] Cancelling conference \(conferenceInfo.subject)") + ScheduledConferencesViewModel.shared.conferenceScheduler?.cancelConference(conferenceInfo: conferenceInfo) + } + Core.get().deleteConferenceInformation(conferenceInfo: conferenceInfo) + } } diff --git a/Classes/Swift/Conference/ViewModels/ScheduledConferencesViewModel.swift b/Classes/Swift/Conference/ViewModels/ScheduledConferencesViewModel.swift index cb57f4b75..c77fec120 100644 --- a/Classes/Swift/Conference/ViewModels/ScheduledConferencesViewModel.swift +++ b/Classes/Swift/Conference/ViewModels/ScheduledConferencesViewModel.swift @@ -33,6 +33,8 @@ class ScheduledConferencesViewModel { var coreDelegate: CoreDelegateStub? var showTerminated = MutableLiveData(false) let editionEnabled = MutableLiveData(false) + let conferenceScheduler = try? Core.get().createConferenceScheduler() + init () { diff --git a/Classes/Swift/Conference/Views/ScheduledConferencesCell.swift b/Classes/Swift/Conference/Views/ScheduledConferencesCell.swift index 7c802a9af..36661172e 100644 --- a/Classes/Swift/Conference/Views/ScheduledConferencesCell.swift +++ b/Classes/Swift/Conference/Views/ScheduledConferencesCell.swift @@ -226,7 +226,7 @@ class ScheduledConferencesCell: UITableViewCell { } func deleteEntry() { - Core.get().deleteConferenceInformation(conferenceInfo: self.conferenceData!.conferenceInfo) + self.conferenceData?.deleteConference() ScheduledConferencesViewModel.shared.computeConferenceInfoList() self.owningTableView?.reloadData() } diff --git a/Classes/Swift/Conference/Views/ScheduledConferencesView.swift b/Classes/Swift/Conference/Views/ScheduledConferencesView.swift index a87102bd1..807cebf75 100644 --- a/Classes/Swift/Conference/Views/ScheduledConferencesView.swift +++ b/Classes/Swift/Conference/Views/ScheduledConferencesView.swift @@ -222,10 +222,10 @@ import linphonesw let selectedCount = ScheduledConferencesViewModel.shared.conferences.value?.filter{$0.selectedForDeletion.value == true}.count ?? 0 let delete = ButtonAttributes(text:VoipTexts.conference_info_confirm_removal_delete, action: { ScheduledConferencesViewModel.shared.conferences.value?.forEach { - Core.get().deleteConferenceInformation(conferenceInfo: $0.conferenceInfo) - ScheduledConferencesViewModel.shared.computeConferenceInfoList() - self.conferenceListView.reloadData() + $0.deleteConference() } + ScheduledConferencesViewModel.shared.computeConferenceInfoList() + self.conferenceListView.reloadData() VoipDialog.toast(message: selectedCount == 1 ? VoipTexts.conference_info_removed : VoipTexts.conference_infos_removed) ScheduledConferencesViewModel.shared.editionEnabled.value = false }, isDestructive:false)