Loading packages/SettingsLib/src/com/android/settingslib/media/InfoMediaManager.java +40 −63 Original line number Diff line number Diff line Loading @@ -66,7 +66,6 @@ import java.util.List; import java.util.Map; import java.util.Objects; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.CopyOnWriteArraySet; import java.util.concurrent.Executor; import java.util.function.Function; Loading Loading @@ -140,8 +139,6 @@ public abstract class InfoMediaManager { private MediaController mMediaController; private PlaybackInfo mLastKnownPlaybackInfo; private final LocalBluetoothManager mBluetoothManager; private final Map<String, RouteListingPreference.Item> mPreferenceItemMap = new ConcurrentHashMap<>(); @GuardedBy("mLock") private final Map<String, List<SuggestedDeviceInfo>> mSuggestedDeviceMap = new HashMap<>(); @GuardedBy("mLock") Loading Loading @@ -218,15 +215,6 @@ public abstract class InfoMediaManager { startScanOnRouter(); } private void updateRouteListingPreference() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) { RouteListingPreference routeListingPreference = getRouteListingPreference(); Api34Impl.onRouteListingPreferenceUpdated(routeListingPreference, mPreferenceItemMap); } } public final void stopScan() { Log.i(TAG, "stopScan()"); stopScanOnRouter(); Loading Loading @@ -310,7 +298,18 @@ public abstract class InfoMediaManager { @RequiresApi(34) protected final void notifyRouteListingPreferenceUpdated( RouteListingPreference routeListingPreference) { Api34Impl.onRouteListingPreferenceUpdated(routeListingPreference, mPreferenceItemMap); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) { if (DEBUG) { if (routeListingPreference != null) { Log.d(TAG, "RouteListingPreference. useSystemOrder = " + routeListingPreference.getUseSystemOrdering()); for (RouteListingPreference.Item rlpItem : routeListingPreference.getItems()) { Log.d(TAG, rlpItem.toString()); } } } } // TODO: b/435500030 - update the device list whenever RLP changes. } @VisibleForTesting Loading Loading @@ -358,7 +357,6 @@ public abstract class InfoMediaManager { if (mMediaController != null) { mMediaController.registerCallback(mMediaControllerCallback, callbackHandler); } updateRouteListingPreference(); refreshDevices(); } } Loading Loading @@ -822,12 +820,13 @@ public abstract class InfoMediaManager { // MediaRoute2Info.getType was made public on API 34, but exists since API 30. @SuppressWarnings("NewApi") private void buildAvailableRoutes() { Map<String, RouteListingPreference.Item> rlpItemMap = getRouteListingPreferenceMap(); synchronized (mLock) { mMediaDevices.clear(); RoutingSessionInfo activeSession = getActiveRoutingSession(); for (MediaRoute2Info route : getAvailableRoutes(activeSession)) { addMediaDeviceLocked(route, activeSession); addMediaDeviceLocked(route, activeSession, rlpItemMap.get(route.getId())); } // In practice, mMediaDevices should always have at least one route. Loading @@ -838,6 +837,18 @@ public abstract class InfoMediaManager { } } @NonNull private Map<String, RouteListingPreference.Item> getRouteListingPreferenceMap() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) { RouteListingPreference routeListingPreference = getRouteListingPreference(); if (routeListingPreference != null) { return routeListingPreference.getItems().stream().collect( Collectors.toMap(RouteListingPreference.Item::getRouteId, item -> item)); } } return new HashMap<>(); } private List<MediaRoute2Info> getAvailableRoutes( RoutingSessionInfo activeSession) { List<MediaRoute2Info> availableRoutes = new ArrayList<>(); Loading Loading @@ -877,33 +888,17 @@ public abstract class InfoMediaManager { @GuardedBy("mLock") @VisibleForTesting void addMediaDeviceLocked(@NonNull MediaRoute2Info route, @NonNull RoutingSessionInfo activeSession) { @NonNull RoutingSessionInfo activeSession, @Nullable RouteListingPreference.Item rlpItem) { DynamicRouteAttributes dynamicRouteAttributes = getDynamicRouteAttributes(activeSession, route); MediaDevice mediaDevice = createMediaDeviceFromRouteLocked(route, dynamicRouteAttributes); if (mediaDevice != null) { if (mediaDevice.isSelected()) { mediaDevice.setState(STATE_SELECTED); } else if (route.getConnectionState() == CONNECTION_STATE_CONNECTING) { mediaDevice.setState(STATE_CONNECTING); } mMediaDevices.add(mediaDevice); } } @GuardedBy("mLock") @Nullable private MediaDevice createMediaDeviceFromRouteLocked(@NonNull MediaRoute2Info route, @NonNull DynamicRouteAttributes dynamicRouteAttributes) { final int deviceType = route.getType(); MediaDevice mediaDevice = null; if (isInfoMediaDevice(deviceType)) { mediaDevice = new InfoMediaDevice(mContext, route, dynamicRouteAttributes, mPreferenceItemMap.get(route.getId())); mediaDevice = new InfoMediaDevice(mContext, route, dynamicRouteAttributes, rlpItem); } else if (isPhoneMediaDevice(deviceType)) { mediaDevice = new PhoneMediaDevice(mContext, route, dynamicRouteAttributes, mPreferenceItemMap.getOrDefault(route.getId(), null)); mediaDevice = new PhoneMediaDevice(mContext, route, dynamicRouteAttributes, rlpItem); } else if (isBluetoothMediaDevice(deviceType)) { if (route.getAddress() == null) { Loading @@ -915,19 +910,23 @@ public abstract class InfoMediaManager { mBluetoothManager.getCachedDeviceManager().findDevice(device); if (cachedDevice != null) { mediaDevice = new BluetoothMediaDevice(mContext, cachedDevice, route, dynamicRouteAttributes, mPreferenceItemMap.getOrDefault(route.getId(), null)); dynamicRouteAttributes, rlpItem); } } } else if (isComplexMediaDevice(deviceType)) { mediaDevice = new ComplexMediaDevice(mContext, route, dynamicRouteAttributes, mPreferenceItemMap.get(route.getId())); mediaDevice = new ComplexMediaDevice(mContext, route, dynamicRouteAttributes, rlpItem); } else { Log.w(TAG, "createRouteToMediaDevice() unknown device type : " + deviceType); } return mediaDevice; if (mediaDevice != null) { if (mediaDevice.isSelected()) { mediaDevice.setState(STATE_SELECTED); } else if (route.getConnectionState() == CONNECTION_STATE_CONNECTING) { mediaDevice.setState(STATE_CONNECTING); } mMediaDevices.add(mediaDevice); } } @NonNull Loading Loading @@ -1061,28 +1060,6 @@ public abstract class InfoMediaManager { return routeListingPreference == null ? null : routeListingPreference.getLinkedItemComponentName(); } @DoNotInline static void onRouteListingPreferenceUpdated( RouteListingPreference routeListingPreference, Map<String, RouteListingPreference.Item> preferenceItemMap) { Log.i(TAG, "onRouteListingPreferenceUpdated(), hasRLP: " + (routeListingPreference != null)); if (DEBUG) { if (routeListingPreference != null) { Log.d(TAG, "RouteListingPreference. useSystemOrder = " + routeListingPreference.getUseSystemOrdering()); for (RouteListingPreference.Item rlpItem : routeListingPreference.getItems()) { Log.d(TAG, rlpItem.toString()); } } } preferenceItemMap.clear(); if (routeListingPreference != null) { routeListingPreference.getItems().forEach((item) -> preferenceItemMap.put(item.getRouteId(), item)); } } } private final class MediaControllerCallback extends MediaController.Callback { Loading packages/SettingsLib/src/com/android/settingslib/media/RouterInfoMediaManager.java +4 −0 Original line number Diff line number Diff line Loading @@ -71,6 +71,10 @@ public final class RouterInfoMediaManager extends InfoMediaManager { @VisibleForTesting final Consumer<RouteListingPreference> mRouteListingPreferenceCallback = (preference) -> { if (DEBUG) { Log.d(TAG, "onRouteListingPreferenceUpdated(), hasRLP: " + (preference != null)); } notifyRouteListingPreferenceUpdated(preference); refreshDevices(); }; Loading packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/InfoMediaManagerTest.java +8 −8 Original line number Diff line number Diff line Loading @@ -865,19 +865,19 @@ public class InfoMediaManagerTest { when(route2Info.getType()).thenReturn(TYPE_REMOTE_SPEAKER); when(route2Info.getId()).thenReturn(TEST_ID); mInfoMediaManager.addMediaDeviceLocked(route2Info, TEST_SYSTEM_ROUTING_SESSION); mInfoMediaManager.addMediaDeviceLocked(route2Info, TEST_SYSTEM_ROUTING_SESSION, null); assertThat(mInfoMediaManager.mMediaDevices.get(0) instanceof InfoMediaDevice).isTrue(); when(route2Info.getType()).thenReturn(TYPE_USB_DEVICE); when(route2Info.getId()).thenReturn(TEST_ID); mInfoMediaManager.mMediaDevices.clear(); mInfoMediaManager.addMediaDeviceLocked(route2Info, TEST_SYSTEM_ROUTING_SESSION); mInfoMediaManager.addMediaDeviceLocked(route2Info, TEST_SYSTEM_ROUTING_SESSION, null); assertThat(mInfoMediaManager.mMediaDevices.get(0) instanceof PhoneMediaDevice).isTrue(); when(route2Info.getType()).thenReturn(TYPE_WIRED_HEADSET); when(route2Info.getId()).thenReturn(TEST_ID); mInfoMediaManager.mMediaDevices.clear(); mInfoMediaManager.addMediaDeviceLocked(route2Info, TEST_SYSTEM_ROUTING_SESSION); mInfoMediaManager.addMediaDeviceLocked(route2Info, TEST_SYSTEM_ROUTING_SESSION, null); assertThat(mInfoMediaManager.mMediaDevices.get(0) instanceof PhoneMediaDevice).isTrue(); when(route2Info.getType()).thenReturn(TYPE_BLUETOOTH_A2DP); Loading @@ -888,12 +888,12 @@ public class InfoMediaManagerTest { when(cachedBluetoothDeviceManager.findDevice(any(BluetoothDevice.class))) .thenReturn(cachedDevice); mInfoMediaManager.mMediaDevices.clear(); mInfoMediaManager.addMediaDeviceLocked(route2Info, TEST_SYSTEM_ROUTING_SESSION); mInfoMediaManager.addMediaDeviceLocked(route2Info, TEST_SYSTEM_ROUTING_SESSION, null); assertThat(mInfoMediaManager.mMediaDevices.get(0) instanceof BluetoothMediaDevice).isTrue(); when(route2Info.getType()).thenReturn(TYPE_BUILTIN_SPEAKER); mInfoMediaManager.mMediaDevices.clear(); mInfoMediaManager.addMediaDeviceLocked(route2Info, TEST_SYSTEM_ROUTING_SESSION); mInfoMediaManager.addMediaDeviceLocked(route2Info, TEST_SYSTEM_ROUTING_SESSION, null); assertThat(mInfoMediaManager.mMediaDevices.get(0) instanceof PhoneMediaDevice).isTrue(); } Loading @@ -903,7 +903,7 @@ public class InfoMediaManagerTest { when(route2Info.getConnectionState()).thenReturn(CONNECTION_STATE_CONNECTING); when(route2Info.getType()).thenReturn(TYPE_REMOTE_SPEAKER); when(route2Info.getId()).thenReturn(TEST_ID); mInfoMediaManager.addMediaDeviceLocked(route2Info, TEST_SYSTEM_ROUTING_SESSION); mInfoMediaManager.addMediaDeviceLocked(route2Info, TEST_SYSTEM_ROUTING_SESSION, null); assertThat(mInfoMediaManager.mMediaDevices.get(0).getState()).isEqualTo(STATE_CONNECTING); } Loading @@ -922,7 +922,7 @@ public class InfoMediaManagerTest { .thenReturn(null); mInfoMediaManager.mMediaDevices.clear(); mInfoMediaManager.addMediaDeviceLocked(route2Info, TEST_SYSTEM_ROUTING_SESSION); mInfoMediaManager.addMediaDeviceLocked(route2Info, TEST_SYSTEM_ROUTING_SESSION, null); assertThat(mInfoMediaManager.mMediaDevices.size()).isEqualTo(0); } Loading @@ -939,7 +939,7 @@ public class InfoMediaManagerTest { when(cachedBluetoothDeviceManager.findDevice(any(BluetoothDevice.class))).thenReturn(null); mInfoMediaManager.mMediaDevices.clear(); mInfoMediaManager.addMediaDeviceLocked(bluetoothRoute, TEST_SYSTEM_ROUTING_SESSION); mInfoMediaManager.addMediaDeviceLocked(bluetoothRoute, TEST_SYSTEM_ROUTING_SESSION, null); assertThat(mInfoMediaManager.mMediaDevices.size()).isEqualTo(0); } Loading Loading
packages/SettingsLib/src/com/android/settingslib/media/InfoMediaManager.java +40 −63 Original line number Diff line number Diff line Loading @@ -66,7 +66,6 @@ import java.util.List; import java.util.Map; import java.util.Objects; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.CopyOnWriteArraySet; import java.util.concurrent.Executor; import java.util.function.Function; Loading Loading @@ -140,8 +139,6 @@ public abstract class InfoMediaManager { private MediaController mMediaController; private PlaybackInfo mLastKnownPlaybackInfo; private final LocalBluetoothManager mBluetoothManager; private final Map<String, RouteListingPreference.Item> mPreferenceItemMap = new ConcurrentHashMap<>(); @GuardedBy("mLock") private final Map<String, List<SuggestedDeviceInfo>> mSuggestedDeviceMap = new HashMap<>(); @GuardedBy("mLock") Loading Loading @@ -218,15 +215,6 @@ public abstract class InfoMediaManager { startScanOnRouter(); } private void updateRouteListingPreference() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) { RouteListingPreference routeListingPreference = getRouteListingPreference(); Api34Impl.onRouteListingPreferenceUpdated(routeListingPreference, mPreferenceItemMap); } } public final void stopScan() { Log.i(TAG, "stopScan()"); stopScanOnRouter(); Loading Loading @@ -310,7 +298,18 @@ public abstract class InfoMediaManager { @RequiresApi(34) protected final void notifyRouteListingPreferenceUpdated( RouteListingPreference routeListingPreference) { Api34Impl.onRouteListingPreferenceUpdated(routeListingPreference, mPreferenceItemMap); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) { if (DEBUG) { if (routeListingPreference != null) { Log.d(TAG, "RouteListingPreference. useSystemOrder = " + routeListingPreference.getUseSystemOrdering()); for (RouteListingPreference.Item rlpItem : routeListingPreference.getItems()) { Log.d(TAG, rlpItem.toString()); } } } } // TODO: b/435500030 - update the device list whenever RLP changes. } @VisibleForTesting Loading Loading @@ -358,7 +357,6 @@ public abstract class InfoMediaManager { if (mMediaController != null) { mMediaController.registerCallback(mMediaControllerCallback, callbackHandler); } updateRouteListingPreference(); refreshDevices(); } } Loading Loading @@ -822,12 +820,13 @@ public abstract class InfoMediaManager { // MediaRoute2Info.getType was made public on API 34, but exists since API 30. @SuppressWarnings("NewApi") private void buildAvailableRoutes() { Map<String, RouteListingPreference.Item> rlpItemMap = getRouteListingPreferenceMap(); synchronized (mLock) { mMediaDevices.clear(); RoutingSessionInfo activeSession = getActiveRoutingSession(); for (MediaRoute2Info route : getAvailableRoutes(activeSession)) { addMediaDeviceLocked(route, activeSession); addMediaDeviceLocked(route, activeSession, rlpItemMap.get(route.getId())); } // In practice, mMediaDevices should always have at least one route. Loading @@ -838,6 +837,18 @@ public abstract class InfoMediaManager { } } @NonNull private Map<String, RouteListingPreference.Item> getRouteListingPreferenceMap() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) { RouteListingPreference routeListingPreference = getRouteListingPreference(); if (routeListingPreference != null) { return routeListingPreference.getItems().stream().collect( Collectors.toMap(RouteListingPreference.Item::getRouteId, item -> item)); } } return new HashMap<>(); } private List<MediaRoute2Info> getAvailableRoutes( RoutingSessionInfo activeSession) { List<MediaRoute2Info> availableRoutes = new ArrayList<>(); Loading Loading @@ -877,33 +888,17 @@ public abstract class InfoMediaManager { @GuardedBy("mLock") @VisibleForTesting void addMediaDeviceLocked(@NonNull MediaRoute2Info route, @NonNull RoutingSessionInfo activeSession) { @NonNull RoutingSessionInfo activeSession, @Nullable RouteListingPreference.Item rlpItem) { DynamicRouteAttributes dynamicRouteAttributes = getDynamicRouteAttributes(activeSession, route); MediaDevice mediaDevice = createMediaDeviceFromRouteLocked(route, dynamicRouteAttributes); if (mediaDevice != null) { if (mediaDevice.isSelected()) { mediaDevice.setState(STATE_SELECTED); } else if (route.getConnectionState() == CONNECTION_STATE_CONNECTING) { mediaDevice.setState(STATE_CONNECTING); } mMediaDevices.add(mediaDevice); } } @GuardedBy("mLock") @Nullable private MediaDevice createMediaDeviceFromRouteLocked(@NonNull MediaRoute2Info route, @NonNull DynamicRouteAttributes dynamicRouteAttributes) { final int deviceType = route.getType(); MediaDevice mediaDevice = null; if (isInfoMediaDevice(deviceType)) { mediaDevice = new InfoMediaDevice(mContext, route, dynamicRouteAttributes, mPreferenceItemMap.get(route.getId())); mediaDevice = new InfoMediaDevice(mContext, route, dynamicRouteAttributes, rlpItem); } else if (isPhoneMediaDevice(deviceType)) { mediaDevice = new PhoneMediaDevice(mContext, route, dynamicRouteAttributes, mPreferenceItemMap.getOrDefault(route.getId(), null)); mediaDevice = new PhoneMediaDevice(mContext, route, dynamicRouteAttributes, rlpItem); } else if (isBluetoothMediaDevice(deviceType)) { if (route.getAddress() == null) { Loading @@ -915,19 +910,23 @@ public abstract class InfoMediaManager { mBluetoothManager.getCachedDeviceManager().findDevice(device); if (cachedDevice != null) { mediaDevice = new BluetoothMediaDevice(mContext, cachedDevice, route, dynamicRouteAttributes, mPreferenceItemMap.getOrDefault(route.getId(), null)); dynamicRouteAttributes, rlpItem); } } } else if (isComplexMediaDevice(deviceType)) { mediaDevice = new ComplexMediaDevice(mContext, route, dynamicRouteAttributes, mPreferenceItemMap.get(route.getId())); mediaDevice = new ComplexMediaDevice(mContext, route, dynamicRouteAttributes, rlpItem); } else { Log.w(TAG, "createRouteToMediaDevice() unknown device type : " + deviceType); } return mediaDevice; if (mediaDevice != null) { if (mediaDevice.isSelected()) { mediaDevice.setState(STATE_SELECTED); } else if (route.getConnectionState() == CONNECTION_STATE_CONNECTING) { mediaDevice.setState(STATE_CONNECTING); } mMediaDevices.add(mediaDevice); } } @NonNull Loading Loading @@ -1061,28 +1060,6 @@ public abstract class InfoMediaManager { return routeListingPreference == null ? null : routeListingPreference.getLinkedItemComponentName(); } @DoNotInline static void onRouteListingPreferenceUpdated( RouteListingPreference routeListingPreference, Map<String, RouteListingPreference.Item> preferenceItemMap) { Log.i(TAG, "onRouteListingPreferenceUpdated(), hasRLP: " + (routeListingPreference != null)); if (DEBUG) { if (routeListingPreference != null) { Log.d(TAG, "RouteListingPreference. useSystemOrder = " + routeListingPreference.getUseSystemOrdering()); for (RouteListingPreference.Item rlpItem : routeListingPreference.getItems()) { Log.d(TAG, rlpItem.toString()); } } } preferenceItemMap.clear(); if (routeListingPreference != null) { routeListingPreference.getItems().forEach((item) -> preferenceItemMap.put(item.getRouteId(), item)); } } } private final class MediaControllerCallback extends MediaController.Callback { Loading
packages/SettingsLib/src/com/android/settingslib/media/RouterInfoMediaManager.java +4 −0 Original line number Diff line number Diff line Loading @@ -71,6 +71,10 @@ public final class RouterInfoMediaManager extends InfoMediaManager { @VisibleForTesting final Consumer<RouteListingPreference> mRouteListingPreferenceCallback = (preference) -> { if (DEBUG) { Log.d(TAG, "onRouteListingPreferenceUpdated(), hasRLP: " + (preference != null)); } notifyRouteListingPreferenceUpdated(preference); refreshDevices(); }; Loading
packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/InfoMediaManagerTest.java +8 −8 Original line number Diff line number Diff line Loading @@ -865,19 +865,19 @@ public class InfoMediaManagerTest { when(route2Info.getType()).thenReturn(TYPE_REMOTE_SPEAKER); when(route2Info.getId()).thenReturn(TEST_ID); mInfoMediaManager.addMediaDeviceLocked(route2Info, TEST_SYSTEM_ROUTING_SESSION); mInfoMediaManager.addMediaDeviceLocked(route2Info, TEST_SYSTEM_ROUTING_SESSION, null); assertThat(mInfoMediaManager.mMediaDevices.get(0) instanceof InfoMediaDevice).isTrue(); when(route2Info.getType()).thenReturn(TYPE_USB_DEVICE); when(route2Info.getId()).thenReturn(TEST_ID); mInfoMediaManager.mMediaDevices.clear(); mInfoMediaManager.addMediaDeviceLocked(route2Info, TEST_SYSTEM_ROUTING_SESSION); mInfoMediaManager.addMediaDeviceLocked(route2Info, TEST_SYSTEM_ROUTING_SESSION, null); assertThat(mInfoMediaManager.mMediaDevices.get(0) instanceof PhoneMediaDevice).isTrue(); when(route2Info.getType()).thenReturn(TYPE_WIRED_HEADSET); when(route2Info.getId()).thenReturn(TEST_ID); mInfoMediaManager.mMediaDevices.clear(); mInfoMediaManager.addMediaDeviceLocked(route2Info, TEST_SYSTEM_ROUTING_SESSION); mInfoMediaManager.addMediaDeviceLocked(route2Info, TEST_SYSTEM_ROUTING_SESSION, null); assertThat(mInfoMediaManager.mMediaDevices.get(0) instanceof PhoneMediaDevice).isTrue(); when(route2Info.getType()).thenReturn(TYPE_BLUETOOTH_A2DP); Loading @@ -888,12 +888,12 @@ public class InfoMediaManagerTest { when(cachedBluetoothDeviceManager.findDevice(any(BluetoothDevice.class))) .thenReturn(cachedDevice); mInfoMediaManager.mMediaDevices.clear(); mInfoMediaManager.addMediaDeviceLocked(route2Info, TEST_SYSTEM_ROUTING_SESSION); mInfoMediaManager.addMediaDeviceLocked(route2Info, TEST_SYSTEM_ROUTING_SESSION, null); assertThat(mInfoMediaManager.mMediaDevices.get(0) instanceof BluetoothMediaDevice).isTrue(); when(route2Info.getType()).thenReturn(TYPE_BUILTIN_SPEAKER); mInfoMediaManager.mMediaDevices.clear(); mInfoMediaManager.addMediaDeviceLocked(route2Info, TEST_SYSTEM_ROUTING_SESSION); mInfoMediaManager.addMediaDeviceLocked(route2Info, TEST_SYSTEM_ROUTING_SESSION, null); assertThat(mInfoMediaManager.mMediaDevices.get(0) instanceof PhoneMediaDevice).isTrue(); } Loading @@ -903,7 +903,7 @@ public class InfoMediaManagerTest { when(route2Info.getConnectionState()).thenReturn(CONNECTION_STATE_CONNECTING); when(route2Info.getType()).thenReturn(TYPE_REMOTE_SPEAKER); when(route2Info.getId()).thenReturn(TEST_ID); mInfoMediaManager.addMediaDeviceLocked(route2Info, TEST_SYSTEM_ROUTING_SESSION); mInfoMediaManager.addMediaDeviceLocked(route2Info, TEST_SYSTEM_ROUTING_SESSION, null); assertThat(mInfoMediaManager.mMediaDevices.get(0).getState()).isEqualTo(STATE_CONNECTING); } Loading @@ -922,7 +922,7 @@ public class InfoMediaManagerTest { .thenReturn(null); mInfoMediaManager.mMediaDevices.clear(); mInfoMediaManager.addMediaDeviceLocked(route2Info, TEST_SYSTEM_ROUTING_SESSION); mInfoMediaManager.addMediaDeviceLocked(route2Info, TEST_SYSTEM_ROUTING_SESSION, null); assertThat(mInfoMediaManager.mMediaDevices.size()).isEqualTo(0); } Loading @@ -939,7 +939,7 @@ public class InfoMediaManagerTest { when(cachedBluetoothDeviceManager.findDevice(any(BluetoothDevice.class))).thenReturn(null); mInfoMediaManager.mMediaDevices.clear(); mInfoMediaManager.addMediaDeviceLocked(bluetoothRoute, TEST_SYSTEM_ROUTING_SESSION); mInfoMediaManager.addMediaDeviceLocked(bluetoothRoute, TEST_SYSTEM_ROUTING_SESSION, null); assertThat(mInfoMediaManager.mMediaDevices.size()).isEqualTo(0); } Loading