From fa34201bc07e5312ff0c6825933cd02ce7900254 Mon Sep 17 00:00:00 2001
From: Matthias Nott <mnott@mnsoft.org>
Date: Sat, 21 Mar 2026 20:55:10 +0100
Subject: [PATCH] fix: voice caption ordering, background audio, image persistence

---
 lib/widgets/message_bubble.dart |   56 ++++++++++++++++++++++++++++++++++++--------------------
 1 files changed, 36 insertions(+), 20 deletions(-)

diff --git a/lib/widgets/message_bubble.dart b/lib/widgets/message_bubble.dart
index 2d4584b..e9c4882 100644
--- a/lib/widgets/message_bubble.dart
+++ b/lib/widgets/message_bubble.dart
@@ -214,28 +214,44 @@
           : message.imageBase64!,
     );
 
-    return GestureDetector(
-      onTap: () {
-        Navigator.of(context).push(
-          MaterialPageRoute(
-            builder: (_) => ImageViewer(imageBytes: bytes),
-          ),
-        );
-      },
-      child: ClipRRect(
-        borderRadius: BorderRadius.circular(8),
-        child: Image.memory(
-          bytes,
-          width: 260,
-          height: 180,
-          fit: BoxFit.cover,
-          errorBuilder: (_, e, st) => const SizedBox(
-            width: 260,
-            height: 60,
-            child: Center(child: Text('Image decode error')),
+    return Column(
+      crossAxisAlignment: CrossAxisAlignment.start,
+      children: [
+        GestureDetector(
+          onTap: () {
+            Navigator.of(context).push(
+              MaterialPageRoute(
+                builder: (_) => ImageViewer(imageBytes: bytes),
+              ),
+            );
+          },
+          child: ClipRRect(
+            borderRadius: BorderRadius.circular(8),
+            child: Image.memory(
+              bytes,
+              width: 260,
+              height: 180,
+              fit: BoxFit.cover,
+              errorBuilder: (_, e, st) => const SizedBox(
+                width: 260,
+                height: 60,
+                child: Center(child: Text('Image decode error')),
+              ),
+            ),
           ),
         ),
-      ),
+        if (message.content.isNotEmpty) ...[
+          const SizedBox(height: 6),
+          Text(
+            message.content,
+            style: TextStyle(
+              fontSize: 14,
+              color: _isUser ? Colors.white.withAlpha(220) : null,
+              height: 1.3,
+            ),
+          ),
+        ],
+      ],
     );
   }
 

--
Gitblit v1.3.1