summaryrefslogtreecommitdiffstats
path: root/device/bluetooth/android/java/src/org/chromium/device/bluetooth/ChromeBluetoothRemoteGattCharacteristic.java
diff options
context:
space:
mode:
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.java11
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);
}