Add check for permissions on onboarding (#955)

This commit is contained in:
Guillaume B 2022-02-22 18:09:44 +01:00 committed by GitHub
parent 2f8cca2019
commit 3d97037a76
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 35 additions and 1 deletions

View file

@ -0,0 +1,18 @@
{
"images" : [
{
"filename" : "checkmark.png",
"idiom" : "mac",
"scale" : "1x"
},
{
"filename" : "checkmark@2x.png",
"idiom" : "mac",
"scale" : "2x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2 KiB

View file

@ -2249,7 +2249,7 @@ You can enable it by adding MonitorControl in System Preferences > Security a
</textField>
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="j2w-H2-9zU">
<rect key="frame" x="65" y="74" width="202" height="32"/>
<buttonCell key="cell" type="push" title="Open System Preferences…" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="pVc-wG-Bdh">
<buttonCell key="cell" type="push" title="Open System Preferences…" bezelStyle="rounded" imagePosition="trailing" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="pVc-wG-Bdh">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="system"/>
</buttonCell>
@ -2322,6 +2322,9 @@ DQ
<constraint firstItem="smN-BX-6Bx" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="7ij-vC-Tcj" secondAttribute="leading" constant="24" id="zyv-XU-eAi"/>
</constraints>
</view>
<connections>
<outlet property="permissionsButton" destination="j2w-H2-9zU" id="4Eb-J5-znC"/>
</connections>
</viewController>
<customObject id="YML-6F-4Tw" userLabel="First Responder" customClass="NSResponder" sceneMemberID="firstResponder"/>
</objects>

View file

@ -3,8 +3,11 @@
import Cocoa
class OnboardingViewController: NSViewController {
@IBOutlet private var permissionsButton: NSButton!
override func viewDidLoad() {
super.viewDidLoad()
self.setPermissionsButtonState()
}
// MARK: - Actions
@ -23,4 +26,14 @@ class OnboardingViewController: NSViewController {
app.statusItem.button?.performClick(self)
}
}
// MARK: - Style
private func setPermissionsButtonState() {
let volumePermissions: Bool = [KeyboardVolume.media.rawValue, KeyboardVolume.both.rawValue].contains(prefs.integer(forKey: PrefKey.keyboardVolume.rawValue))
let brigthnessPermissions: Bool = [KeyboardBrightness.media.rawValue, KeyboardBrightness.both.rawValue].contains(prefs.integer(forKey: PrefKey.keyboardBrightness.rawValue))
let permissionsRequired: Bool = volumePermissions || brigthnessPermissions
let enabled: Bool = !MediaKeyTapManager.readPrivileges(prompt: false) && permissionsRequired
self.permissionsButton.image = enabled ? nil : NSImage(named: "onboarding_icon_checkmark")
}
}