diff --git a/app/src/main/java/dev/kaizen/app/chat/ChatComponents.kt b/app/src/main/java/dev/kaizen/app/chat/ChatComponents.kt index 45eae75..183bf88 100644 --- a/app/src/main/java/dev/kaizen/app/chat/ChatComponents.kt +++ b/app/src/main/java/dev/kaizen/app/chat/ChatComponents.kt @@ -489,6 +489,8 @@ fun MessageRow( ) } + val isVoiceOnly = hasAttachments && message.content.isBlank() && message.attachments.all { it.kind == "audio" } + Box( Modifier .widthIn(max = 300.dp) @@ -499,12 +501,28 @@ fun MessageRow( .border(1.2.dp, borderBrush, shape), ) { Column { - if (hasAttachments) AttachmentGrid(message.attachments, Modifier.padding(6.dp)) - if (message.content.isNotBlank()) { - Text( - message.content, color = cs.onBackground, fontSize = 16.sp, lineHeight = 26.sp, - modifier = Modifier.padding(start = 16.dp, end = 16.dp, top = if (hasAttachments) 4.dp else 13.dp, bottom = 13.dp), - ) + if (isVoiceOnly) { + Row( + Modifier.padding(horizontal = 16.dp, vertical = 12.dp), + verticalAlignment = Alignment.CenterVertically, + ) { + Icon(KaizenIcons.Mic, null, tint = accent.primary.copy(alpha = 0.7f), modifier = Modifier.size(18.dp)) + Spacer(Modifier.width(8.dp)) + Text( + stringResource(R.string.chat_voice_message), + color = cs.onBackground.copy(alpha = 0.70f), + fontSize = 14.sp, + fontWeight = FontWeight.Medium, + ) + } + } else { + if (hasAttachments) AttachmentGrid(message.attachments, Modifier.padding(6.dp)) + if (message.content.isNotBlank()) { + Text( + message.content, color = cs.onBackground, fontSize = 16.sp, lineHeight = 26.sp, + modifier = Modifier.padding(start = 16.dp, end = 16.dp, top = if (hasAttachments) 4.dp else 13.dp, bottom = 13.dp), + ) + } } } } diff --git a/app/src/main/res/values-en/strings.xml b/app/src/main/res/values-en/strings.xml index 40121ea..205df5d 100644 --- a/app/src/main/res/values-en/strings.xml +++ b/app/src/main/res/values-en/strings.xml @@ -20,6 +20,7 @@ Open menu Stop response Recording … + Voice message Microphone access required Read aloud Read aloud failed diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 5b2d3d4..7aa35fe 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -22,6 +22,7 @@ Menü öffnen Antwort stoppen Aufnahme läuft … + Sprachnachricht Mikrofonzugriff wird benötigt Vorlesen Vorlesen fehlgeschlagen