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 {
audioServices = AudioServices(ref, this);
audioServices = await AudioServices.create(ref, this);
audioPlayer.onPlayerComplete.listen((event) async {
if (!isLoaded) return;

View File

@ -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<AudioServices> 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<void> addTrack(Track track) async {