|
|
|
// Copyright © 2015 Abhishek Banthia
|
|
|
|
|
|
|
|
import Cocoa
|
|
|
|
import ServiceManagement
|
|
|
|
|
|
|
|
struct StartupManager {
|
|
|
|
func toggleLogin(_ shouldStartAtLogin: Bool) {
|
|
|
|
if !SMLoginItemSetEnabled("com.abhishek.ClockerHelper" as CFString, shouldStartAtLogin) {
|
|
|
|
Logger.log(object: ["Successful": "NO"], for: "Start Clocker Login")
|
|
|
|
addClockerToLoginItemsManually()
|
|
|
|
} else {
|
|
|
|
Logger.log(object: ["Successful": "YES"], for: "Start Clocker Login")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
private func addClockerToLoginItemsManually() {
|
|
|
|
NSApplication.shared.activate(ignoringOtherApps: true)
|
|
|
|
|
|
|
|
let alert = NSAlert()
|
|
|
|
alert.messageText = "Clocker is unable to set to start at login. 😅"
|
|
|
|
alert.informativeText = "You can manually set it to start at startup by adding Clocker to your login items."
|
|
|
|
alert.addButton(withTitle: "Add Manually")
|
|
|
|
alert.addButton(withTitle: "Cancel")
|
|
|
|
|
|
|
|
let response = alert.runModal()
|
|
|
|
if response.rawValue == 1000 {
|
|
|
|
OperationQueue.main.addOperation {
|
|
|
|
let prefPane = "/System/Library/PreferencePanes/Accounts.prefPane"
|
|
|
|
NSWorkspace.shared.openFile(prefPane)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|