Преглед изворни кода

Fix target behavior of Overrides in History

polscm32 aka Marvout пре 1 година
родитељ
комит
76c4ccb409

+ 1 - 1
FreeAPS/Sources/APS/Storage/OverrideStorage.swift

@@ -89,7 +89,7 @@ final class BaseOverrideStorage: @preconcurrency OverrideStorage, Injectable {
 
     @MainActor func calculateTarget(override: OverrideStored) -> Decimal {
         guard let overrideTarget = override.target, overrideTarget != 0 else {
-            return 100 // default
+            return 0
         }
         return overrideTarget.decimalValue
     }

+ 11 - 4
FreeAPS/Sources/Modules/DataTable/View/DataTableRootView.swift

@@ -237,7 +237,7 @@ extension DataTable {
                     name: override.name ?? "Override",
                     startDate: override.startDate ?? Date(),
                     endDate: override.endDate ?? Date(),
-                    target: override.target?.decimalValue ?? 100, /// Should we handle the default better?
+                    target: override.target?.decimalValue,
                     type: .override
                 )
             }
@@ -248,7 +248,7 @@ extension DataTable {
                     name: tempTarget.name ?? "Temp Target",
                     startDate: tempTarget.startDate ?? Date(),
                     endDate: tempTarget.endDate ?? Date(),
-                    target: tempTarget.target?.decimalValue ?? 100,
+                    target: tempTarget.target?.decimalValue,
                     type: .tempTarget
                 )
             }
@@ -262,7 +262,7 @@ extension DataTable {
             let name: String
             let startDate: Date
             let endDate: Date
-            let target: Decimal
+            let target: Decimal?
             let type: AdjustmentType
         }
 
@@ -293,8 +293,15 @@ extension DataTable {
             let formattedDates =
                 "\(Formatter.dateFormatter.string(from: item.startDate)) - \(Formatter.dateFormatter.string(from: item.endDate))"
 
+            let targetDescription: String = {
+                guard let target = item.target, target != 0 else {
+                    return ""
+                }
+                return "\(state.units == .mgdL ? target : target.asMmolL) \(state.units.rawValue)"
+            }()
+
             let labels: [String] = [
-                "\(state.units == .mgdL ? item.target : item.target.asMmolL) \(state.units.rawValue)",
+                targetDescription,
                 formattedDates
             ].filter { !$0.isEmpty }
 

+ 1 - 8
FreeAPS/Sources/Modules/Home/HomeStateModel+Setup/OverrideSetup.swift

@@ -38,13 +38,6 @@ extension Home.StateModel {
         return TimeInterval(overrideDuration * 60) // return seconds
     }
 
-    @MainActor func calculateTarget(override: OverrideStored) -> Decimal {
-        guard let overrideTarget = override.target, overrideTarget != 0 else {
-            return 100 // default
-        }
-        return overrideTarget.decimalValue
-    }
-
     // Setup expired Overrides
     func setupOverrideRunStored() {
         Task {
@@ -101,7 +94,7 @@ extension Home.StateModel {
         newOverrideRunStored.name = object.name
         newOverrideRunStored.startDate = object.date ?? .distantPast
         newOverrideRunStored.endDate = Date()
-        newOverrideRunStored.target = NSDecimalNumber(decimal: calculateTarget(override: object))
+        newOverrideRunStored.target = NSDecimalNumber(decimal: overrideStorage.calculateTarget(override: object))
         newOverrideRunStored.override = object
         newOverrideRunStored.isUploadedToNS = false
 

+ 1 - 0
FreeAPS/Sources/Modules/Home/HomeStateModel.swift

@@ -16,6 +16,7 @@ extension Home {
         @ObservationIgnored @Injected() var glucoseStorage: GlucoseStorage!
         @ObservationIgnored @Injected() var carbsStorage: CarbsStorage!
         @ObservationIgnored @Injected() var tempTargetStorage: TempTargetsStorage!
+        @ObservationIgnored @Injected() var overrideStorage: OverrideStorage!
         private let timer = DispatchTimer(timeInterval: 5)
         private(set) var filteredHours = 24
         var manualGlucose: [BloodGlucose] = []

+ 1 - 1
FreeAPS/Sources/Modules/Home/View/Chart/ChartElements/OverrideView.swift

@@ -42,7 +42,7 @@ struct OverrideView: ChartContent {
         ForEach(overrideRunStored) { overrideRunStored in
             let start: Date = overrideRunStored.startDate ?? .distantPast
             let end: Date = overrideRunStored.endDate ?? Date()
-            let target = overrideRunStored.target?.decimalValue ?? 100
+            let target = (overrideRunStored.target?.decimalValue ?? 100) == 0 ? 100 : overrideRunStored.target!.decimalValue
             RuleMark(
                 xStart: .value("Start", start, unit: .second),
                 xEnd: .value("End", end, unit: .second),