From cda5ac96c4802f7c33f8f0099a8c9c34423dde4a Mon Sep 17 00:00:00 2001
From: Matthias Nott <mnott@mnsoft.org>
Date: Sat, 11 Apr 2026 09:27:07 +0200
Subject: [PATCH] feat: PDF and document file viewing support
---
lib/models/message.dart | 9 +++++++++
1 files changed, 9 insertions(+), 0 deletions(-)
diff --git a/lib/models/message.dart b/lib/models/message.dart
index 8a034ec..36c89f6 100644
--- a/lib/models/message.dart
+++ b/lib/models/message.dart
@@ -13,6 +13,7 @@
final String content;
final String? audioUri;
final String? imageBase64;
+ final String? mimeType;
final int timestamp;
final MessageStatus? status;
final int? duration;
@@ -25,6 +26,7 @@
required this.timestamp,
this.audioUri,
this.imageBase64,
+ this.mimeType,
this.status,
this.duration,
});
@@ -67,6 +69,7 @@
required MessageRole role,
required String imageBase64,
String content = '',
+ String? mimeType,
MessageStatus? status,
}) {
return Message(
@@ -75,6 +78,7 @@
type: MessageType.image,
content: content,
imageBase64: imageBase64,
+ mimeType: mimeType,
timestamp: DateTime.now().millisecondsSinceEpoch,
status: status,
);
@@ -84,6 +88,7 @@
String? content,
String? audioUri,
String? imageBase64,
+ String? mimeType,
MessageStatus? status,
int? duration,
}) {
@@ -94,6 +99,7 @@
content: content ?? this.content,
audioUri: audioUri ?? this.audioUri,
imageBase64: imageBase64 ?? this.imageBase64,
+ mimeType: mimeType ?? this.mimeType,
timestamp: timestamp,
status: status ?? this.status,
duration: duration ?? this.duration,
@@ -108,6 +114,7 @@
'content': content,
if (audioUri != null) 'audioUri': audioUri,
if (imageBase64 != null) 'imageBase64': imageBase64,
+ if (mimeType != null) 'mimeType': mimeType,
'timestamp': timestamp,
if (status != null) 'status': status!.name,
if (duration != null) 'duration': duration,
@@ -130,6 +137,7 @@
if (duration != null) 'duration': duration,
// Keep imageBase64 — images are typically 50-200 KB and must survive restart.
if (imageBase64 != null) 'imageBase64': imageBase64,
+ if (mimeType != null) 'mimeType': mimeType,
};
}
@@ -141,6 +149,7 @@
content: json['content'] as String? ?? '',
audioUri: json['audioUri'] as String?,
imageBase64: json['imageBase64'] as String?,
+ mimeType: json['mimeType'] as String?,
timestamp: json['timestamp'] as int,
status: json['status'] != null
? MessageStatus.values.byName(json['status'] as String)
--
Gitblit v1.3.1