mirror of
https://github.com/FBukovina/Atoll.git
synced 2026-10-28 23:54:32 +00:00
Finally fixed: added explicit cancellation checks, need to verify by independent testers
This commit is contained in:
parent
093f95c49d
commit
b8f403d537
7 changed files with 527 additions and 185 deletions
|
|
@ -80,7 +80,12 @@ class LockScreenManager: ObservableObject {
|
|||
// MARK: - Event Handlers
|
||||
|
||||
@objc private func screenLocked() {
|
||||
guard !isLocked else {
|
||||
print("[\(timestamp())] LockScreenManager: 🔁 Duplicate LOCK event ignored")
|
||||
return
|
||||
}
|
||||
print("[\(timestamp())] LockScreenManager: 🔒 Screen LOCKED event received")
|
||||
Logger.log("LockScreenManager: Screen locked", category: .lifecycle)
|
||||
LockSoundPlayer.shared.playLockChime()
|
||||
|
||||
// Update state SYNCHRONOUSLY without Task/await to avoid any delay
|
||||
|
|
@ -107,7 +112,6 @@ class LockScreenManager: ObservableObject {
|
|||
LockScreenPanelManager.shared.showPanel()
|
||||
LockScreenLiveActivityWindowManager.shared.showLocked()
|
||||
LockScreenWeatherManager.shared.showWeatherWidget()
|
||||
LockScreenReminderWidgetManager.shared.showReminderWidget()
|
||||
LockScreenTimerWidgetManager.shared.handleLockStateChange(isLocked: true)
|
||||
TimerControlWindowManager.shared.hide(animated: false)
|
||||
|
||||
|
|
@ -123,15 +127,22 @@ class LockScreenManager: ObservableObject {
|
|||
}
|
||||
|
||||
@objc private func screenUnlocked() {
|
||||
guard isLocked else {
|
||||
print("[\(timestamp())] LockScreenManager: 🔁 Unlock event ignored (already unlocked)")
|
||||
return
|
||||
}
|
||||
print("[\(timestamp())] LockScreenManager: 🔓 Screen UNLOCKED event received")
|
||||
Logger.log("LockScreenManager: Screen unlocked", category: .lifecycle)
|
||||
LockSoundPlayer.shared.playUnlockChime()
|
||||
lastUpdated = Date()
|
||||
updateIdleState(locked: false)
|
||||
isLocked = false
|
||||
|
||||
// Hide panel window immediately and synchronously
|
||||
print("[\(timestamp())] LockScreenManager: 🚪 Hiding panel window")
|
||||
LockScreenPanelManager.shared.hidePanel()
|
||||
LockScreenLiveActivityWindowManager.shared.showUnlockAndScheduleHide()
|
||||
LockScreenWeatherManager.shared.hideWeatherWidget()
|
||||
LockScreenReminderWidgetManager.shared.hideReminderWidget()
|
||||
LockScreenTimerWidgetManager.shared.handleLockStateChange(isLocked: false)
|
||||
|
||||
// Update state immediately
|
||||
|
|
@ -146,10 +157,6 @@ class LockScreenManager: ObservableObject {
|
|||
}
|
||||
}
|
||||
|
||||
self.lastUpdated = Date()
|
||||
self.updateIdleState(locked: false)
|
||||
self.isLocked = false
|
||||
|
||||
print("[\(self.timestamp())] LockScreenManager: ✅ Lock screen deactivated")
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue