From e61b9ed8f190c65c9a6a85fbacde2e88cfb60bea Mon Sep 17 00:00:00 2001 From: Scott Pfeil Date: Tue, 18 Apr 2023 18:21:57 -0400 Subject: [PATCH] bugfixes for delegate, logging, and legacy --- MVMCoreUI/Alerts/AlertOperation.swift | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/MVMCoreUI/Alerts/AlertOperation.swift b/MVMCoreUI/Alerts/AlertOperation.swift index be5dadf1..4f56ca6e 100644 --- a/MVMCoreUI/Alerts/AlertOperation.swift +++ b/MVMCoreUI/Alerts/AlertOperation.swift @@ -25,7 +25,6 @@ public class AlertOperation: MVMCoreOperation { } private var properties = Properties() - //private var observer: NSKeyValueObservation? private var cancellable: Cancellable? public let alertController: AlertController @@ -89,26 +88,25 @@ public class AlertOperation: MVMCoreOperation { stopObservingAlertView() cancellable = alertController.publisher(for: \AlertController.visible).sink() { [weak self] visible in guard let self = self else { return } - Task { @MainActor in + Task { + guard await self.properties.getIsDisplayed() != visible else { return } await self.properties.set(displayed: visible) - if visible { - self.alertObject.alertDelegate?.alertShown(self.alertController) - } else { - self.alertObject.alertDelegate?.alertDismissed(self.alertController) - - // Is visible was set to NO, meaning that the alertview is no longer visible. - self.stopObservingAlertView() - self.markAsFinished() + Task { @MainActor in + if visible { + self.alertObject.alertDelegate?.alertShown(self.alertController) + } else { + self.alertObject.alertDelegate?.alertDismissed(self.alertController) + + // Is visible was set to NO, meaning that the alertview is no longer visible. + self.stopObservingAlertView() + self.markAsFinished() + } } } } -// observer = alertController.observe(\AlertController.visible, options: [.old, .new]) { [weak self] (object, change) in -// -// } } private func stopObservingAlertView() { - //observer?.invalidate() cancellable?.cancel() } }