Working lock liveactivity

This commit is contained in:
Hariharan Mudaliar 2025-10-17 18:48:22 +05:30
commit 05d41f6bb7
3 changed files with 63 additions and 8 deletions

View file

@ -91,6 +91,7 @@ class AppDelegate: NSObject, NSApplicationDelegate {
private var previousScreens: [NSScreen]?
private var onboardingWindowController: NSWindowController?
private var cancellables = Set<AnyCancellable>()
private var windowsHiddenForLock = false
// Media key monitoring
private var globalEventMonitor: Any?
@ -209,14 +210,45 @@ class AppDelegate: NSObject, NSApplicationDelegate {
@objc func onScreenLocked(_: Notification) {
print("Screen locked")
cleanupWindows()
hideWindowsForLock()
}
@objc func onScreenUnlocked(_: Notification) {
print("Screen unlocked")
DispatchQueue.main.asyncAfter(deadline: .now() + 1.0) { [weak self] in
self?.cleanupWindows()
self?.adjustWindowPosition(changeAlpha: true)
guard let self = self else { return }
self.restoreWindowsAfterLock()
self.adjustWindowPosition(changeAlpha: true)
}
}
private func hideWindowsForLock() {
guard !windowsHiddenForLock else { return }
windowsHiddenForLock = true
if Defaults[.showOnAllDisplays] {
for window in windows.values {
window.alphaValue = 0
window.orderOut(nil)
}
} else if let window = window {
window.alphaValue = 0
window.orderOut(nil)
}
}
private func restoreWindowsAfterLock() {
guard windowsHiddenForLock else { return }
windowsHiddenForLock = false
if Defaults[.showOnAllDisplays] {
for window in windows.values {
window.orderFrontRegardless()
window.alphaValue = 1
}
} else if let window = window {
window.orderFrontRegardless()
window.alphaValue = 1
}
}