Правки
This commit is contained in:
@@ -31,6 +31,7 @@ import chats.domain.model.MediaType
|
||||
import chats.domain.model.Media
|
||||
import chats.domain.model.MessageStatus
|
||||
import coil.compose.AsyncImage
|
||||
import coil.request.ImageRequest
|
||||
import core.presentation.components.AppVideoPlayer
|
||||
import core.presentation.components.AppAudioPlayer
|
||||
import core.presentation.components.AppAvatar
|
||||
@@ -225,7 +226,10 @@ fun MessageBubble(
|
||||
|
||||
if (isReplyImage && reply.media.isNotEmpty()) {
|
||||
AsyncImage(
|
||||
model = reply.media.first().url,
|
||||
model = ImageRequest.Builder(context)
|
||||
.data(reply.media.first().url)
|
||||
.crossfade(true)
|
||||
.build(),
|
||||
contentDescription = null,
|
||||
modifier = Modifier
|
||||
.fillMaxHeight()
|
||||
@@ -281,17 +285,24 @@ fun MessageBubble(
|
||||
|
||||
// GIF Content (Klipy)
|
||||
if (message.mediaType == MediaType.GIF) {
|
||||
AsyncImage(
|
||||
model = message.content,
|
||||
imageLoader = core.utils.CoilUtils.getGifImageLoader(context),
|
||||
contentDescription = null,
|
||||
Box(
|
||||
modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
.heightIn(max = 300.dp)
|
||||
.clip(RoundedCornerShape(8.dp))
|
||||
.clickable { /* Handle click */ },
|
||||
contentScale = ContentScale.Crop
|
||||
)
|
||||
.clickable { /* Handle click */ }
|
||||
) {
|
||||
AsyncImage(
|
||||
model = ImageRequest.Builder(context)
|
||||
.data(message.content)
|
||||
.crossfade(true)
|
||||
.build(),
|
||||
imageLoader = core.utils.CoilUtils.getGifImageLoader(context),
|
||||
contentDescription = null,
|
||||
modifier = Modifier.fillMaxSize(),
|
||||
contentScale = ContentScale.Crop
|
||||
)
|
||||
}
|
||||
Spacer(modifier = Modifier.height(4.dp))
|
||||
}
|
||||
|
||||
@@ -321,17 +332,25 @@ fun MessageBubble(
|
||||
val mediaItem = message.media[0]
|
||||
when {
|
||||
mediaItem.type.startsWith("image") || message.mediaType == MediaType.IMAGE -> {
|
||||
AsyncImage(
|
||||
model = mediaItem.url,
|
||||
imageLoader = core.utils.CoilUtils.getGifImageLoader(context),
|
||||
contentDescription = null,
|
||||
Box(
|
||||
modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
.heightIn(max = 300.dp)
|
||||
.clip(RoundedCornerShape(8.dp))
|
||||
.clickable { onMediaClick(mediaItem) },
|
||||
contentScale = ContentScale.Crop
|
||||
)
|
||||
.clickable { onMediaClick(mediaItem) }
|
||||
) {
|
||||
AsyncImage(
|
||||
model = ImageRequest.Builder(context)
|
||||
.data(mediaItem.url)
|
||||
.crossfade(true)
|
||||
.memoryCacheKey(mediaItem.url)
|
||||
.build(),
|
||||
imageLoader = core.utils.CoilUtils.getGifImageLoader(context),
|
||||
contentDescription = null,
|
||||
modifier = Modifier.fillMaxSize(),
|
||||
contentScale = ContentScale.Crop
|
||||
)
|
||||
}
|
||||
}
|
||||
message.mediaType == MediaType.VIDEO || mediaItem.type.startsWith("video") -> {
|
||||
Box(
|
||||
@@ -708,7 +727,10 @@ fun GridItem(media: Media, modifier: Modifier = Modifier) {
|
||||
Box(modifier = modifier.background(Color.White.copy(alpha = 0.1f))) {
|
||||
if (isImage || isVideo) {
|
||||
AsyncImage(
|
||||
model = media.url,
|
||||
model = ImageRequest.Builder(context)
|
||||
.data(media.url)
|
||||
.crossfade(true)
|
||||
.build(),
|
||||
contentDescription = null,
|
||||
modifier = Modifier.fillMaxSize(),
|
||||
contentScale = ContentScale.Crop
|
||||
|
||||
Reference in New Issue
Block a user