From 43ffffa68fcf542f8c91ec2bc41f771025118d2d Mon Sep 17 00:00:00 2001 From: Antoine POPINEAU Date: Wed, 30 Oct 2019 22:21:02 +0100 Subject: [PATCH] Added album cover to MediaSession (for WearOS media controls, and future Chromecast support). --- .../apognu/otter/playback/MediaControlsManager.kt | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/github/apognu/otter/playback/MediaControlsManager.kt b/app/src/main/java/com/github/apognu/otter/playback/MediaControlsManager.kt index 380cae5..646b327 100644 --- a/app/src/main/java/com/github/apognu/otter/playback/MediaControlsManager.kt +++ b/app/src/main/java/com/github/apognu/otter/playback/MediaControlsManager.kt @@ -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)