CalendarTask.swift 854 B

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