Loading packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputController.java +9 −2 Original line number Diff line number Diff line Loading @@ -16,10 +16,12 @@ package com.android.systemui.media.dialog; import android.app.Notification; import android.content.Context; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.drawable.Drawable; import android.graphics.drawable.Icon; import android.media.MediaMetadata; import android.media.MediaRoute2Info; import android.media.RoutingSessionInfo; Loading Loading @@ -221,9 +223,14 @@ public class MediaOutputController implements LocalMediaManager.DeviceCallback { } for (NotificationEntry entry : mNotificationEntryManager.getActiveNotificationsForCurrentUser()) { if (entry.getSbn().getNotification().hasMediaSession() final Notification notification = entry.getSbn().getNotification(); if (notification.hasMediaSession() && TextUtils.equals(entry.getSbn().getPackageName(), mPackageName)) { return IconCompat.createFromIcon(entry.getSbn().getNotification().getLargeIcon()); final Icon icon = notification.getLargeIcon(); if (icon == null) { break; } return IconCompat.createFromIcon(icon); } } return null; Loading packages/SystemUI/tests/src/com/android/systemui/media/dialog/MediaOutputControllerTest.java +19 −0 Original line number Diff line number Diff line Loading @@ -446,6 +446,25 @@ public class MediaOutputControllerTest extends SysuiTestCase { assertThat(mMediaOutputController.getNotificationIcon()).isNull(); } @Test public void getNotificationLargeIcon_withoutLargeIcon_returnsNull() { final List<NotificationEntry> entryList = new ArrayList<>(); final NotificationEntry entry = mock(NotificationEntry.class); final StatusBarNotification sbn = mock(StatusBarNotification.class); final Notification notification = mock(Notification.class); entryList.add(entry); when(mNotificationEntryManager.getActiveNotificationsForCurrentUser()) .thenReturn(entryList); when(entry.getSbn()).thenReturn(sbn); when(sbn.getNotification()).thenReturn(notification); when(sbn.getPackageName()).thenReturn(TEST_PACKAGE_NAME); when(notification.hasMediaSession()).thenReturn(true); when(notification.getLargeIcon()).thenReturn(null); assertThat(mMediaOutputController.getNotificationIcon()).isNull(); } @Test public void getNotificationLargeIcon_withPackageNameAndMediaSession_returnsIconCompat() { final List<NotificationEntry> entryList = new ArrayList<>(); Loading Loading
packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputController.java +9 −2 Original line number Diff line number Diff line Loading @@ -16,10 +16,12 @@ package com.android.systemui.media.dialog; import android.app.Notification; import android.content.Context; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.drawable.Drawable; import android.graphics.drawable.Icon; import android.media.MediaMetadata; import android.media.MediaRoute2Info; import android.media.RoutingSessionInfo; Loading Loading @@ -221,9 +223,14 @@ public class MediaOutputController implements LocalMediaManager.DeviceCallback { } for (NotificationEntry entry : mNotificationEntryManager.getActiveNotificationsForCurrentUser()) { if (entry.getSbn().getNotification().hasMediaSession() final Notification notification = entry.getSbn().getNotification(); if (notification.hasMediaSession() && TextUtils.equals(entry.getSbn().getPackageName(), mPackageName)) { return IconCompat.createFromIcon(entry.getSbn().getNotification().getLargeIcon()); final Icon icon = notification.getLargeIcon(); if (icon == null) { break; } return IconCompat.createFromIcon(icon); } } return null; Loading
packages/SystemUI/tests/src/com/android/systemui/media/dialog/MediaOutputControllerTest.java +19 −0 Original line number Diff line number Diff line Loading @@ -446,6 +446,25 @@ public class MediaOutputControllerTest extends SysuiTestCase { assertThat(mMediaOutputController.getNotificationIcon()).isNull(); } @Test public void getNotificationLargeIcon_withoutLargeIcon_returnsNull() { final List<NotificationEntry> entryList = new ArrayList<>(); final NotificationEntry entry = mock(NotificationEntry.class); final StatusBarNotification sbn = mock(StatusBarNotification.class); final Notification notification = mock(Notification.class); entryList.add(entry); when(mNotificationEntryManager.getActiveNotificationsForCurrentUser()) .thenReturn(entryList); when(entry.getSbn()).thenReturn(sbn); when(sbn.getNotification()).thenReturn(notification); when(sbn.getPackageName()).thenReturn(TEST_PACKAGE_NAME); when(notification.hasMediaSession()).thenReturn(true); when(notification.getLargeIcon()).thenReturn(null); assertThat(mMediaOutputController.getNotificationIcon()).isNull(); } @Test public void getNotificationLargeIcon_withPackageNameAndMediaSession_returnsIconCompat() { final List<NotificationEntry> entryList = new ArrayList<>(); Loading