spotube/lib/provider/audio_player/querying_track_info.dart
2024-06-24 21:43:09 +06:00

21 lines
784 B
Dart

import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:spotube/provider/audio_player/audio_player.dart';
import 'package:spotube/provider/server/sourced_track.dart';
import 'package:spotube/services/audio_player/audio_player.dart';
final queryingTrackInfoProvider = Provider<bool>((ref) {
final media = audioPlayer.playlist.index == -1
? null
: audioPlayer.playlist.medias.elementAtOrNull(audioPlayer.playlist.index);
final audioPlayerActiveTrack =
media == null ? null : SpotubeMedia.fromMedia(media).track;
final activeTrack =
ref.watch(audioPlayerProvider.select((s) => s.activeTrack)) ??
audioPlayerActiveTrack;
if (activeTrack == null) return false;
return ref.watch(sourcedTrackProvider(activeTrack)).isLoading;
});