Added album cover to MediaSession (for WearOS media controls, and future Chromecast support).

This commit is contained in:
Antoine POPINEAU 2019-10-30 22:21:02 +01:00
parent d40a2e3702
commit 43ffffa68f
No known key found for this signature in database
GPG Key ID: A78AC64694F84063
1 changed files with 8 additions and 3 deletions

View File

@ -43,10 +43,17 @@ class MediaControlsManager(val context: Service, private val mediaSession: Media
val openIntent = Intent(context, MainActivity::class.java).apply { action = NOTIFICATION_ACTION_OPEN_QUEUE.toString() }
val openPendingIntent = PendingIntent.getActivity(context, 0, openIntent, 0)
val coverUrl = maybeNormalizeUrl(track.album.cover.original)
val cover = coverUrl?.run { Picasso.get().load(coverUrl) }
mediaSession.setMetadata(MediaMetadataCompat.Builder().apply {
putString(MediaMetadata.METADATA_KEY_ARTIST, track.artist.name)
putString(MediaMetadata.METADATA_KEY_TITLE, track.title)
putLong(MediaMetadata.METADATA_KEY_DURATION, (track.bestUpload()?.duration?.toLong() ?: 0L) * 1000)
cover?.let {
putBitmap(MediaMetadata.METADATA_KEY_ALBUM_ART, it.get())
}
}.build())
notification = NotificationCompat.Builder(
@ -61,9 +68,7 @@ class MediaControlsManager(val context: Service, private val mediaSession: Media
)
.setSmallIcon(R.drawable.ottericon)
.run {
val url = maybeNormalizeUrl(track.album.cover.original)
if (url != null) setLargeIcon(Picasso.get().load(url).get())
if (cover != null) setLargeIcon(cover.get())
else this
}
.setContentTitle(track.title)