From 4e16d7b41debebdff1bde89bf9ec21384f8e13a0 Mon Sep 17 00:00:00 2001 From: vfsfitvnm Date: Sun, 26 Jun 2022 21:16:57 +0200 Subject: [PATCH] Fix song transition in notification --- .../vimusic/services/PlayerService.kt | 21 +++++++++---------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/app/src/main/kotlin/it/vfsfitvnm/vimusic/services/PlayerService.kt b/app/src/main/kotlin/it/vfsfitvnm/vimusic/services/PlayerService.kt index 6b6584e..d696006 100644 --- a/app/src/main/kotlin/it/vfsfitvnm/vimusic/services/PlayerService.kt +++ b/app/src/main/kotlin/it/vfsfitvnm/vimusic/services/PlayerService.kt @@ -1,5 +1,6 @@ package it.vfsfitvnm.vimusic.services +import android.annotation.SuppressLint import android.app.Notification import android.app.NotificationChannel import android.app.NotificationManager @@ -83,6 +84,7 @@ class PlayerService : Service(), Player.Listener, PlaybackStatsListener.Callback private val songPendingLoudnessDb = mutableMapOf() private val mediaControllerCallback = object : MediaControllerCompat.Callback() { + @SuppressLint("SwitchIntDef") override fun onPlaybackStateChanged(state: PlaybackStateCompat?) { when (state?.state) { STATE_PLAYING -> { @@ -100,7 +102,14 @@ class PlayerService : Service(), Player.Listener, PlaybackStatsListener.Callback notificationManager.notify(NotificationId, notification()) } } - else -> {} + STATE_NONE -> { + if (player.duration != C.TIME_UNSET) { + metadataBuilder + .putLong(MediaMetadataCompat.METADATA_KEY_DURATION, player.duration) + mediaSession.setMetadata(metadataBuilder.build()) + } + notificationManager.notify(NotificationId, notification()) + } } } } @@ -255,16 +264,6 @@ class PlayerService : Service(), Player.Listener, PlaybackStatsListener.Callback } } - override fun onPlaybackStateChanged(@Player.State playbackState: Int) { - if (playbackState == Player.STATE_READY) { - if (player.duration != C.TIME_UNSET) { - metadataBuilder - .putLong(MediaMetadataCompat.METADATA_KEY_DURATION, player.duration) - mediaSession.setMetadata(metadataBuilder.build()) - } - } - } - override fun onPositionDiscontinuity( oldPosition: Player.PositionInfo, newPosition: Player.PositionInfo,