diff --git a/CHANGELOG.md b/CHANGELOG.md index 292526685..df60d887d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,10 @@ All notable changes to this project will be documented in this file. ## [Unreleased] +### Fixed + +- albums: show groups to move/copy/export items + ## [v1.13.0] - 2025-05-12 ### Added diff --git a/lib/widgets/common/action_mixins/entry_storage.dart b/lib/widgets/common/action_mixins/entry_storage.dart index ca2bc1614..b1d0ee7bf 100644 --- a/lib/widgets/common/action_mixins/entry_storage.dart +++ b/lib/widgets/common/action_mixins/entry_storage.dart @@ -46,7 +46,7 @@ mixin EntryStorageMixin on FeedbackMixin, PermissionAwareMixin, SizeAwareMixin { final destinationAlbumFilter = await pickAlbum( context: context, moveType: MoveType.export, - albumTypes: {AlbumChipType.stored}, + albumChipTypes: {AlbumChipType.stored}, initialGroup: null, ); if (destinationAlbumFilter == null || destinationAlbumFilter is! StoredAlbumFilter) return false; @@ -379,7 +379,7 @@ mixin EntryStorageMixin on FeedbackMixin, PermissionAwareMixin, SizeAwareMixin { final destinationAlbumFilter = await pickAlbum( context: context, moveType: moveType, - albumTypes: {AlbumChipType.stored}, + albumChipTypes: {AlbumChipType.stored}, initialGroup: null, ); if (destinationAlbumFilter == null || destinationAlbumFilter is! StoredAlbumFilter) return false; diff --git a/lib/widgets/dialogs/pick_dialogs/album_pick_page.dart b/lib/widgets/dialogs/pick_dialogs/album_pick_page.dart index 3a930bf3e..caf50b4f0 100644 --- a/lib/widgets/dialogs/pick_dialogs/album_pick_page.dart +++ b/lib/widgets/dialogs/pick_dialogs/album_pick_page.dart @@ -40,7 +40,7 @@ import 'package:provider/provider.dart'; Future pickAlbum({ required BuildContext context, required MoveType? moveType, - required Iterable albumTypes, + required Iterable albumChipTypes, required Uri? initialGroup, }) async { final source = context.read(); @@ -56,7 +56,7 @@ Future pickAlbum({ builder: (context) => _AlbumPickPage( source: source, moveType: moveType, - albumChipTypes: albumTypes, + albumChipTypes: albumChipTypes, initialGroup: initialGroup, ), ), diff --git a/lib/widgets/filter_grids/albums_page.dart b/lib/widgets/filter_grids/albums_page.dart index d85b297d7..0c2875080 100644 --- a/lib/widgets/filter_grids/albums_page.dart +++ b/lib/widgets/filter_grids/albums_page.dart @@ -97,7 +97,7 @@ class AlbumListPage extends StatelessWidget { static List> getAlbumGridItems( BuildContext context, CollectionSource source, - Iterable albumTypes, + Iterable albumChipTypes, Uri? groupUri, ) { final groupContent = albumGrouping.getDirectChildren(groupUri); @@ -110,7 +110,7 @@ class AlbumListPage extends StatelessWidget { } final listedStoredAlbums = {}; - if (albumTypes.contains(AlbumChipType.stored)) { + if (albumChipTypes.contains(AlbumChipType.stored)) { if (groupUri == null) { final withinGroups = whereTypeRecursively(groupContent).map((v) => v.album).toSet(); listedStoredAlbums.addAll(source.rawAlbums.whereNot(withinGroups.contains)); @@ -120,7 +120,7 @@ class AlbumListPage extends StatelessWidget { } final listedDynamicAlbums = {}; - if (albumTypes.contains(AlbumChipType.dynamic)) { + if (albumChipTypes.contains(AlbumChipType.dynamic)) { if (groupUri == null) { final withinGroups = whereTypeRecursively(groupContent).toSet(); listedDynamicAlbums.addAll(dynamicAlbums.all.whereNot(withinGroups.contains)); @@ -129,10 +129,8 @@ class AlbumListPage extends StatelessWidget { } } - final albumGroupFilters = {}; - if (albumTypes.contains(AlbumChipType.group)) { - albumGroupFilters.addAll(groupContent.whereType()); - } + // always show groups, which are needed to navigate to other types + final albumGroupFilters = groupContent.whereType().toSet(); final filters = { ...albumGroupFilters, diff --git a/lib/widgets/filter_grids/common/action_delegates/album_set.dart b/lib/widgets/filter_grids/common/action_delegates/album_set.dart index 1654d7fd8..f02c3e1b8 100644 --- a/lib/widgets/filter_grids/common/action_delegates/album_set.dart +++ b/lib/widgets/filter_grids/common/action_delegates/album_set.dart @@ -458,7 +458,7 @@ class AlbumChipSetActionDelegate extends ChipSetActionDelegate final filter = await pickAlbum( context: context, moveType: null, - albumTypes: {AlbumChipType.group}, + albumChipTypes: {AlbumChipType.group}, initialGroup: initialGroup, ); if (filter == null) return; diff --git a/lib/widgets/settings/navigation/drawer_tab_albums.dart b/lib/widgets/settings/navigation/drawer_tab_albums.dart index 84b2051ab..5ab310b2b 100644 --- a/lib/widgets/settings/navigation/drawer_tab_albums.dart +++ b/lib/widgets/settings/navigation/drawer_tab_albums.dart @@ -68,7 +68,7 @@ class _DrawerAlbumTabState extends State { final albumFilter = await pickAlbum( context: context, moveType: null, - albumTypes: AlbumChipType.values, + albumChipTypes: AlbumChipType.values, initialGroup: null, ); if (albumFilter == null || items.contains(albumFilter)) return;