Observable.swift 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. // LoopFollow
  2. // Observable.swift
  3. import Foundation
  4. import HealthKit
  5. import SwiftUI
  6. /*
  7. Observable in memory storage
  8. */
  9. class Observable {
  10. static let shared = Observable()
  11. var tempTarget = ObservableValue<HKQuantity?>(default: nil)
  12. var override = ObservableValue<String?>(default: nil)
  13. var minAgoText = ObservableValue<String>(default: "?? min ago")
  14. var bgText = ObservableValue<String>(default: "BG")
  15. var bg = ObservableValue<Int?>(default: nil)
  16. var bgStale = ObservableValue<Bool>(default: true)
  17. var bgTextColor = ObservableValue<Color>(default: .primary)
  18. var directionText = ObservableValue<String>(default: "-")
  19. var deltaText = ObservableValue<String>(default: "+0")
  20. var iobText = ObservableValue<String>(default: "--")
  21. var serverText = ObservableValue<String>(default: "Server")
  22. var loopStatusText = ObservableValue<String>(default: "")
  23. var loopStatusColor = ObservableValue<Color>(default: .primary)
  24. var predictionText = ObservableValue<String>(default: "")
  25. var predictionColor = ObservableValue<Color>(default: .purple)
  26. var currentAlarm = ObservableValue<UUID?>(default: nil)
  27. var alarmSoundPlaying = ObservableValue<Bool>(default: false)
  28. var debug = ObservableValue<Bool>(default: false)
  29. var chartSettingsChanged = ObservableValue<Bool>(default: false)
  30. var alertLastLoopTime = ObservableValue<TimeInterval?>(default: nil)
  31. var previousAlertLastLoopTime = ObservableValue<TimeInterval?>(default: nil)
  32. var deviceRecBolus = ObservableValue<Double?>(default: nil)
  33. var deviceBatteryLevel = ObservableValue<Double?>(default: nil)
  34. var deviceBatteryIsCharging = ObservableValue<Bool?>(default: nil)
  35. var pumpBatteryLevel = ObservableValue<Double?>(default: nil)
  36. var dbSizePercentage = ObservableValue<Double?>(default: nil)
  37. var enactedOrSuggested = ObservableValue<TimeInterval?>(default: nil)
  38. var lastSentTOTP = ObservableValue<String?>(default: nil)
  39. var loopFollowDeviceToken = ObservableValue<String>(default: "")
  40. var isNotLooping = ObservableValue<Bool>(default: false)
  41. /// Selected tab index used by SwiftUI TabView — set from MainViewController to switch tabs
  42. var selectedTabIndex = ObservableValue<Int>(default: 0)
  43. /// Currently visible app-wide banner (nil = hidden). Managed by BannerManager.
  44. var activeBanner = ObservableValue<BannerMessage?>(default: nil)
  45. private init() {}
  46. }