Set queue for mediaSession so that it (mostly next song) can be read by other apps

This commit is contained in:
Prathamesh More 2022-05-12 00:04:50 +05:30
parent fcac420ac3
commit 8d81424365
2 changed files with 18 additions and 1 deletions

View file

@ -1,6 +1,20 @@
package code.name.monkey.retromusic.extensions
import android.support.v4.media.MediaDescriptionCompat
import android.support.v4.media.session.MediaSessionCompat.QueueItem
import code.name.monkey.retromusic.model.Song
import code.name.monkey.retromusic.util.MusicUtil
val Song.uri get() = MusicUtil.getSongFileUri(songId = id)
val Song.uri get() = MusicUtil.getSongFileUri(songId = id)
fun ArrayList<Song>.toMediaSessionQueue(): List<QueueItem> {
return map {
val mediaDescription = MediaDescriptionCompat.Builder()
.setMediaId(it.id.toString())
.setTitle(it.title)
.setSubtitle(it.artistName)
.build()
QueueItem(mediaDescription, it.hashCode().toLong())
}
}

View file

@ -56,6 +56,7 @@ import code.name.monkey.retromusic.appwidgets.*
import code.name.monkey.retromusic.auto.AutoMediaIDHelper
import code.name.monkey.retromusic.auto.AutoMusicProvider
import code.name.monkey.retromusic.extensions.showToast
import code.name.monkey.retromusic.extensions.toMediaSessionQueue
import code.name.monkey.retromusic.glide.BlurTransformation
import code.name.monkey.retromusic.glide.GlideApp
import code.name.monkey.retromusic.glide.RetroGlideExtension.getDefaultTransition
@ -1225,6 +1226,8 @@ class MusicService : MediaBrowserServiceCompat(),
songPlayCountHelper.notifySongChanged(currentSong)
}
QUEUE_CHANGED -> {
mediaSession?.setQueueTitle(getString(R.string.now_playing_queue))
mediaSession?.setQueue(playingQueue.toMediaSessionQueue())
updateMediaSessionMetaData() // because playing queue size might have changed
saveState()
if (playingQueue.size > 0) {