| Index: chrome/android/java/src/org/chromium/chrome/browser/media/ui/MediaNotificationManager.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/media/ui/MediaNotificationManager.java b/chrome/android/java/src/org/chromium/chrome/browser/media/ui/MediaNotificationManager.java
|
| index 5cfed32bba2c70b3c9f85a0046e5c1ea9d6777d2..5f492485445f58b3b155f760094fbc704812d99c 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/media/ui/MediaNotificationManager.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/media/ui/MediaNotificationManager.java
|
| @@ -36,6 +36,8 @@ import org.chromium.base.SysUtils;
|
| import org.chromium.base.VisibleForTesting;
|
| import org.chromium.blink.mojom.MediaSessionAction;
|
| import org.chromium.chrome.R;
|
| +import org.chromium.chrome.browser.ChromeApplication;
|
| +import org.chromium.chrome.browser.notifications.ChromeNotificationBuilder;
|
| import org.chromium.chrome.browser.notifications.NotificationConstants;
|
| import org.chromium.content_public.common.MediaMetadata;
|
|
|
| @@ -84,7 +86,7 @@ public class MediaNotificationManager {
|
|
|
| private SparseArray<MediaButtonInfo> mActionToButtonInfo;
|
|
|
| - private NotificationCompat.Builder mNotificationBuilder;
|
| + private ChromeNotificationBuilder mNotificationBuilder;
|
|
|
| private Bitmap mDefaultNotificationLargeIcon;
|
|
|
| @@ -539,8 +541,7 @@ public class MediaNotificationManager {
|
|
|
| @VisibleForTesting
|
| @Nullable
|
| - static NotificationCompat.Builder getNotificationBuilderForTesting(
|
| - int notificationId) {
|
| + static ChromeNotificationBuilder getNotificationBuilderForTesting(int notificationId) {
|
| MediaNotificationManager manager = getManager(notificationId);
|
| if (manager == null) return null;
|
|
|
| @@ -721,7 +722,15 @@ public class MediaNotificationManager {
|
|
|
| updateMediaSession();
|
|
|
| - mNotificationBuilder = new NotificationCompat.Builder(mContext);
|
| + mNotificationBuilder =
|
| + ((ChromeApplication) mContext.getApplicationContext())
|
| + .createChromeNotificationBuilder(true,
|
| + NotificationConstants.CATEGORY_ID_BROWSER,
|
| + mContext.getString(
|
| + org.chromium.chrome.R.string.notification_category_browser),
|
| + NotificationConstants.CATEGORY_GROUP_ID_GENERAL,
|
| + mContext.getString(org.chromium.chrome.R.string
|
| + .notification_category_group_general));
|
| setMediaStyleLayoutForNotificationBuilder(mNotificationBuilder);
|
|
|
| mNotificationBuilder.setSmallIcon(mMediaNotificationInfo.notificationSmallIcon);
|
| @@ -853,7 +862,7 @@ public class MediaNotificationManager {
|
| mMediaSession.setActive(true);
|
| }
|
|
|
| - private void setMediaStyleLayoutForNotificationBuilder(NotificationCompat.Builder builder) {
|
| + private void setMediaStyleLayoutForNotificationBuilder(ChromeNotificationBuilder builder) {
|
| setMediaStyleNotificationText(builder);
|
| if (!mMediaNotificationInfo.supportsPlayPause()) {
|
| builder.setLargeIcon(null);
|
| @@ -876,7 +885,7 @@ public class MediaNotificationManager {
|
| addNotificationButtons(builder);
|
| }
|
|
|
| - private void addNotificationButtons(NotificationCompat.Builder builder) {
|
| + private void addNotificationButtons(ChromeNotificationBuilder builder) {
|
| Set<Integer> actions = new HashSet<>();
|
|
|
| // TODO(zqzhang): handle other actions when play/pause is not supported? See
|
| @@ -907,15 +916,8 @@ public class MediaNotificationManager {
|
|
|
| // Only apply MediaStyle when NotificationInfo supports play/pause.
|
| if (mMediaNotificationInfo.supportsPlayPause()) {
|
| - NotificationCompat.MediaStyle style = new NotificationCompat.MediaStyle();
|
| - style.setMediaSession(mMediaSession.getSessionToken());
|
| -
|
| - int[] compactViewActionIndices = computeCompactViewActionIndices(bigViewActions);
|
| -
|
| - style.setShowActionsInCompactView(compactViewActionIndices);
|
| - style.setCancelButtonIntent(createPendingIntent(ListenerService.ACTION_CANCEL));
|
| - style.setShowCancelButton(true);
|
| - builder.setStyle(style);
|
| + builder.setMediaStyle(mMediaSession, computeCompactViewActionIndices(bigViewActions),
|
| + createPendingIntent(ListenerService.ACTION_CANCEL), true);
|
| }
|
| }
|
|
|
| @@ -926,7 +928,7 @@ public class MediaNotificationManager {
|
| return bitmapDrawable.getBitmap();
|
| }
|
|
|
| - private void setMediaStyleNotificationText(NotificationCompat.Builder builder) {
|
| + private void setMediaStyleNotificationText(ChromeNotificationBuilder builder) {
|
| builder.setContentTitle(mMediaNotificationInfo.metadata.getTitle());
|
| String artistAndAlbumText = getArtistAndAlbumText(mMediaNotificationInfo.metadata);
|
| if (isRunningN() || !artistAndAlbumText.isEmpty()) {
|
|
|