Trigger CollectionUpdatedEvent selectively
This commit is contained in:
parent
a7d0ae47d8
commit
46cf652463
|
@ -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();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue