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

simplify TempTarget adjusted percentage to rounded Double

wonder whether Int wouldn't be better
Robert 1 год назад
Родитель
Сommit
bd5336b74a

+ 5 - 5
FreeAPS/Sources/Modules/OverrideConfig/OverrideStateModel.swift

@@ -53,7 +53,7 @@ extension OverrideConfig {
         var date = Date()
         var newPresetName = ""
         var tempTargetPresets: [TempTargetStored] = []
-        var percentage = 100.0
+        var percentage: Double = 100
         var maxValue: Decimal = 1.2
         var minValue: Decimal = 0.15
         var viewPercantage = false
@@ -154,7 +154,7 @@ extension OverrideConfig {
             minValue = settingsManager.preferences.autosensMin
             settingHalfBasalTarget = settingsManager.preferences.halfBasalExerciseTarget
             halfBasalTarget = settingsManager.preferences.halfBasalExerciseTarget
-            percentage = Double(computeAdjustedPercentage() * 100)
+            percentage = computeAdjustedPercentage()
             Task {
                 await getCurrentGlucoseTarget()
             }
@@ -877,7 +877,7 @@ extension OverrideConfig.StateModel {
     func handleAdjustSensToggle() {
         if !didAdjustSens {
             halfBasalTarget = settingHalfBasalTarget
-            percentage = Double(computeAdjustedPercentage(usingHBT: settingHalfBasalTarget) * 100)
+            percentage = computeAdjustedPercentage(usingHBT: settingHalfBasalTarget)
         }
     }
 
@@ -923,7 +923,7 @@ extension OverrideConfig.StateModel {
     func computeAdjustedPercentage(
         usingHBT initialHalfBasalTarget: Decimal? = nil,
         usingTarget initialTarget: Decimal? = nil
-    ) -> Decimal {
+    ) -> Double {
         let halfBasalTargetValue = initialHalfBasalTarget ?? halfBasalTarget
         let calcTarget = initialTarget ?? tempTargetTarget
         let deviationFromNormal = halfBasalTargetValue - normalTarget
@@ -932,7 +932,7 @@ extension OverrideConfig.StateModel {
         let adjustmentRatio: Decimal = (deviationFromNormal * adjustmentFactor <= 0) ? maxValue : deviationFromNormal /
             adjustmentFactor
 
-        return min(adjustmentRatio, maxValue)
+        return Double(min(adjustmentRatio, maxValue) * 100).rounded()
     }
 }
 

+ 2 - 2
FreeAPS/Sources/Modules/OverrideConfig/View/AddTempTargetForm.swift

@@ -196,7 +196,7 @@ struct AddTempTargetForm: View {
                     toggleScrollWheel: toggleScrollWheel
                 )
                 .onChange(of: state.tempTargetTarget) {
-                    state.percentage = Double(state.computeAdjustedPercentage() * 100)
+                    state.percentage = state.computeAdjustedPercentage()
                 }
             }
             .listRowBackground(Color.chart)
@@ -220,7 +220,7 @@ struct AddTempTargetForm: View {
                                 .onChange(of: tempTargetSensitivityAdjustmentType) { _, newValue in
                                     if newValue == .standard {
                                         state.halfBasalTarget = state.settingHalfBasalTarget
-                                        state.percentage = Double(state.computeAdjustedPercentage() * 100)
+                                        state.percentage = state.computeAdjustedPercentage()
                                     }
                                 }
                             }

+ 12 - 12
FreeAPS/Sources/Modules/OverrideConfig/View/EditTempTargetForm.swift

@@ -17,7 +17,7 @@ struct EditTempTargetForm: View {
     @State private var duration: Decimal
     @State private var date: Date
     @State private var halfBasalTarget: Decimal
-    @State private var percentage: Decimal
+    @State private var percentage: Double
 
     @State private var hasChanges = false
     @State private var showAlert = false
@@ -39,9 +39,9 @@ struct EditTempTargetForm: View {
         if let hbt = tempTargetToEdit.halfBasalTarget?.decimalValue {
             let H = hbt
             let T = tempTargetToEdit.target?.decimalValue ?? 100
-            let calcPercentage = Double(state.computeAdjustedPercentage(usingHBT: H, usingTarget: T) * 100)
-            _percentage = State(initialValue: Decimal(calcPercentage))
-        } else { _percentage = State(initialValue: Decimal(100)) }
+            let calcPercentage = state.computeAdjustedPercentage(usingHBT: H, usingTarget: T)
+            _percentage = State(initialValue: calcPercentage)
+        } else { _percentage = State(initialValue: 100) }
     }
 
     var color: LinearGradient {
@@ -189,7 +189,7 @@ struct EditTempTargetForm: View {
                     toggleScrollWheel: toggleScrollWheel
                 )
                 .onChange(of: target) {
-                    percentage = state.computeAdjustedPercentage(usingHBT: halfBasalTarget, usingTarget: target) * 100
+                    percentage = state.computeAdjustedPercentage(usingHBT: halfBasalTarget, usingTarget: target)
                 }
             }
             .listRowBackground(Color.chart)
@@ -197,11 +197,11 @@ struct EditTempTargetForm: View {
             if target != state.normalTarget {
                 let computedHalfBasalTarget = Decimal(
                     state
-                        .computeHalfBasalTarget(usingTarget: target, usingPercentage: Double(percentage))
+                        .computeHalfBasalTarget(usingTarget: target, usingPercentage: percentage)
                 )
                 let sensHint = target > state.normalTarget ?
-                    "Reducing all delivered insulin to \(formattedPercentage(Double(percentage)))%." :
-                    "Increasing all delivered insulin by \(formattedPercentage(Double(percentage) - 100))%."
+                    "Reducing all delivered insulin to \(formattedPercentage(percentage))%." :
+                    "Increasing all delivered insulin by \(formattedPercentage(percentage - 100))%."
 
                 if state.isAdjustSensEnabled(usingTarget: target) {
                     Section(
@@ -218,7 +218,7 @@ struct EditTempTargetForm: View {
                                     if newValue == .standard {
                                         halfBasalTarget = state.settingHalfBasalTarget
                                         hasChanges = true
-                                        percentage = 100 * state.computeAdjustedPercentage(
+                                        percentage = state.computeAdjustedPercentage(
                                             usingHBT: halfBasalTarget,
                                             usingTarget: target
                                         )
@@ -227,7 +227,7 @@ struct EditTempTargetForm: View {
                             }
 
                             if tempTargetSensitivityAdjustmentType == .slider {
-                                Text("\(formattedPercentage(Double(percentage))) % Insulin")
+                                Text("\(formattedPercentage(percentage)) % Insulin")
                                     .foregroundColor(isUsingSlider ? .orange : Color.tabBar)
                                     .font(.title3)
                                     .fontWeight(.bold)
@@ -238,11 +238,11 @@ struct EditTempTargetForm: View {
                                             Double(truncating: percentage as NSNumber)
                                         },
                                         set: { newValue in
-                                            percentage = Decimal(newValue)
+                                            percentage = newValue
                                             hasChanges = true
                                             halfBasalTarget = Decimal(state.computeHalfBasalTarget(
                                                 usingTarget: target,
-                                                usingPercentage: Double(percentage)
+                                                usingPercentage: percentage
                                             ))
                                         }
                                     ),

+ 1 - 2
FreeAPS/Sources/Modules/OverrideConfig/View/OverrideRootView.swift

@@ -489,8 +489,7 @@ extension OverrideConfig {
                     .RawValue ?? Double(state.settingHalfBasalTarget)
             )
             let percentage = Int(
-                state
-                    .computeAdjustedPercentage(usingHBT: presetHalfBasalTarget, usingTarget: presetTarget) * 100
+                state.computeAdjustedPercentage(usingHBT: presetHalfBasalTarget, usingTarget: presetTarget)
             )
 
             return ZStack(alignment: .trailing, content: {