fix: allow force upload on failed click

This commit is contained in:
Prateek Sunal
2025-02-04 13:12:20 +05:30
parent d80093bfed
commit 8fb51174ce
2 changed files with 24 additions and 8 deletions

View File

@@ -91,7 +91,11 @@ class PreviewVideoStore {
return DateTime.fromMillisecondsSinceEpoch(milliseconds);
}
Future<void> chunkAndUploadVideo(BuildContext? ctx, EnteFile enteFile) async {
Future<void> 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));

View File

@@ -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<BackupItemCard> {
"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 ||