From 0f525befcaff42e7ff9d0ecad13bde92879e1c67 Mon Sep 17 00:00:00 2001 From: Morgan Lim Date: Tue, 7 Jul 2020 01:34:13 -0400 Subject: [PATCH] change notification small icon to a white version of the audinaut logo instead of a generic play icon. add additional info to metadata when constructing notification to add basic support for android R's new persistent media controls (cherry picked from commit ad5615d2bd43b7afe388e08a6a2df07472656b89) --- .../nullsum/audinaut/util/Notifications.java | 16 +++++++++++--- .../main/res/drawable/notification_logo.xml | 22 +++++++++++++++++++ 2 files changed, 35 insertions(+), 3 deletions(-) create mode 100644 app/src/main/res/drawable/notification_logo.xml diff --git a/app/src/main/java/net/nullsum/audinaut/util/Notifications.java b/app/src/main/java/net/nullsum/audinaut/util/Notifications.java index c0932e5..bce6708 100644 --- a/app/src/main/java/net/nullsum/audinaut/util/Notifications.java +++ b/app/src/main/java/net/nullsum/audinaut/util/Notifications.java @@ -77,18 +77,27 @@ public final class Notifications { .setComponent(new ComponentName(context, DownloadService.class)) .putExtra(Intent.EXTRA_KEY_EVENT, new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_MEDIA_STOP)); int[] compactActions = new int[]{0, 1, 2}; + MediaSessionCompat mediaSession = new MediaSessionCompat(context, "Audinaut"); + MediaSessionCompat.Token mediaToken = mediaSession.getSessionToken(); MediaMetadataCompat.Builder metadataBuilder = new MediaMetadataCompat.Builder(); - mediaSession.setMetadata(metadataBuilder.putLong(MediaMetadataCompat.METADATA_KEY_DURATION, -1).build()); + + mediaSession.setMetadata(metadataBuilder + .putLong(MediaMetadataCompat.METADATA_KEY_DURATION, -1) + .putBitmap(MediaMetadataCompat.METADATA_KEY_ALBUM_ART, getAlbumArt(context, song)) + //.putBitmap(MediaMetadataCompat.METADATA_KEY_DISPLAY_ICON, R.drawable.notification_logo) + .putString(MediaMetadataCompat.METADATA_KEY_TITLE, song.getTitle()) + .putString(MediaMetadataCompat.METADATA_KEY_ARTIST, song.getArtist()) + .build() ); + MediaStyle mediaStyle = new MediaStyle() .setShowActionsInCompactView(compactActions) .setShowCancelButton(true) .setCancelButtonIntent(PendingIntent.getService(context, 0, cancelIntent, 0)) - .setMediaSession(mediaSession.getSessionToken()); + .setMediaSession(mediaToken); NotificationCompat.Builder builder = new NotificationCompat.Builder(context, CHANNEL_PLAYING_ID) .setChannelId(CHANNEL_PLAYING_ID) - .setSmallIcon(R.drawable.stat_notify_playing) .setContentTitle(song.getTitle()) .setContentText(song.getArtist()) .setSubText(song.getAlbum()) @@ -97,6 +106,7 @@ public final class Notifications { .setVisibility(NotificationCompat.VISIBILITY_PUBLIC) .setShowWhen(false) .setLargeIcon(getAlbumArt(context, song)) + .setSmallIcon(R.drawable.notification_logo) .setStyle(mediaStyle) .setContentIntent(PendingIntent.getActivity(context, 0, notificationIntent, 0)); addActions(context, builder, playing); diff --git a/app/src/main/res/drawable/notification_logo.xml b/app/src/main/res/drawable/notification_logo.xml new file mode 100644 index 0000000..75e58d2 --- /dev/null +++ b/app/src/main/res/drawable/notification_logo.xml @@ -0,0 +1,22 @@ + + + +