ContentChat.kt 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. package io.nexilis.alpha.ui.components
  2. import androidx.compose.foundation.Image
  3. import androidx.compose.foundation.layout.Column
  4. import androidx.compose.foundation.layout.padding
  5. import androidx.compose.foundation.layout.size
  6. import androidx.compose.foundation.shape.RoundedCornerShape
  7. import androidx.compose.material3.MaterialTheme
  8. import androidx.compose.material3.Text
  9. import androidx.compose.runtime.Composable
  10. import androidx.compose.ui.Modifier
  11. import androidx.compose.ui.graphics.graphicsLayer
  12. import androidx.compose.ui.layout.ContentScale
  13. import androidx.compose.ui.platform.LocalContext
  14. import androidx.compose.ui.unit.dp
  15. import androidx.core.content.FileProvider
  16. import coil.compose.rememberAsyncImagePainter
  17. import io.nexilis.alpha.BuildConfig
  18. import io.nexilis.service.data.entities.Message
  19. @Composable
  20. fun ContentChat(message: Message) {
  21. val context = LocalContext.current
  22. if (message.image_id.isNotEmpty()) {
  23. Column(modifier = Modifier.padding(3.dp)) {
  24. val file = context.getFileStreamPath(message.image_id)
  25. val uri = FileProvider.getUriForFile(
  26. context,
  27. BuildConfig.APPLICATION_ID + ".provider", file
  28. )
  29. Image(
  30. painter = rememberAsyncImagePainter(uri),
  31. contentDescription = "",
  32. modifier = Modifier
  33. .size(248.dp)
  34. .graphicsLayer {
  35. shape = RoundedCornerShape(12.dp)
  36. clip = true
  37. },
  38. contentScale = ContentScale.Crop
  39. )
  40. if (message.message_text.isNotEmpty()) {
  41. Text(
  42. modifier = Modifier.padding(8.dp),
  43. text = message.message_text,
  44. style = MaterialTheme.typography.bodyMedium,
  45. )
  46. }
  47. }
  48. } else {
  49. Text(
  50. modifier = Modifier.padding(8.dp),
  51. text = message.message_text,
  52. style = MaterialTheme.typography.bodyMedium,
  53. )
  54. }
  55. }