From 746887b8455a9ffb453b722b019ea07e51139023 Mon Sep 17 00:00:00 2001 From: otsmr Date: Sun, 26 Oct 2025 22:14:12 +0100 Subject: [PATCH] fix thumbnail generation for videos --- lib/src/services/mediafiles/mediafile.service.dart | 2 +- lib/src/views/memories/memories.view.dart | 8 ++++++-- lib/src/views/updates/62_database_migration.view.dart | 1 + 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/lib/src/services/mediafiles/mediafile.service.dart b/lib/src/services/mediafiles/mediafile.service.dart index 744c54d..a32dc62 100644 --- a/lib/src/services/mediafiles/mediafile.service.dart +++ b/lib/src/services/mediafiles/mediafile.service.dart @@ -199,7 +199,7 @@ class MediaFileService { File get thumbnailPath => _buildFilePath( 'stored', namePrefix: '.thumbnail', - extensionParam: 'webp', + extensionParam: 'png', ); File get encryptedPath => _buildFilePath( 'tmp', diff --git a/lib/src/views/memories/memories.view.dart b/lib/src/views/memories/memories.view.dart index 9a2d263..e44f48d 100644 --- a/lib/src/views/memories/memories.view.dart +++ b/lib/src/views/memories/memories.view.dart @@ -3,6 +3,7 @@ import 'package:flutter/material.dart'; import 'package:intl/intl.dart'; import 'package:path_provider/path_provider.dart'; import 'package:twonly/globals.dart'; +import 'package:twonly/src/database/tables/mediafiles.table.dart'; import 'package:twonly/src/database/twonly.db.dart'; import 'package:twonly/src/model/memory_item.model.dart'; import 'package:twonly/src/services/mediafiles/mediafile.service.dart'; @@ -54,6 +55,11 @@ class MemoriesViewState extends State { applicationSupportDirectory: applicationSupportDirectory, ); if (!mediaService.imagePreviewAvailable) continue; + if (mediaService.mediaFile.type == MediaType.video) { + if (!mediaService.thumbnailPath.existsSync()) { + await mediaService.createThumbnail(); + } + } galleryItems.add( MemoryItem( mediaService: mediaService, @@ -146,7 +152,5 @@ class MemoriesViewState extends State { ), ) as bool?; setState(() {}); - - await initAsync(); } } diff --git a/lib/src/views/updates/62_database_migration.view.dart b/lib/src/views/updates/62_database_migration.view.dart index 1b7bd14..a0e53a3 100644 --- a/lib/src/views/updates/62_database_migration.view.dart +++ b/lib/src/views/updates/62_database_migration.view.dart @@ -159,6 +159,7 @@ class _DatabaseMigrationViewState extends State { MediaFilesCompanion( type: Value(type), createdAt: Value(stat.modified), + stored: const Value(true), ), ); final mediaService = await MediaFileService.fromMedia(mediaFile!);