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

+ 2 - 2
FreeAPS/Sources/APS/Storage/TempTargetsStorage.swift

@@ -10,6 +10,7 @@ protocol TempTargetsObserver {
 protocol TempTargetsStorage {
     func storeTempTarget(tempTarget: TempTarget) async
     func storePresets(_ targets: [TempTarget])
+    func saveTempTargetsToStorage(_ targets: [TempTarget], isPreset: Bool)
     func fetchForTempTargetPresets() async -> [NSManagedObjectID]
     func copyRunningTempTarget(_ tempTarget: TempTargetStored) async -> NSManagedObjectID
     func deleteOverridePreset(_ objectID: NSManagedObjectID) async
@@ -17,7 +18,6 @@ protocol TempTargetsStorage {
     func syncDate() -> Date
     func recent() -> [TempTarget]
     func nightscoutTreatmentsNotUploaded() -> [NightscoutTreatment]
-//    func storePresets(_ targets: [TempTarget])
     func presets() -> [TempTarget]
     func current() -> TempTarget?
 }
@@ -99,7 +99,7 @@ final class BaseTempTargetsStorage: TempTargetsStorage, Injectable {
         }
     }
 
-    private func saveTempTargetsToStorage(_ targets: [TempTarget], isPreset: Bool) {
+    func saveTempTargetsToStorage(_ targets: [TempTarget], isPreset: Bool) {
         processQueue.sync {
             var updatedTargets = targets
 

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

@@ -13,6 +13,7 @@ extension Home {
         @Injected() var nightscoutManager: NightscoutManager!
         @Injected() var determinationStorage: DeterminationStorage!
         @Injected() var glucoseStorage: GlucoseStorage!
+        @Injected() var tempTargetStorage: TempTargetsStorage!
         private let timer = DispatchTimer(timeInterval: 5)
         private(set) var filteredHours = 24
         @Published var manualGlucose: [BloodGlucose] = []
@@ -366,6 +367,9 @@ extension Home {
                 guard viewContext.hasChanges else { return }
                 try viewContext.save()
 
+                // We also need to update the storage for temp targets
+                tempTargetStorage.saveTempTargetsToStorage([TempTarget.cancel(at: Date())], isPreset: false)
+
                 Foundation.NotificationCenter.default.post(name: .didUpdateTempTargetConfiguration, object: nil)
             } catch {
                 debugPrint("\(DebuggingIdentifiers.failed) \(#file) \(#function) Failed to cancel Profile")

+ 4 - 0
FreeAPS/Sources/Modules/OverrideConfig/OverrideStateModel.swift

@@ -666,6 +666,10 @@ extension OverrideConfig.StateModel {
 
                     // Update the View
                     self.updateLatestTempTargetConfiguration()
+
+                    // Update the storage
+//                   await self.tempTargetStorage.storeTempTarget(tempTarget: TempTarget.cancel(at: Date()))
+                    self.tempTargetStorage.saveTempTargetsToStorage([TempTarget.cancel(at: Date())], isPreset: false)
                 }
             } catch {
                 debugPrint(