diff --git a/apps/android/app/src/main/java/chat/simplex/app/views/chat/item/CIImageView.kt b/apps/android/app/src/main/java/chat/simplex/app/views/chat/item/CIImageView.kt index f30719be87..f4aa4198ab 100644 --- a/apps/android/app/src/main/java/chat/simplex/app/views/chat/item/CIImageView.kt +++ b/apps/android/app/src/main/java/chat/simplex/app/views/chat/item/CIImageView.kt @@ -18,8 +18,9 @@ import androidx.compose.ui.graphics.asImageBitmap import androidx.compose.ui.graphics.painter.BitmapPainter import androidx.compose.ui.graphics.painter.Painter import androidx.compose.ui.layout.ContentScale -import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.platform.* import androidx.compose.ui.res.stringResource +import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import androidx.core.content.FileProvider import chat.simplex.app.BuildConfig @@ -93,15 +94,22 @@ fun CIImageView( } } + @Composable + fun imageViewFullWidth(): Dp { + val approximatePadding = 100.dp + return with(LocalDensity.current) { minOf(1000.dp, LocalView.current.width.toDp() - approximatePadding) } + } + @Composable fun imageView(imageBitmap: Bitmap, onClick: () -> Unit) { + val fullWidth = imageViewFullWidth() Image( imageBitmap.asImageBitmap(), contentDescription = stringResource(R.string.image_descr), // .width(1000.dp) is a hack for image to increase IntrinsicSize of FramedItemView // if text is short and take all available width if text is long modifier = Modifier - .width(1000.dp) + .width(if (imageBitmap.width < imageBitmap.height) fullWidth * 0.75f else fullWidth) .combinedClickable( onLongClick = { showMenu.value = true }, onClick = onClick @@ -112,13 +120,14 @@ fun CIImageView( @Composable fun imageView(painter: Painter, onClick: () -> Unit) { + val fullWidth = imageViewFullWidth() Image( painter, contentDescription = stringResource(R.string.image_descr), // .width(1000.dp) is a hack for image to increase IntrinsicSize of FramedItemView // if text is short and take all available width if text is long modifier = Modifier - .width(1000.dp) + .width(if (painter.intrinsicSize.width < painter.intrinsicSize.height) fullWidth * 0.75f else fullWidth) .combinedClickable( onLongClick = { showMenu.value = true }, onClick = onClick