From 64660e11e05d4a0da3945055baf92b3e39872025 Mon Sep 17 00:00:00 2001 From: brett <20871604+brettinternet@users.noreply.github.com> Date: Mon, 14 Sep 2026 10:19:11 +0000 Subject: [PATCH] chore: apply low-risk maintenance --- HyperWindow/Defaults.swift | 6 ++++++ HyperWindow/PreferencesController.swift | 26 ++++--------------------- HyperWindowTests/DefaultsTests.swift | 11 +++++++++++ 3 files changed, 21 insertions(+), 22 deletions(-) diff --git a/HyperWindow/Defaults.swift b/HyperWindow/Defaults.swift index 8f52e36..afdb397 100644 --- a/HyperWindow/Defaults.swift +++ b/HyperWindow/Defaults.swift @@ -27,6 +27,12 @@ func registerDefaultPreferences(in defaults: UserDefaults = Current.defaults()) defaults.register(defaults: DefaultPreferences) } +func toggleDefaultBool(for key: DefaultsKeys, defaults: UserDefaults = Current.defaults()) -> Bool { + let updatedValue = !defaults.bool(forKey: key.rawValue) + defaults.set(updatedValue, forKey: key.rawValue) + return updatedValue +} + protocol Defaultable { init?(forKey: DefaultsKeys, defaults: UserDefaults) diff --git a/HyperWindow/PreferencesController.swift b/HyperWindow/PreferencesController.swift index b99b333..3b0c008 100644 --- a/HyperWindow/PreferencesController.swift +++ b/HyperWindow/PreferencesController.swift @@ -94,24 +94,12 @@ class PreferencesController: NSWindowController { } @IBAction func resizeFromNearestCornerClicked(_ sender: Any) { - let value: NSNumber = { - var v = Current.defaults().bool(forKey: DefaultsKeys.resizeFromNearestCorner.rawValue) - v.toggle() - return NSNumber(booleanLiteral: v) - }() - Current.defaults().set(value, forKey: DefaultsKeys.resizeFromNearestCorner.rawValue) + _ = toggleDefaultBool(for: .resizeFromNearestCorner) updateCopy() } @IBAction func hideMenuIconClicked(_ sender: Any) { - let value: NSNumber = { - var v = Current.defaults().bool(forKey: - DefaultsKeys.showMenuIcon.rawValue) - v.toggle() - return NSNumber(booleanLiteral: v) - }() - Current.defaults().set(value, forKey: - DefaultsKeys.showMenuIcon.rawValue) + _ = toggleDefaultBool(for: .showMenuIcon) updateCopy() (NSApp.delegate as? AppDelegate)?.updateStatusItemVisibility() } @@ -129,19 +117,13 @@ class PreferencesController: NSWindowController { } @IBAction func requireDragToActivateClicked(_ sender: Any) { - let value: NSNumber = { - var v = Current.defaults().bool(forKey: DefaultsKeys.requireDragToActivate.rawValue) - v.toggle() - return NSNumber(booleanLiteral: v) - }() - Current.defaults().set(value, forKey: DefaultsKeys.requireDragToActivate.rawValue) + _ = toggleDefaultBool(for: .requireDragToActivate) Tracker.shared?.readModifiers() // Update the tracker with new setting updateCopy() } @IBAction func focusWindowOnManipulationClicked(_ sender: Any) { - let key = DefaultsKeys.focusWindowOnManipulation.rawValue - Current.defaults().set(!Current.defaults().bool(forKey: key), forKey: key) + _ = toggleDefaultBool(for: .focusWindowOnManipulation) Tracker.shared?.readModifiers() updateFocusWindowPreferenceState() } diff --git a/HyperWindowTests/DefaultsTests.swift b/HyperWindowTests/DefaultsTests.swift index 6d86cf9..e68b803 100644 --- a/HyperWindowTests/DefaultsTests.swift +++ b/HyperWindowTests/DefaultsTests.swift @@ -35,4 +35,15 @@ final class DefaultsTests: XCTestCase { XCTAssertFalse(defaults.bool(forKey: DefaultsKeys.showMenuIcon.rawValue)) } + + func test_toggle_default_bool_flips_and_persists_value() { + let defaults = testUserDefaults() + defaults.set(true, forKey: DefaultsKeys.resizeFromNearestCorner.rawValue) + + XCTAssertFalse(toggleDefaultBool(for: .resizeFromNearestCorner, defaults: defaults)) + XCTAssertFalse(defaults.bool(forKey: DefaultsKeys.resizeFromNearestCorner.rawValue)) + + XCTAssertTrue(toggleDefaultBool(for: .resizeFromNearestCorner, defaults: defaults)) + XCTAssertTrue(defaults.bool(forKey: DefaultsKeys.resizeFromNearestCorner.rawValue)) + } }