Media-related improvements

This commit is contained in:
Ali
2022-03-15 22:08:20 +04:00
parent b82b1e41e0
commit fe0311b1e9
17 changed files with 531 additions and 41 deletions

View File

@@ -101,17 +101,19 @@ open class ViewControllerComponentContainer: ViewController {
private weak var controller: ViewControllerComponentContainer?
private let component: AnyComponent<ViewControllerComponentContainer.Environment>
private let theme: PresentationTheme?
public let hostView: ComponentHostView<ViewControllerComponentContainer.Environment>
private var currentIsVisible: Bool = false
private var currentLayout: (layout: ContainerViewLayout, navigationHeight: CGFloat)?
init(context: AccountContext, controller: ViewControllerComponentContainer, component: AnyComponent<ViewControllerComponentContainer.Environment>) {
init(context: AccountContext, controller: ViewControllerComponentContainer, component: AnyComponent<ViewControllerComponentContainer.Environment>, theme: PresentationTheme?) {
self.presentationData = context.sharedContext.currentPresentationData.with { $0 }
self.controller = controller
self.component = component
self.theme = theme
self.hostView = ComponentHostView()
super.init()
@@ -127,7 +129,7 @@ open class ViewControllerComponentContainer: ViewController {
navigationHeight: navigationHeight,
safeInsets: UIEdgeInsets(top: layout.intrinsicInsets.top + layout.safeInsets.top, left: layout.intrinsicInsets.left + layout.safeInsets.left, bottom: layout.intrinsicInsets.bottom + layout.safeInsets.bottom, right: layout.intrinsicInsets.right + layout.safeInsets.right),
isVisible: self.currentIsVisible,
theme: self.presentationData.theme,
theme: self.theme ?? self.presentationData.theme,
strings: self.presentationData.strings,
controller: { [weak self] in
return self?.controller
@@ -162,11 +164,13 @@ open class ViewControllerComponentContainer: ViewController {
}
private let context: AccountContext
private let theme: PresentationTheme?
private let component: AnyComponent<ViewControllerComponentContainer.Environment>
public init<C: Component>(context: AccountContext, component: C, navigationBarAppearance: NavigationBarAppearance) where C.EnvironmentType == ViewControllerComponentContainer.Environment {
public init<C: Component>(context: AccountContext, component: C, navigationBarAppearance: NavigationBarAppearance, theme: PresentationTheme? = nil) where C.EnvironmentType == ViewControllerComponentContainer.Environment {
self.context = context
self.component = AnyComponent(component)
self.theme = theme
let navigationBarPresentationData: NavigationBarPresentationData?
switch navigationBarAppearance {
@@ -185,7 +189,7 @@ open class ViewControllerComponentContainer: ViewController {
}
override open func loadDisplayNode() {
self.displayNode = Node(context: self.context, controller: self, component: self.component)
self.displayNode = Node(context: self.context, controller: self, component: self.component, theme: self.theme)
self.displayNodeDidLoad()
}