| 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 c2f190f070d2838648b233927084598496bf1911..8a95b7cefef995982126c04a7fca18aac0b23c31 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
|
| @@ -270,6 +270,7 @@ public class MediaNotificationManager {
|
| */
|
| public static final class PlaybackListenerService extends ListenerService {
|
| private static final int NOTIFICATION_ID = R.id.media_playback_notification;
|
| + private static final String NOTIFICATION_GROUP_NAME = "MediaPlayback";
|
|
|
| @Override
|
| public void onCreate() {
|
| @@ -309,6 +310,7 @@ public class MediaNotificationManager {
|
| */
|
| public static final class PresentationListenerService extends ListenerService {
|
| private static final int NOTIFICATION_ID = R.id.presentation_notification;
|
| + private static final String NOTIFICATION_GROUP_NAME = "MediaPresentation";
|
|
|
| @Override
|
| @Nullable
|
| @@ -322,6 +324,7 @@ public class MediaNotificationManager {
|
| */
|
| public static final class CastListenerService extends ListenerService {
|
| private static final int NOTIFICATION_ID = R.id.remote_notification;
|
| + private static final String NOTIFICATION_GROUP_NAME = "MediaRemote";
|
|
|
| @Override
|
| @Nullable
|
| @@ -383,14 +386,24 @@ public class MediaNotificationManager {
|
| private String getButtonReceiverClassName() {
|
| if (mMediaNotificationInfo.id == PlaybackListenerService.NOTIFICATION_ID) {
|
| return PlaybackMediaButtonReceiver.class.getName();
|
| - }
|
| -
|
| - if (mMediaNotificationInfo.id == PresentationListenerService.NOTIFICATION_ID) {
|
| + } else if (mMediaNotificationInfo.id == PresentationListenerService.NOTIFICATION_ID) {
|
| return PresentationMediaButtonReceiver.class.getName();
|
| + } else if (mMediaNotificationInfo.id == CastListenerService.NOTIFICATION_ID) {
|
| + return CastMediaButtonReceiver.class.getName();
|
| }
|
|
|
| - if (mMediaNotificationInfo.id == CastListenerService.NOTIFICATION_ID) {
|
| - return CastMediaButtonReceiver.class.getName();
|
| + assert false;
|
| + return null;
|
| + }
|
| +
|
| + // Returns the notification group name used to prevent automatic grouping.
|
| + private String getNotificationGroupName() {
|
| + if (mMediaNotificationInfo.id == PlaybackListenerService.NOTIFICATION_ID) {
|
| + return PlaybackListenerService.NOTIFICATION_GROUP_NAME;
|
| + } else if (mMediaNotificationInfo.id == PresentationListenerService.NOTIFICATION_ID) {
|
| + return PresentationListenerService.NOTIFICATION_GROUP_NAME;
|
| + } else if (mMediaNotificationInfo.id == CastListenerService.NOTIFICATION_ID) {
|
| + return CastListenerService.NOTIFICATION_GROUP_NAME;
|
| }
|
|
|
| assert false;
|
| @@ -717,6 +730,8 @@ public class MediaNotificationManager {
|
| mNotificationBuilder.setSmallIcon(mMediaNotificationInfo.icon);
|
| mNotificationBuilder.setAutoCancel(false);
|
| mNotificationBuilder.setLocalOnly(true);
|
| + mNotificationBuilder.setGroup(getNotificationGroupName());
|
| + mNotificationBuilder.setGroupSummary(true);
|
|
|
| if (mMediaNotificationInfo.supportsSwipeAway()) {
|
| mNotificationBuilder.setOngoing(!mMediaNotificationInfo.isPaused);
|
|
|