import Foundation import Sparkle /// Selbstaktualisierung über Sparkle. Mawari sucht einmal am Tag von selbst /// (SUEnableAutomaticChecks in project.yml) und bietet gefundene Updates an; /// installiert wird erst nach Zustimmung. Appcast: update.zielke.studio/mawari. @MainActor final class UpdateController: ObservableObject { private let controller: SPUStandardUpdaterController @Published private(set) var canCheck = true private var observation: NSKeyValueObservation? init() { controller = SPUStandardUpdaterController(startingUpdater: true, updaterDelegate: nil, userDriverDelegate: nil) observation = controller.updater.observe(\.canCheckForUpdates, options: [.initial, .new]) { [weak self] updater, _ in let can = updater.canCheckForUpdates Task { @MainActor in self?.canCheck = can } } } func checkForUpdates() { controller.updater.checkForUpdates() } }