From 13da082cda7df35e49a5c99dc1fc39dcf18f24b0 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Thu, 28 Nov 2024 20:26:11 +0530 Subject: [PATCH] fix: check files db if preview exist --- mobile/lib/db/ml/filedata.dart | 1 + mobile/lib/ui/viewer/file/video_view_widget.dart | 15 +++++++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/mobile/lib/db/ml/filedata.dart b/mobile/lib/db/ml/filedata.dart index 477aca8b40..e5de650ab7 100644 --- a/mobile/lib/db/ml/filedata.dart +++ b/mobile/lib/db/ml/filedata.dart @@ -26,6 +26,7 @@ extension FileDataTable on MLDataDB { ); } + // optimize this Future> getFileIDsWithFDData() async { final db = await MLDataDB.instance.asyncDB; final res = await db.execute('SELECT $fileIDColumn FROM $fileDataTable'); diff --git a/mobile/lib/ui/viewer/file/video_view_widget.dart b/mobile/lib/ui/viewer/file/video_view_widget.dart index f206750264..f3cc0ffc80 100644 --- a/mobile/lib/ui/viewer/file/video_view_widget.dart +++ b/mobile/lib/ui/viewer/file/video_view_widget.dart @@ -11,6 +11,8 @@ import "package:fluttertoast/fluttertoast.dart"; import 'package:logging/logging.dart'; import 'package:photos/core/constants.dart'; import "package:photos/core/event_bus.dart"; +import "package:photos/db/ml/db.dart"; +import "package:photos/db/ml/filedata.dart"; import "package:photos/generated/l10n.dart"; import 'package:photos/models/file/file.dart'; import "package:photos/service_locator.dart"; @@ -56,9 +58,18 @@ class _VideoViewWidgetState extends State { _checkForPreview(); } - void _checkForPreview() { + Future _checkForPreview() async { if (!flagService.internalUser) return; - PreviewVideoStore.instance.getPlaylist(widget.file).then((file) { + + final Set filesWithFDStatus = + await MLDataDB.instance.getFileIDsWithFDData(); + + if (!filesWithFDStatus.contains(widget.file.uploadedFileID)) { + isCheckingForPreview = false; + setState(() {}); + } + + await PreviewVideoStore.instance.getPlaylist(widget.file).then((file) { if (!mounted) return; if (file != null) { isCheckingForPreview = false;