forked from mirrors/linphone-iphone
Send cancel conference iCS
This commit is contained in:
parent
7b70ff88d4
commit
f2d7155aa2
2 changed files with 35 additions and 8 deletions
|
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue