summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/media/InfoMediaManager.java18
-rw-r--r--packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/InfoMediaManagerTest.java48
2 files changed, 43 insertions, 23 deletions
diff --git a/packages/SettingsLib/src/com/android/settingslib/media/InfoMediaManager.java b/packages/SettingsLib/src/com/android/settingslib/media/InfoMediaManager.java
index 24cd55175f63..cf1662409efc 100644
--- a/packages/SettingsLib/src/com/android/settingslib/media/InfoMediaManager.java
+++ b/packages/SettingsLib/src/com/android/settingslib/media/InfoMediaManager.java
@@ -52,7 +52,6 @@ public class InfoMediaManager extends MediaManager {
private static final String TAG = "InfoMediaManager";
private static final boolean DEBUG = false;
-
@VisibleForTesting
final RouterManagerCallback mMediaRouterCallback = new RouterManagerCallback();
@VisibleForTesting
@@ -138,14 +137,10 @@ public class InfoMediaManager extends MediaManager {
}
private RoutingSessionInfo getRoutingSessionInfo() {
- for (RoutingSessionInfo info : mRouterManager.getRoutingSessions(mPackageName)) {
- if (TextUtils.equals(info.getClientPackageName(), mPackageName)) {
- return info;
- }
- }
+ final List<RoutingSessionInfo> sessionInfos =
+ mRouterManager.getRoutingSessions(mPackageName);
- Log.w(TAG, "RoutingSessionInfo() cannot found match packagename : " + mPackageName);
- return null;
+ return sessionInfos.get(sessionInfos.size() - 1);
}
/**
@@ -181,10 +176,7 @@ public class InfoMediaManager extends MediaManager {
return false;
}
-
- final List<RoutingSessionInfo> sessionInfos =
- mRouterManager.getRoutingSessions(mPackageName);
- final RoutingSessionInfo sessionInfo = sessionInfos.get(sessionInfos.size() - 1);
+ final RoutingSessionInfo sessionInfo = getRoutingSessionInfo();
if (sessionInfo != null) {
mRouterManager.releaseSession(sessionInfo);
@@ -375,7 +367,7 @@ public class InfoMediaManager extends MediaManager {
mediaDevice = new InfoMediaDevice(mContext, mRouterManager, route,
mPackageName);
if (!TextUtils.isEmpty(mPackageName)
- && TextUtils.equals(route.getClientPackageName(), mPackageName)
+ && getRoutingSessionInfo().getSelectedRoutes().contains(route.getId())
&& mCurrentConnectedDevice == null) {
mCurrentConnectedDevice = mediaDevice;
}
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/InfoMediaManagerTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/InfoMediaManagerTest.java
index 7f93f697152c..d0c37a0bd8c1 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/InfoMediaManagerTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/InfoMediaManagerTest.java
@@ -77,6 +77,14 @@ public class InfoMediaManagerTest {
@Test
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);
when(info.getId()).thenReturn(TEST_ID);
when(info.getClientPackageName()).thenReturn(TEST_PACKAGE_NAME);
@@ -120,6 +128,14 @@ public class InfoMediaManagerTest {
@Test
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);
when(info.getId()).thenReturn(TEST_ID);
when(info.getClientPackageName()).thenReturn(TEST_PACKAGE_NAME);
@@ -148,6 +164,14 @@ public class InfoMediaManagerTest {
@Test
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);
mInfoMediaManager.registerCallback(mCallback);
@@ -210,6 +234,14 @@ public class InfoMediaManagerTest {
@Test
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);
when(info.getId()).thenReturn(TEST_ID);
when(info.getClientPackageName()).thenReturn(TEST_PACKAGE_NAME);
@@ -409,13 +441,12 @@ public class InfoMediaManagerTest {
}
@Test
- public void getSessionVolumeMax_notContainPackageName_returnNotFound() {
+ public void getSessionVolumeMax_routeSessionInfoIsNull_returnNotFound() {
final List<RoutingSessionInfo> routingSessionInfos = new ArrayList<>();
- final RoutingSessionInfo info = mock(RoutingSessionInfo.class);
+ final RoutingSessionInfo info = null;
routingSessionInfos.add(info);
mShadowRouter2Manager.setRoutingSessions(routingSessionInfos);
- when(info.getClientPackageName()).thenReturn("com.fake.packagename");
assertThat(mInfoMediaManager.getSessionVolumeMax()).isEqualTo(-1);
}
@@ -442,13 +473,12 @@ public class InfoMediaManagerTest {
}
@Test
- public void getSessionVolume_notContainPackageName_returnNotFound() {
+ public void getSessionVolume_routeSessionInfoIsNull_returnNotFound() {
final List<RoutingSessionInfo> routingSessionInfos = new ArrayList<>();
- final RoutingSessionInfo info = mock(RoutingSessionInfo.class);
+ final RoutingSessionInfo info = null;
routingSessionInfos.add(info);
mShadowRouter2Manager.setRoutingSessions(routingSessionInfos);
- when(info.getClientPackageName()).thenReturn("com.fake.packagename");
assertThat(mInfoMediaManager.getSessionVolume()).isEqualTo(-1);
}
@@ -480,14 +510,12 @@ public class InfoMediaManagerTest {
}
@Test
- public void getSessionName_notContainPackageName_returnNull() {
+ public void getSessionName_routeSessionInfoIsNull_returnNull() {
final List<RoutingSessionInfo> routingSessionInfos = new ArrayList<>();
- final RoutingSessionInfo info = mock(RoutingSessionInfo.class);
+ final RoutingSessionInfo info = null;
routingSessionInfos.add(info);
mShadowRouter2Manager.setRoutingSessions(routingSessionInfos);
- when(info.getClientPackageName()).thenReturn("com.fake.packagename");
- when(info.getName()).thenReturn(TEST_NAME);
assertThat(mInfoMediaManager.getSessionName()).isNull();
}