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