diff --git a/mobile/lib/services/preview_video_store.dart b/mobile/lib/services/preview_video_store.dart index 1a096e54e3..a4c2f86462 100644 --- a/mobile/lib/services/preview_video_store.dart +++ b/mobile/lib/services/preview_video_store.dart @@ -91,7 +91,11 @@ class PreviewVideoStore { return DateTime.fromMillisecondsSinceEpoch(milliseconds); } - Future chunkAndUploadVideo(BuildContext? ctx, EnteFile enteFile) async { + Future chunkAndUploadVideo( + BuildContext? ctx, + EnteFile enteFile, [ + bool forceUpload = false, + ]) async { if (!enteFile.isUploaded || !isVideoStreamingEnabled) return; final file = await getFile(enteFile, isOrigin: true); if (file == null) return; @@ -135,7 +139,9 @@ class PreviewVideoStore { _items[enteFile.uploadedFileID!] = PreviewItem( status: PreviewItemStatus.inQueue, file: enteFile, - retryCount: _items[enteFile.uploadedFileID!]?.retryCount ?? 0, + retryCount: forceUpload + ? 0 + : _items[enteFile.uploadedFileID!]?.retryCount ?? 0, collectionID: enteFile.collectionID ?? 0, ); Bus.instance.fire(PreviewUpdatedEvent(_items)); @@ -145,7 +151,8 @@ class PreviewVideoStore { _items[enteFile.uploadedFileID!] = PreviewItem( status: PreviewItemStatus.compressing, file: enteFile, - retryCount: _items[enteFile.uploadedFileID!]?.retryCount ?? 0, + retryCount: + forceUpload ? 0 : _items[enteFile.uploadedFileID!]?.retryCount ?? 0, collectionID: enteFile.collectionID ?? 0, ); Bus.instance.fire(PreviewUpdatedEvent(_items)); diff --git a/mobile/lib/ui/settings/backup/backup_item_card.dart b/mobile/lib/ui/settings/backup/backup_item_card.dart index 063eec8fe2..a17cdcfd40 100644 --- a/mobile/lib/ui/settings/backup/backup_item_card.dart +++ b/mobile/lib/ui/settings/backup/backup_item_card.dart @@ -5,6 +5,7 @@ import "package:photos/models/backup/backup_item.dart"; import "package:photos/models/backup/backup_item_status.dart"; import "package:photos/models/preview/preview_item.dart"; import "package:photos/models/preview/preview_item_status.dart"; +import "package:photos/services/preview_video_store.dart"; import 'package:photos/theme/ente_theme.dart'; import "package:photos/ui/viewer/file/thumbnail_widget.dart"; import "package:photos/utils/dialog_util.dart"; @@ -171,11 +172,19 @@ class _BackupItemCardState extends State { "assets/processing-video.png", ), ), - PreviewItemStatus.failed => SizedBox( - width: 24, - height: 24, - child: Image.asset( - "assets/processing-video-failed.png", + PreviewItemStatus.failed => GestureDetector( + onTap: () => + PreviewVideoStore.instance.chunkAndUploadVideo( + context, + widget.item.file, + true, + ), + child: SizedBox( + width: 24, + height: 24, + child: Image.asset( + "assets/processing-video-failed.png", + ), ), ), PreviewItemStatus.retry ||