diff --git a/lib/widgets/filter_grids/common/action_delegates/chip_set.dart b/lib/widgets/filter_grids/common/action_delegates/chip_set.dart index 6612f056d..f19673c07 100644 --- a/lib/widgets/filter_grids/common/action_delegates/chip_set.dart +++ b/lib/widgets/filter_grids/common/action_delegates/chip_set.dart @@ -110,6 +110,12 @@ abstract class ChipSetActionDelegate with FeedbackMi } } + Iterable _selectedEntries(BuildContext context, Set filters) { + final source = context.read(); + final visibleEntries = source.visibleEntries; + return filters.isEmpty ? visibleEntries : visibleEntries.where((entry) => filters.any((f) => f.test(entry))); + } + Future _showSortDialog(BuildContext context) async { final factor = await showDialog( context: context, @@ -131,30 +137,26 @@ abstract class ChipSetActionDelegate with FeedbackMi } void _goToMap(BuildContext context, Set filters) { - final source = context.read(); - final entries = filters.isEmpty ? source.visibleEntries : source.visibleEntries.where((entry) => filters.any((f) => f.test(entry))); Navigator.push( context, MaterialPageRoute( settings: const RouteSettings(name: MapPage.routeName), builder: (context) => MapPage( - entries: entries.where((entry) => entry.hasGps).toList(), + entries: _selectedEntries(context, filters).where((entry) => entry.hasGps).toList()..sort(AvesEntry.compareByDate), ), ), ); } void _goToStats(BuildContext context, Set filters) { - final source = context.read(); - final entries = filters.isEmpty ? source.visibleEntries : source.visibleEntries.where((entry) => filters.any((f) => f.test(entry))); Navigator.push( context, MaterialPageRoute( settings: const RouteSettings(name: StatsPage.routeName), builder: (context) { return StatsPage( - entries: entries.toSet(), - source: source, + entries: _selectedEntries(context, filters).toSet(), + source: context.read(), ); }, ),