| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- import SwiftUI
- extension MealSettings {
- final class StateModel: BaseStateModel<Provider> {
- @Published var units: GlucoseUnits = .mgdL
- @Published var useFPUconversion: Bool = true
- @Published var maxCarbs: Decimal = 250
- @Published var maxFat: Decimal = 250
- @Published var maxProtein: Decimal = 250
- @Published var individualAdjustmentFactor: Decimal = 0.5
- @Published var timeCap: Decimal = 8
- @Published var minuteInterval: Decimal = 30
- @Published var delay: Decimal = 60
- @Published var maxAbsorptionTime: Decimal = 6
- override func subscribe() {
- units = settingsManager.settings.units
- subscribeSetting(\.useFPUconversion, on: $useFPUconversion) { useFPUconversion = $0 }
- subscribeSetting(\.maxCarbs, on: $maxCarbs) { maxCarbs = $0 }
- subscribeSetting(\.maxFat, on: $maxFat) { maxFat = $0 }
- subscribeSetting(\.maxProtein, on: $maxProtein) { maxProtein = $0 }
- subscribeSetting(\.timeCap, on: $timeCap.map(Int.init), initial: {
- timeCap = Decimal($0)
- }, map: {
- $0
- })
- subscribePreferencesSetting(\.maxAbsorptionTime, on: $maxAbsorptionTime.map(Int.init), initial: {
- maxAbsorptionTime = Decimal($0)
- }, map: {
- $0
- })
- subscribeSetting(\.minuteInterval, on: $minuteInterval.map(Int.init), initial: {
- minuteInterval = Decimal($0)
- }, map: {
- $0
- })
- subscribeSetting(\.delay, on: $delay.map(Int.init), initial: {
- delay = Decimal($0)
- }, map: {
- $0
- })
- subscribeSetting(\.individualAdjustmentFactor, on: $individualAdjustmentFactor, initial: {
- individualAdjustmentFactor = $0
- }, map: {
- $0
- })
- }
- }
- }
- extension MealSettings.StateModel: SettingsObserver {
- func settingsDidChange(_: FreeAPSSettings) {
- units = settingsManager.settings.units
- }
- }
|