Observable.swift 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  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 pumpBatteryLevel = ObservableValue<Double?>(default: nil)
  35. var dbSizePercentage = ObservableValue<Double?>(default: nil)
  36. var enactedOrSuggested = ObservableValue<TimeInterval?>(default: nil)
  37. var lastSentTOTP = ObservableValue<String?>(default: nil)
  38. var loopFollowDeviceToken = ObservableValue<String>(default: "")
  39. var isNotLooping = ObservableValue<Bool>(default: false)
  40. /// Selected tab index used by SwiftUI TabView — set from MainViewController to switch tabs
  41. var selectedTabIndex = ObservableValue<Int>(default: 0)
  42. private init() {}
  43. }