Disable multiple windows when screen lock is enabled.

This commit is contained in:
Stefan Ceriu
2026-03-30 15:35:21 +03:00
committed by Stefan Ceriu
parent b7333b9b5f
commit 3b858a4073
4 changed files with 26 additions and 0 deletions
@@ -188,6 +188,12 @@ class AppCoordinator: AppCoordinatorProtocol, AuthenticationFlowCoordinatorDeleg
}
}
.store(in: &cancellables)
windowManager.auxiliaryWindowsEnabled = !appLockService.isEnabled
appLockService.isEnabledPublisher.sink { [weak windowManager] appLockEnabled in
windowManager?.auxiliaryWindowsEnabled = !appLockEnabled
}
.store(in: &cancellables)
}
func start() {
@@ -22,6 +22,14 @@ class WindowManager: SecureWindowManagerProtocol {
private(set) var openWindowAction: OpenWindowAction!
private(set) var dismissWindowAction: DismissWindowAction!
var auxiliaryWindowsEnabled = true {
didSet {
if auxiliaryWindowsEnabled == false {
closeAllAuxiliaryWindows()
}
}
}
var windows: [UIWindow] {
[mainWindow, overlayWindow, globalSearchWindow, alternateWindow]
@@ -167,6 +175,11 @@ class WindowManager: SecureWindowManagerProtocol {
}
func registerCoordinator(_ coordinator: CoordinatorProtocol, flowCoordinator: FlowCoordinatorProtocol?, forWindowType type: WindowManagerWindowType) {
if auxiliaryWindowsEnabled == false {
MXLog.error("Cannot register coordinator, auxiliary windows are disabled.")
return
}
coordinators[type] = (coordinator, flowCoordinator)
openWindowAction(value: type)
}
@@ -64,6 +64,8 @@ protocol WindowManagerProtocol: AnyObject, OrientationManagerProtocol {
// MARK: - Auxiliary window support
var auxiliaryWindowsEnabled: Bool { get set }
/// Register a coordinator and it's respective flow (if any) within the WindowManager which in turn
/// invokes the Application's `OpenWindowAction`
func registerCoordinator(_ coordinator: CoordinatorProtocol,