TreatmentsTask.swift 989 B

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