fix(play_overlay): show progress indicator on song loading

This commit is contained in:
Kingkor Roy Tirtho 2023-03-07 12:13:07 +06:00
parent 42b3e111f8
commit 7803a48237
2 changed files with 13 additions and 14 deletions

View File

@ -28,14 +28,6 @@ class PlayPauseAction extends Action<PlayPauseIntent> {
if (playlist == null) { if (playlist == null) {
return null; return null;
} else if (!PlaylistQueueNotifier.isPlaying) { } else if (!PlaylistQueueNotifier.isPlaying) {
// if (playlist.activeTrack is SpotubeTrack &&
// (playlist.activeTrack as SpotubeTrack).ytUri.startsWith("http")) {
// final track =
// Track.fromJson((playlist.activeTrack as SpotubeTrack).toJson());
// await playlistNotifier.play(track);
// } else {
// }
await playlistNotifier.play(); await playlistNotifier.play();
} else { } else {
await playlistNotifier.pause(); await playlistNotifier.pause();

View File

@ -27,6 +27,7 @@ class PlayerOverlay extends HookConsumerWidget {
PlaylistQueueNotifier.provider.select((s) => s != null), PlaylistQueueNotifier.provider.select((s) => s != null),
); );
final playlistNotifier = ref.watch(PlaylistQueueNotifier.notifier); final playlistNotifier = ref.watch(PlaylistQueueNotifier.notifier);
final playlist = ref.watch(PlaylistQueueNotifier.provider);
final playing = useStream(PlaylistQueueNotifier.playing).data ?? final playing = useStream(PlaylistQueueNotifier.playing).data ??
PlaylistQueueNotifier.isPlaying; PlaylistQueueNotifier.isPlaying;
@ -87,12 +88,18 @@ class PlayerOverlay extends HookConsumerWidget {
Consumer( Consumer(
builder: (context, ref, _) { builder: (context, ref, _) {
return IconButton( return IconButton(
icon: Icon( icon: playlist?.isLoading == true
playing ? const SizedBox(
? SpotubeIcons.pause height: 20,
: SpotubeIcons.play, width: 20,
color: paletteColor.bodyTextColor, child: CircularProgressIndicator(),
), )
: Icon(
playing
? SpotubeIcons.pause
: SpotubeIcons.play,
color: paletteColor.bodyTextColor,
),
onPressed: Actions.handler<PlayPauseIntent>( onPressed: Actions.handler<PlayPauseIntent>(
context, context,
PlayPauseIntent(ref), PlayPauseIntent(ref),