Skip to content
This repository has been archived by the owner on May 6, 2024. It is now read-only.

Commit

Permalink
Merge branch 'release/2022.1'
Browse files Browse the repository at this point in the history
  • Loading branch information
intitni committed Jan 17, 2022
2 parents 52044a6 + e27a673 commit 90b4ad3
Show file tree
Hide file tree
Showing 15 changed files with 107 additions and 1,016 deletions.
11 changes: 10 additions & 1 deletion AbnormalMouse.xcworkspace/xcshareddata/swiftpm/Package.resolved
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
"repositoryURL": "https://github.com/intitni/CGEventOverride.git",
"state": {
"branch": "master",
"revision": "fe82cdda3bef29bc1596c86d1137fe25c2de3242",
"revision": "a6585d580eedc151ec9918af06a182d26e1248f5",
"version": null
}
},
Expand Down Expand Up @@ -46,6 +46,15 @@
"version": "4.2.2"
}
},
{
"package": "LaunchAtLogin",
"repositoryURL": "https://github.com/sindresorhus/LaunchAtLogin",
"state": {
"branch": null,
"revision": "e8171b3e38a2816f579f58f3dac1522aa39efe41",
"version": "4.2.0"
}
},
{
"package": "swift-case-paths",
"repositoryURL": "https://github.com/pointfreeco/swift-case-paths",
Expand Down
250 changes: 51 additions & 199 deletions AbnormalMouse/AbnormalMouse.xcodeproj/project.pbxproj

Large diffs are not rendered by default.

5 changes: 4 additions & 1 deletion AbnormalMouse/AbnormalMouse/App.swift
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@ struct TheApp: Domain {
var purchaseManager: PurchaseManagerType
var updater: Updater
var activatorConflictChecker: ActivatorConflictChecker
var launchAtLoginManager: LaunchAtLoginManagerType

let overrideControllers: [OverrideController]
}
Expand Down Expand Up @@ -143,7 +144,8 @@ struct TheApp: Domain {
persisted: $0.persisted,
activatorConflictChecker: $0.activatorConflictChecker,
purchaseManager: $0.purchaseManager,
updater: $0.updater
updater: $0.updater,
launchAtLoginManager: $0.launchAtLoginManager
)
}
}
Expand All @@ -164,6 +166,7 @@ extension Store where Action == TheApp.Action, State == TheApp.State {
purchaseManager: FakePurchaseManager(),
updater: FakeUpdater(),
activatorConflictChecker: .init(persisted: Readonly(persisted)),
launchAtLoginManager: FakeLaunchAtLoginManager(),
overrideControllers: []
))
)
Expand Down
35 changes: 9 additions & 26 deletions AbnormalMouse/AbnormalMouse/AppDelegate.swift
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ private let userDefaults = MemoryPropertyListStorage()
private let persisted = Persisted(userDefaults: userDefaults)
private let eventHook = FakeCGEventHook()
private let purchaseManager = FakePurchaseManager()
private let launchAtLoginManager = FakeLaunchAtLoginManager()
private let updater = FakeUpdater()
#else
private let persisted = Persisted(userDefaults: UserDefaults.standard)
private let eoi: Set<CGEventType> = {
Expand All @@ -26,6 +28,8 @@ private let eoi: Set<CGEventType> = {

private let eventHook = CGEventHook(eventsOfInterest: eoi)
private let purchaseManager = RealPurchaseManager()
private let launchAtLoginManager = LaunchAtLoginManager()
private let updater = SparkleUpdater()
#endif

private let store = TheApp.Store(
Expand All @@ -34,8 +38,9 @@ private let store = TheApp.Store(
environment: .live(environment: .init(
persisted: persisted,
purchaseManager: purchaseManager,
updater: SparkleUpdater(),
updater: updater,
activatorConflictChecker: .init(persisted: Readonly(persisted)),
launchAtLoginManager: launchAtLoginManager,
overrideControllers: [
MoveToScrollController(
persisted: Readonly(persisted.moveToScroll),
Expand Down Expand Up @@ -80,8 +85,6 @@ class AppDelegate: NSObject, NSApplicationDelegate {
#if !PREVIEW
defer { persisted.launchCount += 1 }
purchaseManager.startTrialIfNeeded()
killLauncherIfNeeded()
setupStartAtLoginIfNeeded()
startupPurchaseManager()
observeForSleeps()
presentWindowIfNeeded()
Expand All @@ -107,7 +110,6 @@ extension AppDelegate {
NSApp.setActivationPolicy(.regular)
if let window = window {
window.makeKeyAndOrderFront(self)
NSApp.activate(ignoringOtherApps: true)
} else {
let window = NSWindow(
contentRect: NSRect(x: 0, y: 0, width: 700, height: 400),
Expand All @@ -129,6 +131,7 @@ extension AppDelegate {
window.makeKeyAndOrderFront(self)
self.window = window
}
NSApp.activate(ignoringOtherApps: true)
}

@objc private func buildStatusBarMenu() {
Expand Down Expand Up @@ -227,31 +230,11 @@ extension AppDelegate: NSMenuDelegate {

extension AppDelegate: NSWindowDelegate {
func windowWillClose(_: Notification) {
NSApp.setActivationPolicy(.prohibited)
NSApp.setActivationPolicy(.accessory)
}
}

extension AppDelegate {
private func killLauncherIfNeeded() {
let runningApps = NSWorkspace.shared.runningApplications
let isRunning = !runningApps
.filter { $0.bundleIdentifier == LaunchAtLoginConstants.launcherIdentifier }
.isEmpty

if isRunning {
DistributedNotificationCenter.default().post(
name: .killLauncher,
object: Bundle.main.bundleIdentifier!
)
}
}

private func setupStartAtLoginIfNeeded() {
let shouldStartAtLogin = persisted.general.startAtLogin
let launcherIdentifier = LaunchAtLoginConstants.launcherIdentifier
SMLoginItemSetEnabled(launcherIdentifier as CFString, shouldStartAtLogin)
}

private func checkAuthorization() {
let isTrusted = AXIsProcessTrusted()
ViewStore(store).send(.setAccessabilityAuthorized(isTrusted))
Expand Down Expand Up @@ -321,7 +304,7 @@ extension AppDelegate {
if persisted.launchCount == 0 {
showSettingsWindow()
} else {
NSApp.setActivationPolicy(.prohibited)
NSApp.setActivationPolicy(.accessory)
}
}
}
Expand Down
10 changes: 6 additions & 4 deletions AbnormalMouse/AbnormalMouse/Features/General/GeneralDomain.swift
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ enum GeneralDomain: Domain {
let persisted: Persisted.General
let purchaseManager: PurchaseManagerType
let updater: Updater?
let launchAtLoginManager: LaunchAtLoginManagerType
}

enum CancellableKeys: Hashable {
Expand All @@ -70,14 +71,14 @@ enum GeneralDomain: Domain {
case .appear:
state.automaticallyCheckForUpdate = environment.updater?
.automaticallyChecksForUpdates ?? false
state.startAtLogin = environment.launchAtLoginManager.launchAtLogin
return .none
case .toggleStartAtLogin:
state.startAtLogin.toggle()
let shouldStartAtLogin = state.startAtLogin
return .fireAndForget {
environment.persisted.startAtLogin = shouldStartAtLogin
let launcherIdentifier = LaunchAtLoginConstants.launcherIdentifier
SMLoginItemSetEnabled(launcherIdentifier as CFString, shouldStartAtLogin)
let manager = environment.launchAtLoginManager
manager.launchAtLogin = shouldStartAtLogin
}
case .observePurchaseState:
return environment.purchaseManager.purchaseState
Expand Down Expand Up @@ -218,7 +219,8 @@ extension Store where State == GeneralDomain.State, Action == GeneralDomain.Acti
environment: .live(environment: .init(
persisted: .init(),
purchaseManager: FakePurchaseManager(),
updater: FakeUpdater()
updater: FakeUpdater(),
launchAtLoginManager: FakeLaunchAtLoginManager()
))
)
}
7 changes: 5 additions & 2 deletions AbnormalMouse/AbnormalMouse/Features/Main/MainDomain.swift
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ struct MainDomain: Domain {
var activatorConflictChecker: ActivatorConflictChecker
var purchaseManager: PurchaseManagerType
var updater: Updater
var launchAtLoginManager: LaunchAtLoginManagerType
}

struct State: Equatable {
Expand Down Expand Up @@ -155,7 +156,8 @@ struct MainDomain: Domain {
.init(
persisted: $0.persisted.general,
purchaseManager: $0.purchaseManager,
updater: $0.updater
updater: $0.updater,
launchAtLoginManager: $0.launchAtLoginManager
)
}
}
Expand Down Expand Up @@ -191,7 +193,8 @@ extension Store where Action == MainDomain.Action, State == MainDomain.State {
persisted: persisted,
activatorConflictChecker: .init(persisted: Readonly(persisted)),
purchaseManager: FakePurchaseManager(),
updater: FakeUpdater()
updater: FakeUpdater(),
launchAtLoginManager: FakeLaunchAtLoginManager()
))
)
}
Expand Down
16 changes: 16 additions & 0 deletions AbnormalMouse/AbnormalMouse/Library/LaunchAtLoginManager.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
protocol LaunchAtLoginManagerType: AnyObject {
var launchAtLogin: Bool { get set }
}

final class FakeLaunchAtLoginManager: LaunchAtLoginManagerType {
var launchAtLogin: Bool = false
}

import LaunchAtLogin

final class LaunchAtLoginManager: LaunchAtLoginManagerType {
var launchAtLogin: Bool {
get { LaunchAtLogin.isEnabled }
set { LaunchAtLogin.isEnabled = newValue }
}
}

This file was deleted.

37 changes: 0 additions & 37 deletions AbnormalMouse/AbnormalMouseLauncher/AppDelegate.swift

This file was deleted.

40 changes: 0 additions & 40 deletions AbnormalMouse/AbnormalMouseLauncher/Info.plist

This file was deleted.

11 changes: 0 additions & 11 deletions AbnormalMouse/AbnormalMouseLauncher/LaunchAtLogin.swift

This file was deleted.

Loading

0 comments on commit 90b4ad3

Please sign in to comment.