diff --git a/lib/events/collection_updated_event.dart b/lib/events/collection_updated_event.dart index d70cb6cc2..ab8892513 100644 --- a/lib/events/collection_updated_event.dart +++ b/lib/events/collection_updated_event.dart @@ -3,5 +3,5 @@ import 'package:photos/events/event.dart'; class CollectionUpdatedEvent extends Event { final int collectionID; - CollectionUpdatedEvent(this.collectionID); + CollectionUpdatedEvent({this.collectionID}); } diff --git a/lib/services/collections_service.dart b/lib/services/collections_service.dart index 8e2dadf93..849cd409f 100644 --- a/lib/services/collections_service.dart +++ b/lib/services/collections_service.dart @@ -14,6 +14,7 @@ import 'package:photos/events/collection_updated_event.dart'; import 'package:photos/models/collection.dart'; import 'package:photos/models/collection_file_item.dart'; import 'package:photos/models/file.dart'; +import 'package:photos/services/sync_service.dart'; import 'package:photos/utils/crypto_util.dart'; import 'package:photos/utils/file_util.dart'; @@ -44,12 +45,16 @@ class CollectionsService { Future sync() async { final lastCollectionCreationTime = await _db.getLastCollectionCreationTime(); - var collections = await _fetchCollections(lastCollectionCreationTime ?? 0); - await _db.insert(collections); - collections = await _db.getAllCollections(); + final fetchedCollections = + await _fetchCollections(lastCollectionCreationTime ?? 0); + await _db.insert(fetchedCollections); + final collections = await _db.getAllCollections(); for (final collection in collections) { _cacheCollectionAttributes(collection); } + if (fetchedCollections.isNotEmpty) { + Bus.instance.fire(CollectionUpdatedEvent()); + } } Collection getCollectionForPath(String path) { @@ -208,7 +213,8 @@ class CollectionsService { ) .then((value) async { await FilesDB.instance.insertMultiple(files); - Bus.instance.fire(CollectionUpdatedEvent(collectionID)); + Bus.instance.fire(CollectionUpdatedEvent(collectionID: collectionID)); + SyncService.instance.syncWithRemote(); }); } @@ -229,7 +235,8 @@ class CollectionsService { ); await FilesDB.instance .removeFromCollection(collectionID, params["fileIDs"]); - Bus.instance.fire(CollectionUpdatedEvent(collectionID)); + Bus.instance.fire(CollectionUpdatedEvent(collectionID: collectionID)); + SyncService.instance.syncWithRemote(); } Future createAndCacheCollection(Collection collection) async { diff --git a/lib/services/sync_service.dart b/lib/services/sync_service.dart index 11757aefc..0d4760035 100644 --- a/lib/services/sync_service.dart +++ b/lib/services/sync_service.dart @@ -110,7 +110,7 @@ class SyncService { await _insertFilesToDB(files, syncStartTime); await FileRepository.instance.reloadFiles(); - await _syncWithRemote(); + await syncWithRemote(); } Future> _getGalleryList( @@ -154,7 +154,7 @@ class SyncService { } } - Future _syncWithRemote() async { + Future syncWithRemote() async { if (!Configuration.instance.hasConfiguredAccount()) { return Future.error("Account not configured yet"); } diff --git a/lib/ui/collections_gallery_widget.dart b/lib/ui/collections_gallery_widget.dart index 5cf6dc74b..4abb4938f 100644 --- a/lib/ui/collections_gallery_widget.dart +++ b/lib/ui/collections_gallery_widget.dart @@ -10,12 +10,10 @@ import 'package:photos/db/files_db.dart'; import 'package:photos/events/collection_updated_event.dart'; import 'package:photos/events/local_photos_updated_event.dart'; import 'package:photos/events/tab_changed_event.dart'; -import 'package:photos/models/collection.dart'; import 'package:photos/models/collection_items.dart'; import 'package:photos/models/file.dart'; import 'package:photos/repositories/file_repository.dart'; import 'package:photos/services/collections_service.dart'; -import 'package:photos/services/favorites_service.dart'; import 'package:photos/models/device_folder.dart'; import 'package:photos/ui/collection_page.dart'; import 'package:photos/ui/device_folder_page.dart'; @@ -150,7 +148,6 @@ class _CollectionsGalleryWidgetState extends State { return second.lastUpdatedFile.updationTime .compareTo(first.lastUpdatedFile.updationTime); }); - return CollectionItems(folders, collectionsWithThumbnail); }