polscm32 1 سال پیش
والد
کامیت
2acd749de0

+ 2 - 2
FreeAPS/Sources/Modules/OverrideConfig/OverrideStateModel.swift

@@ -457,7 +457,7 @@ extension OverrideConfig.StateModel {
     @MainActor func updateLatestTempTargetConfigurationOfState(from IDs: [NSManagedObjectID]) async {
         do {
             let result = try IDs.compactMap { id in
-                try viewContext.existingObject(with: id) as? OverrideStored
+                try viewContext.existingObject(with: id) as? TempTargetStored
             }
             isTempTargetEnabled = result.first?.enabled ?? false
 
@@ -604,7 +604,7 @@ extension OverrideConfig.StateModel {
             isTempTargetEnabled = true
 
             /// disable all active Temp Targets and reset state variables
-            /// do not create a TempTargetRunStored entry because we only want that if we cancel a running Override, not when enacting a Preset
+            await disableAllActiveTempTargets(except: id, createTempTargetRunEntry: currentActiveTempTarget != nil)
 
             /// reset state variables
             await resetTempTargetState()

+ 3 - 2
FreeAPS/Sources/Modules/OverrideConfig/View/EditOverrideForm.swift

@@ -295,17 +295,18 @@ struct EditOverrideForm: View {
                         guard moc.hasChanges else { return }
                         try moc.save()
 
+                        // Disable previous active Override
                         if let currentActiveOverride = state.currentActiveOverride {
                             Task {
                                 await state.disableAllActiveOverrides(
                                     except: currentActiveOverride.objectID,
                                     createOverrideRunEntry: false
                                 )
+                                // Update View
+                                state.updateLatestOverrideConfiguration()
                             }
                         }
 
-                        // Update View
-                        state.updateLatestOverrideConfiguration()
                         hasChanges = false
                         presentationMode.wrappedValue.dismiss()
                     } catch {

+ 12 - 1
FreeAPS/Sources/Modules/OverrideConfig/View/EditTempTargetForm.swift

@@ -149,7 +149,18 @@ struct EditTempTargetForm: View {
                         guard moc.hasChanges else { return }
                         try moc.save()
 
-                        // Update View
+                        // Disable previous active Temp Target and update View
+                        if let currentActiveTempTarget = state.currentActiveTempTarget {
+                            Task {
+                                await state.disableAllActiveOverrides(
+                                    except: currentActiveTempTarget.objectID,
+                                    createOverrideRunEntry: false
+                                )
+
+                                state.updateLatestTempTargetConfiguration()
+                            }
+                        }
+
                         hasChanges = false
                         presentationMode.wrappedValue.dismiss()
                     } catch {

+ 1 - 1
FreeAPS/Sources/Modules/OverrideConfig/View/OverrideRootView.swift

@@ -258,7 +258,7 @@ extension OverrideConfig {
             } footer: {
                 HStack {
                     Image(systemName: "hand.draw.fill")
-                    Text("Swipe left to edit or delete an override preset. Hold, drag and drop to reorder a preset.")
+                    Text("Swipe left to edit or delete an Temp Target preset. Hold, drag and drop to reorder a preset.")
                 }
             }
         }