Sfoglia il codice sorgente

Add a Max Carb amount settings

(cherry picked from commit 6cda8a2edc04e2ae89640e50b0bb7db1b44a3e04)
Jon Mårtensson 2 anni fa
parent
commit
487fb5fb88

+ 1 - 0
FreeAPS/Resources/json/defaults/freeaps/freeaps_settings.json

@@ -38,4 +38,5 @@
       "useFPUconversion" : false,
       "useFPUconversion" : false,
       "displayOnWatch" : "HR",
       "displayOnWatch" : "HR",
       "animatedBackground" : false
       "animatedBackground" : false
+      "maxCarbs": 1000
 }
 }

+ 3 - 0
FreeAPS/Sources/Localizations/Main/en.lproj/Localizable.strings

@@ -341,6 +341,9 @@ Enact a temp Basal or a temp target */
 /* Max setting */
 /* Max setting */
 "Max Bolus" = "Max Bolus";
 "Max Bolus" = "Max Bolus";
 
 
+/* Max setting */
+"Max Carbs" = "Max Carbs";
+
 /* */
 /* */
 "Pump Settings" = "Pump Settings";
 "Pump Settings" = "Pump Settings";
 
 

+ 5 - 0
FreeAPS/Sources/Models/FreeAPSSettings.swift

@@ -40,6 +40,7 @@ struct FreeAPSSettings: JSON, Equatable {
     var yGridLines: Bool = true
     var yGridLines: Bool = true
     var oneDimensionalGraph: Bool = false
     var oneDimensionalGraph: Bool = false
     var rulerMarks: Bool = false
     var rulerMarks: Bool = false
+    var maxCarbs: Decimal = 1000
 }
 }
 
 
 extension FreeAPSSettings: Decodable {
 extension FreeAPSSettings: Decodable {
@@ -209,6 +210,10 @@ extension FreeAPSSettings: Decodable {
             settings.overrideHbA1cUnit = overrideHbA1cUnit
             settings.overrideHbA1cUnit = overrideHbA1cUnit
         }
         }
 
 
+        if let maxCarbs = try? container.decode(Decimal.self, forKey: .maxCarbs) {
+            settings.maxCarbs = maxCarbs
+        }
+
         self = settings
         self = settings
     }
     }
 }
 }

+ 3 - 0
FreeAPS/Sources/Modules/AddCarbs/AddCarbsStateModel.swift

@@ -16,12 +16,14 @@ extension AddCarbs {
         @Published var dish: String = ""
         @Published var dish: String = ""
         @Published var selection: Presets?
         @Published var selection: Presets?
         @Published var summation: [String] = []
         @Published var summation: [String] = []
+        @Published var maxCarbs: Decimal = 0
 
 
         let coredataContext = CoreDataStack.shared.persistentContainer.viewContext
         let coredataContext = CoreDataStack.shared.persistentContainer.viewContext
 
 
         override func subscribe() {
         override func subscribe() {
             subscribeSetting(\.useFPUconversion, on: $useFPUconversion) { useFPUconversion = $0 }
             subscribeSetting(\.useFPUconversion, on: $useFPUconversion) { useFPUconversion = $0 }
             carbsRequired = provider.suggestion?.carbsReq
             carbsRequired = provider.suggestion?.carbsReq
+            maxCarbs = settings.settings.maxCarbs
         }
         }
 
 
         func add() {
         func add() {
@@ -29,6 +31,7 @@ extension AddCarbs {
                 showModal(for: nil)
                 showModal(for: nil)
                 return
                 return
             }
             }
+            carbs = min(carbs, maxCarbs)
 
 
             if useFPUconversion {
             if useFPUconversion {
                 // -------------------------- FPU--------------------------------------
                 // -------------------------- FPU--------------------------------------

+ 2 - 0
FreeAPS/Sources/Modules/PumpSettingsEditor/PumpSettingsEditorStateModel.swift

@@ -5,6 +5,7 @@ extension PumpSettingsEditor {
         @Published var maxBasal: Decimal = 0.0
         @Published var maxBasal: Decimal = 0.0
         @Published var maxBolus: Decimal = 0.0
         @Published var maxBolus: Decimal = 0.0
         @Published var dia: Decimal = 0.0
         @Published var dia: Decimal = 0.0
+        @Published var maxCarbs: Decimal = 1000
 
 
         @Published var syncInProgress = false
         @Published var syncInProgress = false
 
 
@@ -13,6 +14,7 @@ extension PumpSettingsEditor {
             maxBasal = settings.maxBasal
             maxBasal = settings.maxBasal
             maxBolus = settings.maxBolus
             maxBolus = settings.maxBolus
             dia = settings.insulinActionCurve
             dia = settings.insulinActionCurve
+            subscribeSetting(\.maxCarbs, on: $maxCarbs) { maxCarbs = $0 }
         }
         }
 
 
         func save() {
         func save() {

+ 4 - 0
FreeAPS/Sources/Modules/PumpSettingsEditor/View/PumpSettingsEditorRootView.swift

@@ -23,6 +23,10 @@ extension PumpSettingsEditor {
                         Text("Max Bolus")
                         Text("Max Bolus")
                         DecimalTextField("U", value: $state.maxBolus, formatter: formatter)
                         DecimalTextField("U", value: $state.maxBolus, formatter: formatter)
                     }
                     }
+                    HStack {
+                        Text("Max Carbs")
+                        DecimalTextField("g", value: $state.maxCarbs, formatter: formatter)
+                    }
                 }
                 }
 
 
                 Section(header: Text("Duration of Insulin Action")) {
                 Section(header: Text("Duration of Insulin Action")) {