From c07971eadca0c3c77423843d6ba005de495341be Mon Sep 17 00:00:00 2001 From: Matan Mashraki Date: Wed, 30 Jan 2019 16:26:55 +0200 Subject: [PATCH] Auto Dark can now auto detect location and set custom sunset/sunrise times --- Assets/Header.png | Bin 0 -> 15516 bytes Assets/MenuScreenshot.png | Bin 0 -> 120186 bytes Auto Dark.xcodeproj/project.pbxproj | 22 ++- Auto Dark/AppDelegate.swift | 14 ++ Auto Dark/Base.lproj/MainMenu.xib | 8 +- Auto Dark/Info.plist | 4 +- Auto Dark/LocationManager.swift | 114 ++++++++++++ Auto Dark/Preferences.storyboard | 256 ++++++++++++++++++++++++++ Auto Dark/PreferencesController.swift | 190 +++++++++++++++++++ Auto Dark/ScheduleManager.swift | 44 +++++ Auto Dark/ViewController.swift | 169 ++++++++--------- README.md | 2 + 12 files changed, 720 insertions(+), 103 deletions(-) create mode 100644 Assets/Header.png create mode 100644 Assets/MenuScreenshot.png create mode 100644 Auto Dark/LocationManager.swift create mode 100644 Auto Dark/Preferences.storyboard create mode 100644 Auto Dark/PreferencesController.swift create mode 100644 Auto Dark/ScheduleManager.swift diff --git a/Assets/Header.png b/Assets/Header.png new file mode 100644 index 0000000000000000000000000000000000000000..d46c03f1793956c42f45d4d2ad47ee1b569d129a GIT binary patch literal 15516 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

a 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

