map: sort entries by date when opening from filter grid
This commit is contained in:
parent
9a59bec05a
commit
d10fa5dc5e
1 changed files with 9 additions and 7 deletions
|
@ -110,6 +110,12 @@ abstract class ChipSetActionDelegate<T extends CollectionFilter> with FeedbackMi
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Iterable<AvesEntry> _selectedEntries(BuildContext context, Set<dynamic> filters) {
|
||||||
|
final source = context.read<CollectionSource>();
|
||||||
|
final visibleEntries = source.visibleEntries;
|
||||||
|
return filters.isEmpty ? visibleEntries : visibleEntries.where((entry) => filters.any((f) => f.test(entry)));
|
||||||
|
}
|
||||||
|
|
||||||
Future<void> _showSortDialog(BuildContext context) async {
|
Future<void> _showSortDialog(BuildContext context) async {
|
||||||
final factor = await showDialog<ChipSortFactor>(
|
final factor = await showDialog<ChipSortFactor>(
|
||||||
context: context,
|
context: context,
|
||||||
|
@ -131,30 +137,26 @@ abstract class ChipSetActionDelegate<T extends CollectionFilter> with FeedbackMi
|
||||||
}
|
}
|
||||||
|
|
||||||
void _goToMap(BuildContext context, Set<T> filters) {
|
void _goToMap(BuildContext context, Set<T> filters) {
|
||||||
final source = context.read<CollectionSource>();
|
|
||||||
final entries = filters.isEmpty ? source.visibleEntries : source.visibleEntries.where((entry) => filters.any((f) => f.test(entry)));
|
|
||||||
Navigator.push(
|
Navigator.push(
|
||||||
context,
|
context,
|
||||||
MaterialPageRoute(
|
MaterialPageRoute(
|
||||||
settings: const RouteSettings(name: MapPage.routeName),
|
settings: const RouteSettings(name: MapPage.routeName),
|
||||||
builder: (context) => MapPage(
|
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<T> filters) {
|
void _goToStats(BuildContext context, Set<T> filters) {
|
||||||
final source = context.read<CollectionSource>();
|
|
||||||
final entries = filters.isEmpty ? source.visibleEntries : source.visibleEntries.where((entry) => filters.any((f) => f.test(entry)));
|
|
||||||
Navigator.push(
|
Navigator.push(
|
||||||
context,
|
context,
|
||||||
MaterialPageRoute(
|
MaterialPageRoute(
|
||||||
settings: const RouteSettings(name: StatsPage.routeName),
|
settings: const RouteSettings(name: StatsPage.routeName),
|
||||||
builder: (context) {
|
builder: (context) {
|
||||||
return StatsPage(
|
return StatsPage(
|
||||||
entries: entries.toSet(),
|
entries: _selectedEntries(context, filters).toSet(),
|
||||||
source: source,
|
source: context.read<CollectionSource>(),
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
|
|
Loading…
Reference in a new issue