Add getDeselectableMediaDevice()
-Add test case Bug: 157098549 Test: make -j50 RunSettingsLibRoboTests Change-Id: I47682997af51844e7811dd108297b7c13a60cd53
This commit is contained in:
@@ -218,6 +218,33 @@ public class InfoMediaManager extends MediaManager {
|
||||
return deviceList;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the MediaDevice list that can be removed from current media session.
|
||||
*
|
||||
* @return list of MediaDevice
|
||||
*/
|
||||
List<MediaDevice> getDeselectableMediaDevice() {
|
||||
final List<MediaDevice> deviceList = new ArrayList<>();
|
||||
if (TextUtils.isEmpty(mPackageName)) {
|
||||
Log.d(TAG, "getDeselectableMediaDevice() package name is null or empty!");
|
||||
return deviceList;
|
||||
}
|
||||
|
||||
final RoutingSessionInfo info = getRoutingSessionInfo();
|
||||
if (info != null) {
|
||||
for (MediaRoute2Info route : mRouterManager.getDeselectableRoutes(info)) {
|
||||
deviceList.add(new InfoMediaDevice(mContext, mRouterManager,
|
||||
route, mPackageName));
|
||||
Log.d(TAG, route.getName() + " is deselectable for " + mPackageName);
|
||||
}
|
||||
return deviceList;
|
||||
}
|
||||
Log.d(TAG, "getDeselectableMediaDevice() cannot found deselectable MediaDevice from : "
|
||||
+ mPackageName);
|
||||
|
||||
return deviceList;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the MediaDevice list that has been selected to current media.
|
||||
*
|
||||
|
||||
@@ -307,6 +307,15 @@ public class LocalMediaManager implements BluetoothCallback {
|
||||
return mInfoMediaManager.getSelectableMediaDevice();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the MediaDevice list that can be removed from current media session.
|
||||
*
|
||||
* @return list of MediaDevice
|
||||
*/
|
||||
public List<MediaDevice> getDeselectableMediaDevice() {
|
||||
return mInfoMediaManager.getDeselectableMediaDevice();
|
||||
}
|
||||
|
||||
/**
|
||||
* Release session to stop playing media on MediaDevice.
|
||||
*/
|
||||
|
||||
@@ -415,6 +415,31 @@ public class InfoMediaManagerTest {
|
||||
assertThat(mInfoMediaManager.getSelectableMediaDevice()).isEmpty();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getDeselectableMediaDevice_packageNameIsNull_returnFalse() {
|
||||
mInfoMediaManager.mPackageName = null;
|
||||
|
||||
assertThat(mInfoMediaManager.getDeselectableMediaDevice()).isEmpty();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getDeselectableMediaDevice_checkList() {
|
||||
final List<RoutingSessionInfo> routingSessionInfos = new ArrayList<>();
|
||||
final RoutingSessionInfo info = mock(RoutingSessionInfo.class);
|
||||
routingSessionInfos.add(info);
|
||||
final List<MediaRoute2Info> mediaRoute2Infos = new ArrayList<>();
|
||||
final MediaRoute2Info mediaRoute2Info = mock(MediaRoute2Info.class);
|
||||
mediaRoute2Infos.add(mediaRoute2Info);
|
||||
mShadowRouter2Manager.setRoutingSessions(routingSessionInfos);
|
||||
mShadowRouter2Manager.setDeselectableRoutes(mediaRoute2Infos);
|
||||
when(mediaRoute2Info.getName()).thenReturn(TEST_NAME);
|
||||
|
||||
final List<MediaDevice> mediaDevices = mInfoMediaManager.getDeselectableMediaDevice();
|
||||
|
||||
assertThat(mediaDevices.size()).isEqualTo(1);
|
||||
assertThat(mediaDevices.get(0).getName()).isEqualTo(TEST_NAME);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void adjustSessionVolume_routingSessionInfoIsNull_noCrash() {
|
||||
mInfoMediaManager.adjustSessionVolume(null, 10);
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
*/
|
||||
package com.android.settingslib.testutils.shadow;
|
||||
|
||||
import android.annotation.NonNull;
|
||||
import android.media.MediaRoute2Info;
|
||||
import android.media.MediaRouter2Manager;
|
||||
import android.media.RoutingSessionInfo;
|
||||
@@ -31,6 +32,7 @@ public class ShadowRouter2Manager {
|
||||
|
||||
private List<MediaRoute2Info> mAvailableRoutes;
|
||||
private List<MediaRoute2Info> mAllRoutes;
|
||||
private List<MediaRoute2Info> mDeselectableRoutes;
|
||||
private List<RoutingSessionInfo> mActiveSessions;
|
||||
private List<RoutingSessionInfo> mRoutingSessions;
|
||||
|
||||
@@ -70,6 +72,15 @@ public class ShadowRouter2Manager {
|
||||
mRoutingSessions = infos;
|
||||
}
|
||||
|
||||
@Implementation
|
||||
public List<MediaRoute2Info> getDeselectableRoutes(@NonNull RoutingSessionInfo sessionInfo) {
|
||||
return mDeselectableRoutes;
|
||||
}
|
||||
|
||||
public void setDeselectableRoutes(List<MediaRoute2Info> routes) {
|
||||
mDeselectableRoutes = routes;
|
||||
}
|
||||
|
||||
public static ShadowRouter2Manager getShadow() {
|
||||
return (ShadowRouter2Manager) Shadow.extract(
|
||||
MediaRouter2Manager.getInstance(RuntimeEnvironment.application));
|
||||
|
||||
Reference in New Issue
Block a user