TreatmentsTask.swift 1.1 KB

1234567891011121314151617181920212223242526272829303132
  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. var interval: TimeInterval = 2 * 60
  20. if NightscoutSocketManager.shared.connectionState == .authenticated {
  21. interval = 10 * 60
  22. }
  23. TaskScheduler.shared.rescheduleTask(id: .treatments, to: Date().addingTimeInterval(interval))
  24. TaskScheduler.shared.rescheduleTask(id: .alarmCheck, to: Date().addingTimeInterval(3))
  25. }
  26. }