diff options
| author | 2018-06-13 23:03:29 +0000 | |
|---|---|---|
| committer | 2018-06-13 23:03:29 +0000 | |
| commit | 51b250cfc46af303a5bf860537bdca1a2f6fa3c0 (patch) | |
| tree | 5f9185747c1acec3778c64739313d7d4fc2a3d90 | |
| parent | c13c7f53fead9e9d46d4a251ba9dbe34a22ee0c1 (diff) | |
| parent | 28963cdd45505832ce79a8afe5b01990528289d2 (diff) | |
Merge "Prevent NPE when profile is null"
2 files changed, 27 insertions, 3 deletions
diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDevice.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDevice.java index b80badb15509..b90d30711ffc 100644 --- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDevice.java +++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDevice.java @@ -1194,7 +1194,8 @@ public class CachedBluetoothDevice implements Comparable<CachedBluetoothDevice> * @return {@code true} if {@code cachedBluetoothDevice} is a2dp device */ public boolean isA2dpDevice() { - return mProfileManager.getA2dpProfile().getConnectionStatus(mDevice) == + A2dpProfile a2dpProfile = mProfileManager.getA2dpProfile(); + return a2dpProfile != null && a2dpProfile.getConnectionStatus(mDevice) == BluetoothProfile.STATE_CONNECTED; } @@ -1202,7 +1203,8 @@ public class CachedBluetoothDevice implements Comparable<CachedBluetoothDevice> * @return {@code true} if {@code cachedBluetoothDevice} is HFP device */ public boolean isHfpDevice() { - return mProfileManager.getHeadsetProfile().getConnectionStatus(mDevice) == + HeadsetProfile headsetProfile = mProfileManager.getHeadsetProfile(); + return headsetProfile != null && headsetProfile.getConnectionStatus(mDevice) == BluetoothProfile.STATE_CONNECTED; } @@ -1210,7 +1212,8 @@ public class CachedBluetoothDevice implements Comparable<CachedBluetoothDevice> * @return {@code true} if {@code cachedBluetoothDevice} is Hearing Aid device */ public boolean isConnectedHearingAidDevice() { - return mProfileManager.getHearingAidProfile().getConnectionStatus(mDevice) == + HearingAidProfile hearingAidProfile = mProfileManager.getHearingAidProfile(); + return hearingAidProfile != null && hearingAidProfile.getConnectionStatus(mDevice) == BluetoothProfile.STATE_CONNECTED; } } diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/CachedBluetoothDeviceTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/CachedBluetoothDeviceTest.java index 9bc47eb210c1..c39fb85428fa 100644 --- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/CachedBluetoothDeviceTest.java +++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/CachedBluetoothDeviceTest.java @@ -590,4 +590,25 @@ public class CachedBluetoothDeviceTest { assertThat(mCachedDevice.isConnectedHearingAidDevice()).isFalse(); } + + @Test + public void isConnectedHfpDevice_profileIsNull_returnFalse() { + when(mProfileManager.getHeadsetProfile()).thenReturn(null); + + assertThat(mCachedDevice.isHfpDevice()).isFalse(); + } + + @Test + public void isConnectedA2dpDevice_profileIsNull_returnFalse() { + when(mProfileManager.getA2dpProfile()).thenReturn(null); + + assertThat(mCachedDevice.isA2dpDevice()).isFalse(); + } + + @Test + public void isConnectedHearingAidDevice_profileIsNull_returnFalse() { + when(mProfileManager.getHearingAidProfile()).thenReturn(null); + + assertThat(mCachedDevice.isConnectedHearingAidDevice()).isFalse(); + } } |