TargetBehavoirStateModel.swift 1.5 KB

1234567891011121314151617181920212223242526272829303132333435
  1. import SwiftUI
  2. extension TargetBehavoir {
  3. final class StateModel: BaseStateModel<Provider> {
  4. @Injected() var settings: SettingsManager!
  5. @Injected() var storage: FileStorage!
  6. @Published var units: GlucoseUnits = .mgdL
  7. @Published var highTemptargetRaisesSensitivity: Bool = false
  8. @Published var lowTemptargetLowersSensitivity: Bool = false
  9. @Published var sensitivityRaisesTarget: Bool = false
  10. @Published var resistanceLowersTarget: Bool = false
  11. @Published var halfBasalExerciseTarget: Decimal = 160
  12. override func subscribe() {
  13. units = settingsManager.settings.units
  14. subscribePreferencesSetting(\.highTemptargetRaisesSensitivity, on: $highTemptargetRaisesSensitivity) {
  15. highTemptargetRaisesSensitivity = $0 }
  16. subscribePreferencesSetting(\.lowTemptargetLowersSensitivity, on: $lowTemptargetLowersSensitivity) {
  17. lowTemptargetLowersSensitivity = $0 }
  18. subscribePreferencesSetting(\.sensitivityRaisesTarget, on: $sensitivityRaisesTarget) { sensitivityRaisesTarget = $0 }
  19. subscribePreferencesSetting(\.resistanceLowersTarget, on: $resistanceLowersTarget) { resistanceLowersTarget = $0 }
  20. subscribePreferencesSetting(\.halfBasalExerciseTarget, on: $halfBasalExerciseTarget) { halfBasalExerciseTarget = $0 }
  21. }
  22. }
  23. }
  24. extension TargetBehavoir.StateModel: SettingsObserver {
  25. func settingsDidChange(_: FreeAPSSettings) {
  26. units = settingsManager.settings.units
  27. }
  28. }