import Foundation import Observation import ServiceManagement @Observable @MainActor final class LaunchAtLoginService { var isEnabled = false var helperText = "Blitztext startet nicht automatisch." var errorText: String? init() { refresh() } func refresh() { let status = SMAppService.mainApp.status switch status { case .enabled: isEnabled = true helperText = "Blitztext startet beim Anmelden automatisch." case .notFound: isEnabled = false helperText = "Blitztext muss in /Applications liegen, damit der Anmeldestart verf\u{00FC}gbar ist." case .requiresApproval: isEnabled = true helperText = "Noch in den Systemeinstellungen freigeben." case .notRegistered: isEnabled = false helperText = "Blitztext startet nicht automatisch." @unknown default: isEnabled = false helperText = "Auf diesem Mac nicht verfügbar." } } func setEnabled(_ enabled: Bool) { errorText = nil do { if enabled { try SMAppService.mainApp.register() } else { try SMAppService.mainApp.unregister() } refresh() } catch { refresh() errorText = enabled ? "Anmeldestart konnte nicht aktiviert werden. Lege Blitztext in /Applications und versuche es erneut." : "Anmeldestart konnte nicht deaktiviert werden. Bitte versuche es erneut." } } }