From 8f9303bc0fddb9d179303a1f0eb76dd5b02410e7 Mon Sep 17 00:00:00 2001 From: Kingkor Roy Tirtho Date: Sun, 30 Apr 2023 17:02:33 +0600 Subject: [PATCH] fix: mobile audio notification not working --- lib/provider/playlist_queue_provider.dart | 2 +- .../audio_services/audio_services.dart | 22 ++++++++++++++----- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/lib/provider/playlist_queue_provider.dart b/lib/provider/playlist_queue_provider.dart index 566efeed..3188fd46 100644 --- a/lib/provider/playlist_queue_provider.dart +++ b/lib/provider/playlist_queue_provider.dart @@ -150,7 +150,7 @@ class PlaylistQueueNotifier extends PersistedStateNotifier { } void configure() async { - audioServices = AudioServices(ref, this); + audioServices = await AudioServices.create(ref, this); audioPlayer.onPlayerComplete.listen((event) async { if (!isLoaded) return; diff --git a/lib/services/audio_services/audio_services.dart b/lib/services/audio_services/audio_services.dart index 3293f02a..31faff98 100644 --- a/lib/services/audio_services/audio_services.dart +++ b/lib/services/audio_services/audio_services.dart @@ -14,14 +14,24 @@ class AudioServices { final WindowsAudioService? smtc; 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 create( + Ref ref, + PlaylistQueueNotifier playlistQueueNotifier, + ) async { final mobile = DesktopTools.platform.isMobile || DesktopTools.platform.isMacOS - ? MobileAudioService( - playlistQueueNotifier, - ref.read(VolumeProvider.provider.notifier), + ? await AudioService.init( + builder: () => MobileAudioService( + playlistQueueNotifier, + ref.read(VolumeProvider.provider.notifier), + ), + config: const AudioServiceConfig( + androidNotificationChannelId: 'com.krtirtho.Spotube', + androidNotificationChannelName: 'Spotube', + androidNotificationOngoing: true, + ), ) : null; final smtc = DesktopTools.platform.isWindows @@ -31,7 +41,7 @@ class AudioServices { ? LinuxAudioService(ref, playlistQueueNotifier) : null; - return AudioServices._(mobile, smtc, mpris); + return AudioServices(mobile, smtc, mpris); } Future addTrack(Track track) async {