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 {
(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 {
@ -1357,8 +1362,23 @@ public final class SharedAccountContextImpl: SharedAccountContext {
let streamController = MediaStreamComponentController(call: group)
streamController.navigationPresentation = .flatModal
streamController.parentNavigationController = navigationController
let thisCallIsOnScreenPromise = ValuePromise<Bool>(false, ignoreRepeated: true)
streamController.onViewDidAppear = {
thisCallIsOnScreenPromise.set(true)
}
streamController.onViewDidDisappear = {
thisCallIsOnScreenPromise.set(false)
}
self.streamController = streamController
self.mainWindow?.hostView.containerView.endEditing(true)
thisCallIsOnScreenPromise.set(true)
self.hasGroupCallOnScreenPromise.set(thisCallIsOnScreenPromise.get())
beginDisplayingCallStatusBar.set(.single(Void()))
navigationController.pushViewController(streamController)
}
}
@ -1786,6 +1806,11 @@ public final class SharedAccountContextImpl: SharedAccountContext {
mainWindow.hostView.containerView.endEditing(true)
(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)
}
}
}