TWSP-A2DP: set active device to null if setA2dpActive to peer earbud failed

In some race condition, while EB1 get disconnected, and activeDeviceManager attempt
to set active a2dp device to peer earbud(EB2), but while a2dp service set active
device, EB2 get disconnected in a2dp stateMachine, so that set EB2 as a2dp active
device failed and mActiveA2dpDevice is still EB1, then activeDeviceManager handle
for disconnected event from EB2, it will not attempt to set active to null. After
that, earbuds reconnect, but btif av will not set any earbud to current playing
device.

Change-Id: I8a3251928d835dde444b6665369744785f87bbe2
CRs-fixed: 2480094
diff --git a/src/com/android/bluetooth/btservice/ActiveDeviceManager.java b/src/com/android/bluetooth/btservice/ActiveDeviceManager.java
index ea414c5..edc9421 100644
--- a/src/com/android/bluetooth/btservice/ActiveDeviceManager.java
+++ b/src/com/android/bluetooth/btservice/ActiveDeviceManager.java
@@ -236,7 +236,10 @@
                                 (a2dpService.getConnectionState(mA2dpConnectedDevices.get(0)) ==
                                          BluetoothProfile.STATE_CONNECTED)) {
                                 Log.d(TAG, "calling set a2dp Active dev: " + mA2dpConnectedDevices.get(0));
-                                setA2dpActiveDevice(mA2dpConnectedDevices.get(0));
+                                if (!setA2dpActiveDevice(mA2dpConnectedDevices.get(0))) {
+                                    Log.w(TAG, "Set a2dp active device failed");
+                                    setA2dpActiveDevice(null);
+                                }
                             } else
                                 setA2dpActiveDevice(null);
                         }
@@ -446,18 +449,19 @@
         return mHandlerThread.getLooper();
     }
 
-    private void setA2dpActiveDevice(BluetoothDevice device) {
+    private boolean setA2dpActiveDevice(BluetoothDevice device) {
         if (DBG) {
             Log.d(TAG, "setA2dpActiveDevice(" + device + ")");
         }
         final A2dpService a2dpService = mFactory.getA2dpService();
         if (a2dpService == null) {
-            return;
+            return false;
         }
         if (!a2dpService.setActiveDevice(device)) {
-            return;
+            return false;
         }
         mA2dpActiveDevice = device;
+        return true;
     }
 
     private void setHfpActiveDevice(BluetoothDevice device) {