OverrideEndCondition.swift 615 B

123456789101112131415161718192021
  1. // LoopFollow
  2. // OverrideEndCondition.swift
  3. import Foundation
  4. struct OverrideEndCondition: AlarmCondition {
  5. static let type: AlarmType = .overrideEnd
  6. init() {}
  7. func evaluate(alarm _: Alarm, data: AlarmData, now: Date) -> Bool {
  8. guard let endTS = data.latestOverrideEnd, endTS > 0 else { return false }
  9. guard now.timeIntervalSince1970 - endTS <= 15 * 60 else { return false }
  10. let last = Storage.shared.lastOverrideEndNotified.value ?? 0
  11. guard endTS > last else { return false }
  12. Storage.shared.lastOverrideEndNotified.value = endTS
  13. return true
  14. }
  15. }