Index: device/bluetooth/test/bluetooth_test_android.cc |
diff --git a/device/bluetooth/test/bluetooth_test_android.cc b/device/bluetooth/test/bluetooth_test_android.cc |
index a3dfa4d16db9a4c130ba9655abe3974a270d9c7d..79961e8fd5a19a1a410265a264b3a08840bd84fb 100644 |
--- a/device/bluetooth/test/bluetooth_test_android.cc |
+++ b/device/bluetooth/test/bluetooth_test_android.cc |
@@ -174,21 +174,50 @@ void BluetoothTestAndroid::RememberCharacteristicForSubsequentAction( |
characteristic_android->GetJavaObject().obj()); |
} |
-void BluetoothTestAndroid::SimulateGattNotifySessionStarted( |
+void BluetoothTestAndroid::RememberCCCDescriptorForSubsequentAction( |
BluetoothGattCharacteristic* characteristic) { |
- BluetoothGattDescriptor* descriptor = |
+ remembered_ccc_descriptor_ = |
characteristic |
->GetDescriptorsByUUID( |
BluetoothGattDescriptor::ClientCharacteristicConfigurationUuid()) |
.at(0); |
- BluetoothRemoteGattDescriptorAndroid* descriptor_android = |
- static_cast<BluetoothRemoteGattDescriptorAndroid*>(descriptor); |
+ DCHECK(remembered_ccc_descriptor_); |
+ RememberDescriptorForSubsequentAction(remembered_ccc_descriptor_); |
+} |
+ |
+void BluetoothTestAndroid::SimulateGattNotifySessionStarted( |
+ BluetoothGattCharacteristic* characteristic) { |
+ BluetoothRemoteGattDescriptorAndroid* descriptor_android = nullptr; |
+ if (characteristic) { |
+ descriptor_android = static_cast<BluetoothRemoteGattDescriptorAndroid*>( |
+ characteristic |
+ ->GetDescriptorsByUUID(BluetoothGattDescriptor:: |
+ ClientCharacteristicConfigurationUuid()) |
+ .at(0)); |
+ } |
Java_FakeBluetoothGattDescriptor_valueWrite( |
base::android::AttachCurrentThread(), |
descriptor_android ? descriptor_android->GetJavaObject().obj() : nullptr, |
0); // android.bluetooth.BluetoothGatt.GATT_SUCCESS |
} |
+void BluetoothTestAndroid::SimulateGattNotifySessionStartError( |
+ BluetoothGattCharacteristic* characteristic, |
+ BluetoothGattService::GattErrorCode error_code) { |
+ BluetoothRemoteGattDescriptorAndroid* descriptor_android = nullptr; |
+ if (characteristic) { |
+ descriptor_android = static_cast<BluetoothRemoteGattDescriptorAndroid*>( |
+ characteristic |
+ ->GetDescriptorsByUUID(BluetoothGattDescriptor:: |
+ ClientCharacteristicConfigurationUuid()) |
+ .at(0)); |
+ } |
+ Java_FakeBluetoothGattDescriptor_valueWrite( |
+ base::android::AttachCurrentThread(), |
+ descriptor_android ? descriptor_android->GetJavaObject().obj() : nullptr, |
+ BluetoothRemoteGattServiceAndroid::GetAndroidErrorCode(error_code)); |
+} |
+ |
void BluetoothTestAndroid:: |
SimulateGattCharacteristicSetNotifyWillFailSynchronouslyOnce( |
BluetoothGattCharacteristic* characteristic) { |