From ca5bd5d9fb9e2cd3039fa7fc8329c6b5a177ed2e Mon Sep 17 00:00:00 2001 From: brett <20871604+brettinternet@users.noreply.github.com> Date: Mon, 19 Oct 2026 10:37:54 +0000 Subject: [PATCH] Unify manual-launch policy checks --- HyperWindow/AppDelegate.swift | 12 ++++-------- HyperWindowTests/AppStateMachineTests.swift | 11 +++-------- 2 files changed, 7 insertions(+), 16 deletions(-) diff --git a/HyperWindow/AppDelegate.swift b/HyperWindow/AppDelegate.swift index 269cfa8..691ec9d 100644 --- a/HyperWindow/AppDelegate.swift +++ b/HyperWindow/AppDelegate.swift @@ -25,11 +25,7 @@ class AppDelegate: NSObject, NSApplicationDelegate { let accessibilityValue: String } - static func shouldPresentSettings(launchedAsLoginItem: Bool) -> Bool { - !launchedAsLoginItem - } - - static func shouldPresentPermissionAlert(launchedAsLoginItem: Bool) -> Bool { + static func isManualLaunch(launchedAsLoginItem: Bool) -> Bool { !launchedAsLoginItem } @@ -126,7 +122,7 @@ extension AppDelegate { stateMachine.suppressActivationAlerts = launchedAsLoginItem } - if Self.shouldPresentSettings(launchedAsLoginItem: launchedAsLoginItem) { + if Self.isManualLaunch(launchedAsLoginItem: launchedAsLoginItem) { NSApp.activate(ignoringOtherApps: true) preferencesController.showWindow(nil) } @@ -251,13 +247,13 @@ extension AppDelegate { stateMachine.state = .deactivated stateMachine.checkState() } - if stateMachine.state != .activated && Self.shouldPresentPermissionAlert(launchedAsLoginItem: launchedAsLoginItem) { + if stateMachine.state != .activated && Self.isManualLaunch(launchedAsLoginItem: launchedAsLoginItem) { showRestartPrompt() } case .revoked: log(.error, "Accessibility permissions revoked - immediately deactivating to prevent system crashes") stateMachine.deactivate() - if Self.shouldPresentPermissionAlert(launchedAsLoginItem: launchedAsLoginItem) { + if Self.isManualLaunch(launchedAsLoginItem: launchedAsLoginItem) { showPermissionRevokedAlert() } case .unchanged: diff --git a/HyperWindowTests/AppStateMachineTests.swift b/HyperWindowTests/AppStateMachineTests.swift index 3a918cc..82e5da4 100644 --- a/HyperWindowTests/AppStateMachineTests.swift +++ b/HyperWindowTests/AppStateMachineTests.swift @@ -13,14 +13,9 @@ class AppStateMachineTests: XCTestCase { class AppDelegateLaunchTests: XCTestCase { - func test_manual_launch_presents_settings_but_login_launch_stays_silent() { - XCTAssertTrue(AppDelegate.shouldPresentSettings(launchedAsLoginItem: false)) - XCTAssertFalse(AppDelegate.shouldPresentSettings(launchedAsLoginItem: true)) - } - - func test_login_launch_suppresses_permission_alerts() { - XCTAssertTrue(AppDelegate.shouldPresentPermissionAlert(launchedAsLoginItem: false)) - XCTAssertFalse(AppDelegate.shouldPresentPermissionAlert(launchedAsLoginItem: true)) + func test_login_launch_is_not_a_manual_launch() { + XCTAssertTrue(AppDelegate.isManualLaunch(launchedAsLoginItem: false)) + XCTAssertFalse(AppDelegate.isManualLaunch(launchedAsLoginItem: true)) } func test_statusPresentationRequires_tracker_permission_and_activated_state() {