From d02420aab41313896c763f0caf94d1a2dfed9ac8 Mon Sep 17 00:00:00 2001 From: Taras <tarassmakula@gmail.com> Date: Sat, 26 Feb 2022 01:09:04 +0200 Subject: [PATCH] Create image content model and mapping --- .../circles/mapping/TimelineEventMapping.kt | 20 +++++++++++++++---- .../com/futo/circles/model/PostContent.kt | 9 ++++++++- 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/futo/circles/mapping/TimelineEventMapping.kt b/app/src/main/java/com/futo/circles/mapping/TimelineEventMapping.kt index e6474a033..dffc8ac44 100644 --- a/app/src/main/java/com/futo/circles/mapping/TimelineEventMapping.kt +++ b/app/src/main/java/com/futo/circles/mapping/TimelineEventMapping.kt @@ -1,12 +1,15 @@ package com.futo.circles.mapping +import com.bumptech.glide.request.target.Target import com.futo.circles.model.* import org.matrix.android.sdk.api.session.events.model.toModel import org.matrix.android.sdk.api.session.room.model.message.MessageImageContent import org.matrix.android.sdk.api.session.room.model.message.MessageTextContent +import org.matrix.android.sdk.api.session.room.model.message.getFileUrl import org.matrix.android.sdk.api.session.room.timeline.TimelineEvent import org.matrix.android.sdk.api.session.room.timeline.getRelationContent import org.matrix.android.sdk.api.session.room.timeline.isReply +import org.matrix.android.sdk.internal.crypto.attachments.toElementToDecrypt fun TimelineEvent.toPost( @@ -45,7 +48,16 @@ private fun TimelineEvent.toTextContent(): TextContent = TextContent( message = root.getClearContent().toModel<MessageTextContent>()?.body ?: "" ) -private fun TimelineEvent.toImageContent(): ImageContent = ImageContent( - url = root.getClearContent() - .toModel<MessageImageContent>()?.info?.thumbnailFile?.url ?: "" -) +private fun TimelineEvent.toImageContent(): ImageContent { + val messageContent = root.getClearContent().toModel<MessageImageContent>() + + return ImageContent( + fileName = messageContent?.body ?: "", + mimeType = messageContent?.mimeType ?: "", + fileUrl = messageContent?.getFileUrl() ?: "", + thumbnailUrl = messageContent?.info?.thumbnailFile?.url ?: "", + width = messageContent?.info?.width ?: Target.SIZE_ORIGINAL, + height = messageContent?.info?.height ?: Target.SIZE_ORIGINAL, + elementToDecrypt = messageContent?.encryptedFileInfo?.toElementToDecrypt(), + ) +} diff --git a/app/src/main/java/com/futo/circles/model/PostContent.kt b/app/src/main/java/com/futo/circles/model/PostContent.kt index 04b63f497..58a06760b 100644 --- a/app/src/main/java/com/futo/circles/model/PostContent.kt +++ b/app/src/main/java/com/futo/circles/model/PostContent.kt @@ -1,6 +1,7 @@ package com.futo.circles.model import org.matrix.android.sdk.api.session.room.model.message.MessageType +import org.matrix.android.sdk.internal.crypto.attachments.ElementToDecrypt enum class PostContentType(val typeKey: String) { TEXT_CONTENT(MessageType.MSGTYPE_TEXT), IMAGE_CONTENT(MessageType.MSGTYPE_IMAGE) @@ -13,5 +14,11 @@ data class TextContent( ) : PostContent(PostContentType.TEXT_CONTENT) data class ImageContent( - val url: String + val fileName: String, + val mimeType: String, + val fileUrl: String, + val thumbnailUrl: String, + val elementToDecrypt: ElementToDecrypt?, + val width: Int, + val height: Int ) : PostContent(PostContentType.IMAGE_CONTENT) \ No newline at end of file -- GitLab