Trigger CollectionUpdatedEvent selectively

This commit is contained in:
Vishnu Mohandas 2021-02-14 17:12:11 +05:30
parent a7d0ae47d8
commit 46cf652463

View file

@ -46,6 +46,7 @@ Future<void> deleteFilesFromEverywhere(
final deletedIDs = final deletedIDs =
(await PhotoManager.editor.deleteWithIds(localIDs)).toSet(); (await PhotoManager.editor.deleteWithIds(localIDs)).toSet();
bool hasUploadedFiles = false; bool hasUploadedFiles = false;
final updatedCollectionIDs = Set<int>();
for (final file in files) { for (final file in files) {
if (file.localID != null) { if (file.localID != null) {
// Remove only those files that have been removed from disk // Remove only those files that have been removed from disk
@ -53,6 +54,7 @@ Future<void> deleteFilesFromEverywhere(
if (file.uploadedFileID != null) { if (file.uploadedFileID != null) {
hasUploadedFiles = true; hasUploadedFiles = true;
await FilesDB.instance.markForDeletion(file.uploadedFileID); await FilesDB.instance.markForDeletion(file.uploadedFileID);
updatedCollectionIDs.add(file.collectionID);
} else { } else {
await FilesDB.instance.deleteLocalFile(file.localID); await FilesDB.instance.deleteLocalFile(file.localID);
} }
@ -66,7 +68,9 @@ Future<void> deleteFilesFromEverywhere(
await FileRepository.instance.reloadFiles(); await FileRepository.instance.reloadFiles();
if (hasUploadedFiles) { if (hasUploadedFiles) {
Bus.instance.fire(CollectionUpdatedEvent()); for (final collectionID in updatedCollectionIDs) {
Bus.instance.fire(CollectionUpdatedEvent(collectionID: collectionID));
}
// TODO: Blocking call? // TODO: Blocking call?
SyncService.instance.deleteFilesOnServer(); SyncService.instance.deleteFilesOnServer();
} }