mirror of
https://github.com/KRTirtho/spotube.git
synced 2025-09-12 23:45:18 +00:00
chore: fix alternative track sources not showing up
This commit is contained in:
parent
75173e5096
commit
a621a45f0b
@ -11,6 +11,7 @@ import 'package:spotube/extensions/context.dart';
|
||||
import 'package:spotube/extensions/duration.dart';
|
||||
import 'package:spotube/modules/player/use_progress.dart';
|
||||
import 'package:spotube/models/logger.dart';
|
||||
import 'package:spotube/provider/audio_player/audio_player.dart';
|
||||
import 'package:spotube/provider/audio_player/querying_track_info.dart';
|
||||
import 'package:spotube/services/audio_player/audio_player.dart';
|
||||
|
||||
@ -232,32 +233,38 @@ class PlayerControls extends HookConsumerWidget {
|
||||
onPressed:
|
||||
isFetchingActiveTrack ? null : audioPlayer.skipToNext,
|
||||
),
|
||||
StreamBuilder<PlaylistMode>(
|
||||
stream: audioPlayer.loopModeStream,
|
||||
builder: (context, snapshot) {
|
||||
final loopMode = snapshot.data ?? PlaylistMode.none;
|
||||
return IconButton(
|
||||
tooltip: loopMode == PlaylistMode.single
|
||||
? context.l10n.loop_track
|
||||
: loopMode == PlaylistMode.loop
|
||||
? context.l10n.repeat_playlist
|
||||
: null,
|
||||
icon: Icon(
|
||||
loopMode == PlaylistMode.single
|
||||
? SpotubeIcons.repeatOne
|
||||
: SpotubeIcons.repeat,
|
||||
),
|
||||
style: loopMode == PlaylistMode.single ||
|
||||
loopMode == PlaylistMode.loop
|
||||
? activeButtonStyle
|
||||
: buttonStyle,
|
||||
onPressed: isFetchingActiveTrack
|
||||
? null
|
||||
: () async {
|
||||
await audioPlayer.setLoopMode(loopMode);
|
||||
Consumer(builder: (context, ref, _) {
|
||||
final loopMode = ref
|
||||
.watch(audioPlayerProvider.select((s) => s.loopMode));
|
||||
|
||||
return IconButton(
|
||||
tooltip: loopMode == PlaylistMode.single
|
||||
? context.l10n.loop_track
|
||||
: loopMode == PlaylistMode.loop
|
||||
? context.l10n.repeat_playlist
|
||||
: null,
|
||||
icon: Icon(
|
||||
loopMode == PlaylistMode.single
|
||||
? SpotubeIcons.repeatOne
|
||||
: SpotubeIcons.repeat,
|
||||
),
|
||||
style: loopMode == PlaylistMode.single ||
|
||||
loopMode == PlaylistMode.loop
|
||||
? activeButtonStyle
|
||||
: buttonStyle,
|
||||
onPressed: isFetchingActiveTrack
|
||||
? null
|
||||
: () async {
|
||||
await audioPlayer.setLoopMode(
|
||||
switch (loopMode) {
|
||||
PlaylistMode.loop => PlaylistMode.single,
|
||||
PlaylistMode.single => PlaylistMode.none,
|
||||
PlaylistMode.none => PlaylistMode.loop,
|
||||
},
|
||||
);
|
||||
}),
|
||||
);
|
||||
},
|
||||
);
|
||||
}),
|
||||
],
|
||||
),
|
||||
const SizedBox(height: 5)
|
||||
|
@ -131,13 +131,13 @@ class SiblingTracksSheet extends HookConsumerWidget {
|
||||
]);
|
||||
|
||||
final siblings = useMemoized(
|
||||
() => isFetchingActiveTrack
|
||||
() => !isFetchingActiveTrack
|
||||
? [
|
||||
(activeTrack as SourcedTrack).sourceInfo,
|
||||
...activeTrack.siblings,
|
||||
]
|
||||
: <SourceInfo>[],
|
||||
[activeTrack],
|
||||
[activeTrack, isFetchingActiveTrack],
|
||||
);
|
||||
|
||||
final borderRadius = floating
|
||||
|
@ -1,12 +1,20 @@
|
||||
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));
|
||||
ref.watch(audioPlayerProvider.select((s) => s.activeTrack)) ??
|
||||
audioPlayerActiveTrack;
|
||||
|
||||
if (activeTrack == null) return false;
|
||||
|
||||
return ref.read(sourcedTrackProvider(activeTrack)).isLoading;
|
||||
return ref.watch(sourcedTrackProvider(activeTrack)).isLoading;
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user