@@ -18,7 +18,6 @@ class AppDelegate: NSObject, NSApplicationDelegate {
1818
1919 var monitorItems : [ NSMenuItem ] = [ ]
2020
21- var displayManager : DisplayManager ?
2221 var mediaKeyTap : MediaKeyTap ?
2322 var prefsController : NSWindowController ?
2423 var keyRepeatTimers : [ MediaKey : Timer ] = [ : ]
@@ -27,15 +26,13 @@ class AppDelegate: NSObject, NSApplicationDelegate {
2726
2827 func applicationDidFinishLaunching( _: Notification ) {
2928 app = self
30-
31- self . displayManager = DisplayManager ( )
3229 self . setupViewControllers ( )
3330 self . subscribeEventListeners ( )
31+ self . setDefaultPrefs ( )
3432 self . updateMediaKeyTap ( )
3533 self . statusItem. image = NSImage ( named: " status " )
3634 self . statusItem. menu = self . statusMenu
37- self . setDefaultPrefs ( )
38- Utils . acquirePrivileges ( )
35+ self . checkPermissions ( )
3936 CGDisplayRegisterReconfigurationCallback ( { _, _, _ in app. updateDisplays ( ) } , nil )
4037 self . updateDisplays ( )
4138 }
@@ -147,6 +144,13 @@ class AppDelegate: NSObject, NSApplicationDelegate {
147144 self . statusMenu. insertItem ( monitorMenuItem, at: 0 )
148145 }
149146
147+ private func checkPermissions( ) {
148+ let permissionsRequired : Bool = prefs. integer ( forKey: Utils . PrefKeys. listenFor. rawValue) != Utils . ListenForKeys. none. rawValue
149+ if !Utils. readPrivileges ( prompt: false ) && permissionsRequired {
150+ Utils . acquirePrivileges ( )
151+ }
152+ }
153+
150154 private func setupViewControllers( ) {
151155 let storyboard : NSStoryboard = NSStoryboard ( name: " Main " , bundle: Bundle . main)
152156 let mainPrefsVc = storyboard. instantiateController ( withIdentifier: " MainPrefsVC " )
@@ -285,6 +289,7 @@ extension AppDelegate: MediaKeyTapDelegate {
285289 // MARK: - Prefs notification
286290
287291 @objc func handleListenForChanged( ) {
292+ self . checkPermissions ( )
288293 self . updateMediaKeyTap ( )
289294 }
290295
@@ -299,6 +304,7 @@ extension AppDelegate: MediaKeyTapDelegate {
299304 @objc func handlePreferenceReset( ) {
300305 self . setDefaultPrefs ( )
301306 self . updateDisplays ( )
307+ self . checkPermissions ( )
302308 self . updateMediaKeyTap ( )
303309 }
304310
@@ -310,6 +316,8 @@ extension AppDelegate: MediaKeyTapDelegate {
310316 keys = [ . brightnessUp, . brightnessDown]
311317 case Utils . ListenForKeys. volumeOnlyKeys. rawValue:
312318 keys = [ . mute, . volumeUp, . volumeDown]
319+ case Utils . ListenForKeys. none. rawValue:
320+ keys = [ ]
313321 default :
314322 keys = [ . brightnessUp, . brightnessDown, . mute, . volumeUp, . volumeDown]
315323 }
@@ -322,7 +330,7 @@ extension AppDelegate: MediaKeyTapDelegate {
322330 self . mediaKeyTap? . stop ( )
323331 // returning an empty array listens for all mediakeys in MediaKeyTap
324332 if keys. count > 0 {
325- self . mediaKeyTap = MediaKeyTap ( delegate: self , for: keys, observeBuiltIn: false )
333+ self . mediaKeyTap = MediaKeyTap ( delegate: self , for: keys, observeBuiltIn: true )
326334 self . mediaKeyTap? . start ( )
327335 }
328336 }
0 commit comments