diff --git a/Cryptomator/MainCoordinator.swift b/Cryptomator/MainCoordinator.swift index 7dec87ae8..4d39c8fc3 100644 --- a/Cryptomator/MainCoordinator.swift +++ b/Cryptomator/MainCoordinator.swift @@ -123,6 +123,8 @@ extension MainCoordinator: StoreObserverDelegate { switch transaction { case .fullVersion, .yearlySubscription: showFullVersionAlert() + // Temporarily added for December 2024 Sale + NotificationCenter.default.post(name: .dismissBannerNotification, object: nil) case let .freeTrial(expiresOn): showTrialAlert(expirationDate: expiresOn) case .unknown: diff --git a/Cryptomator/Purchase/PurchaseCoordinator.swift b/Cryptomator/Purchase/PurchaseCoordinator.swift index 306abdf5d..b386b1a6b 100644 --- a/Cryptomator/Purchase/PurchaseCoordinator.swift +++ b/Cryptomator/Purchase/PurchaseCoordinator.swift @@ -51,6 +51,8 @@ class PurchaseCoordinator: Coordinator { PurchaseAlert.showForFullVersion(title: LocalizedString.getValue("purchase.unlockedFullVersion.title"), on: navigationController).then { self.unlockedPro() } + // Temporarily added for December 2024 Sale + NotificationCenter.default.post(name: .dismissBannerNotification, object: nil) } func handleRestoreResult(_ result: RestoreTransactionsResult) { diff --git a/Cryptomator/VaultList/VaultListViewController.swift b/Cryptomator/VaultList/VaultListViewController.swift index 5f9a5e3ed..d29d07bb6 100644 --- a/Cryptomator/VaultList/VaultListViewController.swift +++ b/Cryptomator/VaultList/VaultListViewController.swift @@ -17,12 +17,13 @@ class VaultListViewController: ListViewController { weak var coordinator: MainCoordinator? private let viewModel: VaultListViewModelProtocol - private var observer: NSObjectProtocol? + private var willEnterForegroundObserver: NSObjectProtocol? @Dependency(\.fullVersionChecker) private var fullVersionChecker @Dependency(\.cryptomatorSettings) private var cryptomatorSettings #if !ALWAYS_PREMIUM private var bannerView: UIView? + private var fullVersionPurchasedObserver: NSObjectProtocol? #endif init(with viewModel: VaultListViewModelProtocol) { @@ -49,13 +50,16 @@ class VaultListViewController: ListViewController { let addNewVaulButton = UIBarButtonItem(barButtonSystemItem: .add, target: self, action: #selector(addNewVault)) navigationItem.rightBarButtonItem = addNewVaulButton - observer = NotificationCenter.default.addObserver(forName: UIApplication.willEnterForegroundNotification, object: nil, queue: .main) { [weak self] _ in + willEnterForegroundObserver = NotificationCenter.default.addObserver(forName: UIApplication.willEnterForegroundNotification, object: nil, queue: .main) { [weak self] _ in self?.viewModel.refreshVaultLockStates().catch { error in DDLogError("Refresh vault lock states failed with error: \(error)") } } #if !ALWAYS_PREMIUM + fullVersionPurchasedObserver = NotificationCenter.default.addObserver(forName: .dismissBannerNotification, object: nil, queue: .main) { [weak self] _ in + self?.dismissBanner() + } checkAndShowBanner() #endif } @@ -204,3 +208,7 @@ class VaultListViewController: ListViewController { } #endif } + +extension Notification.Name { + static let dismissBannerNotification = Notification.Name("DismissBannerNotification") +}