Voice Chat UI fixes

This commit is contained in:
Ilya Laktyushin
2020-12-10 02:13:16 +04:00
parent c69858e8e1
commit 588f2be653
4 changed files with 99 additions and 52 deletions

View File

@@ -177,14 +177,14 @@ open class NavigationController: UINavigationController, ContainableController,
}
}
private var _viewControllersPipe = ValuePipe<[UIViewController]>()
private var _viewControllersPromise = ValuePromise<[UIViewController]>()
public var viewControllersSignal: Signal<[UIViewController], NoError> {
return _viewControllersPipe.signal()
return _viewControllersPromise.get()
}
private var _overlayControllersPipe = ValuePipe<[UIViewController]>()
private var _overlayControllersPromise = ValuePromise<[UIViewController]>()
public var overlayControllersSignal: Signal<[UIViewController], NoError> {
return _overlayControllersPipe.signal()
return _overlayControllersPromise.get()
}
override open var topViewController: UIViewController? {
@@ -1246,7 +1246,7 @@ open class NavigationController: UINavigationController, ContainableController,
if let layout = self.validLayout {
self.updateContainers(layout: layout, transition: animated ? .animated(duration: 0.5, curve: .spring) : .immediate)
}
self._viewControllersPipe.putNext(self.viewControllers)
self._viewControllersPromise.set(self.viewControllers)
}
public func presentOverlay(controller: ViewController, inGlobal: Bool = false, blockInteraction: Bool = false) {
@@ -1270,7 +1270,7 @@ open class NavigationController: UINavigationController, ContainableController,
if overlayContainer.controller === controller {
overlayContainer.removeFromSupernode()
strongSelf.overlayContainers.remove(at: i)
strongSelf._overlayControllersPipe.putNext(strongSelf.overlayContainers.map({ $0.controller }))
strongSelf._overlayControllersPromise.set(strongSelf.overlayContainers.map({ $0.controller }))
strongSelf.internalOverlayControllersUpdated()
break
}
@@ -1292,7 +1292,7 @@ open class NavigationController: UINavigationController, ContainableController,
self.globalOverlayContainers.append(container)
} else {
self.overlayContainers.append(container)
self._overlayControllersPipe.putNext(self.overlayContainers.map({ $0.controller }))
self._overlayControllersPromise.set(self.overlayContainers.map({ $0.controller }))
}
container.isReadyUpdated = { [weak self, weak container] in
guard let strongSelf = self, let _ = container else {