Load gif keyboard earlier

This commit is contained in:
Ali
2019-11-07 23:55:53 +04:00
parent c937c2e3e5
commit 5b523a6567
2 changed files with 33 additions and 19 deletions

View File

@@ -96,6 +96,32 @@ final class ChatMediaInputGifPane: ChatMediaInputPane, UIScrollViewDelegate {
let emptySize = self.emptyNode.updateLayout(size)
transition.updateFrame(node: self.emptyNode, frame: CGRect(origin: CGPoint(x: floor(size.width - emptySize.width) / 2.0, y: topInset + floor(size.height - topInset - emptySize.height) / 2.0), size: emptySize))
self.updateMultiplexedNodeLayout(changedIsExpanded: changedIsExpanded, transition: transition)
}
func fileAt(point: CGPoint) -> (FileMediaReference, CGRect)? {
if let multiplexedNode = self.multiplexedNode {
return multiplexedNode.fileAt(point: point.offsetBy(dx: -multiplexedNode.frame.minX, dy: -multiplexedNode.frame.minY))
} else {
return nil
}
}
override var isEmpty: Bool {
return self.multiplexedNode?.files.isEmpty ?? true
}
override func willEnterHierarchy() {
super.willEnterHierarchy()
self.initializeIfNeeded()
}
private func updateMultiplexedNodeLayout(changedIsExpanded: Bool, transition: ContainedViewLayoutTransition) {
guard let (size, topInset, bottomInset, isExpanded, isVisible, deviceMetrics) = self.validLayout else {
return
}
if let multiplexedNode = self.multiplexedNode {
let previousBounds = multiplexedNode.scrollNode.layer.bounds
multiplexedNode.topInset = topInset + 60.0
@@ -122,24 +148,6 @@ final class ChatMediaInputGifPane: ChatMediaInputPane, UIScrollViewDelegate {
}
}
func fileAt(point: CGPoint) -> (FileMediaReference, CGRect)? {
if let multiplexedNode = self.multiplexedNode {
return multiplexedNode.fileAt(point: point.offsetBy(dx: -multiplexedNode.frame.minX, dy: -multiplexedNode.frame.minY))
} else {
return nil
}
}
override var isEmpty: Bool {
return self.multiplexedNode?.files.isEmpty ?? true
}
override func willEnterHierarchy() {
super.willEnterHierarchy()
self.initializeIfNeeded()
}
func initializeIfNeeded() {
if self.multiplexedNode == nil {
self.trendingPromise.set(paneGifSearchForQuery(account: account, query: "", updateActivity: nil))
@@ -215,6 +223,8 @@ final class ChatMediaInputGifPane: ChatMediaInputPane, UIScrollViewDelegate {
fixListScrolling(multiplexedNode)
}
}
self.updateMultiplexedNodeLayout(changedIsExpanded: false, transition: .immediate)
}
}
}

View File

@@ -61,7 +61,9 @@ final class MultiplexedVideoNode: ASDisplayNode, UIScrollViewDelegate {
var files: [FileMediaReference] = [] {
didSet {
let startTime = CFAbsoluteTimeGetCurrent()
self.updateVisibleItems()
print("MultiplexedVideoNode files updateVisibleItems: \((CFAbsoluteTimeGetCurrent() - startTime) * 1000.0) ms")
}
}
private var displayItems: [VisibleVideoItem] = []
@@ -219,7 +221,9 @@ final class MultiplexedVideoNode: ASDisplayNode, UIScrollViewDelegate {
self.validSize = size
self.contextContainerNode.frame = CGRect(origin: CGPoint(), size: size)
self.scrollNode.frame = CGRect(origin: CGPoint(), size: size)
let startTime = CFAbsoluteTimeGetCurrent()
self.updateVisibleItems(transition: transition)
print("MultiplexedVideoNode layout updateVisibleItems: \((CFAbsoluteTimeGetCurrent() - startTime) * 1000.0) ms")
}
}
@@ -465,7 +469,7 @@ final class MultiplexedVideoNode: ASDisplayNode, UIScrollViewDelegate {
@objc func tapGesture(_ recognizer: TapLongTapOrDoubleTapGestureRecognizer) {
if case .ended = recognizer.state {
let point = recognizer.location(in: self.view)
if let (file, rect) = self.offsetFileAt(point: point) {
if let (file, rect) = self.fileAt(point: point) {
self.fileSelected?(file, self, rect)
}
}