Skip to content

Commit

Permalink
Use resource ID from drawable.xml as the notification icon
Browse files Browse the repository at this point in the history
Issue: #66
Issue: #65

#minor-release

PiperOrigin-RevId: 452004492
  • Loading branch information
marcbaechinger committed May 31, 2022
1 parent b8ca5b8 commit 839d4f4
Showing 1 changed file with 12 additions and 18 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,8 @@
* <li><b>{@code media3_notification_pause}</b> - The pause icon.
* <li><b>{@code media3_notification_seek_to_previous}</b> - The previous icon.
* <li><b>{@code media3_notification_seek_to_next}</b> - The next icon.
* <li><b>{@code media3_notification_small_icon}</b> - The {@link
* NotificationCompat.Builder#setSmallIcon(int) small icon}.
* </ul>
*/
@UnstableApi
Expand Down Expand Up @@ -134,10 +136,18 @@ public final MediaNotification createNotification(
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<Bitmap> bitmapFuture = loadArtworkBitmap(metadata);
if (bitmapFuture != null) {
if (bitmapFuture.isDone()) {
Expand All @@ -161,13 +171,6 @@ public final MediaNotification createNotification(
}
}

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));
Expand All @@ -185,7 +188,7 @@ public final MediaNotification createNotification(
.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)
Expand Down Expand Up @@ -385,15 +388,6 @@ private ListenableFuture<Bitmap> loadArtworkBitmap(MediaMetadata metadata) {
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
Expand Down

0 comments on commit 839d4f4

Please sign in to comment.