fix: mobile audio notification not working

This commit is contained in:
Kingkor Roy Tirtho 2023-04-30 17:02:33 +06:00
parent ce10aa1fe2
commit 8f9303bc0f
2 changed files with 17 additions and 7 deletions

View File

@ -150,7 +150,7 @@ class PlaylistQueueNotifier extends PersistedStateNotifier<PlaylistQueue?> {
} }
void configure() async { void configure() async {
audioServices = AudioServices(ref, this); audioServices = await AudioServices.create(ref, this);
audioPlayer.onPlayerComplete.listen((event) async { audioPlayer.onPlayerComplete.listen((event) async {
if (!isLoaded) return; if (!isLoaded) return;

View File

@ -14,14 +14,24 @@ class AudioServices {
final WindowsAudioService? smtc; final WindowsAudioService? smtc;
final LinuxAudioService? mpris; final LinuxAudioService? mpris;
AudioServices._(this.mobile, this.smtc, this.mpris); AudioServices(this.mobile, this.smtc, this.mpris);
factory AudioServices(Ref ref, PlaylistQueueNotifier playlistQueueNotifier) { static Future<AudioServices> create(
Ref ref,
PlaylistQueueNotifier playlistQueueNotifier,
) async {
final mobile = final mobile =
DesktopTools.platform.isMobile || DesktopTools.platform.isMacOS DesktopTools.platform.isMobile || DesktopTools.platform.isMacOS
? MobileAudioService( ? await AudioService.init(
builder: () => MobileAudioService(
playlistQueueNotifier, playlistQueueNotifier,
ref.read(VolumeProvider.provider.notifier), ref.read(VolumeProvider.provider.notifier),
),
config: const AudioServiceConfig(
androidNotificationChannelId: 'com.krtirtho.Spotube',
androidNotificationChannelName: 'Spotube',
androidNotificationOngoing: true,
),
) )
: null; : null;
final smtc = DesktopTools.platform.isWindows final smtc = DesktopTools.platform.isWindows
@ -31,7 +41,7 @@ class AudioServices {
? LinuxAudioService(ref, playlistQueueNotifier) ? LinuxAudioService(ref, playlistQueueNotifier)
: null; : null;
return AudioServices._(mobile, smtc, mpris); return AudioServices(mobile, smtc, mpris);
} }
Future<void> addTrack(Track track) async { Future<void> addTrack(Track track) async {