From 507c9008aa8f9361029e0d76209cc9ed5567455f Mon Sep 17 00:00:00 2001 From: Morgan Lim Date: Sat, 11 Jan 2020 02:22:27 -0500 Subject: [PATCH] Colorize MediaStyle notification from album art --- app/build.gradle | 1 + .../main/java/net/nullsum/audinaut/util/Notifications.java | 6 ++++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 3de6f51..ccdb3ca 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -36,6 +36,7 @@ dependencies { implementation 'com.squareup.okhttp3:okhttp:4.2.2' implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" implementation "androidx.media:media:1.1.0" + implementation 'androidx.legacy:legacy-support-v4:1.0.0' } buildscript { 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 fbbbb75..e60750e 100644 --- a/app/src/main/java/net/nullsum/audinaut/util/Notifications.java +++ b/app/src/main/java/net/nullsum/audinaut/util/Notifications.java @@ -31,6 +31,7 @@ import android.view.KeyEvent; import androidx.core.app.NotificationCompat; import androidx.media.app.NotificationCompat.MediaStyle; +import android.support.v4.media.session.MediaSessionCompat; import net.nullsum.audinaut.R; import net.nullsum.audinaut.activity.SubsonicActivity; @@ -67,7 +68,6 @@ public final class Notifications { } final boolean playing = downloadService.getPlayerState() == PlayerState.STARTED; - Intent notificationIntent = new Intent(context, SubsonicFragmentActivity.class); notificationIntent.putExtra(Constants.INTENT_EXTRA_NAME_DOWNLOAD, true); notificationIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); @@ -76,10 +76,12 @@ 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"); MediaStyle mediaStyle = new MediaStyle() .setShowActionsInCompactView(compactActions) .setShowCancelButton(true) - .setCancelButtonIntent(PendingIntent.getService(context, 0, cancelIntent, 0)); + .setCancelButtonIntent(PendingIntent.getService(context, 0, cancelIntent, 0)) + .setMediaSession(mediaSession.getSessionToken()); NotificationCompat.Builder builder = new NotificationCompat.Builder(context, CHANNEL_PLAYING_ID) .setChannelId(CHANNEL_PLAYING_ID)