Merge "Update MediaRouter2Manager api" into rvc-dev

This commit is contained in:
TreeHugger Robot
2020-03-30 15:43:18 +00:00
committed by Android (Google) Code Review
2 changed files with 43 additions and 23 deletions

View File

@@ -52,7 +52,6 @@ public class InfoMediaManager extends MediaManager {
private static final String TAG = "InfoMediaManager"; private static final String TAG = "InfoMediaManager";
private static final boolean DEBUG = false; private static final boolean DEBUG = false;
@VisibleForTesting @VisibleForTesting
final RouterManagerCallback mMediaRouterCallback = new RouterManagerCallback(); final RouterManagerCallback mMediaRouterCallback = new RouterManagerCallback();
@VisibleForTesting @VisibleForTesting
@@ -138,14 +137,10 @@ public class InfoMediaManager extends MediaManager {
} }
private RoutingSessionInfo getRoutingSessionInfo() { private RoutingSessionInfo getRoutingSessionInfo() {
for (RoutingSessionInfo info : mRouterManager.getRoutingSessions(mPackageName)) { final List<RoutingSessionInfo> sessionInfos =
if (TextUtils.equals(info.getClientPackageName(), mPackageName)) { mRouterManager.getRoutingSessions(mPackageName);
return info;
}
}
Log.w(TAG, "RoutingSessionInfo() cannot found match packagename : " + mPackageName); return sessionInfos.get(sessionInfos.size() - 1);
return null;
} }
/** /**
@@ -181,10 +176,7 @@ public class InfoMediaManager extends MediaManager {
return false; return false;
} }
final RoutingSessionInfo sessionInfo = getRoutingSessionInfo();
final List<RoutingSessionInfo> sessionInfos =
mRouterManager.getRoutingSessions(mPackageName);
final RoutingSessionInfo sessionInfo = sessionInfos.get(sessionInfos.size() - 1);
if (sessionInfo != null) { if (sessionInfo != null) {
mRouterManager.releaseSession(sessionInfo); mRouterManager.releaseSession(sessionInfo);
@@ -375,7 +367,7 @@ public class InfoMediaManager extends MediaManager {
mediaDevice = new InfoMediaDevice(mContext, mRouterManager, route, mediaDevice = new InfoMediaDevice(mContext, mRouterManager, route,
mPackageName); mPackageName);
if (!TextUtils.isEmpty(mPackageName) if (!TextUtils.isEmpty(mPackageName)
&& TextUtils.equals(route.getClientPackageName(), mPackageName) && getRoutingSessionInfo().getSelectedRoutes().contains(route.getId())
&& mCurrentConnectedDevice == null) { && mCurrentConnectedDevice == null) {
mCurrentConnectedDevice = mediaDevice; mCurrentConnectedDevice = mediaDevice;
} }

View File

@@ -77,6 +77,14 @@ public class InfoMediaManagerTest {
@Test @Test
public void onRouteAdded_getAvailableRoutes_shouldAddMediaDevice() { public void onRouteAdded_getAvailableRoutes_shouldAddMediaDevice() {
final List<RoutingSessionInfo> routingSessionInfos = new ArrayList<>();
final RoutingSessionInfo sessionInfo = mock(RoutingSessionInfo.class);
routingSessionInfos.add(sessionInfo);
final List<String> selectedRoutes = new ArrayList<>();
selectedRoutes.add(TEST_ID);
when(sessionInfo.getSelectedRoutes()).thenReturn(selectedRoutes);
mShadowRouter2Manager.setRoutingSessions(routingSessionInfos);
final MediaRoute2Info info = mock(MediaRoute2Info.class); final MediaRoute2Info info = mock(MediaRoute2Info.class);
when(info.getId()).thenReturn(TEST_ID); when(info.getId()).thenReturn(TEST_ID);
when(info.getClientPackageName()).thenReturn(TEST_PACKAGE_NAME); when(info.getClientPackageName()).thenReturn(TEST_PACKAGE_NAME);
@@ -120,6 +128,14 @@ public class InfoMediaManagerTest {
@Test @Test
public void onControlCategoriesChanged_samePackageName_shouldAddMediaDevice() { public void onControlCategoriesChanged_samePackageName_shouldAddMediaDevice() {
final List<RoutingSessionInfo> routingSessionInfos = new ArrayList<>();
final RoutingSessionInfo sessionInfo = mock(RoutingSessionInfo.class);
routingSessionInfos.add(sessionInfo);
final List<String> selectedRoutes = new ArrayList<>();
selectedRoutes.add(TEST_ID);
when(sessionInfo.getSelectedRoutes()).thenReturn(selectedRoutes);
mShadowRouter2Manager.setRoutingSessions(routingSessionInfos);
final MediaRoute2Info info = mock(MediaRoute2Info.class); final MediaRoute2Info info = mock(MediaRoute2Info.class);
when(info.getId()).thenReturn(TEST_ID); when(info.getId()).thenReturn(TEST_ID);
when(info.getClientPackageName()).thenReturn(TEST_PACKAGE_NAME); when(info.getClientPackageName()).thenReturn(TEST_PACKAGE_NAME);
@@ -148,6 +164,14 @@ public class InfoMediaManagerTest {
@Test @Test
public void onRoutesChanged_getAvailableRoutes_shouldAddMediaDevice() { public void onRoutesChanged_getAvailableRoutes_shouldAddMediaDevice() {
final List<RoutingSessionInfo> routingSessionInfos = new ArrayList<>();
final RoutingSessionInfo sessionInfo = mock(RoutingSessionInfo.class);
routingSessionInfos.add(sessionInfo);
final List<String> selectedRoutes = new ArrayList<>();
selectedRoutes.add(TEST_ID);
when(sessionInfo.getSelectedRoutes()).thenReturn(selectedRoutes);
mShadowRouter2Manager.setRoutingSessions(routingSessionInfos);
final MediaRoute2Info info = mock(MediaRoute2Info.class); final MediaRoute2Info info = mock(MediaRoute2Info.class);
mInfoMediaManager.registerCallback(mCallback); mInfoMediaManager.registerCallback(mCallback);
@@ -210,6 +234,14 @@ public class InfoMediaManagerTest {
@Test @Test
public void onRoutesRemoved_getAvailableRoutes_shouldAddMediaDevice() { public void onRoutesRemoved_getAvailableRoutes_shouldAddMediaDevice() {
final List<RoutingSessionInfo> routingSessionInfos = new ArrayList<>();
final RoutingSessionInfo sessionInfo = mock(RoutingSessionInfo.class);
routingSessionInfos.add(sessionInfo);
final List<String> selectedRoutes = new ArrayList<>();
selectedRoutes.add(TEST_ID);
when(sessionInfo.getSelectedRoutes()).thenReturn(selectedRoutes);
mShadowRouter2Manager.setRoutingSessions(routingSessionInfos);
final MediaRoute2Info info = mock(MediaRoute2Info.class); final MediaRoute2Info info = mock(MediaRoute2Info.class);
when(info.getId()).thenReturn(TEST_ID); when(info.getId()).thenReturn(TEST_ID);
when(info.getClientPackageName()).thenReturn(TEST_PACKAGE_NAME); when(info.getClientPackageName()).thenReturn(TEST_PACKAGE_NAME);
@@ -409,13 +441,12 @@ public class InfoMediaManagerTest {
} }
@Test @Test
public void getSessionVolumeMax_notContainPackageName_returnNotFound() { public void getSessionVolumeMax_routeSessionInfoIsNull_returnNotFound() {
final List<RoutingSessionInfo> routingSessionInfos = new ArrayList<>(); final List<RoutingSessionInfo> routingSessionInfos = new ArrayList<>();
final RoutingSessionInfo info = mock(RoutingSessionInfo.class); final RoutingSessionInfo info = null;
routingSessionInfos.add(info); routingSessionInfos.add(info);
mShadowRouter2Manager.setRoutingSessions(routingSessionInfos); mShadowRouter2Manager.setRoutingSessions(routingSessionInfos);
when(info.getClientPackageName()).thenReturn("com.fake.packagename");
assertThat(mInfoMediaManager.getSessionVolumeMax()).isEqualTo(-1); assertThat(mInfoMediaManager.getSessionVolumeMax()).isEqualTo(-1);
} }
@@ -442,13 +473,12 @@ public class InfoMediaManagerTest {
} }
@Test @Test
public void getSessionVolume_notContainPackageName_returnNotFound() { public void getSessionVolume_routeSessionInfoIsNull_returnNotFound() {
final List<RoutingSessionInfo> routingSessionInfos = new ArrayList<>(); final List<RoutingSessionInfo> routingSessionInfos = new ArrayList<>();
final RoutingSessionInfo info = mock(RoutingSessionInfo.class); final RoutingSessionInfo info = null;
routingSessionInfos.add(info); routingSessionInfos.add(info);
mShadowRouter2Manager.setRoutingSessions(routingSessionInfos); mShadowRouter2Manager.setRoutingSessions(routingSessionInfos);
when(info.getClientPackageName()).thenReturn("com.fake.packagename");
assertThat(mInfoMediaManager.getSessionVolume()).isEqualTo(-1); assertThat(mInfoMediaManager.getSessionVolume()).isEqualTo(-1);
} }
@@ -480,14 +510,12 @@ public class InfoMediaManagerTest {
} }
@Test @Test
public void getSessionName_notContainPackageName_returnNull() { public void getSessionName_routeSessionInfoIsNull_returnNull() {
final List<RoutingSessionInfo> routingSessionInfos = new ArrayList<>(); final List<RoutingSessionInfo> routingSessionInfos = new ArrayList<>();
final RoutingSessionInfo info = mock(RoutingSessionInfo.class); final RoutingSessionInfo info = null;
routingSessionInfos.add(info); routingSessionInfos.add(info);
mShadowRouter2Manager.setRoutingSessions(routingSessionInfos); mShadowRouter2Manager.setRoutingSessions(routingSessionInfos);
when(info.getClientPackageName()).thenReturn("com.fake.packagename");
when(info.getName()).thenReturn(TEST_NAME);
assertThat(mInfoMediaManager.getSessionName()).isNull(); assertThat(mInfoMediaManager.getSessionName()).isNull();
} }