diff --git a/FreeThinker/Core/Services/DefaultTextCaptureService.swift b/FreeThinker/Core/Services/DefaultTextCaptureService.swift index 0b3db71..ba63342 100644 --- a/FreeThinker/Core/Services/DefaultTextCaptureService.swift +++ b/FreeThinker/Core/Services/DefaultTextCaptureService.swift @@ -89,6 +89,24 @@ public actor DefaultTextCaptureService: TextCaptureServiceProtocol { Logger.info("Selection capture yielded no text", category: .textCapture) throw FreeThinkerError.noSelection } + + public func requestAccessibilityPermissionPromptIfNeeded() { + let now = uptimeNanosecondsProvider() + if + let lastPromptUptime = lastPermissionPromptUptimeNanoseconds, + now >= lastPromptUptime, + (now - lastPromptUptime) < permissionPromptCooldownNanoseconds + { + return + } + + lastPermissionPromptUptimeNanoseconds = now + let alreadyTrusted = permissionPromptRequester() + Logger.info( + "Requested accessibility permission prompt trusted=\(alreadyTrusted)", + category: .textCapture + ) + } } private extension DefaultTextCaptureService { @@ -169,24 +187,6 @@ private extension DefaultTextCaptureService { return AXIsProcessTrustedWithOptions(options) } - public func requestAccessibilityPermissionPromptIfNeeded() { - let now = uptimeNanosecondsProvider() - if - let lastPromptUptime = lastPermissionPromptUptimeNanoseconds, - now >= lastPromptUptime, - (now - lastPromptUptime) < permissionPromptCooldownNanoseconds - { - return - } - - lastPermissionPromptUptimeNanoseconds = now - let alreadyTrusted = permissionPromptRequester() - Logger.info( - "Requested accessibility permission prompt trusted=\(alreadyTrusted)", - category: .textCapture - ) - } - func fallbackCaptureSelection() async -> String? { if let clipboardFallbackProvider { return clipboardFallbackProvider()