diff --git a/lib/model/source/collection_lens.dart b/lib/model/source/collection_lens.dart index 6c8fef13d..51c0c8926 100644 --- a/lib/model/source/collection_lens.dart +++ b/lib/model/source/collection_lens.dart @@ -2,7 +2,9 @@ import 'dart:async'; import 'dart:collection'; import 'package:aves/model/entry.dart'; +import 'package:aves/model/favourites.dart'; import 'package:aves/model/filters/album.dart'; +import 'package:aves/model/filters/favourite.dart'; import 'package:aves/model/filters/filters.dart'; import 'package:aves/model/filters/location.dart'; import 'package:aves/model/settings/settings.dart'; @@ -52,6 +54,7 @@ class CollectionLens with ChangeNotifier, CollectionActivityMixin { _refresh(); } })); + favourites.addListener(onFavouritesChanged); } _refresh(); } @@ -61,6 +64,7 @@ class CollectionLens with ChangeNotifier, CollectionActivityMixin { _subscriptions ..forEach((sub) => sub.cancel()) ..clear(); + favourites.removeListener(onFavouritesChanged); super.dispose(); } @@ -183,6 +187,12 @@ class CollectionLens with ChangeNotifier, CollectionActivityMixin { _applyGroup(); } + void onFavouritesChanged() { + if (filters.any((filter) => filter is FavouriteFilter)) { + _refresh(); + } + } + void onEntryAdded(Set? entries) { _refresh(); }