Fetch stickers in bot context results preview

This commit is contained in:
Ali 2020-03-25 22:04:29 +04:00
parent 4268730666
commit 549b55ca61
2 changed files with 6 additions and 1 deletions

View File

@ -12,6 +12,7 @@ import StickerResources
import PhotoResources import PhotoResources
import AnimatedStickerNode import AnimatedStickerNode
import TelegramAnimatedStickerNode import TelegramAnimatedStickerNode
import AccountContext
final class HorizontalListContextResultsChatInputPanelItem: ListViewItem { final class HorizontalListContextResultsChatInputPanelItem: ListViewItem {
let account: Account let account: Account
@ -91,6 +92,8 @@ final class HorizontalListContextResultsChatInputPanelItemNode: ListViewItemNode
private(set) var item: HorizontalListContextResultsChatInputPanelItem? private(set) var item: HorizontalListContextResultsChatInputPanelItem?
private var statusDisposable = MetaDisposable() private var statusDisposable = MetaDisposable()
private let statusNode: RadialStatusNode = RadialStatusNode(backgroundNodeColor: UIColor(white: 0.0, alpha: 0.5)) private let statusNode: RadialStatusNode = RadialStatusNode(backgroundNodeColor: UIColor(white: 0.0, alpha: 0.5))
private let fetchDisposable = MetaDisposable()
override var visibility: ListViewItemNodeVisibility { override var visibility: ListViewItemNodeVisibility {
didSet { didSet {
@ -175,6 +178,7 @@ final class HorizontalListContextResultsChatInputPanelItemNode: ListViewItemNode
displayLink.invalidate() displayLink.invalidate()
} }
self.statusDisposable.dispose() self.statusDisposable.dispose()
self.fetchDisposable.dispose()
} }
override public func layoutForParams(_ params: ListViewItemLayoutParams, item: ListViewItem, previousItem: ListViewItem?, nextItem: ListViewItem?) { override public func layoutForParams(_ params: ListViewItemLayoutParams, item: ListViewItem, previousItem: ListViewItem?, nextItem: ListViewItem?) {
@ -388,6 +392,7 @@ final class HorizontalListContextResultsChatInputPanelItemNode: ListViewItemNode
} }
let dimensions = animatedStickerFile.dimensions ?? PixelDimensions(width: 512, height: 512) let dimensions = animatedStickerFile.dimensions ?? PixelDimensions(width: 512, height: 512)
let fittedDimensions = dimensions.cgSize.aspectFitted(CGSize(width: 160.0, height: 160.0)) let fittedDimensions = dimensions.cgSize.aspectFitted(CGSize(width: 160.0, height: 160.0))
strongSelf.fetchDisposable.set(freeMediaFileResourceInteractiveFetched(account: item.account, fileReference: stickerPackFileReference(animatedStickerFile), resource: animatedStickerFile.resource).start())
animationNode.setup(source: AnimatedStickerResourceSource(account: item.account, resource: animatedStickerFile.resource), width: Int(fittedDimensions.width), height: Int(fittedDimensions.height), mode: .cached) animationNode.setup(source: AnimatedStickerResourceSource(account: item.account, resource: animatedStickerFile.resource), width: Int(fittedDimensions.width), height: Int(fittedDimensions.height), mode: .cached)
} }
} }

View File

@ -159,7 +159,7 @@ final class HorizontalStickerGridItemNode: GridItemNode {
@objc func imageNodeTap(_ recognizer: UITapGestureRecognizer) { @objc func imageNodeTap(_ recognizer: UITapGestureRecognizer) {
if let interfaceInteraction = self.interfaceInteraction, let (_, item, _) = self.currentState, case .ended = recognizer.state { if let interfaceInteraction = self.interfaceInteraction, let (_, item, _) = self.currentState, case .ended = recognizer.state {
interfaceInteraction.sendSticker(.standalone(media: item.file), self, self.bounds) let _ = interfaceInteraction.sendSticker(.standalone(media: item.file), self, self.bounds)
} }
} }