1q@oWM)^~aQ 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 Bool { + return UserDefaults.standard.value(forKey: key) != nil + } +} diff --git a/Auto Dark/Base.lproj/MainMenu.xib b/Auto Dark/Base.lproj/MainMenu.xib index abe29f9..881120b 100644 --- a/Auto Dark/Base.lproj/MainMenu.xib +++ b/Auto Dark/Base.lproj/MainMenu.xib @@ -15,24 +15,24 @@ - + - + - + - + diff --git a/Auto Dark/Info.plist b/Auto Dark/Info.plist index 4a12f96..e7e83c5 100644 --- a/Auto Dark/Info.plist +++ b/Auto Dark/Info.plist @@ -17,9 +17,9 @@ CFBundlePackageType APPL CFBundleShortVersionString - 1.2 + 1.3 CFBundleVersion - 4 + 5 LSMinimumSystemVersion $(MACOSX_DEPLOYMENT_TARGET) LSUIElement diff --git a/Auto Dark/LocationManager.swift b/Auto Dark/LocationManager.swift new file mode 100644 index 0000000..6c342e2 --- /dev/null +++ b/Auto Dark/LocationManager.swift @@ -0,0 +1,114 @@ +// +// LocationManager.swift +// Auto Dark +// +// Created by Matan Mashraki on 18/01/2019. +// Copyright © 2019 Matan Mashraki. All rights reserved. +// + +import Cocoa +import CoreLocation + +class LocationManager: NSObject, CLLocationManagerDelegate, DarkManager { + + private var locationManager: CLLocationManager! + var delegate: ViewControllerDelegate? + var next: DarkDate? + var pref: ScheduleMode + var currentLocation: CLLocation? + var stringLocation: String? + + init(pref: ScheduleMode) { + self.pref = pref + super.init() + determineCurrentLocation() + } + + func calculateNextDate() { + if let loc = currentLocation { + let solar = Solar(coordinate: loc.coordinate)! + var nextRun: Date? + var dark = false + if solar.isDaytime { + nextRun = solar.sunset + dark = true + } else { + nextRun = Solar(for: Calendar.current.date(byAdding: .day, value: 1, to: Date())!, coordinate: loc.coordinate)?.sunrise + } + next = DarkDate(date: nextRun, dark: dark) + delegate?.updatedNextDate() + } + } + + func determineCurrentLocation() { + if pref == .manual { + setManualLocation() + } else { + locationManager = CLLocationManager() + locationManager.delegate = self + locationManager.desiredAccuracy = kCLLocationAccuracyKilometer + locationManager.requestLocation() + if pref == .location, CLLocationManager.locationServicesEnabled() { + locationManager.startUpdatingLocation() + } else { + let res = showAlert(title: "Location Services Aren't Available", subtitle: "Please turn on location services or set location manually.", button1: "I Enabled Location Services", button2: "Set Location Manually") + if res == .alertFirstButtonReturn { + determineCurrentLocation() + } else if res == .alertSecondButtonReturn { + pref = .manual + setManualLocation() + } else { + NSApplication.shared.terminate(self) + } + } + } + } + + func setManualLocation() { + if let location = UserDefaults.standard.string(forKey: "location") { + stringLocation = location + let geo = CLGeocoder() + geo.geocodeAddressString(location) { (places, error) in + if let place = places?.first?.location { + self.currentLocation = place + self.calculateNextDate() + self.delegate?.setLocationLabel(string: location) + } else { + self.delegate?.setInformationLabel(string: "Can't calculate Dark Mode for your location.") + } + } + } + } + + func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { + currentLocation = locations[0] + let geo = CLGeocoder() + geo.reverseGeocodeLocation(currentLocation!) { (places, error) in + if let place = places?.first { + self.stringLocation = "\(place.locality!), \(place.country!)" + self.delegate?.setLocationLabel(string: self.stringLocation!) + self.calculateNextDate() + } else { + self.delegate?.setInformationLabel(string: "Can't calculate Dark Mode for your location.") + } + } + } + + func locationManager(_ manager: CLLocationManager, didFailWithError error: Error) { + print("Error Location: \(error)") + self.delegate?.setInformationLabel(string: "Can't detect your location.") + } + + func showAlert(title: String, subtitle: String, button1: String, button2: String?) -> NSApplication.ModalResponse { + let msg = NSAlert() + msg.addButton(withTitle: button1) + if let b2 = button2 { + msg.addButton(withTitle: b2) + } + msg.addButton(withTitle: "Cancel") + msg.messageText = title + msg.informativeText = subtitle + return msg.runModal() + } + +} diff --git a/Auto Dark/Preferences.storyboard b/Auto Dark/Preferences.storyboard new file mode 100644 index 0000000..5563ada --- /dev/null +++ b/Auto Dark/Preferences.storyboard @@ -0,0 +1,256 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Auto Dark/PreferencesController.swift b/Auto Dark/PreferencesController.swift new file mode 100644 index 0000000..6610c51 --- /dev/null +++ b/Auto Dark/PreferencesController.swift @@ -0,0 +1,190 @@ +// +// PreferencesController.swift +// Auto Dark +// +// Created by Matan Mashraki on 18/01/2019. +// Copyright © 2019 Matan Mashraki. All rights reserved. +// + +import Cocoa +import CoreLocation + +protocol TypeLocationDelegate { + func updateLocation(location: String) +} + +class PreferencesController: NSViewController, TypeLocationDelegate { + + var delegate: ViewControllerDelegate? + @IBOutlet weak var location: NSButton! + @IBOutlet weak var autoLocation: NSButton! + @IBOutlet weak var manualLocation: NSButton! + @IBOutlet weak var typeLocation: NSButton! + @IBOutlet weak var schedule: NSButton! + @IBOutlet weak var sunrise: NSDatePicker! + @IBOutlet weak var sunset: NSDatePicker! + @IBOutlet weak var version: NSTextField! + var sunrisePrev: Date? + var sunsetPrev: Date? + + override func viewDidLoad() { + super.viewDidLoad() + switch mode { + case .location: location.setState(state: true); autoLocation.setState(state: true) + case .manual: location.setState(state: true); manualLocation.setState(state: true) + case .time: schedule.setState(state: true); autoLocation.setState(state: true) + } + if let location = UserDefaults.standard.string(forKey: "location") { + typeLocation.title = location + } + typeLocation.sizeToFit() + let dateFormatter = DateFormatter() + dateFormatter.dateFormat = "H:mm" + sunrise.dateValue = dateFormatter.date(from: UserDefaults.standard.string(forKey: "sunrise")!)! + sunset.dateValue = dateFormatter.date(from: UserDefaults.standard.string(forKey: "sunset")!)! + version.stringValue = "Version \(Bundle.main.infoDictionary!["CFBundleShortVersionString"]!) (\(Bundle.main.infoDictionary!["CFBundleVersion"]!))" + sunrisePrev = sunrise.dateValue + sunsetPrev = sunset.dateValue + states() + } + + func states() { + autoLocation.isEnabled = location.state() + manualLocation.isEnabled = location.state() + typeLocation.isEnabled = manualLocation.state() && manualLocation.isEnabled + sunrise.isEnabled = schedule.state() + sunset.isEnabled = schedule.state() + if location.state() { + if autoLocation.state() { mode = .location } + else if manualLocation.state() { mode = .manual } + } else if schedule.state() { mode = .time } + UserDefaults.standard.set(mode.rawValue, forKey: "mode") + delegate?.setDarkManager() + } + + @IBAction func locationCheck(_ sender: Any) { + if location.state() { + schedule.setState(state: !location.state()) + } + states() + } + + @IBAction func scheduleCheck(_ sender: Any) { + if schedule.state() { + location.setState(state: !schedule.state()) + } + states() + } + + @IBAction func autoCheck(_ sender: Any) { + if autoLocation.state() { + manualLocation.setState(state: !autoLocation.state()) + } + states() + } + + @IBAction func typeCheck(_ sender: Any) { + if manualLocation.state() { + autoLocation.setState(state: !manualLocation.state()) + if !UserDefaults.standard.contains(key: "location") { + self.performSegue(withIdentifier: "typeLocation", sender: self) + } + } + states() + } + + @IBAction func sunriseCheck(_ sender: Any) { + if sunrise.dateValue > sunset.dateValue { + sunrise.dateValue = sunrisePrev! + return + } + sunrisePrev = sunrise.dateValue + let dateFormatter = DateFormatter() + dateFormatter.dateFormat = "H:mm" + let str = dateFormatter.string(from: sunrise.dateValue) + UserDefaults.standard.set(str, forKey: "sunrise") + delegate?.setDarkManager() + } + + @IBAction func sunsetCheck(_ sender: Any) { + if sunrise.dateValue > sunset.dateValue { + sunset.dateValue = sunsetPrev! + return + } + sunsetPrev = sunset.dateValue + let dateFormatter = DateFormatter() + dateFormatter.dateFormat = "H:mm" + let str = dateFormatter.string(from: sunset.dateValue) + UserDefaults.standard.set(str, forKey: "sunset") + delegate?.setDarkManager() + } + + @IBAction func websiteCheck(_ sender: Any) { + let url = URL(string: "https://github.com/planecore/Auto-Dark")! + NSWorkspace.shared.open(url) + } + + func updateLocation(location: String) { + UserDefaults.standard.set(location, forKey: "location") + typeLocation.title = location + typeLocation.sizeToFit() + delegate?.setDarkManager() + } + + override func prepare(for segue: NSStoryboardSegue, sender: Any?) { + if segue.identifier == "type-location" { + let controller = segue.destinationController as! TypeLocationViewController + controller.delegate = self + } + segue.perform() + } + +} + +extension NSButton { + func setState(state: Bool) { + if state { + self.state = .on + } else { + self.state = .off + } + } + + func state() -> Bool { + return self.state == .on + } +} + +class TypeLocationViewController: NSViewController { + + var delegate: TypeLocationDelegate? + @IBOutlet weak var textField: NSTextField! + @IBOutlet weak var message: NSTextField! + @IBOutlet weak var progress: NSProgressIndicator! + @IBOutlet weak var button: NSButton! + + override func viewDidLoad() { + super.viewDidLoad() + if let loc = UserDefaults.standard.string(forKey: "location") { + textField.stringValue = loc + } + } + + @IBAction func done(_ sender: Any) { + progress.startAnimation(self) + let text = textField.stringValue + let geo = CLGeocoder() + geo.geocodeAddressString(text) { (places, error) in + self.progress.stopAnimation(self) + if error == nil { + self.delegate?.updateLocation(location: text) + self.dismiss(self) + } else if error.debugDescription.contains("Domain=kCLErrorDomain Code=2") { + self.message.stringValue = "No Internet" + } else { + self.message.stringValue = "Invalid Location" + } + } + } + +} diff --git a/Auto Dark/ScheduleManager.swift b/Auto Dark/ScheduleManager.swift new file mode 100644 index 0000000..6475b3a --- /dev/null +++ b/Auto Dark/ScheduleManager.swift @@ -0,0 +1,44 @@ +// +// ScheduleManager.swift +// Auto Dark +// +// Created by Matan Mashraki on 19/01/2019. +// Copyright © 2019 Matan Mashraki. All rights reserved. +// + +import Foundation + +class ScheduleManager: NSObject, DarkManager { + + var delegate: ViewControllerDelegate? + var next: DarkDate? + var sunriseString = UserDefaults.standard.string(forKey: "sunrise")! + var sunsetString = UserDefaults.standard.string(forKey: "sunset")! + + func calculateNextDate() { + let dateFormatter = DateFormatter() + dateFormatter.dateFormat = "MMMM dd yyyy H:mm" + let sunrise = dateFormatter.date(from: currentDate() + " " + sunriseString)! + let sunset = dateFormatter.date(from: currentDate() + " " + sunsetString)! + let date = Date() + var nextRun: Date? + var dark = false + if date > sunrise && date < sunset { + dark = true + nextRun = sunset + } else if date < sunrise { + nextRun = sunrise + } else if date > sunset { + nextRun = Calendar.current.date(byAdding: .day, value: 1, to: sunrise)! + } + next = DarkDate(date: nextRun, dark: dark) + delegate?.updatedNextDate() + } + + func currentDate() -> String { + let dateFormatter = DateFormatter() + dateFormatter.dateFormat = "MMMM dd yyyy" + return dateFormatter.string(from: Date()) + } + +} diff --git a/Auto Dark/ViewController.swift b/Auto Dark/ViewController.swift index 3067ad5..3807c73 100644 --- a/Auto Dark/ViewController.swift +++ b/Auto Dark/ViewController.swift @@ -63,125 +63,106 @@ func runAppleScript(_ source: String) -> String { return outstr } +enum ScheduleMode: String { + case location = "Location", manual = "Manual", time = "Time" +} + +struct DarkDate { + var date: Date? + var dark: Bool +} -class ViewController: NSObject { +protocol DarkManager { + var delegate: ViewControllerDelegate? {get set} + var next: DarkDate? {get} + func calculateNextDate() +} + +protocol ViewControllerDelegate { + func updatedNextDate() + func setLocationLabel(string: String) + func setInformationLabel(string: String) + func setDarkManager() +} + +class ViewController: NSObject, ViewControllerDelegate { + var darkManager: DarkManager? + var first = true @IBOutlet weak var statusMenu: NSMenu! - var currentLocation = UserDefaults.standard.string(forKey: "location") @IBOutlet weak var locationLabel: NSMenuItem! @IBOutlet weak var informationLabel: NSMenuItem! - @IBOutlet weak var button: NSMenuItem! + @IBOutlet weak var preferences: NSMenuItem! let statusItem = NSStatusBar.system.statusItem(withLength: NSStatusItem.variableLength) var timer: Timer? - var date: Date? + var date: DarkDate? override func awakeFromNib() { let icon = NSImage(named: "StatusIcon") icon?.isTemplate = true statusItem.button?.image = icon statusItem.menu = statusMenu - if let loc = currentLocation { - locationLabel.title = loc - } - timer = Timer(fire: Date().addingTimeInterval(10), interval: 60, repeats: true) { (t) in - if let date = self.date, Date() > date || self.button.title == "Try Again" { - self.getSunTimes() - } - } - RunLoop.main.add(timer!, forMode: .common) - getSunTimes() + setDarkManager() } - @objc func getSunTimes() { + func setDarkManager() { + timer?.invalidate() + if let stringMode = UserDefaults.standard.string(forKey: "mode") { + mode = ScheduleMode(rawValue: stringMode)! + } + first = true informationLabel.title = "Calculating..." - guard let address = currentLocation else { - let getLocation = textBoxAlert(title: "Change Location", question: "What's the address?", defaultValue: "") - if let loc = getLocation { - UserDefaults.standard.set(loc, forKey: "location") - locationLabel.title = loc - currentLocation = loc - } - getSunTimes() - return + locationLabel.title = "Auto Dark" + if mode == .time { + darkManager = ScheduleManager() + darkManager?.delegate = self + darkManager?.calculateNextDate() + } else { + darkManager = LocationManager(pref: mode) + darkManager?.delegate = self } - self.locationLabel.title = address - let geo = CLGeocoder() - geo.geocodeAddressString(address) { (place, error) in - if let place = place { - if let coord = place.first?.location?.coordinate { - self.button.title = "Change Location" - print("Calculating for \(address)") - let solar = Solar(coordinate: coord)! - var nextRun: Date? - if solar.isDaytime { - print("Dark mode off") - DarkMode.toggle(force: false) - nextRun = solar.sunset - } else { - print("Dark mode on") - DarkMode.toggle(force: true) - nextRun = Solar(for: Calendar.current.date(byAdding: .day, value: 1, to: Date())!, coordinate: coord)?.sunrise - } - if let next = nextRun { - self.date = next - let dateFormatter = DateFormatter() - dateFormatter.dateFormat = "H:mm" - self.informationLabel.title = (solar.isDaytime ? "Sunset: " : "Sunrise: ") + dateFormatter.string(from: next) - } else { - self.date = nil - self.informationLabel.title = "Can't calculate auto dark mode at your location." - } - } - } else if error.debugDescription.contains("Domain=kCLErrorDomain Code=2") { - self.informationLabel.title = "Please check your internet connection." - self.button.title = "Try Again" - } else { - let getLocation = self.textBoxAlert(title: "Invalid Location", question: "What's the address?", defaultValue: "") - if let loc = getLocation { - UserDefaults.standard.set(loc, forKey: "location") - self.locationLabel.title = loc - self.currentLocation = loc - } - self.getSunTimes() + timer = Timer(fire: Date().addingTimeInterval(10), interval: 60, repeats: true) { t in + if let date = self.date?.date, Date() > date { + DarkMode.toggle(force: self.date!.dark) + self.darkManager?.calculateNextDate() } } + RunLoop.main.add(timer!, forMode: .common) } - @IBAction func changeLocation(sender: NSMenuItem) { - if sender.title == "Try Again" { - getSunTimes() - } else { - let getLocation = textBoxAlert(title: "Change Location", question: "What's the address?", defaultValue: "") - if let loc = getLocation { - UserDefaults.standard.set(loc, forKey: "location") - locationLabel.title = loc - currentLocation = loc - getSunTimes() + func updatedNextDate() { + if let date = darkManager?.next { + if first { + first = false + DarkMode.toggle(force: !date.dark) } + self.date = date + let dateFormatter = DateFormatter() + dateFormatter.dateFormat = "H:mm" + self.informationLabel.title = (self.date!.dark ? "Sunset: " : "Sunrise: ") + dateFormatter.string(from: date.date!) + } else { + self.informationLabel.title = "Can't calculate Dark Mode for your location." } } - func textBoxAlert(title: String, question: String, defaultValue: String) -> String? { - let msg = NSAlert() - msg.addButton(withTitle: "OK") - msg.addButton(withTitle: "Cancel") - msg.messageText = title - msg.informativeText = question - - let txt = NSTextField(frame: NSRect(x: 0, y: 0, width: 294, height: 24)) - txt.stringValue = defaultValue - msg.accessoryView = txt - let response: NSApplication.ModalResponse = msg.runModal() - - if (response == .alertFirstButtonReturn) { - return txt.stringValue - } else { - if currentLocation != nil { - return nil - } else { - NSApplication.shared.terminate(self) - return nil - } + func setLocationLabel(string: String) { + locationLabel.title = string + } + + func setInformationLabel(string: String) { + informationLabel.title = string + } + + @IBAction func openPreferences(sender: NSMenuItem) { + if !NSApplication.shared.windows.contains { (window) -> Bool in + window.title == "Auto Dark" + } { + let storyboard = NSStoryboard(name: "Preferences", bundle: nil) + let windowController = storyboard.instantiateController(withIdentifier: "pref-window") as! NSWindowController + let vc = windowController.contentViewController as! PreferencesController + vc.delegate = self + windowController.window?.level = .floating + windowController.showWindow(self) } } diff --git a/README.md b/README.md index 49bf1a1..4037cb8 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,5 @@ +![Header](https://raw.githubusercontent.com/planecore/Auto-Dark/master/Assets/Header.png) + # Auto Dark ## Enable Dark Mode on macOS automatically based on your location.