import Foundation /// Der Zustand des Anmeldeobjekts — die Werte von `SMAppService.Status`, /// aber ohne ServiceManagement, damit sie prüfbar bleiben. public enum LoginItemState: Equatable, Sendable { /// Nicht eingetragen. Ein Aufruf von `register()` behebt es. case notRegistered case enabled /// Eingetragen, aber vom Nutzer in den Systemeinstellungen abgeschaltet. case requiresApproval /// Die App findet sich selbst nicht — ein Installationsproblem. case notFound case unknown public init(statusRawValue: Int) { switch statusRawValue { case 0: self = .notRegistered case 1: self = .enabled case 2: self = .requiresApproval case 3: self = .notFound default: self = .unknown } } /// Startet Onyx mit? Im Zweifel nein — lieber einen überflüssigen Klick /// verlangen als behaupten, es sei eingeschaltet, und es startet nicht. public var isEnabled: Bool { self == .enabled } /// Ob der Weg über die Systemeinstellungen führt. /// /// Das ist der Zustand, den man nicht verschweigen darf: wer das /// Anmeldeobjekt dort abgeschaltet hat, kann in Onyx auf den Schalter /// drücken, so oft er will — erneutes Registrieren ändert daran nichts. public var needsSystemSettings: Bool { self == .requiresApproval } }