From c3a7ccbfde5ca87caf7d83da918eaa4e4827e061 Mon Sep 17 00:00:00 2001 From: Taras Smakula <tarassmakula@gmail.com> Date: Fri, 1 Dec 2023 16:34:50 +0200 Subject: [PATCH] Fix image thumbnail url --- .../sdk/internal/session/content/ThumbnailExtractor.kt | 9 +++++---- .../sdk/internal/session/content/UploadContentWorker.kt | 9 ++++++++- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/content/ThumbnailExtractor.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/content/ThumbnailExtractor.kt index 9791b595..ada85237 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/content/ThumbnailExtractor.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/content/ThumbnailExtractor.kt @@ -44,10 +44,11 @@ internal class ThumbnailExtractor @Inject constructor( //Changed for Circles fun extractThumbnail(attachment: ContentAttachmentData): ThumbnailData? { - return if (attachment.type == ContentAttachmentData.Type.VIDEO) { - extractVideoThumbnail(attachment) - } else { - null + if (attachment.mimeType == MimeTypes.Gif || attachment.mimeType == MimeTypes.Webp) return null + return when (attachment.type) { + ContentAttachmentData.Type.VIDEO -> extractVideoThumbnail(attachment) + ContentAttachmentData.Type.IMAGE -> extractImageThumbnail(attachment) + else -> null } } diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/content/UploadContentWorker.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/content/UploadContentWorker.kt index 3dd44073..d3abc052 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/content/UploadContentWorker.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/content/UploadContentWorker.kt @@ -185,6 +185,7 @@ internal class UploadContentWorker(val context: Context, params: WorkerParameter } else if (attachment.type == ContentAttachmentData.Type.VIDEO && // Do not compress gif attachment.mimeType != MimeTypes.Gif && + attachment.mimeType != MimeTypes.Webp && params.compressBeforeSending) { fileToUpload = videoCompressor.compress(workingFile, object : ProgressListener { override fun onProgress(progress: Int, total: Int) { @@ -399,6 +400,7 @@ internal class UploadContentWorker(val context: Context, params: WorkerParameter } } + // Added thumbnailUrl, thumbnailEncryptedFileInfo to Image content for Circles private suspend fun updateEvent( eventId: String, url: String, @@ -413,7 +415,7 @@ internal class UploadContentWorker(val context: Context, params: WorkerParameter // Retrieve potential additional content from the original event val additionalContent = content.orEmpty() - messageContent?.toContent().orEmpty().keys val updatedContent = when (messageContent) { - is MessageImageContent -> messageContent.update(url, encryptedFileInfo, newAttachmentAttributes) + is MessageImageContent -> messageContent.update(url, encryptedFileInfo, thumbnailUrl, thumbnailEncryptedFileInfo, newAttachmentAttributes) is MessageVideoContent -> messageContent.update(url, encryptedFileInfo, thumbnailUrl, thumbnailEncryptedFileInfo, newAttachmentAttributes) is MessageFileContent -> messageContent.update(url, encryptedFileInfo, newAttachmentAttributes.newFileSize) is MessageAudioContent -> messageContent.update(url, encryptedFileInfo, newAttachmentAttributes.newFileSize) @@ -427,15 +429,20 @@ internal class UploadContentWorker(val context: Context, params: WorkerParameter params.localEchoIds.forEach { function.invoke(it.eventId) } } + //Added thumbnailUrl,thumbnailEncryptedFileInfo for circles private fun MessageImageContent.update( url: String, encryptedFileInfo: EncryptedFileInfo?, + thumbnailUrl: String?, + thumbnailEncryptedFileInfo: EncryptedFileInfo?, newAttachmentAttributes: NewAttachmentAttributes? ): MessageImageContent { return copy( url = if (encryptedFileInfo == null) url else null, encryptedFileInfo = encryptedFileInfo?.copy(url = url), info = info?.copy( + thumbnailUrl = if (thumbnailEncryptedFileInfo == null) thumbnailUrl else null, + thumbnailFile = thumbnailEncryptedFileInfo?.copy(url = thumbnailUrl), width = newAttachmentAttributes?.newWidth ?: info.width, height = newAttachmentAttributes?.newHeight ?: info.height, size = newAttachmentAttributes?.newFileSize ?: info.size -- GitLab