mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-22 22:25:57 +00:00
Various improvements
This commit is contained in:
@@ -18,6 +18,57 @@ public protocol EntitySearchContainerNode: ASDisplayNode {
|
||||
func updateLayout(size: CGSize, leftInset: CGFloat, rightInset: CGFloat, bottomInset: CGFloat, inputHeight: CGFloat, deviceMetrics: DeviceMetrics, transition: ContainedViewLayoutTransition)
|
||||
}
|
||||
|
||||
public final class EntitySearchContainerController: ViewController {
|
||||
private var node: Node {
|
||||
return self.displayNode as! Node
|
||||
}
|
||||
|
||||
private let containerNode: EntitySearchContainerNode
|
||||
|
||||
public init(containerNode: EntitySearchContainerNode) {
|
||||
self.containerNode = containerNode
|
||||
|
||||
super.init(navigationBarPresentationData: nil)
|
||||
|
||||
self.navigationPresentation = .modal
|
||||
}
|
||||
|
||||
required init(coder aDecoder: NSCoder) {
|
||||
fatalError("init(coder:) has not been implemented")
|
||||
}
|
||||
|
||||
override public func loadDisplayNode() {
|
||||
self.displayNode = Node(containerNode: self.containerNode, controller: self)
|
||||
self.displayNodeDidLoad()
|
||||
}
|
||||
|
||||
public override func containerLayoutUpdated(_ layout: ContainerViewLayout, transition: ContainedViewLayoutTransition) {
|
||||
super.containerLayoutUpdated(layout, transition: transition)
|
||||
|
||||
self.node.containerLayoutUpdated(layout, transition: transition)
|
||||
}
|
||||
|
||||
private class Node: ViewControllerTracingNode, UIScrollViewDelegate {
|
||||
private weak var controller: EntitySearchContainerController?
|
||||
|
||||
private let containerNode: EntitySearchContainerNode
|
||||
|
||||
init(containerNode: EntitySearchContainerNode, controller: EntitySearchContainerController) {
|
||||
self.containerNode = containerNode
|
||||
self.controller = controller
|
||||
|
||||
super.init()
|
||||
|
||||
self.addSubnode(containerNode)
|
||||
}
|
||||
|
||||
func containerLayoutUpdated(_ layout: ContainerViewLayout, transition: ContainedViewLayoutTransition) {
|
||||
self.containerNode.updateLayout(size: layout.size, leftInset: 0.0, rightInset: 0.0, bottomInset: layout.intrinsicInsets.bottom, inputHeight: layout.inputHeight ?? 0.0, deviceMetrics: layout.deviceMetrics, transition: transition)
|
||||
transition.updateFrame(node: self.containerNode, frame: CGRect(origin: .zero, size: layout.size))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
final class EntitySearchContentEnvironment: Equatable {
|
||||
let context: AccountContext
|
||||
let theme: PresentationTheme
|
||||
|
||||
Reference in New Issue
Block a user