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