Merge "BluetoothMidi: request higher priority, for lower latency" into oc-dev
am: e49ad6c70a

Change-Id: Idcece5b34d81cdeb43eb9196d7d29c3023605782
diff --git a/media/packages/BluetoothMidiService/src/com/android/bluetoothmidiservice/BluetoothMidiDevice.java b/media/packages/BluetoothMidiService/src/com/android/bluetoothmidiservice/BluetoothMidiDevice.java
index 444705c..ece700d 100644
--- a/media/packages/BluetoothMidiService/src/com/android/bluetoothmidiservice/BluetoothMidiDevice.java
+++ b/media/packages/BluetoothMidiService/src/com/android/bluetoothmidiservice/BluetoothMidiDevice.java
@@ -100,8 +100,8 @@
                 int newState) {
             String intentAction;
             if (newState == BluetoothProfile.STATE_CONNECTED) {
-                Log.i(TAG, "Connected to GATT server.");
-                Log.i(TAG, "Attempting to start service discovery:" +
+                Log.d(TAG, "Connected to GATT server.");
+                Log.d(TAG, "Attempting to start service discovery:" +
                         mBluetoothGatt.discoverServices());
             } else if (newState == BluetoothProfile.STATE_DISCONNECTED) {
                 Log.i(TAG, "Disconnected from GATT server.");
@@ -112,24 +112,24 @@
         @Override
         public void onServicesDiscovered(BluetoothGatt gatt, int status) {
             if (status == BluetoothGatt.GATT_SUCCESS) {
-                List<BluetoothGattService> services = mBluetoothGatt.getServices();
-                for (BluetoothGattService service : services) {
-                    if (MIDI_SERVICE.equals(service.getUuid())) {
-                        Log.d(TAG, "found MIDI_SERVICE");
-                        List<BluetoothGattCharacteristic> characteristics
-                            = service.getCharacteristics();
-                        for (BluetoothGattCharacteristic characteristic : characteristics) {
-                            if (MIDI_CHARACTERISTIC.equals(characteristic.getUuid())) {
-                                Log.d(TAG, "found MIDI_CHARACTERISTIC");
-                                mCharacteristic = characteristic;
+                BluetoothGattService service = gatt.getService(MIDI_SERVICE);
+                if (service != null) {
+                    Log.d(TAG, "found MIDI_SERVICE");
+                    BluetoothGattCharacteristic characteristic
+                            = service.getCharacteristic(MIDI_CHARACTERISTIC);
+                    if (characteristic != null) {
+                        Log.d(TAG, "found MIDI_CHARACTERISTIC");
+                        mCharacteristic = characteristic;
 
-                                // Specification says to read the characteristic first and then
-                                // switch to receiving notifications
-                                mBluetoothGatt.readCharacteristic(characteristic);
-                                break;
-                            }
-                        }
-                        break;
+                        // Request a lower Connection Interval for better latency.
+                        boolean result = gatt.requestConnectionPriority(
+                                BluetoothGatt.CONNECTION_PRIORITY_HIGH);
+                        Log.d(TAG, "requestConnectionPriority(CONNECTION_PRIORITY_HIGH):"
+                            + result);
+
+                        // Specification says to read the characteristic first and then
+                        // switch to receiving notifications
+                        mBluetoothGatt.readCharacteristic(characteristic);
                     }
                 }
             } else {