mirror of
https://github.com/KRTirtho/spotube.git
synced 2026-09-20 06:34:00 +00:00
fix: await notification service before adding track to avoid race condition
This commit is contained in:
parent
69a310c78f
commit
bb006fd3cc
@ -19,11 +19,10 @@ import 'package:spotube/services/logger/logger.dart';
|
|||||||
|
|
||||||
class AudioPlayerStreamListeners {
|
class AudioPlayerStreamListeners {
|
||||||
final Ref ref;
|
final Ref ref;
|
||||||
late final AudioServices notificationService;
|
late final Future<AudioServices> notificationServiceFuture;
|
||||||
AudioPlayerStreamListeners(this.ref) {
|
AudioPlayerStreamListeners(this.ref) {
|
||||||
AudioServices.create(ref, ref.read(audioPlayerProvider.notifier)).then(
|
notificationServiceFuture =
|
||||||
(value) => notificationService = value,
|
AudioServices.create(ref, ref.read(audioPlayerProvider.notifier));
|
||||||
);
|
|
||||||
|
|
||||||
final subscriptions = [
|
final subscriptions = [
|
||||||
subscribeToPlaylist(),
|
subscribeToPlaylist(),
|
||||||
@ -48,10 +47,11 @@ class AudioPlayerStreamListeners {
|
|||||||
ref.read(playbackHistoryActionsProvider);
|
ref.read(playbackHistoryActionsProvider);
|
||||||
|
|
||||||
StreamSubscription subscribeToPlaylist() {
|
StreamSubscription subscribeToPlaylist() {
|
||||||
return audioPlayer.playlistStream.listen((mpvPlaylist) {
|
return audioPlayer.playlistStream.listen((mpvPlaylist) async {
|
||||||
try {
|
try {
|
||||||
if (audioPlayerState.activeTrack == null) return;
|
if (audioPlayerState.activeTrack == null) return;
|
||||||
notificationService.addTrack(audioPlayerState.activeTrack!);
|
final notificationService = await notificationServiceFuture;
|
||||||
|
await notificationService.addTrack(audioPlayerState.activeTrack!);
|
||||||
discord.updatePresence(audioPlayerState.activeTrack!);
|
discord.updatePresence(audioPlayerState.activeTrack!);
|
||||||
} catch (e, stack) {
|
} catch (e, stack) {
|
||||||
AppLogger.reportError(e, stack);
|
AppLogger.reportError(e, stack);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user