summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authorMike Lockwood <lockwood@google.com>2015-05-07 13:39:01 -0700
committerMike Lockwood <lockwood@google.com>2015-05-07 13:39:01 -0700
commit9490eae3aa6b20cbd3c1557fd3a7eb927e12907f (patch)
tree7782e2417a190adb30d65d080ed83c9ea4eefd9b /media
parentfd5637fcce18adf44421389bf97a9da546f08940 (diff)
downloadframeworks_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.java34
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;
+ }
}
}