Просмотр исходного кода

Refactor bolus calculator settings
* Removed old unused iAPS settings (useCalc to switch between calculator, insulinPercentage)
* Adjust watch app state and bolus state to remove all old settings
* Refactor bolus settings view and state according to new style

Deniz Cengiz 1 год назад
Родитель
Сommit
3eb0968868

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

@@ -9,7 +9,6 @@
   "useLocalGlucoseSource" : false,
   "localGlucosePort" : 8080,
   "debugOptions" : false,
-  "insulinReqPercentage" : 70,
   "displayHR" : false,
   "cgm" : "none",
   "cgmManagerTypeByIdentifier":"",
@@ -48,7 +47,6 @@
   "displayFatAndProteinOnWatch": false,
   "confirmBolusFaster": false,
   "overrideFactor": 0.8,
-  "useCalc": true,
   "fattyMeals": false,
   "fattyMealFactor": 0.7,
   "sweetMeals": false,

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

@@ -25,7 +25,6 @@ struct FreeAPSSettings: JSON, Equatable {
     var useLocalGlucoseSource: Bool = false
     var localGlucosePort: Int = 8080
     var debugOptions: Bool = false
-    var insulinReqPercentage: Decimal = 70
     var displayHR: Bool = false
     var cgm: CGMType = .none
     var cgmPluginIdentifier: String = ""
@@ -65,7 +64,6 @@ struct FreeAPSSettings: JSON, Equatable {
     var confirmBolusFaster: Bool = false
     var onlyAutotuneBasals: Bool = false
     var overrideFactor: Decimal = 0.8
-    var useCalc: Bool = true
     var fattyMeals: Bool = false
     var fattyMealFactor: Decimal = 0.7
     var sweetMeals: Bool = false
@@ -118,10 +116,6 @@ extension FreeAPSSettings: Decodable {
             settings.debugOptions = debugOptions
         }
 
-        if let insulinReqPercentage = try? container.decode(Decimal.self, forKey: .insulinReqPercentage) {
-            settings.insulinReqPercentage = insulinReqPercentage
-        }
-
         if let displayHR = try? container.decode(Bool.self, forKey: .displayHR) {
             settings.displayHR = displayHR
             // compatibility if displayOnWatch is not available in json files
@@ -176,10 +170,6 @@ extension FreeAPSSettings: Decodable {
             settings.individualAdjustmentFactor = individualAdjustmentFactor
         }
 
-        if let useCalc = try? container.decode(Bool.self, forKey: .useCalc) {
-            settings.useCalc = useCalc
-        }
-
         if let fattyMeals = try? container.decode(Bool.self, forKey: .fattyMeals) {
             settings.fattyMeals = fattyMeals
         }

+ 0 - 3
FreeAPS/Sources/Modules/Bolus/BolusStateModel.swift

@@ -57,7 +57,6 @@ extension Bolus {
         @Published var wholeCalc: Decimal = 0
         @Published var insulinCalculated: Decimal = 0
         @Published var fraction: Decimal = 0
-        @Published var useCalc: Bool = false
         @Published var basal: Decimal = 0
         @Published var fattyMeals: Bool = false
         @Published var fattyMealFactor: Decimal = 0
@@ -113,11 +112,9 @@ extension Bolus {
             broadcaster.register(DeterminationObserver.self, observer: self)
             broadcaster.register(BolusFailureObserver.self, observer: self)
             units = settingsManager.settings.units
-            percentage = settingsManager.settings.insulinReqPercentage
             maxBolus = provider.pumpSettings().maxBolus
             // added
             fraction = settings.settings.overrideFactor
-            useCalc = settings.settings.useCalc
             fattyMeals = settings.settings.fattyMeals
             fattyMealFactor = settings.settings.fattyMealFactor
             sweetMeals = settings.settings.sweetMeals

+ 0 - 4
FreeAPS/Sources/Modules/BolusCalculatorConfig/BolusCalculatorStateModel.swift

@@ -3,12 +3,10 @@ import SwiftUI
 extension BolusCalculatorConfig {
     final class StateModel: BaseStateModel<Provider> {
         @Published var overrideFactor: Decimal = 0
-        @Published var useCalc: Bool = false
         @Published var fattyMeals: Bool = false
         @Published var fattyMealFactor: Decimal = 0
         @Published var sweetMeals: Bool = false
         @Published var sweetMealFactor: Decimal = 0
-        @Published var insulinReqPercentage: Decimal = 70
         @Published var displayPresets: Bool = true
 
         override func subscribe() {
@@ -18,7 +16,6 @@ extension BolusCalculatorConfig {
             }, map: {
                 $0
             })
-            subscribeSetting(\.useCalc, on: $useCalc) { useCalc = $0 }
             subscribeSetting(\.fattyMeals, on: $fattyMeals) { fattyMeals = $0 }
             subscribeSetting(\.displayPresets, on: $displayPresets) { displayPresets = $0 }
             subscribeSetting(\.fattyMealFactor, on: $fattyMealFactor, initial: {
@@ -34,7 +31,6 @@ extension BolusCalculatorConfig {
             }, map: {
                 $0
             })
-            subscribeSetting(\.insulinReqPercentage, on: $insulinReqPercentage) { insulinReqPercentage = $0 }
         }
     }
 }

Разница между файлами не показана из-за своего большого размера
+ 80 - 60
FreeAPS/Sources/Modules/BolusCalculatorConfig/View/BolusCalculatorConfigRootView.swift


+ 6 - 23
FreeAPS/Sources/Services/WatchManager/WatchManager.swift

@@ -218,30 +218,13 @@ final class BaseWatchManager: NSObject, WatchManager, Injectable {
             state.maxBolus = settingsManager.pumpSettings.maxBolus
             state.carbsRequired = lastDetermination?.carbsRequired as? Decimal
 
-            var insulinRequired = lastDetermination?.insulinReq as? Decimal ?? 0
+            let recommended = await newBolusCalc(
+                ids: glucoseValuesIDs,
+                determination: lastDetermination
+            )
+            state.bolusRecommended = apsManager
+                .roundBolus(amount: max(recommended, 0))
 
-            var double: Decimal = 2
-            if lastDetermination?.manualBolusErrorString == 0 {
-                insulinRequired = lastDetermination?.insulinForManualBolus as? Decimal ?? 0
-                double = 1
-            }
-
-            state.useNewCalc = settingsManager.settings.useCalc
-
-            if !(state.useNewCalc ?? false) {
-                state.bolusRecommended = apsManager
-                    .roundBolus(amount: max(
-                        insulinRequired * (settingsManager.settings.insulinReqPercentage / 100) * double,
-                        0
-                    ))
-            } else {
-                let recommended = await newBolusCalc(
-                    ids: glucoseValuesIDs,
-                    determination: lastDetermination
-                )
-                state.bolusRecommended = apsManager
-                    .roundBolus(amount: max(recommended, 0))
-            }
             state.displayOnWatch = settingsManager.settings.displayOnWatch
             state.displayFatAndProteinOnWatch = settingsManager.settings.displayFatAndProteinOnWatch
             state.confirmBolusFaster = settingsManager.settings.confirmBolusFaster

+ 0 - 1
FreeAPSWatch WatchKit Extension/DataFlow.swift

@@ -21,7 +21,6 @@ struct WatchState: Codable {
     var displayOnWatch: AwConfig?
     var displayFatAndProteinOnWatch: Bool?
     var confirmBolusFaster: Bool?
-    var useNewCalc: Bool?
     var isf: Decimal?
     var override: String?
 }

+ 0 - 2
FreeAPSWatch WatchKit Extension/WatchStateModel.swift

@@ -34,7 +34,6 @@ class WatchStateModel: NSObject, ObservableObject {
     @Published var displayOnWatch: AwConfig = .BGTarget
     @Published var displayFatAndProteinOnWatch = false
     @Published var confirmBolusFaster = false
-    @Published var useNewCalc = false
     @Published var eventualBG = ""
     @Published var isConfirmationViewActive = false {
         didSet {
@@ -175,7 +174,6 @@ class WatchStateModel: NSObject, ObservableObject {
         displayOnWatch = state.displayOnWatch ?? .BGTarget
         displayFatAndProteinOnWatch = state.displayFatAndProteinOnWatch ?? false
         confirmBolusFaster = state.confirmBolusFaster ?? false
-        useNewCalc = state.useNewCalc ?? false
         isf = state.isf
         override = state.override
     }