diff --git a/flutter_client/lib/player/player_provider.dart b/flutter_client/lib/player/player_provider.dart index 5e11bda0..43107b63 100644 --- a/flutter_client/lib/player/player_provider.dart +++ b/flutter_client/lib/player/player_provider.dart @@ -2,13 +2,21 @@ import 'package:audio_service/audio_service.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import '../auth/auth_provider.dart'; +import '../library/library_providers.dart' show dioProvider; import '../models/track.dart'; +import 'album_cover_cache.dart'; import 'audio_handler.dart'; final audioHandlerProvider = Provider((ref) { throw UnimplementedError('overridden in main()'); }); +final albumCoverCacheProvider = Provider((ref) { + return AlbumCoverCache( + dioFactory: () => ref.read(dioProvider.future), + ); +}); + final playbackStateProvider = StreamProvider( (ref) => ref.watch(audioHandlerProvider).playbackState, ); @@ -28,7 +36,9 @@ class PlayerActions { Future playTracks(List tracks, {int initialIndex = 0}) async { final url = await _ref.read(serverUrlProvider.future); final token = await _ref.read(secureStorageProvider).read(key: 'session_token'); - final h = _ref.read(audioHandlerProvider)..configure(baseUrl: url ?? '', token: token); + final cache = _ref.read(albumCoverCacheProvider); + final h = _ref.read(audioHandlerProvider) + ..configure(baseUrl: url ?? '', token: token, coverCache: cache); await h.setQueueFromTracks(tracks, initialIndex: initialIndex); await h.play(); }