Skip to content

Commit dc4ea3e

Browse files
author
Isaac
committed
Use large video thumbnail if available
1 parent 66ea2cd commit dc4ea3e

File tree

1 file changed

+28
-9
lines changed

1 file changed

+28
-9
lines changed

‎submodules/PhotoResources/Sources/PhotoResources.swift

+28-9
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)