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,
@@ -21357,6 +21357,11 @@ class WindowManagerMock: WindowManagerProtocol, @unchecked Sendable {
var globalSearchWindow: UIWindow!
var alternateWindow: UIWindow!
var windows: [UIWindow] = []
var auxiliaryWindowsEnabled: Bool {
get { return underlyingAuxiliaryWindowsEnabled }
set(value) { underlyingAuxiliaryWindowsEnabled = value }
}
var underlyingAuxiliaryWindowsEnabled: Bool!
//MARK: - showGlobalSearch