mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2026-02-15 07:19:57 +00:00
Load gif keyboard earlier
This commit is contained in:
@@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user