@@ -8,6 +8,7 @@ import TelegramPresentationData
88import ItemListUI
99import PresentationDataUtils
1010import PhotoResources
11+ import Postbox
1112
1213class BotCheckoutHeaderItem : ListViewItem , ItemListItem {
1314 let account : Account
@@ -77,6 +78,8 @@ class BotCheckoutHeaderItemNode: ListViewItemNode {
7778
7879 private var item : BotCheckoutHeaderItem ?
7980
81+ private let fetchDisposable = MetaDisposable ( )
82+
8083 init ( ) {
8184 self . backgroundNode = ASDisplayNode ( )
8285 self . backgroundNode. isLayerBacked = true
@@ -119,6 +122,10 @@ class BotCheckoutHeaderItemNode: ListViewItemNode {
119122 self . addSubnode ( self . botNameNode)
120123 }
121124
125+ deinit {
126+ self . fetchDisposable. dispose ( )
127+ }
128+
122129 func asyncLayout( ) -> ( _ item: BotCheckoutHeaderItem , _ params: ListViewItemLayoutParams , _ neighbors: ItemListNeighbors ) -> ( ListViewItemNodeLayout , ( ) -> Void ) {
123130 let makeTitleLayout = TextNode . asyncLayout ( self . titleNode)
124131 let makeTextLayout = TextNode . asyncLayout ( self . textNode)
@@ -159,12 +166,14 @@ class BotCheckoutHeaderItemNode: ListViewItemNode {
159166
160167 var imageApply : ( ( ) -> Void ) ?
161168 var updatedImageSignal : Signal < ( TransformImageArguments ) -> DrawingContext ? , NoError > ?
169+ var updatedFetchSignal : Signal < FetchResourceSourceType , FetchResourceError > ?
162170 if let photo = item. invoice. photo, let dimensions = photo. dimensions {
163171 let arguments = TransformImageArguments ( corners: ImageCorners ( radius: 4.0 ) , imageSize: dimensions. cgSize. aspectFilled ( imageSize) , boundingSize: imageSize, intrinsicInsets: UIEdgeInsets ( ) , emptyColor: item. theme. list. mediaPlaceholderColor)
164172 imageApply = makeImageLayout ( arguments)
165173 maxTextWidth = max ( 1.0 , maxTextWidth - imageSize. width - imageTextSpacing)
166174 if imageUpdated {
167175 updatedImageSignal = chatWebFileImage ( account: item. account, file: photo)
176+ updatedFetchSignal = fetchedMediaResource ( mediaBox: item. account. postbox. mediaBox, reference: . standalone( resource: photo. resource) )
168177 }
169178 }
170179
@@ -206,6 +215,9 @@ class BotCheckoutHeaderItemNode: ListViewItemNode {
206215 if let updatedImageSignal = updatedImageSignal {
207216 strongSelf. imageNode. setSignal ( updatedImageSignal)
208217 }
218+ if let updatedFetchSignal = updatedFetchSignal {
219+ strongSelf. fetchDisposable. set ( updatedFetchSignal. start ( ) )
220+ }
209221 strongSelf. imageNode. isHidden = false
210222 } else {
211223 strongSelf. imageNode. isHidden = true
0 commit comments