Procházet zdrojové kódy

Correctly nullify HBT when not adjusted; fix isEnabled oref2_variables assignment

Deniz Cengiz před 1 rokem
rodič
revize
66c3e6ab72

+ 3 - 3
FreeAPS/Sources/APS/OpenAPS/OpenAPS.swift

@@ -359,7 +359,8 @@ final class OpenAPS {
         await context.perform {
             // Retrieve preferences
             let preferences = self.storage.retrieve(OpenAPS.Settings.preferences, as: Preferences.self)
-            var hbt_ = preferences?.halfBasalExerciseTarget ?? 160
+            let defaultHalfBasalTarget = preferences?.halfBasalExerciseTarget ?? 160
+            var hbt_ = defaultHalfBasalTarget
             let wp = preferences?.weightPercentage ?? 1.0
             let smbMinutes = preferences?.maxSMBBasalMinutes ?? 30
             let uamMinutes = preferences?.maxUAMSMBBasalMinutes ?? 30
@@ -479,7 +480,6 @@ final class OpenAPS {
 
                     if timeRemaining > 0 {
                         hbt_ = halfBasalTarget.decimalValue
-                        isTemptargetActive = true
                     }
                 }
             }
@@ -490,7 +490,7 @@ final class OpenAPS {
                 weightedAverage: currentTDD > 0 ? weightedAverage : 1,
                 past2hoursAverage: currentTDD > 0 ? average2hours : 0,
                 date: Date(),
-                isEnabled: isTemptargetActive,
+                isEnabled: hbt_ != defaultHalfBasalTarget,
                 presetActive: isTemptargetActive,
                 overridePercentage: overridePercentage,
                 useOverride: useOverride,

+ 10 - 7
FreeAPS/Sources/APS/Storage/TempTargetsStorage.swift

@@ -27,6 +27,7 @@ final class BaseTempTargetsStorage: TempTargetsStorage, Injectable {
     private let processQueue = DispatchQueue(label: "BaseTempTargetsStorage.processQueue")
     @Injected() private var storage: FileStorage!
     @Injected() private var broadcaster: Broadcaster!
+    @Injected() private var settingsManager: SettingsManager!
 
     private let backgroundContext = CoreDataStack.shared.newTaskContext()
     private let viewContext = CoreDataStack.shared.persistentContainer.viewContext
@@ -123,16 +124,18 @@ final class BaseTempTargetsStorage: TempTargetsStorage, Injectable {
             newTempTarget.name = tempTarget.name
             newTempTarget.target = NSDecimalNumber(decimal: tempTarget.targetTop ?? 0)
             newTempTarget.isPreset = tempTarget.isPreset ?? false
-            newTempTarget.halfBasalTarget = NSDecimalNumber(decimal: tempTarget.halfBasalTarget ?? 160)
 
-            // Set order position if we have a valid count and the temp target is a preset
             // Nullify half basal target to ensure the latest HBT is used via OpenAPS Manager when sending TT data to oref
-            if tempTarget.isPreset == true {
-                newTempTarget.halfBasalTarget = nil
+            newTempTarget.halfBasalTarget = nil
 
-                if presetCount > -1 {
-                    newTempTarget.orderPosition = Int16(presetCount + 1)
-                }
+            if let halfBasalTarget = tempTarget.halfBasalTarget,
+               halfBasalTarget != self.settingsManager.preferences.halfBasalExerciseTarget
+            {
+                newTempTarget.halfBasalTarget = NSDecimalNumber(decimal: halfBasalTarget)
+            }
+
+            if tempTarget.isPreset == true, presetCount > -1 {
+                newTempTarget.orderPosition = Int16(presetCount + 1)
             }
 
             do {

+ 1 - 1
FreeAPS/Sources/Models/TempTarget.swift

@@ -14,7 +14,7 @@ struct TempTarget: JSON, Identifiable, Equatable, Hashable {
     let halfBasalTarget: Decimal?
 
     static let manual = "Trio"
-    static let custom = "Temp target"
+    static let custom = "Temp Target"
     static let cancel = "Cancel"
 
     var displayName: String {