Fix output switcher didn't show album art am: c2dd442973
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/13118156 MUST ONLY BE SUBMITTED BY AUTOMERGER Change-Id: I8c65d2bcaa7b2bf37f65a213d0bbf0e2c8c7a00f
This commit is contained in:
@@ -18,10 +18,7 @@ package com.android.systemui.media.dialog;
|
|||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.pm.PackageManager;
|
|
||||||
import android.graphics.Bitmap;
|
import android.graphics.Bitmap;
|
||||||
import android.graphics.Canvas;
|
|
||||||
import android.graphics.drawable.BitmapDrawable;
|
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import android.media.MediaMetadata;
|
import android.media.MediaMetadata;
|
||||||
import android.media.MediaRoute2Info;
|
import android.media.MediaRoute2Info;
|
||||||
@@ -49,6 +46,8 @@ import com.android.settingslib.media.MediaOutputSliceConstants;
|
|||||||
import com.android.settingslib.utils.ThreadUtils;
|
import com.android.settingslib.utils.ThreadUtils;
|
||||||
import com.android.systemui.R;
|
import com.android.systemui.R;
|
||||||
import com.android.systemui.plugins.ActivityStarter;
|
import com.android.systemui.plugins.ActivityStarter;
|
||||||
|
import com.android.systemui.statusbar.notification.NotificationEntryManager;
|
||||||
|
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
|
||||||
import com.android.systemui.statusbar.phone.ShadeController;
|
import com.android.systemui.statusbar.phone.ShadeController;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -61,7 +60,7 @@ import javax.inject.Inject;
|
|||||||
/**
|
/**
|
||||||
* Controller for media output dialog
|
* Controller for media output dialog
|
||||||
*/
|
*/
|
||||||
public class MediaOutputController implements LocalMediaManager.DeviceCallback{
|
public class MediaOutputController implements LocalMediaManager.DeviceCallback {
|
||||||
|
|
||||||
private static final String TAG = "MediaOutputController";
|
private static final String TAG = "MediaOutputController";
|
||||||
private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
|
private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
|
||||||
@@ -73,6 +72,7 @@ public class MediaOutputController implements LocalMediaManager.DeviceCallback{
|
|||||||
private final ActivityStarter mActivityStarter;
|
private final ActivityStarter mActivityStarter;
|
||||||
private final List<MediaDevice> mGroupMediaDevices = new CopyOnWriteArrayList<>();
|
private final List<MediaDevice> mGroupMediaDevices = new CopyOnWriteArrayList<>();
|
||||||
private final boolean mAboveStatusbar;
|
private final boolean mAboveStatusbar;
|
||||||
|
private final NotificationEntryManager mNotificationEntryManager;
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
final List<MediaDevice> mMediaDevices = new CopyOnWriteArrayList<>();
|
final List<MediaDevice> mMediaDevices = new CopyOnWriteArrayList<>();
|
||||||
|
|
||||||
@@ -85,13 +85,15 @@ public class MediaOutputController implements LocalMediaManager.DeviceCallback{
|
|||||||
@Inject
|
@Inject
|
||||||
public MediaOutputController(@NonNull Context context, String packageName,
|
public MediaOutputController(@NonNull Context context, String packageName,
|
||||||
boolean aboveStatusbar, MediaSessionManager mediaSessionManager, LocalBluetoothManager
|
boolean aboveStatusbar, MediaSessionManager mediaSessionManager, LocalBluetoothManager
|
||||||
lbm, ShadeController shadeController, ActivityStarter starter) {
|
lbm, ShadeController shadeController, ActivityStarter starter,
|
||||||
|
NotificationEntryManager notificationEntryManager) {
|
||||||
mContext = context;
|
mContext = context;
|
||||||
mPackageName = packageName;
|
mPackageName = packageName;
|
||||||
mMediaSessionManager = mediaSessionManager;
|
mMediaSessionManager = mediaSessionManager;
|
||||||
mShadeController = shadeController;
|
mShadeController = shadeController;
|
||||||
mActivityStarter = starter;
|
mActivityStarter = starter;
|
||||||
mAboveStatusbar = aboveStatusbar;
|
mAboveStatusbar = aboveStatusbar;
|
||||||
|
mNotificationEntryManager = notificationEntryManager;
|
||||||
InfoMediaManager imm = new InfoMediaManager(mContext, packageName, null, lbm);
|
InfoMediaManager imm = new InfoMediaManager(mContext, packageName, null, lbm);
|
||||||
mLocalMediaManager = new LocalMediaManager(mContext, lbm, imm, packageName);
|
mLocalMediaManager = new LocalMediaManager(mContext, lbm, imm, packageName);
|
||||||
}
|
}
|
||||||
@@ -197,7 +199,7 @@ public class MediaOutputController implements LocalMediaManager.DeviceCallback{
|
|||||||
if (DEBUG) {
|
if (DEBUG) {
|
||||||
Log.d(TAG, "Media meta data does not contain icon information");
|
Log.d(TAG, "Media meta data does not contain icon information");
|
||||||
}
|
}
|
||||||
return getPackageIcon();
|
return getNotificationIcon();
|
||||||
}
|
}
|
||||||
|
|
||||||
IconCompat getDeviceIconCompat(MediaDevice device) {
|
IconCompat getDeviceIconCompat(MediaDevice device) {
|
||||||
@@ -213,24 +215,15 @@ public class MediaOutputController implements LocalMediaManager.DeviceCallback{
|
|||||||
return BluetoothUtils.createIconWithDrawable(drawable);
|
return BluetoothUtils.createIconWithDrawable(drawable);
|
||||||
}
|
}
|
||||||
|
|
||||||
private IconCompat getPackageIcon() {
|
IconCompat getNotificationIcon() {
|
||||||
if (TextUtils.isEmpty(mPackageName)) {
|
if (TextUtils.isEmpty(mPackageName)) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
try {
|
for (NotificationEntry entry
|
||||||
final Drawable drawable = mContext.getPackageManager().getApplicationIcon(mPackageName);
|
: mNotificationEntryManager.getActiveNotificationsForCurrentUser()) {
|
||||||
if (drawable instanceof BitmapDrawable) {
|
if (entry.getSbn().getNotification().hasMediaSession()
|
||||||
return IconCompat.createWithBitmap(((BitmapDrawable) drawable).getBitmap());
|
&& TextUtils.equals(entry.getSbn().getPackageName(), mPackageName)) {
|
||||||
}
|
return IconCompat.createFromIcon(entry.getSbn().getNotification().getLargeIcon());
|
||||||
final Bitmap bitmap = Bitmap.createBitmap(drawable.getIntrinsicWidth(),
|
|
||||||
drawable.getIntrinsicHeight(), Bitmap.Config.ARGB_8888);
|
|
||||||
final Canvas canvas = new Canvas(bitmap);
|
|
||||||
drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
|
|
||||||
drawable.draw(canvas);
|
|
||||||
return IconCompat.createWithBitmap(bitmap);
|
|
||||||
} catch (PackageManager.NameNotFoundException e) {
|
|
||||||
if (DEBUG) {
|
|
||||||
Log.e(TAG, "Package is not found. Unable to get package icon.");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ import android.content.Context
|
|||||||
import android.media.session.MediaSessionManager
|
import android.media.session.MediaSessionManager
|
||||||
import com.android.settingslib.bluetooth.LocalBluetoothManager
|
import com.android.settingslib.bluetooth.LocalBluetoothManager
|
||||||
import com.android.systemui.plugins.ActivityStarter
|
import com.android.systemui.plugins.ActivityStarter
|
||||||
|
import com.android.systemui.statusbar.notification.NotificationEntryManager
|
||||||
import com.android.systemui.statusbar.phone.ShadeController
|
import com.android.systemui.statusbar.phone.ShadeController
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
@@ -31,7 +32,8 @@ class MediaOutputDialogFactory @Inject constructor(
|
|||||||
private val mediaSessionManager: MediaSessionManager,
|
private val mediaSessionManager: MediaSessionManager,
|
||||||
private val lbm: LocalBluetoothManager?,
|
private val lbm: LocalBluetoothManager?,
|
||||||
private val shadeController: ShadeController,
|
private val shadeController: ShadeController,
|
||||||
private val starter: ActivityStarter
|
private val starter: ActivityStarter,
|
||||||
|
private val notificationEntryManager: NotificationEntryManager
|
||||||
) {
|
) {
|
||||||
companion object {
|
companion object {
|
||||||
var mediaOutputDialog: MediaOutputDialog? = null
|
var mediaOutputDialog: MediaOutputDialog? = null
|
||||||
@@ -41,7 +43,7 @@ class MediaOutputDialogFactory @Inject constructor(
|
|||||||
fun create(packageName: String, aboveStatusBar: Boolean) {
|
fun create(packageName: String, aboveStatusBar: Boolean) {
|
||||||
mediaOutputDialog?.dismiss()
|
mediaOutputDialog?.dismiss()
|
||||||
mediaOutputDialog = MediaOutputController(context, packageName, aboveStatusBar,
|
mediaOutputDialog = MediaOutputController(context, packageName, aboveStatusBar,
|
||||||
mediaSessionManager, lbm, shadeController, starter).run {
|
mediaSessionManager, lbm, shadeController, starter, notificationEntryManager).run {
|
||||||
MediaOutputDialog(context, aboveStatusBar, this) }
|
MediaOutputDialog(context, aboveStatusBar, this) }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -39,6 +39,7 @@ import com.android.settingslib.bluetooth.LocalBluetoothManager;
|
|||||||
import com.android.systemui.R;
|
import com.android.systemui.R;
|
||||||
import com.android.systemui.SysuiTestCase;
|
import com.android.systemui.SysuiTestCase;
|
||||||
import com.android.systemui.plugins.ActivityStarter;
|
import com.android.systemui.plugins.ActivityStarter;
|
||||||
|
import com.android.systemui.statusbar.notification.NotificationEntryManager;
|
||||||
import com.android.systemui.statusbar.phone.ShadeController;
|
import com.android.systemui.statusbar.phone.ShadeController;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
@@ -58,6 +59,8 @@ public class MediaOutputBaseDialogTest extends SysuiTestCase {
|
|||||||
private LocalBluetoothManager mLocalBluetoothManager = mock(LocalBluetoothManager.class);
|
private LocalBluetoothManager mLocalBluetoothManager = mock(LocalBluetoothManager.class);
|
||||||
private ShadeController mShadeController = mock(ShadeController.class);
|
private ShadeController mShadeController = mock(ShadeController.class);
|
||||||
private ActivityStarter mStarter = mock(ActivityStarter.class);
|
private ActivityStarter mStarter = mock(ActivityStarter.class);
|
||||||
|
private NotificationEntryManager mNotificationEntryManager =
|
||||||
|
mock(NotificationEntryManager.class);
|
||||||
|
|
||||||
private MediaOutputBaseDialogImpl mMediaOutputBaseDialogImpl;
|
private MediaOutputBaseDialogImpl mMediaOutputBaseDialogImpl;
|
||||||
private MediaOutputController mMediaOutputController;
|
private MediaOutputController mMediaOutputController;
|
||||||
@@ -69,7 +72,8 @@ public class MediaOutputBaseDialogTest extends SysuiTestCase {
|
|||||||
@Before
|
@Before
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
mMediaOutputController = new MediaOutputController(mContext, TEST_PACKAGE, false,
|
mMediaOutputController = new MediaOutputController(mContext, TEST_PACKAGE, false,
|
||||||
mMediaSessionManager, mLocalBluetoothManager, mShadeController, mStarter);
|
mMediaSessionManager, mLocalBluetoothManager, mShadeController, mStarter,
|
||||||
|
mNotificationEntryManager);
|
||||||
mMediaOutputBaseDialogImpl = new MediaOutputBaseDialogImpl(mContext,
|
mMediaOutputBaseDialogImpl = new MediaOutputBaseDialogImpl(mContext,
|
||||||
mMediaOutputController);
|
mMediaOutputController);
|
||||||
mMediaOutputBaseDialogImpl.onCreate(new Bundle());
|
mMediaOutputBaseDialogImpl.onCreate(new Bundle());
|
||||||
|
|||||||
@@ -27,15 +27,19 @@ import static org.mockito.Mockito.spy;
|
|||||||
import static org.mockito.Mockito.verify;
|
import static org.mockito.Mockito.verify;
|
||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
|
import android.app.Notification;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.graphics.drawable.Icon;
|
||||||
import android.media.MediaDescription;
|
import android.media.MediaDescription;
|
||||||
import android.media.MediaMetadata;
|
import android.media.MediaMetadata;
|
||||||
import android.media.RoutingSessionInfo;
|
import android.media.RoutingSessionInfo;
|
||||||
import android.media.session.MediaController;
|
import android.media.session.MediaController;
|
||||||
import android.media.session.MediaSessionManager;
|
import android.media.session.MediaSessionManager;
|
||||||
|
import android.service.notification.StatusBarNotification;
|
||||||
import android.testing.AndroidTestingRunner;
|
import android.testing.AndroidTestingRunner;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
|
|
||||||
|
import androidx.core.graphics.drawable.IconCompat;
|
||||||
import androidx.test.filters.SmallTest;
|
import androidx.test.filters.SmallTest;
|
||||||
|
|
||||||
import com.android.settingslib.bluetooth.CachedBluetoothDeviceManager;
|
import com.android.settingslib.bluetooth.CachedBluetoothDeviceManager;
|
||||||
@@ -45,6 +49,8 @@ import com.android.settingslib.media.MediaDevice;
|
|||||||
import com.android.systemui.R;
|
import com.android.systemui.R;
|
||||||
import com.android.systemui.SysuiTestCase;
|
import com.android.systemui.SysuiTestCase;
|
||||||
import com.android.systemui.plugins.ActivityStarter;
|
import com.android.systemui.plugins.ActivityStarter;
|
||||||
|
import com.android.systemui.statusbar.notification.NotificationEntryManager;
|
||||||
|
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
|
||||||
import com.android.systemui.statusbar.phone.ShadeController;
|
import com.android.systemui.statusbar.phone.ShadeController;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
@@ -81,6 +87,8 @@ public class MediaOutputControllerTest extends SysuiTestCase {
|
|||||||
private RoutingSessionInfo mRemoteSessionInfo = mock(RoutingSessionInfo.class);
|
private RoutingSessionInfo mRemoteSessionInfo = mock(RoutingSessionInfo.class);
|
||||||
private ShadeController mShadeController = mock(ShadeController.class);
|
private ShadeController mShadeController = mock(ShadeController.class);
|
||||||
private ActivityStarter mStarter = mock(ActivityStarter.class);
|
private ActivityStarter mStarter = mock(ActivityStarter.class);
|
||||||
|
private NotificationEntryManager mNotificationEntryManager =
|
||||||
|
mock(NotificationEntryManager.class);
|
||||||
|
|
||||||
private Context mSpyContext;
|
private Context mSpyContext;
|
||||||
private MediaOutputController mMediaOutputController;
|
private MediaOutputController mMediaOutputController;
|
||||||
@@ -100,8 +108,10 @@ public class MediaOutputControllerTest extends SysuiTestCase {
|
|||||||
MediaSessionManager.class);
|
MediaSessionManager.class);
|
||||||
when(mLocalBluetoothManager.getCachedDeviceManager()).thenReturn(
|
when(mLocalBluetoothManager.getCachedDeviceManager()).thenReturn(
|
||||||
mCachedBluetoothDeviceManager);
|
mCachedBluetoothDeviceManager);
|
||||||
|
|
||||||
mMediaOutputController = new MediaOutputController(mSpyContext, TEST_PACKAGE_NAME, false,
|
mMediaOutputController = new MediaOutputController(mSpyContext, TEST_PACKAGE_NAME, false,
|
||||||
mMediaSessionManager, mLocalBluetoothManager, mShadeController, mStarter);
|
mMediaSessionManager, mLocalBluetoothManager, mShadeController, mStarter,
|
||||||
|
mNotificationEntryManager);
|
||||||
mLocalMediaManager = spy(mMediaOutputController.mLocalMediaManager);
|
mLocalMediaManager = spy(mMediaOutputController.mLocalMediaManager);
|
||||||
mMediaOutputController.mLocalMediaManager = mLocalMediaManager;
|
mMediaOutputController.mLocalMediaManager = mLocalMediaManager;
|
||||||
MediaDescription.Builder builder = new MediaDescription.Builder();
|
MediaDescription.Builder builder = new MediaDescription.Builder();
|
||||||
@@ -144,7 +154,8 @@ public class MediaOutputControllerTest extends SysuiTestCase {
|
|||||||
@Test
|
@Test
|
||||||
public void start_withoutPackageName_verifyMediaControllerInit() {
|
public void start_withoutPackageName_verifyMediaControllerInit() {
|
||||||
mMediaOutputController = new MediaOutputController(mSpyContext, null, false,
|
mMediaOutputController = new MediaOutputController(mSpyContext, null, false,
|
||||||
mMediaSessionManager, mLocalBluetoothManager, mShadeController, mStarter);
|
mMediaSessionManager, mLocalBluetoothManager, mShadeController, mStarter,
|
||||||
|
mNotificationEntryManager);
|
||||||
|
|
||||||
mMediaOutputController.start(mCb);
|
mMediaOutputController.start(mCb);
|
||||||
|
|
||||||
@@ -164,7 +175,9 @@ public class MediaOutputControllerTest extends SysuiTestCase {
|
|||||||
@Test
|
@Test
|
||||||
public void stop_withoutPackageName_verifyMediaControllerDeinit() {
|
public void stop_withoutPackageName_verifyMediaControllerDeinit() {
|
||||||
mMediaOutputController = new MediaOutputController(mSpyContext, null, false,
|
mMediaOutputController = new MediaOutputController(mSpyContext, null, false,
|
||||||
mMediaSessionManager, mLocalBluetoothManager, mShadeController, mStarter);
|
mMediaSessionManager, mLocalBluetoothManager, mShadeController, mStarter,
|
||||||
|
mNotificationEntryManager);
|
||||||
|
|
||||||
mMediaOutputController.start(mCb);
|
mMediaOutputController.start(mCb);
|
||||||
|
|
||||||
mMediaOutputController.stop();
|
mMediaOutputController.stop();
|
||||||
@@ -423,4 +436,53 @@ public class MediaOutputControllerTest extends SysuiTestCase {
|
|||||||
}
|
}
|
||||||
assertThat(newDevices.get(4).getId()).isEqualTo(TEST_DEVICE_5_ID);
|
assertThat(newDevices.get(4).getId()).isEqualTo(TEST_DEVICE_5_ID);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void getNotificationLargeIcon_withoutPackageName_returnsNull() {
|
||||||
|
mMediaOutputController = new MediaOutputController(mSpyContext, null, false,
|
||||||
|
mMediaSessionManager, mLocalBluetoothManager, mShadeController, mStarter,
|
||||||
|
mNotificationEntryManager);
|
||||||
|
|
||||||
|
assertThat(mMediaOutputController.getNotificationIcon()).isNull();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void getNotificationLargeIcon_withPackageNameAndMediaSession_returnsIconCompat() {
|
||||||
|
final List<NotificationEntry> entryList = new ArrayList<>();
|
||||||
|
final NotificationEntry entry = mock(NotificationEntry.class);
|
||||||
|
final StatusBarNotification sbn = mock(StatusBarNotification.class);
|
||||||
|
final Notification notification = mock(Notification.class);
|
||||||
|
final Icon icon = mock(Icon.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(icon);
|
||||||
|
|
||||||
|
assertThat(mMediaOutputController.getNotificationIcon() instanceof IconCompat).isTrue();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void getNotificationLargeIcon_withPackageNameAndNoMediaSession_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);
|
||||||
|
final Icon icon = mock(Icon.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(false);
|
||||||
|
when(notification.getLargeIcon()).thenReturn(icon);
|
||||||
|
|
||||||
|
assertThat(mMediaOutputController.getNotificationIcon()).isNull();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,6 +34,7 @@ import com.android.settingslib.media.LocalMediaManager;
|
|||||||
import com.android.settingslib.media.MediaDevice;
|
import com.android.settingslib.media.MediaDevice;
|
||||||
import com.android.systemui.SysuiTestCase;
|
import com.android.systemui.SysuiTestCase;
|
||||||
import com.android.systemui.plugins.ActivityStarter;
|
import com.android.systemui.plugins.ActivityStarter;
|
||||||
|
import com.android.systemui.statusbar.notification.NotificationEntryManager;
|
||||||
import com.android.systemui.statusbar.phone.ShadeController;
|
import com.android.systemui.statusbar.phone.ShadeController;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
@@ -57,6 +58,8 @@ public class MediaOutputDialogTest extends SysuiTestCase {
|
|||||||
private ActivityStarter mStarter = mock(ActivityStarter.class);
|
private ActivityStarter mStarter = mock(ActivityStarter.class);
|
||||||
private LocalMediaManager mLocalMediaManager = mock(LocalMediaManager.class);
|
private LocalMediaManager mLocalMediaManager = mock(LocalMediaManager.class);
|
||||||
private MediaDevice mMediaDevice = mock(MediaDevice.class);
|
private MediaDevice mMediaDevice = mock(MediaDevice.class);
|
||||||
|
private NotificationEntryManager mNotificationEntryManager =
|
||||||
|
mock(NotificationEntryManager.class);
|
||||||
|
|
||||||
private MediaOutputDialog mMediaOutputDialog;
|
private MediaOutputDialog mMediaOutputDialog;
|
||||||
private MediaOutputController mMediaOutputController;
|
private MediaOutputController mMediaOutputController;
|
||||||
@@ -65,7 +68,8 @@ public class MediaOutputDialogTest extends SysuiTestCase {
|
|||||||
@Before
|
@Before
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
mMediaOutputController = new MediaOutputController(mContext, TEST_PACKAGE, false,
|
mMediaOutputController = new MediaOutputController(mContext, TEST_PACKAGE, false,
|
||||||
mMediaSessionManager, mLocalBluetoothManager, mShadeController, mStarter);
|
mMediaSessionManager, mLocalBluetoothManager, mShadeController, mStarter,
|
||||||
|
mNotificationEntryManager);
|
||||||
mMediaOutputController.mLocalMediaManager = mLocalMediaManager;
|
mMediaOutputController.mLocalMediaManager = mLocalMediaManager;
|
||||||
mMediaOutputDialog = new MediaOutputDialog(mContext, false, mMediaOutputController);
|
mMediaOutputDialog = new MediaOutputDialog(mContext, false, mMediaOutputController);
|
||||||
|
|
||||||
|
|||||||
@@ -34,6 +34,7 @@ import com.android.settingslib.media.MediaDevice;
|
|||||||
import com.android.systemui.R;
|
import com.android.systemui.R;
|
||||||
import com.android.systemui.SysuiTestCase;
|
import com.android.systemui.SysuiTestCase;
|
||||||
import com.android.systemui.plugins.ActivityStarter;
|
import com.android.systemui.plugins.ActivityStarter;
|
||||||
|
import com.android.systemui.statusbar.notification.NotificationEntryManager;
|
||||||
import com.android.systemui.statusbar.phone.ShadeController;
|
import com.android.systemui.statusbar.phone.ShadeController;
|
||||||
|
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
@@ -59,6 +60,8 @@ public class MediaOutputGroupDialogTest extends SysuiTestCase {
|
|||||||
private LocalMediaManager mLocalMediaManager = mock(LocalMediaManager.class);
|
private LocalMediaManager mLocalMediaManager = mock(LocalMediaManager.class);
|
||||||
private MediaDevice mMediaDevice = mock(MediaDevice.class);
|
private MediaDevice mMediaDevice = mock(MediaDevice.class);
|
||||||
private MediaDevice mMediaDevice1 = mock(MediaDevice.class);
|
private MediaDevice mMediaDevice1 = mock(MediaDevice.class);
|
||||||
|
private NotificationEntryManager mNotificationEntryManager =
|
||||||
|
mock(NotificationEntryManager.class);
|
||||||
|
|
||||||
private MediaOutputGroupDialog mMediaOutputGroupDialog;
|
private MediaOutputGroupDialog mMediaOutputGroupDialog;
|
||||||
private MediaOutputController mMediaOutputController;
|
private MediaOutputController mMediaOutputController;
|
||||||
@@ -67,7 +70,8 @@ public class MediaOutputGroupDialogTest extends SysuiTestCase {
|
|||||||
@Before
|
@Before
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
mMediaOutputController = new MediaOutputController(mContext, TEST_PACKAGE, false,
|
mMediaOutputController = new MediaOutputController(mContext, TEST_PACKAGE, false,
|
||||||
mMediaSessionManager, mLocalBluetoothManager, mShadeController, mStarter);
|
mMediaSessionManager, mLocalBluetoothManager, mShadeController, mStarter,
|
||||||
|
mNotificationEntryManager);
|
||||||
mMediaOutputController.mLocalMediaManager = mLocalMediaManager;
|
mMediaOutputController.mLocalMediaManager = mLocalMediaManager;
|
||||||
mMediaOutputGroupDialog = new MediaOutputGroupDialog(mContext, false,
|
mMediaOutputGroupDialog = new MediaOutputGroupDialog(mContext, false,
|
||||||
mMediaOutputController);
|
mMediaOutputController);
|
||||||
|
|||||||
Reference in New Issue
Block a user