56 lines
1.6 KiB
Swift
56 lines
1.6 KiB
Swift
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."
|
|
}
|
|
}
|
|
}
|