summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author hughchen <hughchen@google.com> 2020-04-24 14:59:05 +0800
committer hughchen <hughchen@google.com> 2020-04-24 14:59:05 +0800
commit71a7f826dcf9ca31877f85e1e64ad5ec6c73b552 (patch)
tree562fd18010519d37139147e79977f43dc90362a6
parent31901c037b0ffb0739b8e77653249239bbcf0eaf (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.java6
-rw-r--r--packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/InfoMediaManagerTest.java19
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);
+ }
}