diff options
| author | 2020-04-24 14:59:05 +0800 | |
|---|---|---|
| committer | 2020-04-24 14:59:05 +0800 | |
| commit | 71a7f826dcf9ca31877f85e1e64ad5ec6c73b552 (patch) | |
| tree | 562fd18010519d37139147e79977f43dc90362a6 | |
| parent | 31901c037b0ffb0739b8e77653249239bbcf0eaf (diff) | |
Add null check when build MediaDevice
- We may not found CachedBluetoothDevice through
CachedBluetoothDeviceManager. This CL add null check before
we build the MediaDevice.
- Add test case
Bug: 154152005
Test: make -j42 RunSettingsLibRoboTests
Change-Id: I042912317e1924d8b9bdababf0b7dcb69836f9e2
| -rw-r--r-- | packages/SettingsLib/src/com/android/settingslib/media/InfoMediaManager.java | 6 | ||||
| -rw-r--r-- | packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/InfoMediaManagerTest.java | 19 |
2 files changed, 23 insertions, 2 deletions
diff --git a/packages/SettingsLib/src/com/android/settingslib/media/InfoMediaManager.java b/packages/SettingsLib/src/com/android/settingslib/media/InfoMediaManager.java index d14cb25beff0..002bbec60924 100644 --- a/packages/SettingsLib/src/com/android/settingslib/media/InfoMediaManager.java +++ b/packages/SettingsLib/src/com/android/settingslib/media/InfoMediaManager.java @@ -397,8 +397,10 @@ public class InfoMediaManager extends MediaManager { BluetoothAdapter.getDefaultAdapter().getRemoteDevice(route.getOriginalId()); final CachedBluetoothDevice cachedDevice = mBluetoothManager.getCachedDeviceManager().findDevice(device); - mediaDevice = new BluetoothMediaDevice(mContext, cachedDevice, mRouterManager, - route, mPackageName); + if (cachedDevice != null) { + mediaDevice = new BluetoothMediaDevice(mContext, cachedDevice, mRouterManager, + route, mPackageName); + } break; default: Log.w(TAG, "addMediaDevice() unknown device type : " + deviceType); 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 b5dc1f7f8f4e..76eea67f9765 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 @@ -647,4 +647,23 @@ public class InfoMediaManagerTest { mInfoMediaManager.addMediaDevice(route2Info); assertThat(mInfoMediaManager.mMediaDevices.get(0) instanceof PhoneMediaDevice).isTrue(); } + + @Test + public void addMediaDevice_cachedBluetoothDeviceIsNull_shouldNotAdded() { + final MediaRoute2Info route2Info = mock(MediaRoute2Info.class); + final CachedBluetoothDeviceManager cachedBluetoothDeviceManager = + mock(CachedBluetoothDeviceManager.class); + + when(route2Info.getType()).thenReturn(TYPE_BLUETOOTH_A2DP); + when(route2Info.getOriginalId()).thenReturn("00:00:00:00:00:00"); + when(mLocalBluetoothManager.getCachedDeviceManager()) + .thenReturn(cachedBluetoothDeviceManager); + when(cachedBluetoothDeviceManager.findDevice(any(BluetoothDevice.class))) + .thenReturn(null); + + mInfoMediaManager.mMediaDevices.clear(); + mInfoMediaManager.addMediaDevice(route2Info); + + assertThat(mInfoMediaManager.mMediaDevices.size()).isEqualTo(0); + } } |