Merge branch 'fix/conf_fixes' into release/4.7

This commit is contained in:
Christophe Deschamps 2022-10-19 09:59:24 +02:00
commit eda3fa114a
2 changed files with 33 additions and 7 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
@ -102,10 +103,28 @@ 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)")
try? Core.get().createConferenceScheduler().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)
}

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
}
}