Fix build

This commit is contained in:
QuentinArguillere 2024-08-19 17:49:19 +02:00
parent 356803051f
commit 96d8a879b8
2 changed files with 38 additions and 24 deletions

View file

@ -231,6 +231,11 @@ struct ToastView: View {
Text("conversation_invalid_participant_due_to_security_mode_toast")
.multilineTextAlignment(.center)
.foregroundStyle(Color.redDanger500)
case "Meeting_added_to_calendar":
Text("Meeting added to iPhone calendar")
.multilineTextAlignment(.center)
.foregroundStyle(Color.greenSuccess500)
.default_text_style(styleSize: 15)
.padding(8)

View file

@ -326,31 +326,40 @@ class MeetingViewModel: ObservableObject {
}
func addMeetingToCalendar() {
if #available(iOS 17.0, *) {
eventStore.requestAccess(to: .event) { granted, error in
guard let meeting = self.displayedMeeting else {
Log.error("\(MeetingViewModel.TAG) Failed to add meeting to calendar: no meeting selected")
}
if !granted {
Log.error("\(MeetingViewModel.TAG) Failed to add meeting to calendar: access not granted")
} else if error == nil {
let event:EKEvent = EKEvent(eventStore: self.eventStore)
event.title = self.subject
event.startDate = self.fromDate
event.endDate = self.toDate
event.notes = self.description
event.calendar = self.eventStore.defaultCalendarForNewEvents
do {
try self.eventStore.save(event, span: .thisEvent)
} catch let error as NSError {
Log.error("\(MeetingViewModel.TAG) Failed to add meeting to calendar: \(error)")
}
Log.info("\(MeetingViewModel.TAG) Meeting '\(meeting.subject)': \(error ?? "")")
} else {
Log.error("\(MeetingViewModel.TAG) Failed to add meeting to calendar: \(error ?? "")")
}
let addToCalendar = { (granted: Bool, error: (any Error)?) in
guard let meeting = self.displayedMeeting else {
Log.error("\(MeetingViewModel.TAG) Failed to add meeting to calendar: no meeting selected")
return
}
if !granted {
Log.error("\(MeetingViewModel.TAG) Failed to add meeting to calendar: access not granted")
} else if error == nil {
let event: EKEvent = EKEvent(eventStore: self.eventStore)
event.title = self.subject
event.startDate = self.fromDate
event.endDate = self.toDate
event.notes = self.description
event.calendar = self.eventStore.defaultCalendarForNewEvents
do {
try self.eventStore.save(event, span: .thisEvent)
Log.info("\(MeetingViewModel.TAG) Meeting '\(meeting.subject)' added to calendar")
ToastViewModel.shared.toastMessage = "Meeting_added_to_calendar"
ToastViewModel.shared.displayToast = true
} catch let error as NSError {
Log.error("\(MeetingViewModel.TAG) Failed to add meeting to calendar: \(error)")
ToastViewModel.shared.toastMessage = "Error: \(error)"
ToastViewModel.shared.displayToast = true
}
} else {
Log.error("\(MeetingViewModel.TAG) Failed to add meeting to calendar: \(error?.localizedDescription ?? "")")
}
}
if #available(iOS 17.0, *) {
eventStore.requestWriteOnlyAccessToEvents(completion: addToCalendar)
} else {
eventStore.requestAccess(to: .event, completion: addToCalendar)
}
}
// eventStore.requestAccess(to: EKEntityType.event) { granted, error in