Set queue for mediaSession so that it (mostly next song) can be read by other apps
This commit is contained in:
parent
fcac420ac3
commit
8d81424365
2 changed files with 18 additions and 1 deletions
|
@ -1,6 +1,20 @@
|
||||||
package code.name.monkey.retromusic.extensions
|
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.model.Song
|
||||||
import code.name.monkey.retromusic.util.MusicUtil
|
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())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -56,6 +56,7 @@ import code.name.monkey.retromusic.appwidgets.*
|
||||||
import code.name.monkey.retromusic.auto.AutoMediaIDHelper
|
import code.name.monkey.retromusic.auto.AutoMediaIDHelper
|
||||||
import code.name.monkey.retromusic.auto.AutoMusicProvider
|
import code.name.monkey.retromusic.auto.AutoMusicProvider
|
||||||
import code.name.monkey.retromusic.extensions.showToast
|
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.BlurTransformation
|
||||||
import code.name.monkey.retromusic.glide.GlideApp
|
import code.name.monkey.retromusic.glide.GlideApp
|
||||||
import code.name.monkey.retromusic.glide.RetroGlideExtension.getDefaultTransition
|
import code.name.monkey.retromusic.glide.RetroGlideExtension.getDefaultTransition
|
||||||
|
@ -1225,6 +1226,8 @@ class MusicService : MediaBrowserServiceCompat(),
|
||||||
songPlayCountHelper.notifySongChanged(currentSong)
|
songPlayCountHelper.notifySongChanged(currentSong)
|
||||||
}
|
}
|
||||||
QUEUE_CHANGED -> {
|
QUEUE_CHANGED -> {
|
||||||
|
mediaSession?.setQueueTitle(getString(R.string.now_playing_queue))
|
||||||
|
mediaSession?.setQueue(playingQueue.toMediaSessionQueue())
|
||||||
updateMediaSessionMetaData() // because playing queue size might have changed
|
updateMediaSessionMetaData() // because playing queue size might have changed
|
||||||
saveState()
|
saveState()
|
||||||
if (playingQueue.size > 0) {
|
if (playingQueue.size > 0) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue