mirror of
https://github.com/twonlyapp/twonly-app.git
synced 2026-06-03 02:32:12 +00:00
39 lines
994 B
Dart
39 lines
994 B
Dart
import 'package:twonly/src/database/twonly.db.dart';
|
|
import 'package:twonly/src/services/mediafiles/mediafile.service.dart';
|
|
|
|
class MemoryItem {
|
|
MemoryItem({
|
|
required this.mediaService,
|
|
required this.messages,
|
|
});
|
|
final List<Message> messages;
|
|
final MediaFileService mediaService;
|
|
|
|
static Future<Map<String, MemoryItem>> convertFromMessages(
|
|
List<Message> messages,
|
|
) async {
|
|
final items = <String, MemoryItem>{};
|
|
for (final message in messages) {
|
|
if (message.mediaId == null) continue;
|
|
|
|
final mediaService = await MediaFileService.fromMediaId(message.mediaId!);
|
|
if (mediaService == null) continue;
|
|
|
|
if (!mediaService.imagePreviewAvailable) {
|
|
continue;
|
|
}
|
|
|
|
items
|
|
.putIfAbsent(
|
|
message.mediaId!,
|
|
() => MemoryItem(
|
|
mediaService: mediaService,
|
|
messages: [],
|
|
),
|
|
)
|
|
.messages
|
|
.add(message);
|
|
}
|
|
return items;
|
|
}
|
|
}
|