TreatmentsTask.swift 994 B

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