OverrideStartCondition.swift 682 B

1234567891011121314151617181920212223
  1. // LoopFollow
  2. // OverrideStartCondition.swift
  3. import Foundation
  4. struct OverrideStartCondition: AlarmCondition {
  5. static let type: AlarmType = .overrideStart
  6. init() {}
  7. func evaluate(alarm _: Alarm, data: AlarmData, now: Date) -> Bool {
  8. guard let startTS = data.latestOverrideStart, startTS > 0 else { return false }
  9. let recent = now.timeIntervalSince1970 - startTS <= 15 * 60
  10. guard recent else { return false }
  11. let lastNotified = Storage.shared.lastOverrideStartNotified.value ?? 0
  12. guard startTS > lastNotified else { return false }
  13. Storage.shared.lastOverrideStartNotified.value = startTS
  14. return true
  15. }
  16. }