From 9a377ed7bc0af0250409d5f400687a12b75b0b84 Mon Sep 17 00:00:00 2001 From: Thibault Deckers Date: Tue, 27 May 2025 19:50:28 +0200 Subject: [PATCH] #268 albums: fixed hiding groups/dynamics when they are explicitly hidden --- lib/widgets/filter_grids/albums_page.dart | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/widgets/filter_grids/albums_page.dart b/lib/widgets/filter_grids/albums_page.dart index 01ceee68c..b7d1f96a9 100644 --- a/lib/widgets/filter_grids/albums_page.dart +++ b/lib/widgets/filter_grids/albums_page.dart @@ -44,12 +44,12 @@ class AlbumListPage extends StatelessWidget { child: Builder( // to access filter group provider from subtree context builder: (context) { - return Selector)>( - selector: (context, s) => (s.albumSectionFactor, s.albumSortFactor, s.albumSortReverse, s.pinnedFilters), + return Selector, Set)>( + selector: (context, s) => (s.albumSectionFactor, s.albumSortFactor, s.albumSortReverse, s.hiddenFilters, s.pinnedFilters), shouldRebuild: (t1, t2) { // `Selector` by default uses `DeepCollectionEquality`, which does not go deep in collections within records const eq = DeepCollectionEquality(); - return !(eq.equals(t1.$1, t2.$1) && eq.equals(t1.$2, t2.$2) && eq.equals(t1.$3, t2.$3) && eq.equals(t1.$4, t2.$4)); + return !(eq.equals(t1.$1, t2.$1) && eq.equals(t1.$2, t2.$2) && eq.equals(t1.$3, t2.$3) && eq.equals(t1.$4, t2.$4) && eq.equals(t1.$5, t2.$5)); }, builder: (context, s, child) { return ValueListenableBuilder( @@ -123,7 +123,7 @@ class AlbumListPage extends StatelessWidget { final listedDynamicAlbums = {}; if (albumChipTypes.contains(AlbumChipType.dynamic)) { - final allDynamicAlbums = dynamicAlbums.all; + final allDynamicAlbums = dynamicAlbums.all.whereNot(settings.hiddenFilters.contains).toSet(); if (groupUri == null) { final withinGroups = whereTypeRecursively(groupContent).toSet(); listedDynamicAlbums.addAll(allDynamicAlbums.whereNot(withinGroups.contains)); @@ -134,7 +134,7 @@ class AlbumListPage extends StatelessWidget { } // always show groups, which are needed to navigate to other types - final albumGroupFilters = groupContent.whereType().toSet(); + final albumGroupFilters = groupContent.whereType().whereNot(settings.hiddenFilters.contains).toSet(); final filters = { ...albumGroupFilters,