mirror of
https://github.com/zarzet/SpotiFLAC-Mobile.git
synced 2026-07-29 23:38:50 +02:00
perf(library): lazy-load collections and dispose queries
This commit is contained in:
@@ -189,13 +189,13 @@ extension _QueueTabSelectionActions on _QueueTabState {
|
||||
|
||||
Future<void> _downloadAllSelectedPlaylists(BuildContext context) async {
|
||||
final collectionsState = ref.read(libraryCollectionsProvider);
|
||||
final selectedPlaylists = collectionsState.playlists
|
||||
var selectedPlaylists = collectionsState.playlists
|
||||
.where((p) => _selectedPlaylistIds.contains(p.id))
|
||||
.toList();
|
||||
|
||||
final totalTracks = selectedPlaylists.fold<int>(
|
||||
0,
|
||||
(sum, p) => sum + p.tracks.length,
|
||||
(sum, p) => sum + p.trackCount,
|
||||
);
|
||||
|
||||
if (totalTracks == 0) {
|
||||
@@ -230,6 +230,18 @@ extension _QueueTabSelectionActions on _QueueTabState {
|
||||
|
||||
if (confirmed != true || !context.mounted) return;
|
||||
|
||||
await ref
|
||||
.read(libraryCollectionsProvider.notifier)
|
||||
.ensurePlaylistsLoaded(
|
||||
selectedPlaylists.map((playlist) => playlist.id),
|
||||
);
|
||||
if (!context.mounted) return;
|
||||
selectedPlaylists = ref
|
||||
.read(libraryCollectionsProvider)
|
||||
.playlists
|
||||
.where((playlist) => _selectedPlaylistIds.contains(playlist.id))
|
||||
.toList(growable: false);
|
||||
|
||||
final settings = ref.read(settingsProvider);
|
||||
final extensionState = ref.read(extensionProvider);
|
||||
final queueNotifier = ref.read(downloadQueueProvider.notifier);
|
||||
|
||||
Reference in New Issue
Block a user