mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-06-16 05:55:20 +00:00
Fix invoice image loading
This commit is contained in:
parent
47513f7c00
commit
d4f4e10761
@ -8,6 +8,7 @@ import TelegramPresentationData
|
||||
import ItemListUI
|
||||
import PresentationDataUtils
|
||||
import PhotoResources
|
||||
import Postbox
|
||||
|
||||
class BotCheckoutHeaderItem: ListViewItem, ItemListItem {
|
||||
let account: Account
|
||||
@ -77,6 +78,8 @@ class BotCheckoutHeaderItemNode: ListViewItemNode {
|
||||
|
||||
private var item: BotCheckoutHeaderItem?
|
||||
|
||||
private let fetchDisposable = MetaDisposable()
|
||||
|
||||
init() {
|
||||
self.backgroundNode = ASDisplayNode()
|
||||
self.backgroundNode.isLayerBacked = true
|
||||
@ -119,6 +122,10 @@ class BotCheckoutHeaderItemNode: ListViewItemNode {
|
||||
self.addSubnode(self.botNameNode)
|
||||
}
|
||||
|
||||
deinit {
|
||||
self.fetchDisposable.dispose()
|
||||
}
|
||||
|
||||
func asyncLayout() -> (_ item: BotCheckoutHeaderItem, _ params: ListViewItemLayoutParams, _ neighbors: ItemListNeighbors) -> (ListViewItemNodeLayout, () -> Void) {
|
||||
let makeTitleLayout = TextNode.asyncLayout(self.titleNode)
|
||||
let makeTextLayout = TextNode.asyncLayout(self.textNode)
|
||||
@ -159,12 +166,14 @@ class BotCheckoutHeaderItemNode: ListViewItemNode {
|
||||
|
||||
var imageApply: (() -> Void)?
|
||||
var updatedImageSignal: Signal<(TransformImageArguments) -> DrawingContext?, NoError>?
|
||||
var updatedFetchSignal: Signal<FetchResourceSourceType, FetchResourceError>?
|
||||
if let photo = item.invoice.photo, let dimensions = photo.dimensions {
|
||||
let arguments = TransformImageArguments(corners: ImageCorners(radius: 4.0), imageSize: dimensions.cgSize.aspectFilled(imageSize), boundingSize: imageSize, intrinsicInsets: UIEdgeInsets(), emptyColor: item.theme.list.mediaPlaceholderColor)
|
||||
imageApply = makeImageLayout(arguments)
|
||||
maxTextWidth = max(1.0, maxTextWidth - imageSize.width - imageTextSpacing)
|
||||
if imageUpdated {
|
||||
updatedImageSignal = chatWebFileImage(account: item.account, file: photo)
|
||||
updatedFetchSignal = fetchedMediaResource(mediaBox: item.account.postbox.mediaBox, reference: .standalone(resource: photo.resource))
|
||||
}
|
||||
}
|
||||
|
||||
@ -206,6 +215,9 @@ class BotCheckoutHeaderItemNode: ListViewItemNode {
|
||||
if let updatedImageSignal = updatedImageSignal {
|
||||
strongSelf.imageNode.setSignal(updatedImageSignal)
|
||||
}
|
||||
if let updatedFetchSignal = updatedFetchSignal {
|
||||
strongSelf.fetchDisposable.set(updatedFetchSignal.start())
|
||||
}
|
||||
strongSelf.imageNode.isHidden = false
|
||||
} else {
|
||||
strongSelf.imageNode.isHidden = true
|
||||
|
Loading…
x
Reference in New Issue
Block a user