Skip to content

Commit aa34b56

Browse files
Mac: check permissions every 30 s once both are granted
1 parent 9726964 commit aa34b56

1 file changed

Lines changed: 11 additions & 3 deletions

File tree

‎Mac/Sources/App/AppModel.swift‎

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -74,9 +74,7 @@ final class AppModel: ObservableObject {
7474
directory.onChange = { [weak self] in self?.directoryChanged() }
7575
directory.onConnectRequest = { [weak self] request in self?.handleConnectRequest(request) }
7676
directory.start()
77-
permissionTimer = Timer.scheduledTimer(withTimeInterval: 2, repeats: true) { [weak self] _ in
78-
Task { @MainActor in self?.refreshPermissions() }
79-
}
77+
schedulePermissionChecks()
8078
rebuildRows()
8179
Task { await checkForUpdate() }
8280
}
@@ -86,6 +84,16 @@ final class AppModel: ObservableObject {
8684
let accessibility = InputInjector.isTrusted
8785
if screen != screenRecordingGranted { screenRecordingGranted = screen }
8886
if accessibility != accessibilityGranted { accessibilityGranted = accessibility }
87+
schedulePermissionChecks()
88+
}
89+
90+
private func schedulePermissionChecks() {
91+
let interval: TimeInterval = screenRecordingGranted && accessibilityGranted ? 30 : 2
92+
if let timer = permissionTimer, timer.isValid, timer.timeInterval == interval { return }
93+
permissionTimer?.invalidate()
94+
permissionTimer = Timer.scheduledTimer(withTimeInterval: interval, repeats: true) { [weak self] _ in
95+
Task { @MainActor in self?.refreshPermissions() }
96+
}
8997
}
9098

9199
func requestScreenRecording() {

0 commit comments

Comments
 (0)