DynamicSettingsStateModel.swift 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import Observation
  2. import SwiftUI
  3. extension DynamicSettings {
  4. final class StateModel: BaseStateModel<Provider> {
  5. @Injected() var settings: SettingsManager!
  6. @Injected() var storage: FileStorage!
  7. @Published var useNewFormula: Bool = false
  8. @Published var enableDynamicCR: Bool = false
  9. @Published var sigmoid: Bool = false
  10. @Published var adjustmentFactor: Decimal = 0.8
  11. @Published var adjustmentFactorSigmoid: Decimal = 0.5
  12. @Published var weightPercentage: Decimal = 0.65
  13. @Published var tddAdjBasal: Bool = false
  14. @Published var threshold_setting: Decimal = 60
  15. var units: GlucoseUnits = .mgdL
  16. override func subscribe() {
  17. units = settingsManager.settings.units
  18. subscribePreferencesSetting(\.useNewFormula, on: $useNewFormula) { useNewFormula = $0 }
  19. subscribePreferencesSetting(\.enableDynamicCR, on: $enableDynamicCR) { enableDynamicCR = $0 }
  20. subscribePreferencesSetting(\.sigmoid, on: $sigmoid) { sigmoid = $0 }
  21. subscribePreferencesSetting(\.adjustmentFactor, on: $adjustmentFactor) { adjustmentFactor = $0 }
  22. subscribePreferencesSetting(\.adjustmentFactorSigmoid, on: $adjustmentFactorSigmoid) { adjustmentFactorSigmoid = $0 }
  23. subscribePreferencesSetting(\.weightPercentage, on: $weightPercentage) { weightPercentage = $0 }
  24. subscribePreferencesSetting(\.tddAdjBasal, on: $tddAdjBasal) { tddAdjBasal = $0 }
  25. subscribePreferencesSetting(\.tddAdjBasal, on: $tddAdjBasal) { tddAdjBasal = $0 }
  26. }
  27. }
  28. }
  29. extension DynamicSettings.StateModel: SettingsObserver {
  30. func settingsDidChange(_: FreeAPSSettings) {
  31. units = settingsManager.settings.units
  32. }
  33. }