|
@@ -110,12 +110,24 @@ extension OverrideConfig.StateModel {
|
|
|
name: .didUpdateOverrideConfiguration,
|
|
name: .didUpdateOverrideConfiguration,
|
|
|
object: nil
|
|
object: nil
|
|
|
)
|
|
)
|
|
|
|
|
+
|
|
|
|
|
+ // Custom Notification to update View when an Temp Target has been cancelled via Home View
|
|
|
|
|
+ Foundation.NotificationCenter.default.addObserver(
|
|
|
|
|
+ self,
|
|
|
|
|
+ selector: #selector(handleTempTargetConfigurationUpdate),
|
|
|
|
|
+ name: .didUpdateTempTargetConfiguration,
|
|
|
|
|
+ object: nil
|
|
|
|
|
+ )
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@objc private func handleOverrideConfigurationUpdate() {
|
|
@objc private func handleOverrideConfigurationUpdate() {
|
|
|
updateLatestOverrideConfiguration()
|
|
updateLatestOverrideConfiguration()
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ @objc private func handleTempTargetConfigurationUpdate() {
|
|
|
|
|
+ updateLatestTempTargetConfiguration()
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
// MARK: - Enact Overrides
|
|
// MARK: - Enact Overrides
|
|
|
|
|
|
|
|
func reorderOverride(from source: IndexSet, to destination: Int) {
|
|
func reorderOverride(from source: IndexSet, to destination: Int) {
|
|
@@ -576,16 +588,35 @@ extension OverrideConfig.StateModel {
|
|
|
isTempTargetEnabled = true
|
|
isTempTargetEnabled = true
|
|
|
|
|
|
|
|
/// disable all active Temp Targets and reset state variables
|
|
/// disable all active Temp Targets and reset state variables
|
|
|
- await disableAllActiveTempTargets(except: id, createTempTargetRunEntry: currentActiveTempTarget != nil)
|
|
|
|
|
|
|
+ async let disableTempTargets: () = disableAllActiveTempTargets(
|
|
|
|
|
+ except: id,
|
|
|
|
|
+ createTempTargetRunEntry: currentActiveTempTarget != nil
|
|
|
|
|
+ )
|
|
|
|
|
+ async let resetState: () = resetTempTargetState()
|
|
|
|
|
|
|
|
- /// reset state variables
|
|
|
|
|
- await resetTempTargetState()
|
|
|
|
|
|
|
+ _ = await (disableTempTargets, resetState)
|
|
|
|
|
|
|
|
guard viewContext.hasChanges else { return }
|
|
guard viewContext.hasChanges else { return }
|
|
|
try viewContext.save()
|
|
try viewContext.save()
|
|
|
|
|
|
|
|
// Update View
|
|
// Update View
|
|
|
updateLatestTempTargetConfiguration()
|
|
updateLatestTempTargetConfiguration()
|
|
|
|
|
+
|
|
|
|
|
+ // Map to TempTarget Struct
|
|
|
|
|
+ let tempTarget = TempTarget(
|
|
|
|
|
+ name: tempTargetToEnact?.name,
|
|
|
|
|
+ createdAt: Date(),
|
|
|
|
|
+ targetTop: tempTargetToEnact?.target?.decimalValue,
|
|
|
|
|
+ targetBottom: tempTargetToEnact?.target?.decimalValue,
|
|
|
|
|
+ duration: tempTargetToEnact?.duration?.decimalValue ?? 0,
|
|
|
|
|
+ enteredBy: TempTarget.manual,
|
|
|
|
|
+ reason: TempTarget.custom,
|
|
|
|
|
+ isPreset: true,
|
|
|
|
|
+ enabled: true
|
|
|
|
|
+ )
|
|
|
|
|
+
|
|
|
|
|
+ // Make sure the Temp Target gets used by Oref
|
|
|
|
|
+ tempTargetStorage.storePresets([tempTarget])
|
|
|
} catch {
|
|
} catch {
|
|
|
debugPrint("\(DebuggingIdentifiers.failed) \(#file) \(#function) Failed to enact Override Preset")
|
|
debugPrint("\(DebuggingIdentifiers.failed) \(#file) \(#function) Failed to enact Override Preset")
|
|
|
}
|
|
}
|