final class TimeSignalNotifier: NSObject {
- let udController: NSUserDefaultsController = NSUserDefaultsController.shared()
+ let udController: NSUserDefaultsController = NSUserDefaultsController.shared
override init() {
super.init()
registerTimer()
- self.bind(#keyPath(notifyTimeBeforeTimeSignal),
- to: udController,
- withKeyPath: "values.notifyTimeBeforeTimeSignal")
+ bind(NSBindingName(#keyPath(notifyTimeBeforeTimeSignal)),
+ to: udController,
+ withKeyPath: "values.notifyTimeBeforeTimeSignal")
}
deinit {
- self.unbind(#keyPath(notifyTimeBeforeTimeSignal))
+ unbind(NSBindingName(#keyPath(notifyTimeBeforeTimeSignal)))
}
- dynamic var notifyTimeBeforeTimeSignal: Int = 0 {
+ @objc dynamic var notifyTimeBeforeTimeSignal: Int = 0 {
didSet { registerTimer() }
}
var timer: Timer?
- func fire(_ timer: Timer) {
+ @objc func fire(_ timer: Timer) {
defer { registerTimer() }
- if !UserDefaults.standard.notifyTimeSignal { return }
-
+ guard UserDefaults.standard[.notifyTimeSignal] else { return }
+
let now = Date()
let cal = Calendar.current
let minutes = cal.component(.minute, from: now)
let notification = NSUserNotification()
let hour = cal.component(.hour, from: now)
- let format = NSLocalizedString("It is soon %zd o'clock.", comment: "It is soon %zd o'clock.")
+ let format = LocalizedStrings.timerSIgnalMessage.string
notification.title = String(format: format, hour + 1)
notification.informativeText = notification.title
- if UserDefaults.standard.playNotifyTimeSignalSound {
+ if UserDefaults.standard[.playNotifyTimeSignalSound] {
notification.soundName = NSUserNotificationDefaultSoundName
}
comp.minute = 60 - notifyTimeBeforeTimeSignal
- guard let notifyDate = cal.date(from: comp)
- else { return print("Can not create notify date") }
+ guard let notifyDate = cal.date(from: comp) else {
+
+ print("Can not create notify date")
+ return
+ }
timer = Timer.scheduledTimer(timeInterval: notifyDate.timeIntervalSinceNow,
target: self,