mirror of
https://github.com/KRTirtho/spotube.git
synced 2025-09-13 07:55: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/extensions/duration.dart';
|
||||||
import 'package:spotube/modules/player/use_progress.dart';
|
import 'package:spotube/modules/player/use_progress.dart';
|
||||||
import 'package:spotube/models/logger.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/provider/audio_player/querying_track_info.dart';
|
||||||
import 'package:spotube/services/audio_player/audio_player.dart';
|
import 'package:spotube/services/audio_player/audio_player.dart';
|
||||||
|
|
||||||
@ -232,10 +233,10 @@ class PlayerControls extends HookConsumerWidget {
|
|||||||
onPressed:
|
onPressed:
|
||||||
isFetchingActiveTrack ? null : audioPlayer.skipToNext,
|
isFetchingActiveTrack ? null : audioPlayer.skipToNext,
|
||||||
),
|
),
|
||||||
StreamBuilder<PlaylistMode>(
|
Consumer(builder: (context, ref, _) {
|
||||||
stream: audioPlayer.loopModeStream,
|
final loopMode = ref
|
||||||
builder: (context, snapshot) {
|
.watch(audioPlayerProvider.select((s) => s.loopMode));
|
||||||
final loopMode = snapshot.data ?? PlaylistMode.none;
|
|
||||||
return IconButton(
|
return IconButton(
|
||||||
tooltip: loopMode == PlaylistMode.single
|
tooltip: loopMode == PlaylistMode.single
|
||||||
? context.l10n.loop_track
|
? context.l10n.loop_track
|
||||||
@ -254,7 +255,13 @@ class PlayerControls extends HookConsumerWidget {
|
|||||||
onPressed: isFetchingActiveTrack
|
onPressed: isFetchingActiveTrack
|
||||||
? null
|
? null
|
||||||
: () async {
|
: () async {
|
||||||
await audioPlayer.setLoopMode(loopMode);
|
await audioPlayer.setLoopMode(
|
||||||
|
switch (loopMode) {
|
||||||
|
PlaylistMode.loop => PlaylistMode.single,
|
||||||
|
PlaylistMode.single => PlaylistMode.none,
|
||||||
|
PlaylistMode.none => PlaylistMode.loop,
|
||||||
|
},
|
||||||
|
);
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
}),
|
}),
|
||||||
|
@ -131,13 +131,13 @@ class SiblingTracksSheet extends HookConsumerWidget {
|
|||||||
]);
|
]);
|
||||||
|
|
||||||
final siblings = useMemoized(
|
final siblings = useMemoized(
|
||||||
() => isFetchingActiveTrack
|
() => !isFetchingActiveTrack
|
||||||
? [
|
? [
|
||||||
(activeTrack as SourcedTrack).sourceInfo,
|
(activeTrack as SourcedTrack).sourceInfo,
|
||||||
...activeTrack.siblings,
|
...activeTrack.siblings,
|
||||||
]
|
]
|
||||||
: <SourceInfo>[],
|
: <SourceInfo>[],
|
||||||
[activeTrack],
|
[activeTrack, isFetchingActiveTrack],
|
||||||
);
|
);
|
||||||
|
|
||||||
final borderRadius = floating
|
final borderRadius = floating
|
||||||
|
@ -1,12 +1,20 @@
|
|||||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||||
import 'package:spotube/provider/audio_player/audio_player.dart';
|
import 'package:spotube/provider/audio_player/audio_player.dart';
|
||||||
import 'package:spotube/provider/server/sourced_track.dart';
|
import 'package:spotube/provider/server/sourced_track.dart';
|
||||||
|
import 'package:spotube/services/audio_player/audio_player.dart';
|
||||||
|
|
||||||
final queryingTrackInfoProvider = Provider<bool>((ref) {
|
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 =
|
final activeTrack =
|
||||||
ref.watch(audioPlayerProvider.select((s) => s.activeTrack));
|
ref.watch(audioPlayerProvider.select((s) => s.activeTrack)) ??
|
||||||
|
audioPlayerActiveTrack;
|
||||||
|
|
||||||
if (activeTrack == null) return false;
|
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