Return empty array when BluetoothAdapter is null
BluetoothAdapter will be null in some platform device, because they don't have bluetooth feature. This CL add null check to avoid null point exception on non-bluetooth feature platform device. Bug: 152647633 Test: make -j42 RunSettingsLibRoboTests Change-Id: Iba7f41796bd22163ab55a7f9ff4f44df6513754e
This commit is contained in:
@@ -401,6 +401,11 @@ public class LocalMediaManager implements BluetoothCallback {
|
||||
}
|
||||
|
||||
private List<MediaDevice> buildDisconnectedBluetoothDevice() {
|
||||
if (mBluetoothAdapter == null) {
|
||||
Log.w(TAG, "buildDisconnectedBluetoothDevice() BluetoothAdapter is null");
|
||||
return new ArrayList<>();
|
||||
}
|
||||
|
||||
final List<BluetoothDevice> bluetoothDevices =
|
||||
mBluetoothAdapter.getMostRecentlyConnectedDevices();
|
||||
final CachedBluetoothDeviceManager cachedDeviceManager =
|
||||
|
||||
@@ -691,4 +691,28 @@ public class LocalMediaManagerTest {
|
||||
assertThat(mLocalMediaManager.mMediaDevices).hasSize(7);
|
||||
verify(mCallback).onDeviceListUpdate(any());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onDeviceListAdded_bluetoothAdapterIsNull_noDisconnectedDeviceAdded() {
|
||||
final List<MediaDevice> devices = new ArrayList<>();
|
||||
final MediaDevice device1 = mock(MediaDevice.class);
|
||||
final MediaDevice device2 = mock(MediaDevice.class);
|
||||
final MediaDevice device3 = mock(MediaDevice.class);
|
||||
mLocalMediaManager.mPhoneDevice = mock(PhoneMediaDevice.class);
|
||||
devices.add(device1);
|
||||
devices.add(device2);
|
||||
mLocalMediaManager.mMediaDevices.add(device3);
|
||||
mLocalMediaManager.mMediaDevices.add(mLocalMediaManager.mPhoneDevice);
|
||||
|
||||
mShadowBluetoothAdapter = null;
|
||||
|
||||
when(mLocalMediaManager.mPhoneDevice.getId()).thenReturn("test_phone_id");
|
||||
|
||||
assertThat(mLocalMediaManager.mMediaDevices).hasSize(2);
|
||||
mLocalMediaManager.registerCallback(mCallback);
|
||||
mLocalMediaManager.mMediaDeviceCallback.onDeviceListAdded(devices);
|
||||
|
||||
assertThat(mLocalMediaManager.mMediaDevices).hasSize(2);
|
||||
verify(mCallback).onDeviceListUpdate(any());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user