Loading packages/SettingsLib/src/com/android/settingslib/media/LocalMediaManager.java +6 −1 Original line number Original line Diff line number Diff line Loading @@ -66,6 +66,7 @@ public class LocalMediaManager implements BluetoothCallback { private LocalBluetoothManager mLocalBluetoothManager; private LocalBluetoothManager mLocalBluetoothManager; private InfoMediaManager mInfoMediaManager; private InfoMediaManager mInfoMediaManager; private String mPackageName; private String mPackageName; private MediaDevice mOnTransferBluetoothDevice; @VisibleForTesting @VisibleForTesting List<MediaDevice> mMediaDevices = new ArrayList<>(); List<MediaDevice> mMediaDevices = new ArrayList<>(); Loading Loading @@ -143,7 +144,7 @@ public class LocalMediaManager implements BluetoothCallback { final CachedBluetoothDevice cachedDevice = final CachedBluetoothDevice cachedDevice = ((BluetoothMediaDevice) device).getCachedDevice(); ((BluetoothMediaDevice) device).getCachedDevice(); if (!cachedDevice.isConnected() && !cachedDevice.isBusy()) { if (!cachedDevice.isConnected() && !cachedDevice.isBusy()) { device.setState(MediaDeviceState.STATE_CONNECTING); mOnTransferBluetoothDevice = connectDevice; cachedDevice.connect(); cachedDevice.connect(); return; return; } } Loading Loading @@ -389,6 +390,10 @@ public class LocalMediaManager implements BluetoothCallback { mCurrentConnectedDevice = infoMediaDevice != null mCurrentConnectedDevice = infoMediaDevice != null ? infoMediaDevice : updateCurrentConnectedDevice(); ? infoMediaDevice : updateCurrentConnectedDevice(); dispatchDeviceListUpdate(); dispatchDeviceListUpdate(); if (mOnTransferBluetoothDevice != null && mOnTransferBluetoothDevice.isConnected()) { connectDevice(mOnTransferBluetoothDevice); mOnTransferBluetoothDevice = null; } } } private List<MediaDevice> buildDisconnectedBluetoothDevice() { private List<MediaDevice> buildDisconnectedBluetoothDevice() { Loading packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/LocalMediaManagerTest.java +31 −2 Original line number Original line Diff line number Diff line Loading @@ -23,6 +23,7 @@ import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.never; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import static org.mockito.Mockito.when; Loading Loading @@ -107,8 +108,8 @@ public class LocalMediaManagerTest { when(mLocalProfileManager.getA2dpProfile()).thenReturn(mA2dpProfile); when(mLocalProfileManager.getA2dpProfile()).thenReturn(mA2dpProfile); when(mLocalProfileManager.getHearingAidProfile()).thenReturn(mHapProfile); when(mLocalProfileManager.getHearingAidProfile()).thenReturn(mHapProfile); mInfoMediaDevice1 = new InfoMediaDevice(mContext, mMediaRouter2Manager, mRouteInfo1, mInfoMediaDevice1 = spy(new InfoMediaDevice(mContext, mMediaRouter2Manager, mRouteInfo1, TEST_PACKAGE_NAME); TEST_PACKAGE_NAME)); mInfoMediaDevice2 = new InfoMediaDevice(mContext, mMediaRouter2Manager, mRouteInfo2, mInfoMediaDevice2 = new InfoMediaDevice(mContext, mMediaRouter2Manager, mRouteInfo2, TEST_PACKAGE_NAME); TEST_PACKAGE_NAME); mLocalMediaManager = new LocalMediaManager(mContext, mLocalBluetoothManager, mLocalMediaManager = new LocalMediaManager(mContext, mLocalBluetoothManager, Loading Loading @@ -564,6 +565,34 @@ public class LocalMediaManagerTest { verify(mCallback).onDeviceListUpdate(any()); verify(mCallback).onDeviceListUpdate(any()); } } @Test public void onDeviceListAdded_transferToDisconnectedBluetooth_verifyConnectDevice() { final List<MediaDevice> devices = new ArrayList<>(); final MediaDevice currentDevice = mock(MediaDevice.class); final MediaDevice device = mock(BluetoothMediaDevice.class); final CachedBluetoothDevice cachedDevice = mock(CachedBluetoothDevice.class); mLocalMediaManager.mMediaDevices.add(device); mLocalMediaManager.mMediaDevices.add(currentDevice); when(device.getId()).thenReturn(TEST_DEVICE_ID_1); when(currentDevice.getId()).thenReturn(TEST_CURRENT_DEVICE_ID); when(((BluetoothMediaDevice) device).getCachedDevice()).thenReturn(cachedDevice); when(cachedDevice.isConnected()).thenReturn(false); when(cachedDevice.isBusy()).thenReturn(false); mLocalMediaManager.registerCallback(mCallback); mLocalMediaManager.connectDevice(device); verify(cachedDevice).connect(); when(device.isConnected()).thenReturn(true); mLocalMediaManager.mCurrentConnectedDevice = currentDevice; devices.add(mInfoMediaDevice1); devices.add(currentDevice); mLocalMediaManager.mMediaDeviceCallback.onDeviceListAdded(devices); verify(mInfoMediaDevice1).connect(); } @Test @Test public void onRequestFailed_shouldDispatchOnRequestFailed() { public void onRequestFailed_shouldDispatchOnRequestFailed() { mLocalMediaManager.registerCallback(mCallback); mLocalMediaManager.registerCallback(mCallback); Loading Loading
packages/SettingsLib/src/com/android/settingslib/media/LocalMediaManager.java +6 −1 Original line number Original line Diff line number Diff line Loading @@ -66,6 +66,7 @@ public class LocalMediaManager implements BluetoothCallback { private LocalBluetoothManager mLocalBluetoothManager; private LocalBluetoothManager mLocalBluetoothManager; private InfoMediaManager mInfoMediaManager; private InfoMediaManager mInfoMediaManager; private String mPackageName; private String mPackageName; private MediaDevice mOnTransferBluetoothDevice; @VisibleForTesting @VisibleForTesting List<MediaDevice> mMediaDevices = new ArrayList<>(); List<MediaDevice> mMediaDevices = new ArrayList<>(); Loading Loading @@ -143,7 +144,7 @@ public class LocalMediaManager implements BluetoothCallback { final CachedBluetoothDevice cachedDevice = final CachedBluetoothDevice cachedDevice = ((BluetoothMediaDevice) device).getCachedDevice(); ((BluetoothMediaDevice) device).getCachedDevice(); if (!cachedDevice.isConnected() && !cachedDevice.isBusy()) { if (!cachedDevice.isConnected() && !cachedDevice.isBusy()) { device.setState(MediaDeviceState.STATE_CONNECTING); mOnTransferBluetoothDevice = connectDevice; cachedDevice.connect(); cachedDevice.connect(); return; return; } } Loading Loading @@ -389,6 +390,10 @@ public class LocalMediaManager implements BluetoothCallback { mCurrentConnectedDevice = infoMediaDevice != null mCurrentConnectedDevice = infoMediaDevice != null ? infoMediaDevice : updateCurrentConnectedDevice(); ? infoMediaDevice : updateCurrentConnectedDevice(); dispatchDeviceListUpdate(); dispatchDeviceListUpdate(); if (mOnTransferBluetoothDevice != null && mOnTransferBluetoothDevice.isConnected()) { connectDevice(mOnTransferBluetoothDevice); mOnTransferBluetoothDevice = null; } } } private List<MediaDevice> buildDisconnectedBluetoothDevice() { private List<MediaDevice> buildDisconnectedBluetoothDevice() { Loading
packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/LocalMediaManagerTest.java +31 −2 Original line number Original line Diff line number Diff line Loading @@ -23,6 +23,7 @@ import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.never; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import static org.mockito.Mockito.when; Loading Loading @@ -107,8 +108,8 @@ public class LocalMediaManagerTest { when(mLocalProfileManager.getA2dpProfile()).thenReturn(mA2dpProfile); when(mLocalProfileManager.getA2dpProfile()).thenReturn(mA2dpProfile); when(mLocalProfileManager.getHearingAidProfile()).thenReturn(mHapProfile); when(mLocalProfileManager.getHearingAidProfile()).thenReturn(mHapProfile); mInfoMediaDevice1 = new InfoMediaDevice(mContext, mMediaRouter2Manager, mRouteInfo1, mInfoMediaDevice1 = spy(new InfoMediaDevice(mContext, mMediaRouter2Manager, mRouteInfo1, TEST_PACKAGE_NAME); TEST_PACKAGE_NAME)); mInfoMediaDevice2 = new InfoMediaDevice(mContext, mMediaRouter2Manager, mRouteInfo2, mInfoMediaDevice2 = new InfoMediaDevice(mContext, mMediaRouter2Manager, mRouteInfo2, TEST_PACKAGE_NAME); TEST_PACKAGE_NAME); mLocalMediaManager = new LocalMediaManager(mContext, mLocalBluetoothManager, mLocalMediaManager = new LocalMediaManager(mContext, mLocalBluetoothManager, Loading Loading @@ -564,6 +565,34 @@ public class LocalMediaManagerTest { verify(mCallback).onDeviceListUpdate(any()); verify(mCallback).onDeviceListUpdate(any()); } } @Test public void onDeviceListAdded_transferToDisconnectedBluetooth_verifyConnectDevice() { final List<MediaDevice> devices = new ArrayList<>(); final MediaDevice currentDevice = mock(MediaDevice.class); final MediaDevice device = mock(BluetoothMediaDevice.class); final CachedBluetoothDevice cachedDevice = mock(CachedBluetoothDevice.class); mLocalMediaManager.mMediaDevices.add(device); mLocalMediaManager.mMediaDevices.add(currentDevice); when(device.getId()).thenReturn(TEST_DEVICE_ID_1); when(currentDevice.getId()).thenReturn(TEST_CURRENT_DEVICE_ID); when(((BluetoothMediaDevice) device).getCachedDevice()).thenReturn(cachedDevice); when(cachedDevice.isConnected()).thenReturn(false); when(cachedDevice.isBusy()).thenReturn(false); mLocalMediaManager.registerCallback(mCallback); mLocalMediaManager.connectDevice(device); verify(cachedDevice).connect(); when(device.isConnected()).thenReturn(true); mLocalMediaManager.mCurrentConnectedDevice = currentDevice; devices.add(mInfoMediaDevice1); devices.add(currentDevice); mLocalMediaManager.mMediaDeviceCallback.onDeviceListAdded(devices); verify(mInfoMediaDevice1).connect(); } @Test @Test public void onRequestFailed_shouldDispatchOnRequestFailed() { public void onRequestFailed_shouldDispatchOnRequestFailed() { mLocalMediaManager.registerCallback(mCallback); mLocalMediaManager.registerCallback(mCallback); Loading