diff --git a/libraries/session/src/main/java/androidx/media3/session/DefaultMediaNotificationProvider.java b/libraries/session/src/main/java/androidx/media3/session/DefaultMediaNotificationProvider.java
index 710070b2ef..dc88c45510 100644
--- a/libraries/session/src/main/java/androidx/media3/session/DefaultMediaNotificationProvider.java
+++ b/libraries/session/src/main/java/androidx/media3/session/DefaultMediaNotificationProvider.java
@@ -79,6 +79,8 @@ import java.util.concurrent.ExecutionException;
*
{@code media3_notification_pause} - The pause icon.
* {@code media3_notification_seek_to_previous} - The previous icon.
* {@code media3_notification_seek_to_next} - The next icon.
+ * {@code media3_notification_small_icon} - The {@link
+ * NotificationCompat.Builder#setSmallIcon(int) small icon}.
*
*/
@UnstableApi
@@ -134,10 +136,18 @@ public class DefaultMediaNotificationProvider implements MediaNotification.Provi
Player player = mediaSession.getPlayer();
NotificationCompat.Builder builder =
new NotificationCompat.Builder(context, NOTIFICATION_CHANNEL_ID);
+
+ MediaStyle mediaStyle = new MediaStyle();
+ int[] compactViewIndices =
+ addNotificationActions(
+ getMediaButtons(player.getAvailableCommands(), customLayout, player.getPlayWhenReady()),
+ builder,
+ actionFactory);
+ mediaStyle.setShowActionsInCompactView(compactViewIndices);
+
// Set metadata info in the notification.
MediaMetadata metadata = player.getMediaMetadata();
builder.setContentTitle(metadata.title).setContentText(metadata.artist);
-
@Nullable ListenableFuture bitmapFuture = loadArtworkBitmap(metadata);
if (bitmapFuture != null) {
if (bitmapFuture.isDone()) {
@@ -161,13 +171,6 @@ public class DefaultMediaNotificationProvider implements MediaNotification.Provi
}
}
- MediaStyle mediaStyle = new MediaStyle();
- int[] compactViewIndices =
- addNotificationActions(
- getMediaButtons(player.getAvailableCommands(), customLayout, player.getPlayWhenReady()),
- builder,
- actionFactory);
- mediaStyle.setShowActionsInCompactView(compactViewIndices);
if (player.isCommandAvailable(COMMAND_STOP) || Util.SDK_INT < 21) {
// We must include a cancel intent for pre-L devices.
mediaStyle.setCancelButtonIntent(actionFactory.createMediaActionPendingIntent(COMMAND_STOP));
@@ -185,7 +188,7 @@ public class DefaultMediaNotificationProvider implements MediaNotification.Provi
.setContentIntent(mediaSession.getSessionActivity())
.setDeleteIntent(actionFactory.createMediaActionPendingIntent(COMMAND_STOP))
.setOnlyAlertOnce(true)
- .setSmallIcon(getSmallIconResId(context))
+ .setSmallIcon(R.drawable.media3_notification_small_icon)
.setStyle(mediaStyle)
.setVisibility(NotificationCompat.VISIBILITY_PUBLIC)
.setOngoing(false)
@@ -385,15 +388,6 @@ public class DefaultMediaNotificationProvider implements MediaNotification.Provi
return future;
}
- private static int getSmallIconResId(Context context) {
- int appIcon = context.getApplicationInfo().icon;
- if (appIcon != 0) {
- return appIcon;
- } else {
- return Util.SDK_INT >= 21 ? R.drawable.media_session_service_notification_ic_music_note : 0;
- }
- }
-
private static long getPlaybackStartTimeEpochMs(Player player) {
// Changing "showWhen" causes notification flicker if SDK_INT < 21.
if (Util.SDK_INT >= 21