@@ -524,15 +524,34 @@ private func chatMessageVideoDatas(postbox: Postbox, userLocation: MediaResource
524524 thumbnail = . single( decodedThumbnailData)
525525 }
526526 } else if let thumbnailResource = thumbnailResource {
527- thumbnail = Signal { subscriber in
528- let fetchedDisposable = fetchedMediaResource ( mediaBox: postbox. mediaBox, userLocation: userLocation, userContentType: customUserContentType ?? MediaResourceUserContentType ( file: fileReference. media) , reference: fileReference. resourceReference ( thumbnailResource) , statsCategory: . video) . start ( )
529- let thumbnailDisposable = postbox. mediaBox. resourceData ( thumbnailResource, attemptSynchronously: synchronousLoad) . start ( next: { next in
530- subscriber. putNext ( next. size == 0 ? nil : try ? Data ( contentsOf: URL ( fileURLWithPath: next. path) , options: [ ] ) )
531- } , error: subscriber. putError, completed: subscriber. putCompletion)
532-
533- return ActionDisposable {
534- fetchedDisposable. dispose ( )
535- thumbnailDisposable. dispose ( )
527+ if autoFetchFullSizeThumbnail, let thumbnailRepresentation = thumbnailRepresentation, ( thumbnailRepresentation. dimensions. width > 200 || thumbnailRepresentation. dimensions. height > 200 ) {
528+ thumbnail = Signal { subscriber in
529+ let fetchedDisposable = fetchedMediaResource ( mediaBox: postbox. mediaBox, userLocation: userLocation, userContentType: customUserContentType ?? MediaResourceUserContentType ( file: fileReference. media) , reference: fileReference. resourceReference ( thumbnailRepresentation. resource) , statsCategory: . video) . start ( )
530+ let thumbnailDisposable = postbox. mediaBox. resourceData ( thumbnailRepresentation. resource, attemptSynchronously: synchronousLoad) . start ( next: { next in
531+ let data : Data ? = next. size == 0 ? nil : try ? Data ( contentsOf: URL ( fileURLWithPath: next. path) , options: [ ] )
532+ if let data {
533+ subscriber. putNext ( data)
534+ } else {
535+ subscriber. putNext ( nil )
536+ }
537+ } , error: subscriber. putError, completed: subscriber. putCompletion)
538+
539+ return ActionDisposable {
540+ fetchedDisposable. dispose ( )
541+ thumbnailDisposable. dispose ( )
542+ }
543+ }
544+ } else {
545+ thumbnail = Signal { subscriber in
546+ let fetchedDisposable = fetchedMediaResource ( mediaBox: postbox. mediaBox, userLocation: userLocation, userContentType: customUserContentType ?? MediaResourceUserContentType ( file: fileReference. media) , reference: fileReference. resourceReference ( thumbnailResource) , statsCategory: . video) . start ( )
547+ let thumbnailDisposable = postbox. mediaBox. resourceData ( thumbnailResource, attemptSynchronously: synchronousLoad) . start ( next: { next in
548+ subscriber. putNext ( next. size == 0 ? nil : try ? Data ( contentsOf: URL ( fileURLWithPath: next. path) , options: [ ] ) )
549+ } , error: subscriber. putError, completed: subscriber. putCompletion)
550+
551+ return ActionDisposable {
552+ fetchedDisposable. dispose ( )
553+ thumbnailDisposable. dispose ( )
554+ }
536555 }
537556 }
538557 } else {
0 commit comments