Merge "Update devices list when onRoutesChanged() called" into rvc-dev am: a3645665e4
Change-Id: I051f0c4b17316afe347b811b4bd277b1b2bafe27
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user