فهرست منبع

Bug fix for New Temp Targets

Jon Mårtensson 3 سال پیش
والد
کامیت
62a4bdfe61
1فایلهای تغییر یافته به همراه16 افزوده شده و 2 حذف شده
  1. 16 2
      FreeAPS/Sources/Modules/AddTempTarget/AddTempTargetStateModel.swift

+ 16 - 2
FreeAPS/Sources/Modules/AddTempTarget/AddTempTargetStateModel.swift

@@ -27,7 +27,13 @@ extension AddTempTarget {
         func enact() {
             let diff = Double(halfBasal - 100)
             let multiplier = percentage - (diff * (percentage / 100))
-            let lowTarget = Decimal(diff + multiplier) / (Decimal(percentage) / 100)
+            let ratio = min(Decimal(percentage / 100), maxValue)
+            var target = Decimal(diff + multiplier) / ratio
+
+            if (halfBasal + (halfBasal + target - 100)) <= 0 {
+                target = (halfBasal - 100 + (halfBasal - 100) * maxValue) / maxValue
+            }
+            let lowTarget = target
             let highTarget = lowTarget
 
             let entry = TempTarget(
@@ -50,7 +56,15 @@ extension AddTempTarget {
         }
 
         func save() {
-            let lowTarget = Decimal(60 + 40 * (percentage / 100)) / (Decimal(percentage) / 100)
+            let diff = Double(halfBasal - 100)
+            let multiplier = percentage - (diff * (percentage / 100))
+            let ratio = min(Decimal(percentage / 100), maxValue)
+            var target = Decimal(diff + multiplier) / ratio
+
+            if (halfBasal + (halfBasal + target - 100)) <= 0 {
+                target = (halfBasal - 100 + (halfBasal - 100) * maxValue) / maxValue
+            }
+            let lowTarget = target
             let highTarget = lowTarget
 
             let entry = TempTarget(