Send cancel conference iCS

This commit is contained in:
Christophe Deschamps 2022-10-19 08:55:32 +02:00
parent 7b70ff88d4
commit f2d7155aa2
2 changed files with 35 additions and 8 deletions

View file

@ -40,7 +40,8 @@ class ScheduledConferenceData {
let canEdit = MutableLiveData(false)
let isFinished : Bool
let selectedForDeletion = MutableLiveData(false)
private var conferenceSchedulerDelegate : ConferenceSchedulerDelegateStub? = nil
private var conferenceScheduler : ConferenceScheduler? = nil
init (conferenceInfo: ConferenceInfo, isFinished: Bool = false) {
self.conferenceInfo = conferenceInfo
@ -98,11 +99,30 @@ class ScheduledConferenceData {
func gotoAssociatedChat() {
}
func deleteConference() {
conferenceSchedulerDelegate = ConferenceSchedulerDelegateStub(
onStateChanged: { scheduler, state in
Log.i("[Conference Deletion] Conference scheduler state is \(state)")
if (state == .Ready) {
if let chatRoomParams = ConferenceSchedulingViewModel.shared.getConferenceInvitationsChatRoomParams() {
scheduler.sendInvitations(chatRoomParams: chatRoomParams) // Send cancel ICS
Log.e("[Conference Deletion] sent cancel ICS.")
}
}
})
if (conferenceInfo.state != .Cancelled && canEdit.value == true) {
Log.i("[Scheduled Conferences] Cancelling conference \(conferenceInfo.subject)")
ScheduledConferencesViewModel.shared.conferenceScheduler?.cancelConference(conferenceInfo: conferenceInfo)
self.conferenceScheduler = try? Core.get().createConferenceScheduler()
if (self.conferenceScheduler != nil) {
self.conferenceScheduler?.addDelegate(delegate: conferenceSchedulerDelegate!)
self.conferenceScheduler?.cancelConference(conferenceInfo: conferenceInfo)
}
} else {
Core.get().deleteConferenceInformation(conferenceInfo: conferenceInfo)
}
Core.get().deleteConferenceInformation(conferenceInfo: conferenceInfo)
}
}

View file

@ -82,11 +82,7 @@ class ConferenceSchedulingViewModel {
if (self.scheduleForLater.value == true && self.sendInviteViaChat.value == true) {
// Send conference info even when conf is not scheduled for later
// as the conference server doesn't invite participants automatically
if let chatRoomParams = try?self.core.createDefaultChatRoomParams() {
chatRoomParams.encryptionEnabled = self.isEndToEndEncryptedChatAvailable()
chatRoomParams.groupEnabled = false
chatRoomParams.backend = chatRoomParams.encryptionEnabled ? .FlexisipChat : .Basic
chatRoomParams.subject = self.subject.value!
if let chatRoomParams = self.getConferenceInvitationsChatRoomParams() {
scheduler.sendInvitations(chatRoomParams: chatRoomParams)
}
} else {
@ -245,5 +241,16 @@ class ConferenceSchedulingViewModel {
return [Duration(value: 30, display: "30min"), Duration(value: 60, display: "1h"), Duration(value: 120, display: "2h")]
}
func getConferenceInvitationsChatRoomParams() -> ChatRoomParams? {
if let chatRoomParams = try?self.core.createDefaultChatRoomParams() {
chatRoomParams.encryptionEnabled = self.isEndToEndEncryptedChatAvailable()
chatRoomParams.groupEnabled = false
chatRoomParams.backend = chatRoomParams.encryptionEnabled ? .FlexisipChat : .Basic
chatRoomParams.subject = self.subject.value!
return chatRoomParams
}
return nil
}
}