import 'package:spotiflac_android/models/track.dart'; import 'package:spotiflac_android/screens/track_history_snapshot.dart'; import 'package:spotiflac_android/providers/library_collections_provider.dart'; import 'package:spotiflac_android/services/history_database.dart'; /// Collection providers replace their track list when its contents change. /// Keep derived data across selection/layout rebuilds of the same snapshot. class LibraryTracksFolderData { List? _entries; Set keys = const {}; List tracks = const []; final _history = TrackHistorySnapshot(); HistoryBatchLookupRequest get historyRequest => _history.request; void update(List entries) { if (identical(entries, _entries)) return; _entries = entries; keys = Set.unmodifiable(entries.map((entry) => entry.key)); tracks = List.unmodifiable(entries.map((entry) => entry.track)); _history.update(tracks); } }