Browse Source

Minor refactoring

Deniz Cengiz 1 năm trước cách đây
mục cha
commit
3eed78d976
1 tập tin đã thay đổi với 27 bổ sung32 xóa
  1. 27 32
      FreeAPS/Sources/Modules/OverrideConfig/OverrideStateModel.swift

+ 27 - 32
FreeAPS/Sources/Modules/OverrideConfig/OverrideStateModel.swift

@@ -49,7 +49,7 @@ extension OverrideConfig {
         let normalTarget: Decimal = 100
         var tempTargetDuration: Decimal = 0
         var tempTargetName: String = ""
-        var tempTargetTarget: Decimal = 0 // lel
+        var tempTargetTarget: Decimal = 100
         var isTempTargetEnabled: Bool = false
         var date = Date()
         var newPresetName = ""
@@ -150,7 +150,6 @@ extension OverrideConfig {
                     await MainActor.run {
                         currentGlucoseTarget = units == .mgdL ? entry.value : entry.value.asMmolL
                         target = currentGlucoseTarget
-                        tempTargetTarget = currentGlucoseTarget
                     }
                     return
                 }
@@ -846,7 +845,7 @@ extension OverrideConfig.StateModel {
 
     @MainActor func resetTempTargetState() async {
         tempTargetName = ""
-        tempTargetTarget = currentGlucoseTarget
+        tempTargetTarget = 100
         tempTargetDuration = 0
         percentage = 100
         halfBasalTarget = settingsManager.preferences.halfBasalExerciseTarget
@@ -875,26 +874,27 @@ extension OverrideConfig.StateModel {
     }
 
     func computeSliderLow(usingTarget initialTarget: Decimal? = nil) -> Double {
-        var minSens: Double = 15
-        var calcTarget = initialTarget
-        let tempTargetValue = calcTarget != nil ? calcTarget : tempTargetTarget
-        if tempTargetValue == 0 { return minSens }
-        if tempTargetValue ?? normalTarget <= normalTarget ||
-            (
-                !settingsManager.preferences.highTemptargetRaisesSensitivity && !settingsManager.preferences
-                    .exerciseMode
-            ) { minSens = 100 }
-        minSens = max(0, minSens)
-        return minSens
+        let calcTarget = initialTarget ?? tempTargetTarget
+        guard calcTarget != 0 else { return 15 }
+
+        let shouldRaiseSensitivity = settingsManager.preferences.highTemptargetRaisesSensitivity
+        let isExerciseModeActive = settingsManager.preferences.exerciseMode
+        let isTargetNormalOrLower = calcTarget <= normalTarget
+
+        let minSens = (isTargetNormalOrLower || (!shouldRaiseSensitivity && !isExerciseModeActive)) ? 100 : 15
+
+        return Double(max(0, minSens))
     }
 
     func computeSliderHigh(usingTarget initialTarget: Decimal? = nil) -> Double {
-        var calcTarget = initialTarget
-        let tempTargetValue = calcTarget != nil ? calcTarget : tempTargetTarget
-        var maxSens = Double(maxValue * 100)
-        if tempTargetValue == 0 { return maxSens }
-        if tempTargetValue ?? normalTarget >= normalTarget || !settingsManager.preferences
-            .lowTemptargetLowersSensitivity { maxSens = 100 }
+        let calcTarget = initialTarget ?? tempTargetTarget
+        guard calcTarget != 0 else { return Double(maxValue * 100) }
+
+        let shouldLowerSensitivity = settingsManager.preferences.lowTemptargetLowersSensitivity
+        let isTargetNormalOrHigher = calcTarget >= normalTarget
+
+        let maxSens = (isTargetNormalOrHigher || !shouldLowerSensitivity) ? 100 : Double(maxValue * 100)
+
         return maxSens
     }
 
@@ -903,19 +903,14 @@ extension OverrideConfig.StateModel {
         usingTarget initialTarget: Decimal? = nil
     ) -> Decimal {
         let halfBasalTargetValue = initialHalfBasalTarget ?? halfBasalTarget
-        let calcTarget = initialTarget
-        let deviationFromNormal = (halfBasalTargetValue - normalTarget)
-        let tempTargetValue = calcTarget != nil ? calcTarget : tempTargetTarget
-        var adjustmentRatio: Decimal = 1
-
-        if deviationFromNormal * (deviationFromNormal + (tempTargetValue ?? normalTarget) - normalTarget) <= 0 {
-            adjustmentRatio = maxValue
-        } else {
-            adjustmentRatio = deviationFromNormal / (deviationFromNormal + (tempTargetValue ?? normalTarget) - normalTarget)
-        }
+        let calcTarget = initialTarget ?? tempTargetTarget
+        let deviationFromNormal = halfBasalTargetValue - normalTarget
+
+        let adjustmentFactor = deviationFromNormal + (calcTarget - normalTarget)
+        let adjustmentRatio: Decimal = (deviationFromNormal * adjustmentFactor <= 0) ? maxValue : deviationFromNormal /
+            adjustmentFactor
 
-        adjustmentRatio = min(adjustmentRatio, maxValue)
-        return adjustmentRatio
+        return min(adjustmentRatio, maxValue)
     }
 }