AlarmTask.swift 1.0 KB

123456789101112131415161718192021222324252627282930313233343536
  1. //
  2. // AlarmTask.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 scheduleAlarmTask(initialDelay: TimeInterval = 30) {
  11. let firstRun = Date().addingTimeInterval(initialDelay)
  12. TaskScheduler.shared.scheduleTask(id: .alarmCheck, nextRun: firstRun) { [weak self] in
  13. guard let self = self else { return }
  14. self.alarmTaskAction()
  15. }
  16. }
  17. func alarmTaskAction() {
  18. DispatchQueue.main.async {
  19. if self.bgData.count > 0 {
  20. self.checkAlarms(bgs: self.bgData)
  21. }
  22. if self.overrideGraphData.count > 0 {
  23. self.checkOverrideAlarms()
  24. }
  25. if self.tempTargetGraphData.count > 0 {
  26. self.checkTempTargetAlarms()
  27. }
  28. TaskScheduler.shared.rescheduleTask(id: .alarmCheck, to: Date().addingTimeInterval(30))
  29. }
  30. }
  31. }