diff --git a/lib/ui/viewer/gallery/collection_page.dart b/lib/ui/viewer/gallery/collection_page.dart index cbd3c522d..9de7ef18f 100644 --- a/lib/ui/viewer/gallery/collection_page.dart +++ b/lib/ui/viewer/gallery/collection_page.dart @@ -2,6 +2,7 @@ import 'package:flutter/material.dart'; import 'package:photos/core/configuration.dart'; import 'package:photos/core/event_bus.dart'; import 'package:photos/db/files_db.dart'; +import "package:photos/events/collection_meta_event.dart"; import 'package:photos/events/collection_updated_event.dart'; import 'package:photos/events/files_updated_event.dart'; import 'package:photos/models/collection.dart'; @@ -65,6 +66,13 @@ class CollectionPage extends StatelessWidget { reloadEvent: Bus.instance .on() .where((event) => event.collectionID == c.collection.id), + forceReloadEvents: [ + Bus.instance.on().where( + (event) => + event.id == c.collection.id && + event.type == CollectionMetaEventType.sortChanged, + ) + ], removalEventTypes: const { EventType.deletedFromRemote, EventType.deletedFromEverywhere, diff --git a/lib/utils/magic_util.dart b/lib/utils/magic_util.dart index 882bbde79..b879b793a 100644 --- a/lib/utils/magic_util.dart +++ b/lib/utils/magic_util.dart @@ -2,6 +2,7 @@ import 'package:flutter/material.dart'; import 'package:logging/logging.dart'; import 'package:path/path.dart'; import 'package:photos/core/event_bus.dart'; +import "package:photos/events/collection_meta_event.dart"; import 'package:photos/events/force_reload_home_gallery_event.dart'; import "package:photos/generated/l10n.dart"; import 'package:photos/models/collection.dart'; @@ -86,6 +87,9 @@ Future changeSortOrder( final Map update = {"asc": sortedInAscOrder}; await CollectionsService.instance .updatePublicMagicMetadata(collection, update); + Bus.instance.fire( + CollectionMetaEvent(collection.id, CollectionMetaEventType.sortChanged), + ); } catch (e, s) { _logger.severe("failed to update collection visibility", e, s); showShortToast(context, S.of(context).somethingWentWrong);