Merge "Update devices list when onRoutesChanged() called" into rvc-dev am: a3645665e4

Change-Id: I051f0c4b17316afe347b811b4bd277b1b2bafe27
This commit is contained in:
TreeHugger Robot
2020-03-31 04:43:09 +00:00
committed by Automerger Merge Worker
2 changed files with 73 additions and 20 deletions

View File

@@ -338,7 +338,8 @@ public class InfoMediaManager extends MediaManager {
private void buildAllRoutes() {
for (MediaRoute2Info route : mRouterManager.getAllRoutes()) {
if (DEBUG) {
Log.d(TAG, "buildAllRoutes() route : " + route.getName());
Log.d(TAG, "buildAllRoutes() route : " + route.getName() + ", volume : "
+ route.getVolume());
}
if (route.isSystemRoute()) {
addMediaDevice(route);
@@ -414,6 +415,20 @@ public class InfoMediaManager extends MediaManager {
@Override
public void onRoutesChanged(List<MediaRoute2Info> routes) {
refreshDevices();
}
@Override
public void onRoutesRemoved(List<MediaRoute2Info> routes) {
refreshDevices();
}
@Override
public void onTransferred(RoutingSessionInfo oldSession, RoutingSessionInfo newSession) {
if (DEBUG) {
Log.d(TAG, "onTransferred() oldSession : " + oldSession.getName()
+ ", newSession : " + newSession.getName());
}
mMediaDevices.clear();
mCurrentConnectedDevice = null;
if (TextUtils.isEmpty(mPackageName)) {
@@ -428,19 +443,6 @@ public class InfoMediaManager extends MediaManager {
dispatchConnectedDeviceChanged(id);
}
@Override
public void onRoutesRemoved(List<MediaRoute2Info> routes) {
refreshDevices();
}
@Override
public void onTransferred(RoutingSessionInfo oldSession, RoutingSessionInfo newSession) {
if (DEBUG) {
Log.d(TAG, "onTransferred() oldSession : " + oldSession.getName()
+ ", newSession : " + newSession.getName());
}
}
@Override
public void onTransferFailed(RoutingSessionInfo session, MediaRoute2Info route) {
dispatchOnRequestFailed(REASON_UNKNOWN_ERROR);

View File

@@ -173,8 +173,6 @@ public class InfoMediaManagerTest {
mShadowRouter2Manager.setRoutingSessions(routingSessionInfos);
final MediaRoute2Info info = mock(MediaRoute2Info.class);
mInfoMediaManager.registerCallback(mCallback);
when(info.getId()).thenReturn(TEST_ID);
when(info.getClientPackageName()).thenReturn(TEST_PACKAGE_NAME);
@@ -191,14 +189,11 @@ public class InfoMediaManagerTest {
assertThat(infoDevice.getId()).isEqualTo(TEST_ID);
assertThat(mInfoMediaManager.getCurrentConnectedDevice()).isEqualTo(infoDevice);
assertThat(mInfoMediaManager.mMediaDevices).hasSize(routes.size());
verify(mCallback).onConnectedDeviceChanged(TEST_ID);
}
@Test
public void onRoutesChanged_buildAllRoutes_shouldAddMediaDevice() {
final MediaRoute2Info info = mock(MediaRoute2Info.class);
mInfoMediaManager.registerCallback(mCallback);
when(info.getId()).thenReturn(TEST_ID);
when(info.getClientPackageName()).thenReturn(TEST_PACKAGE_NAME);
when(info.isSystemRoute()).thenReturn(true);
@@ -216,7 +211,6 @@ public class InfoMediaManagerTest {
final MediaDevice infoDevice = mInfoMediaManager.mMediaDevices.get(0);
assertThat(infoDevice.getId()).isEqualTo(TEST_ID);
assertThat(mInfoMediaManager.mMediaDevices).hasSize(routes.size());
verify(mCallback).onConnectedDeviceChanged(null);
}
@Test
@@ -550,4 +544,61 @@ public class InfoMediaManagerTest {
verify(mCallback).onRequestFailed(REASON_NETWORK_ERROR);
}
@Test
public void onTransferred_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);
mInfoMediaManager.registerCallback(mCallback);
when(info.getId()).thenReturn(TEST_ID);
when(info.getClientPackageName()).thenReturn(TEST_PACKAGE_NAME);
final List<MediaRoute2Info> routes = new ArrayList<>();
routes.add(info);
mShadowRouter2Manager.setAvailableRoutes(routes);
final MediaDevice mediaDevice = mInfoMediaManager.findMediaDevice(TEST_ID);
assertThat(mediaDevice).isNull();
mInfoMediaManager.mMediaRouterCallback.onTransferred(null, null);
final MediaDevice infoDevice = mInfoMediaManager.mMediaDevices.get(0);
assertThat(infoDevice.getId()).isEqualTo(TEST_ID);
assertThat(mInfoMediaManager.getCurrentConnectedDevice()).isEqualTo(infoDevice);
assertThat(mInfoMediaManager.mMediaDevices).hasSize(routes.size());
verify(mCallback).onConnectedDeviceChanged(TEST_ID);
}
@Test
public void onTransferred_buildAllRoutes_shouldAddMediaDevice() {
final MediaRoute2Info info = mock(MediaRoute2Info.class);
mInfoMediaManager.registerCallback(mCallback);
when(info.getId()).thenReturn(TEST_ID);
when(info.getClientPackageName()).thenReturn(TEST_PACKAGE_NAME);
when(info.isSystemRoute()).thenReturn(true);
final List<MediaRoute2Info> routes = new ArrayList<>();
routes.add(info);
mShadowRouter2Manager.setAllRoutes(routes);
final MediaDevice mediaDevice = mInfoMediaManager.findMediaDevice(TEST_ID);
assertThat(mediaDevice).isNull();
mInfoMediaManager.mPackageName = "";
mInfoMediaManager.mMediaRouterCallback.onTransferred(null, null);
final MediaDevice infoDevice = mInfoMediaManager.mMediaDevices.get(0);
assertThat(infoDevice.getId()).isEqualTo(TEST_ID);
assertThat(mInfoMediaManager.mMediaDevices).hasSize(routes.size());
verify(mCallback).onConnectedDeviceChanged(null);
}
}