Try using custom fetcher for Coil...

This commit is contained in:
ganfra 2022-11-21 20:15:11 +01:00
parent f9d389fe97
commit 1ba025ed30
10 changed files with 118 additions and 11 deletions

View file

@ -12,6 +12,7 @@ dependencies {
implementation(project(":libraries:designsystem"))
implementation(project(":libraries:textcomposer"))
implementation(libs.mavericks.compose)
implementation(libs.coil.compose)
implementation(libs.timber)
implementation(libs.datetime)
implementation(libs.accompanist.flowlayout)

View file

@ -87,7 +87,16 @@ class MessageTimelineItemStateMapper(
body = messageType.content.body,
formattedBody = messageType.content.formatted
)
is MessageType.Image -> MessagesTimelineItemUnknownContent
is MessageType.Image -> {
MessagesTimelineItemImageContent(
body = messageType.content.body,
imageMeta = MediaResolver.Meta(
source = messageType.content.source,
kind = MediaResolver.Kind.Content
),
blurhash = messageType.content.info?.blurhash
)
}
is MessageType.Notice -> MessagesTimelineItemNoticeContent(
body = messageType.content.body,
formattedBody = messageType.content.formatted

View file

@ -43,10 +43,7 @@ import io.element.android.x.features.messages.components.*
import io.element.android.x.features.messages.model.MessagesItemGroupPosition
import io.element.android.x.features.messages.model.MessagesTimelineItemState
import io.element.android.x.features.messages.model.MessagesViewState
import io.element.android.x.features.messages.model.content.MessagesTimelineItemEncryptedContent
import io.element.android.x.features.messages.model.content.MessagesTimelineItemRedactedContent
import io.element.android.x.features.messages.model.content.MessagesTimelineItemTextBasedContent
import io.element.android.x.features.messages.model.content.MessagesTimelineItemUnknownContent
import io.element.android.x.features.messages.model.content.*
import io.element.android.x.features.messages.textcomposer.MessageComposerViewModel
import io.element.android.x.features.messages.textcomposer.MessageComposerViewState
import io.element.android.x.textcomposer.TextComposer
@ -302,6 +299,10 @@ fun MessageEventRow(
content = messageEvent.content,
modifier = contentModifier
)
is MessagesTimelineItemImageContent -> MessagesTimelineItemImageView(
content = messageEvent.content,
modifier = contentModifier
)
}
}
MessagesReactionsView(

View file

@ -0,0 +1,23 @@
package io.element.android.x.features.messages.components
import androidx.compose.foundation.layout.Box
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.layout.ContentScale
import coil.compose.AsyncImage
import io.element.android.x.features.messages.model.content.MessagesTimelineItemImageContent
@Composable
fun MessagesTimelineItemImageView(
content: MessagesTimelineItemImageContent,
modifier: Modifier = Modifier
) {
Box(modifier) {
AsyncImage(
model = content.imageMeta,
contentDescription = null,
contentScale = ContentScale.Crop,
modifier = modifier
)
}
}

View file

@ -0,0 +1,9 @@
package io.element.android.x.features.messages.model.content
import io.element.android.x.matrix.media.MediaResolver
data class MessagesTimelineItemImageContent(
val body: String,
val imageMeta: MediaResolver.Meta,
val blurhash: String?
) : MessagesTimelineItemContent