"Only the in-built macOS apps can send alerts by default" 😭
...so we have have to ask (beg) the user to enable alerts via the Notification pane in System Preferences
Improved path/execution action (#31)
Improved monitoring + of external devices (#12)
Improved compatibility for recent versions of macOS (#30)
Shows active devices in status bar menu
Actions now populated by browse pane (ensures path/item is valid)
Update logic now supports OS checking (min supported OS version)
Uninstaller resets/removes preferences file
On 12.6 Apple privatized the process id for the process accessing the mic/camera 🤬
...this is update makes sure this is handled gracefully (read: doesn't crash) until another approach is found to restore functionality.
high sierra compatibility
improved nstask execution
alleviated need for 'sudo'
refactored code to find camera/mic process
pushed various XPC intensive stuff into background
quit/uninstall didn't stop XPC process
added flag to wait for processes in execTask function
added overlay for rule deletion (to wait to rule to be delete)
fixed issue where deactivation alerts wouldn't auto-close
add patrons to 'about' window
wrapped debug statements with #ifdef DEBUG
improved NSTask to (hopefully) avoid hangs
added dictionary of activation alerts to help with deactivation alert logic
when no consumer process is found, still alert user that camera started
main app now launched via hardcoded path (again to avoid issues w/ 'App Translocation'
minor code cleanup
change launching of login item (at install time) to NSTask, so focus would stay with installer app
fixed issue where activity indicator would overlap with install/uninstall message on macOS Sierra
'Inactive' video and audio notifications are now automatically closed after two seconds
updated code for macOS Sierra (e.g. FaceTime does call CMIO:doWork)
added check to ensure we can get a process's path (which fixed a NULL pointer de-ref)
added 'avconferenced' as a white-listed apple daemon for macOS Sierra
added getOSVersion() function to facilitate macOS Sierra specific logic
added getProcessID() function to get a process name from it's pid
code cleanup/extra debug statements
added cmd+q hotkey for prefs app to close/quit
changed name of installer binary to match app
improved device detection (uses default if can't find apple camera/mic)
code cleanup/error handling
stop/start login item
set file perms correctly (i.e. setuid on login item)
update ui window
removed XPC embedded in main app (only is needed in helper.app)