diff options
Diffstat (limited to 'device/bluetooth/android/java/src/org/chromium/device/bluetooth/ChromeBluetoothRemoteGattCharacteristic.java')
-rw-r--r-- | device/bluetooth/android/java/src/org/chromium/device/bluetooth/ChromeBluetoothRemoteGattCharacteristic.java | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/device/bluetooth/android/java/src/org/chromium/device/bluetooth/ChromeBluetoothRemoteGattCharacteristic.java b/device/bluetooth/android/java/src/org/chromium/device/bluetooth/ChromeBluetoothRemoteGattCharacteristic.java index 6d19c1f..7d6c50f 100644 --- a/device/bluetooth/android/java/src/org/chromium/device/bluetooth/ChromeBluetoothRemoteGattCharacteristic.java +++ b/device/bluetooth/android/java/src/org/chromium/device/bluetooth/ChromeBluetoothRemoteGattCharacteristic.java @@ -148,10 +148,15 @@ final class ChromeBluetoothRemoteGattCharacteristic { private void createDescriptors() { List<Wrappers.BluetoothGattDescriptorWrapper> descriptors = mCharacteristic.getDescriptors(); + // descriptorInstanceId ensures duplicate UUIDs have unique instance + // IDs. BluetoothGattDescriptor does not offer getInstanceId the way + // BluetoothGattCharacteristic does. + // + // TODO(crbug.com/576906) Do not reuse IDs upon onServicesDiscovered. + int instanceIdCounter = 0; for (Wrappers.BluetoothGattDescriptorWrapper descriptor : descriptors) { - // Create an adapter unique descriptor ID. - // TODO(crbug.com/576900) Unique descriptorInstanceId duplicate UUID values. - String descriptorInstanceId = mInstanceId + "/" + descriptor.getUuid().toString(); + String descriptorInstanceId = + mInstanceId + "/" + descriptor.getUuid().toString() + ";" + instanceIdCounter++; nativeCreateGattRemoteDescriptor(mNativeBluetoothRemoteGattCharacteristicAndroid, descriptorInstanceId, descriptor, mChromeDevice); } |