Skip to content

Commit d3dc0af

Browse files
committed
Update MessageItemFactory.kt
1 parent 6252fb4 commit d3dc0af

File tree

1 file changed

+19
-2
lines changed

1 file changed

+19
-2
lines changed

vector/src/main/java/im/vector/app/features/home/room/detail/timeline/factory/MessageItemFactory.kt

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@
1616

1717
package im.vector.app.features.home.room.detail.timeline.factory
1818

19+
import android.graphics.BitmapFactory
20+
import android.graphics.ImageDecoder
21+
import android.graphics.drawable.AnimatedImageDrawable
1922
import android.net.Uri
2023
import android.text.Spannable
2124
import android.text.SpannableStringBuilder
@@ -120,6 +123,7 @@ import org.matrix.android.sdk.api.session.room.timeline.getLastMessageContent
120123
import org.matrix.android.sdk.api.settings.LightweightSettingsStorage
121124
import org.matrix.android.sdk.api.util.MimeTypes
122125
import timber.log.Timber
126+
import java.nio.file.Files
123127
import javax.inject.Inject
124128

125129
class MessageItemFactory @Inject constructor(
@@ -162,16 +166,29 @@ class MessageItemFactory @Inject constructor(
162166
private val textRenderer by lazy {
163167
textRendererFactory.create(roomId)
164168
}
169+
165170
suspend fun decryptEmote(raw: Map<String, EncryptedFileInfo>): Map<String,String> {
166171
val final = mutableMapOf<String, String>()
167-
Timber.v("hell"+raw.toString())
172+
//Timber.v("hell"+raw.toString())
168173
for ((key, value) in raw) {
169-
val file=(session.fileService().downloadFile(
174+
var file=(session.fileService().downloadFile(
170175
fileName = key,
171176
mimeType = "image/*",
172177
url = value.url,
173178
elementToDecrypt = value.toElementToDecrypt()
174179
))
180+
val source=ImageDecoder.createSource(file)
181+
val drawable = ImageDecoder.decodeDrawable(source)
182+
if (drawable is AnimatedImageDrawable) {
183+
file=(session.fileService().downloadFile(
184+
fileName = key,
185+
mimeType = "image/gif",
186+
url = value.url,
187+
elementToDecrypt = value.toElementToDecrypt()
188+
))
189+
}
190+
191+
//Timber.v("hello "+MimeTypeMap.getFileExtensionFromUrl(file.toString()))
175192
final[":" + key + ":"] = "<img style='height:80px;' src='file:///" + file.absolutePath + "'/>"
176193
//Timber.v("emote:",final[":" + key + ":"])
177194
}

0 commit comments

Comments
 (0)