Fix return to stream

This commit is contained in:
Isaac 2025-03-07 21:53:00 +01:00
parent fd46692b95
commit 8dd98a01f9

View File

@ -971,6 +971,11 @@ public final class SharedAccountContextImpl: SharedAccountContext {
if groupCallController.view.superview == nil { if groupCallController.view.superview == nil {
(mainWindow.viewController as? NavigationController)?.pushViewController(groupCallController) (mainWindow.viewController as? NavigationController)?.pushViewController(groupCallController)
} }
} else if let streamController = self.streamController {
mainWindow.hostView.containerView.endEditing(true)
if streamController.view.superview == nil {
(mainWindow.viewController as? NavigationController)?.pushViewController(streamController)
}
} }
} }
} else { } else {
@ -1357,8 +1362,23 @@ public final class SharedAccountContextImpl: SharedAccountContext {
let streamController = MediaStreamComponentController(call: group) let streamController = MediaStreamComponentController(call: group)
streamController.navigationPresentation = .flatModal streamController.navigationPresentation = .flatModal
streamController.parentNavigationController = navigationController streamController.parentNavigationController = navigationController
let thisCallIsOnScreenPromise = ValuePromise<Bool>(false, ignoreRepeated: true)
streamController.onViewDidAppear = {
thisCallIsOnScreenPromise.set(true)
}
streamController.onViewDidDisappear = {
thisCallIsOnScreenPromise.set(false)
}
self.streamController = streamController self.streamController = streamController
self.mainWindow?.hostView.containerView.endEditing(true)
thisCallIsOnScreenPromise.set(true)
self.hasGroupCallOnScreenPromise.set(thisCallIsOnScreenPromise.get())
beginDisplayingCallStatusBar.set(.single(Void()))
navigationController.pushViewController(streamController) navigationController.pushViewController(streamController)
} }
} }
@ -1786,6 +1806,11 @@ public final class SharedAccountContextImpl: SharedAccountContext {
mainWindow.hostView.containerView.endEditing(true) mainWindow.hostView.containerView.endEditing(true)
(mainWindow.viewController as? NavigationController)?.pushViewController(groupCallController) (mainWindow.viewController as? NavigationController)?.pushViewController(groupCallController)
} }
} else if let streamController = self.streamController {
if streamController.isNodeLoaded && streamController.view.superview == nil {
mainWindow.hostView.containerView.endEditing(true)
(mainWindow.viewController as? NavigationController)?.pushViewController(streamController)
}
} }
} }