import 'dart:async'; import 'package:aves/model/filters/covered/stored_album.dart'; import 'package:aves/model/filters/filters.dart'; import 'package:aves/model/source/collection_source.dart'; import 'package:aves/widgets/common/action_controls/quick_choosers/common/menu.dart'; import 'package:aves/widgets/common/action_controls/quick_choosers/filter_quick_chooser_mixin.dart'; import 'package:aves/widgets/common/extensions/build_context.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; class AlbumQuickChooser extends StatelessWidget with FilterQuickChooserMixin { final ValueNotifier valueNotifier; @override final List options; final bool blurred; final PopupMenuPosition chooserPosition; final Stream pointerGlobalPosition; const AlbumQuickChooser({ super.key, required this.valueNotifier, required this.options, required this.blurred, required this.chooserPosition, required this.pointerGlobalPosition, }); @override Widget build(BuildContext context) { return MenuQuickChooser( valueNotifier: valueNotifier, options: options, autoReverse: true, blurred: blurred, chooserPosition: chooserPosition, pointerGlobalPosition: pointerGlobalPosition, maxTotalOptionCount: FilterQuickChooserMixin.maxTotalOptionCount, itemHeight: computeItemHeight(context), contentWidth: computeLargestItemWidth, itemBuilder: itemBuilder, emptyBuilder: (context) => Text(context.l10n.albumEmpty), ); } @override CollectionFilter buildFilter(BuildContext context, String option) { final source = context.read(); return StoredAlbumFilter(option, source.getStoredAlbumDisplayName(context, option)); } }