|
@@ -19,6 +19,9 @@ import androidx.compose.material3.CircularProgressIndicator
|
|
|
import androidx.compose.material3.Icon
|
|
|
import androidx.compose.material3.IconButton
|
|
|
import androidx.compose.material3.LinearProgressIndicator
|
|
|
+import androidx.compose.material3.ListItem
|
|
|
+import androidx.compose.material3.ListItemColors
|
|
|
+import androidx.compose.material3.ListItemDefaults
|
|
|
import androidx.compose.material3.MaterialTheme
|
|
|
import androidx.compose.material3.Text
|
|
|
import androidx.compose.runtime.Composable
|
|
@@ -102,52 +105,30 @@ fun ContentChat(modifier: Modifier = Modifier, message: Message) {
|
|
|
}
|
|
|
}
|
|
|
} else if (message.file_id.isNotEmpty()) {
|
|
|
- Column(
|
|
|
- modifier = Modifier
|
|
|
- .padding(2.dp)
|
|
|
- .fillMaxWidth(0.65f)
|
|
|
- ) {
|
|
|
- Row(modifier = Modifier
|
|
|
- .graphicsLayer {
|
|
|
- shape = RoundedCornerShape(12.dp)
|
|
|
- clip = true
|
|
|
- }
|
|
|
- .align(Alignment.CenterHorizontally)
|
|
|
- .background(MaterialTheme.colorScheme.surface)
|
|
|
- .padding(8.dp)
|
|
|
- ) {
|
|
|
- FileType(
|
|
|
- message = message, modifier = Modifier
|
|
|
- .align(Alignment.CenterVertically)
|
|
|
- )
|
|
|
- Column(
|
|
|
- modifier = Modifier
|
|
|
- .weight(1f)
|
|
|
- ) {
|
|
|
- Text(
|
|
|
- text = message.message_text.split("|").first(),
|
|
|
- color = MaterialTheme.colorScheme.onSurface,
|
|
|
- style = MaterialTheme.typography.bodyMedium,
|
|
|
- maxLines = 2,
|
|
|
- overflow = TextOverflow.Ellipsis
|
|
|
- )
|
|
|
- FileDesc(file = message.file_id)
|
|
|
- }
|
|
|
- FileProgress(
|
|
|
- message = message,
|
|
|
- modifier = Modifier.align(Alignment.CenterVertically)
|
|
|
- )
|
|
|
- }
|
|
|
- val messageText = message.message_text.split("|").last()
|
|
|
- if (messageText.isNotEmpty()) {
|
|
|
+ ListItem(
|
|
|
+ headlineContent = {
|
|
|
Text(
|
|
|
- text = messageText,
|
|
|
- modifier = Modifier.padding(8.dp),
|
|
|
+ text = message.message_text.split("|").first(),
|
|
|
color = MaterialTheme.colorScheme.onSurface,
|
|
|
style = MaterialTheme.typography.bodyMedium,
|
|
|
+ maxLines = 2,
|
|
|
+ overflow = TextOverflow.Ellipsis
|
|
|
)
|
|
|
- }
|
|
|
- }
|
|
|
+ },
|
|
|
+ modifier = Modifier.fillMaxWidth(0.76f),
|
|
|
+ supportingContent = {
|
|
|
+ FileDesc(file = message.file_id)
|
|
|
+ },
|
|
|
+ leadingContent = {
|
|
|
+ FileType(message = message)
|
|
|
+ },
|
|
|
+ trailingContent = {
|
|
|
+ FileProgress(message = message)
|
|
|
+ },
|
|
|
+ colors = ListItemDefaults.colors(
|
|
|
+ containerColor = Color.Transparent
|
|
|
+ )
|
|
|
+ )
|
|
|
} else if (message.audio_id.isNotEmpty()) {
|
|
|
Column(
|
|
|
modifier = Modifier
|
|
@@ -229,7 +210,7 @@ fun ContentChat(modifier: Modifier = Modifier, message: Message) {
|
|
|
}
|
|
|
|
|
|
@Composable
|
|
|
-fun FileType(message: Message, modifier: Modifier) {
|
|
|
+fun FileType(message: Message, modifier: Modifier = Modifier) {
|
|
|
val imageVector = when (message.file_id.extension) {
|
|
|
"apk", "aab" -> ImageVector.vectorResource(id = R.drawable.ic_apk)
|
|
|
"aac", "mp3", "m4a", "ogg" -> ImageVector.vectorResource(id = R.drawable.ic_audio)
|