diff --git a/app/src/main/java/code/name/monkey/retromusic/extensions/SongExtensions.kt b/app/src/main/java/code/name/monkey/retromusic/extensions/SongExtensions.kt index 3565ac486..f51331c2a 100644 --- a/app/src/main/java/code/name/monkey/retromusic/extensions/SongExtensions.kt +++ b/app/src/main/java/code/name/monkey/retromusic/extensions/SongExtensions.kt @@ -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) \ No newline at end of file +val Song.uri get() = MusicUtil.getSongFileUri(songId = id) + + +fun ArrayList.toMediaSessionQueue(): List { + return map { + val mediaDescription = MediaDescriptionCompat.Builder() + .setMediaId(it.id.toString()) + .setTitle(it.title) + .setSubtitle(it.artistName) + .build() + QueueItem(mediaDescription, it.hashCode().toLong()) + } +} diff --git a/app/src/main/java/code/name/monkey/retromusic/service/MusicService.kt b/app/src/main/java/code/name/monkey/retromusic/service/MusicService.kt index 72005339d..20796815c 100644 --- a/app/src/main/java/code/name/monkey/retromusic/service/MusicService.kt +++ b/app/src/main/java/code/name/monkey/retromusic/service/MusicService.kt @@ -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) {