CalendarTask.swift 781 B

1234567891011121314151617181920212223242526
  1. // LoopFollow
  2. // CalendarTask.swift
  3. // Created by Jonas Björkert on 2025-01-13.
  4. import Foundation
  5. extension MainViewController {
  6. func scheduleCalendarTask(initialDelay: TimeInterval = 15) {
  7. let startTime = Date().addingTimeInterval(initialDelay)
  8. TaskScheduler.shared.scheduleTask(id: .calendarWrite, nextRun: startTime) { [weak self] in
  9. guard let self = self else { return }
  10. self.calendarTaskAction()
  11. }
  12. }
  13. func calendarTaskAction() {
  14. if UserDefaultsRepository.writeCalendarEvent.value,
  15. !UserDefaultsRepository.calendarIdentifier.value.isEmpty
  16. {
  17. writeCalendar()
  18. }
  19. TaskScheduler.shared.rescheduleTask(id: .calendarWrite, to: Date().addingTimeInterval(30))
  20. }
  21. }