diff options
author | Mike Lockwood <lockwood@google.com> | 2015-05-07 13:39:01 -0700 |
---|---|---|
committer | Mike Lockwood <lockwood@google.com> | 2015-05-07 13:39:01 -0700 |
commit | 9490eae3aa6b20cbd3c1557fd3a7eb927e12907f (patch) | |
tree | 7782e2417a190adb30d65d080ed83c9ea4eefd9b /media | |
parent | fd5637fcce18adf44421389bf97a9da546f08940 (diff) | |
download | frameworks_base-9490eae3aa6b20cbd3c1557fd3a7eb927e12907f.zip frameworks_base-9490eae3aa6b20cbd3c1557fd3a7eb927e12907f.tar.gz frameworks_base-9490eae3aa6b20cbd3c1557fd3a7eb927e12907f.tar.bz2 |
BluetoothMidiDevice: Cleanup and error handling improvements
Change-Id: I8b932f73e0230adfe576d1fc6735bd7b41e84010
Diffstat (limited to 'media')
-rw-r--r-- | media/packages/BluetoothMidiService/src/com/android/bluetoothmidiservice/BluetoothMidiDevice.java | 34 |
1 files changed, 19 insertions, 15 deletions
diff --git a/media/packages/BluetoothMidiService/src/com/android/bluetoothmidiservice/BluetoothMidiDevice.java b/media/packages/BluetoothMidiService/src/com/android/bluetoothmidiservice/BluetoothMidiDevice.java index 63a8da7..0ccbf6a 100644 --- a/media/packages/BluetoothMidiService/src/com/android/bluetoothmidiservice/BluetoothMidiDevice.java +++ b/media/packages/BluetoothMidiService/src/com/android/bluetoothmidiservice/BluetoothMidiDevice.java @@ -92,7 +92,6 @@ public final class BluetoothMidiDevice { mBluetoothGatt.discoverServices()); } else if (newState == BluetoothProfile.STATE_DISCONNECTED) { Log.i(TAG, "Disconnected from GATT server."); - // FIXME synchronize? close(); } } @@ -121,8 +120,8 @@ public final class BluetoothMidiDevice { } } } else { - Log.w(TAG, "onServicesDiscovered received: " + status); - // FIXME - report error back to client? + Log.e(TAG, "onServicesDiscovered received: " + status); + close(); } } @@ -137,9 +136,12 @@ public final class BluetoothMidiDevice { BluetoothGattDescriptor descriptor = characteristic.getDescriptor( CLIENT_CHARACTERISTIC_CONFIG); - // FIXME null check - descriptor.setValue(BluetoothGattDescriptor.ENABLE_NOTIFICATION_VALUE); - mBluetoothGatt.writeDescriptor(descriptor); + if (descriptor != null) { + descriptor.setValue(BluetoothGattDescriptor.ENABLE_NOTIFICATION_VALUE); + mBluetoothGatt.writeDescriptor(descriptor); + } else { + Log.e(TAG, "No CLIENT_CHARACTERISTIC_CONFIG for device " + mBluetoothDevice); + } } @Override @@ -244,16 +246,18 @@ public final class BluetoothMidiDevice { }.start(); } - void close() { + private void close() { + synchronized (mBluetoothDevice) { mEventScheduler.close(); - if (mDeviceServer != null) { - IoUtils.closeQuietly(mDeviceServer); - mDeviceServer = null; - mService.deviceClosed(mBluetoothDevice); - } - if (mBluetoothGatt != null) { - mBluetoothGatt.close(); - mBluetoothGatt = null; + if (mDeviceServer != null) { + IoUtils.closeQuietly(mDeviceServer); + mDeviceServer = null; + mService.deviceClosed(mBluetoothDevice); + } + if (mBluetoothGatt != null) { + mBluetoothGatt.close(); + mBluetoothGatt = null; + } } } |