TreatmentsTask.swift 963 B

12345678910111213141516171819202122232425262728
  1. // LoopFollow
  2. // TreatmentsTask.swift
  3. import Foundation
  4. extension MainViewController {
  5. func scheduleTreatmentsTask(initialDelay: TimeInterval = 5) {
  6. let firstRun = Date().addingTimeInterval(initialDelay)
  7. TaskScheduler.shared.scheduleTask(id: .treatments, nextRun: firstRun) { [weak self] in
  8. guard let self = self else { return }
  9. self.treatmentsTaskAction()
  10. }
  11. }
  12. func treatmentsTaskAction() {
  13. // If Nightscout not enabled, wait 60s and try again
  14. guard IsNightscoutEnabled(), Storage.shared.downloadTreatments.value else {
  15. TaskScheduler.shared.rescheduleTask(id: .treatments, to: Date().addingTimeInterval(60))
  16. return
  17. }
  18. WebLoadNSTreatments()
  19. TaskScheduler.shared.rescheduleTask(id: .treatments, to: Date().addingTimeInterval(2 * 60))
  20. TaskScheduler.shared.rescheduleTask(id: .alarmCheck, to: Date().addingTimeInterval(3))
  21. }
  22. }