Просмотр исходного кода

overrides subject to same error -> same fix

Robert 1 год назад
Родитель
Сommit
e43c184518

+ 8 - 7
Trio/Sources/Modules/Adjustments/AdjustmentsStateModel+Extensions/AdjustmentsStateModel+Overrides.swift

@@ -8,15 +8,16 @@ extension Adjustments.StateModel {
     /// Enacts an Override Preset by enabling it and disabling others.
     @MainActor func enactOverridePreset(withID id: NSManagedObjectID) async {
         do {
-            let overrideToEnact = try viewContext.existingObject(with: id) as? OverrideStored
-            overrideToEnact?.enabled = true
-            overrideToEnact?.date = Date()
-            overrideToEnact?.isUploadedToNS = false
-            isOverrideEnabled = true
-
-            await disableAllActiveOverrides(except: id, createOverrideRunEntry: currentActiveOverride != nil)
+            guard let overrideToEnact = try viewContext.existingObject(with: id) as? OverrideStored else { return }
+            /// Wait for currently active override to be disabled before storing the new one
+            await disableAllActiveOverrides(createOverrideRunEntry: currentActiveOverride != nil)
             await resetStateVariables()
 
+            overrideToEnact.enabled = true
+            overrideToEnact.date = Date()
+            overrideToEnact.isUploadedToNS = false
+            isOverrideEnabled = true
+
             guard viewContext.hasChanges else { return }
             try viewContext.save()