Snap for 5339334 from 695beedd70a2e227f2373a8b5a67bfd7d89d8b0b to pi-qpr3-release
Change-Id: I20ae74ed13c6aae9a12904f41884d24af173344e
diff --git a/src/com/android/server/telecom/bluetooth/BluetoothDeviceManager.java b/src/com/android/server/telecom/bluetooth/BluetoothDeviceManager.java
index ce35587..26fe94e 100644
--- a/src/com/android/server/telecom/bluetooth/BluetoothDeviceManager.java
+++ b/src/com/android/server/telecom/bluetooth/BluetoothDeviceManager.java
@@ -136,6 +136,11 @@
void onDeviceConnected(BluetoothDevice device) {
synchronized (mLock) {
+ if (mBluetoothHeadsetService == null) {
+ Log.w(this, "Headset service null when receiving device added broadcast");
+ return;
+ }
+
if (!mConnectedDevicesByAddress.containsKey(device.getAddress())) {
mConnectedDevicesByAddress.put(device.getAddress(), device);
mBluetoothRouteManager.onDeviceAdded(device.getAddress());
diff --git a/tests/src/com/android/server/telecom/tests/BluetoothDeviceManagerTest.java b/tests/src/com/android/server/telecom/tests/BluetoothDeviceManagerTest.java
index 4a48f1b..cb7671a 100644
--- a/tests/src/com/android/server/telecom/tests/BluetoothDeviceManagerTest.java
+++ b/tests/src/com/android/server/telecom/tests/BluetoothDeviceManagerTest.java
@@ -100,6 +100,17 @@
@SmallTest
@Test
+ public void testAddDeviceFailsWhenServicesAreNull() {
+ mBluetoothDeviceManager.setHeadsetServiceForTesting(null);
+
+ receiverUnderTest.onReceive(mContext,
+ buildConnectionActionIntent(BluetoothHeadset.STATE_CONNECTED, device1));
+
+ assertEquals(0, mBluetoothDeviceManager.getNumConnectedDevices());
+ }
+
+ @SmallTest
+ @Test
public void testMultiDeviceConnectAndDisconnect() {
receiverUnderTest.onReceive(mContext,
buildConnectionActionIntent(BluetoothHeadset.STATE_CONNECTED, device1));