mirror of
https://gitlab.linphone.org/BC/public/linphone-iphone.git
synced 2026-01-17 11:08:06 +00:00
Update and cancel meeting : now properly send ICS through chat
This commit is contained in:
parent
8059dd4470
commit
22d37cfce9
4 changed files with 30 additions and 23 deletions
|
|
@ -1085,9 +1085,8 @@ struct ContentView: View {
|
|||
actionSecondButton: {
|
||||
meetingViewModel.displayedMeeting = nil
|
||||
if let meetingToDelete = self.meetingsListViewModel.selectedMeetingToDelete {
|
||||
self.meetingViewModel.cancelMeetingWithNotifications(meeting: meetingToDelete)
|
||||
meetingsListViewModel.deleteSelectedMeeting()
|
||||
// We're in the meeting list view
|
||||
self.meetingViewModel.sendMeetingCancelledNotifications(meeting: meetingToDelete)
|
||||
self.isShowSendCancelMeetingNotificationPopup.toggle()
|
||||
}
|
||||
})
|
||||
|
|
|
|||
|
|
@ -401,6 +401,8 @@ struct ScheduleMeetingFragment: View {
|
|||
.onAppear {
|
||||
proxyReader.scrollTo(meetingViewModel.selectedTimezoneIdx)
|
||||
}
|
||||
.background(.white)
|
||||
.cornerRadius(20)
|
||||
.listStyle(.plain)
|
||||
}
|
||||
.frame(width: geometry.size.width, height: geometry.size.height)
|
||||
|
|
|
|||
|
|
@ -161,6 +161,18 @@ class MeetingViewModel: ObservableObject {
|
|||
confInfo.participantInfos = participantsInfoList
|
||||
}
|
||||
|
||||
private func sendIcsInvitation(core: Core) {
|
||||
if let chatRoomParams = try? core.createDefaultChatRoomParams() {
|
||||
chatRoomParams.groupEnabled = false
|
||||
chatRoomParams.backend = ChatRoom.Backend.FlexisipChat
|
||||
chatRoomParams.encryptionEnabled = true
|
||||
chatRoomParams.subject = "Meeting ics"
|
||||
self.conferenceScheduler?.sendInvitations(chatRoomParams: chatRoomParams)
|
||||
} else {
|
||||
Log.error("\(MeetingViewModel.TAG) Failed to create default chatroom parameters. This should not happen")
|
||||
}
|
||||
}
|
||||
|
||||
private func resetConferenceSchedulerAndListeners(core: Core) {
|
||||
self.mSchedulerSubscriptions.removeAll()
|
||||
self.conferenceScheduler = try? core.createConferenceScheduler()
|
||||
|
|
@ -185,15 +197,7 @@ class MeetingViewModel: ObservableObject {
|
|||
|
||||
if self.sendInvitations {
|
||||
Log.info("\(MeetingViewModel.TAG) User asked for invitations to be sent, let's do it")
|
||||
if let chatRoomParams = try? core.createDefaultChatRoomParams() {
|
||||
chatRoomParams.groupEnabled = false
|
||||
chatRoomParams.backend = ChatRoom.Backend.FlexisipChat
|
||||
chatRoomParams.encryptionEnabled = true
|
||||
chatRoomParams.subject = "Meeting invitation" // Won't be used
|
||||
self.conferenceScheduler?.sendInvitations(chatRoomParams: chatRoomParams)
|
||||
} else {
|
||||
Log.error("\(MeetingViewModel.TAG) Failed to create default chatroom parameters. This should not happen")
|
||||
}
|
||||
self.sendIcsInvitation(core: core)
|
||||
} else {
|
||||
Log.info("\(MeetingViewModel.TAG) User didn't asked for invitations to be sent")
|
||||
DispatchQueue.main.async {
|
||||
|
|
@ -201,6 +205,8 @@ class MeetingViewModel: ObservableObject {
|
|||
self.conferenceCreatedEvent = true
|
||||
}
|
||||
}
|
||||
} else if cbVal.state == ConferenceScheduler.State.Updating {
|
||||
self.sendIcsInvitation(core: core)
|
||||
}
|
||||
})
|
||||
|
||||
|
|
@ -318,9 +324,10 @@ class MeetingViewModel: ObservableObject {
|
|||
self.displayedMeeting = meeting
|
||||
}
|
||||
|
||||
func sendMeetingCancelledNotifications(meeting: MeetingModel) {
|
||||
func cancelMeetingWithNotifications(meeting: MeetingModel) {
|
||||
CoreContext.shared.doOnCoreQueue { core in
|
||||
self.conferenceScheduler = try? core.createConferenceScheduler()
|
||||
Log.info("debugtrace - core media encryption = \(core.mediaEncryption)")
|
||||
self.resetConferenceSchedulerAndListeners(core: core)
|
||||
self.conferenceScheduler?.cancelConference(conferenceInfo: meeting.confInfo)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -122,17 +122,16 @@ class MeetingsListViewModel: ObservableObject {
|
|||
|
||||
coreContext.doOnCoreQueue { core in
|
||||
core.deleteConferenceInformation(conferenceInfo: meetingToDelete.confInfo)
|
||||
DispatchQueue.main.async {
|
||||
if let index = self.meetingsList.firstIndex(where: { $0.model?.address == meetingToDelete.address }) {
|
||||
if self.todayIdx > index {
|
||||
// bump todayIdx one place up
|
||||
self.todayIdx -= 1
|
||||
}
|
||||
self.meetingsList.remove(at: index)
|
||||
ToastViewModel.shared.toastMessage = "Success_toast_meeting_deleted"
|
||||
ToastViewModel.shared.displayToast = true
|
||||
}
|
||||
}
|
||||
|
||||
if let index = self.meetingsList.firstIndex(where: { $0.model?.address == meetingToDelete.address }) {
|
||||
if self.todayIdx > index {
|
||||
// bump todayIdx one place up
|
||||
self.todayIdx -= 1
|
||||
}
|
||||
self.meetingsList.remove(at: index)
|
||||
ToastViewModel.shared.toastMessage = "Success_toast_meeting_deleted"
|
||||
ToastViewModel.shared.displayToast = true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue