Remove files that have been deleted from the upload queue

This commit is contained in:
vishnukvmd 2021-12-07 08:58:06 +05:30
parent 4eed676a2a
commit 1a75f9e9f8
3 changed files with 20 additions and 2 deletions

View file

@ -7,6 +7,7 @@ import 'package:photos/core/errors.dart';
import 'package:photos/core/event_bus.dart';
import 'package:photos/db/files_db.dart';
import 'package:photos/db/trash_db.dart';
import 'package:photos/events/files_updated_event.dart';
import 'package:photos/events/local_photos_updated_event.dart';
import 'package:photos/models/file.dart';
import 'package:photos/models/file_type.dart';
@ -228,7 +229,8 @@ class _ThumbnailWidgetState extends State<ThumbnailWidget> {
if (await doesLocalFileExist(widget.file) == false) {
_logger.info("Deleting file " + widget.file.tag());
FilesDB.instance.deleteLocalFile(widget.file);
Bus.instance.fire(LocalPhotosUpdatedEvent([widget.file]));
Bus.instance.fire(LocalPhotosUpdatedEvent([widget.file],
type: EventType.deletedFromDevice));
}
}
return;

View file

@ -7,6 +7,7 @@ import 'package:photos/core/cache/thumbnail_cache.dart';
import 'package:photos/core/constants.dart';
import 'package:photos/core/event_bus.dart';
import 'package:photos/db/files_db.dart';
import 'package:photos/events/files_updated_event.dart';
import 'package:photos/events/local_photos_updated_event.dart';
import 'package:photos/models/file.dart';
import 'package:photos/ui/loading_widget.dart';
@ -150,7 +151,8 @@ class _ZoomableImageState extends State<ZoomableImage>
_loadNetworkImage();
} else {
FilesDB.instance.deleteLocalFile(_photo);
Bus.instance.fire(LocalPhotosUpdatedEvent([_photo]));
Bus.instance.fire(LocalPhotosUpdatedEvent([_photo],
type: EventType.deletedFromDevice));
}
}
});

View file

@ -16,6 +16,7 @@ import 'package:photos/core/event_bus.dart';
import 'package:photos/core/network.dart';
import 'package:photos/db/files_db.dart';
import 'package:photos/db/upload_locks_db.dart';
import 'package:photos/events/files_updated_event.dart';
import 'package:photos/events/local_photos_updated_event.dart';
import 'package:photos/events/subscription_purchased_event.dart';
import 'package:photos/main.dart';
@ -81,6 +82,19 @@ class FileUploader {
}
_pollBackgroundUploadStatus();
}
Bus.instance.on<LocalPhotosUpdatedEvent>().listen((event) {
if (event.type == EventType.deletedFromDevice ||
event.type == EventType.deletedFromEverywhere) {
removeFromQueueWhere((file) {
for (final updatedFile in event.updatedFiles) {
if (file.generatedID == updatedFile.generatedID) {
return true;
}
}
return false;
}, InvalidFileError("File already deleted"));
}
});
}
Future<File> upload(File file, int collectionID) {