Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(92)

Unified Diff: chromeos/dbus/fake_bluetooth_gatt_descriptor_client.cc

Issue 788193004: chromeos/dbus: Update Bluetooth GATT API clients to upstream definition (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chromeos/dbus/fake_bluetooth_gatt_descriptor_client.cc
diff --git a/chromeos/dbus/fake_bluetooth_gatt_descriptor_client.cc b/chromeos/dbus/fake_bluetooth_gatt_descriptor_client.cc
index dd335ada4caf00b67fc013b8b2cd94716dcc2db5..f1f30f531c947633300566e75aedfb59c81168f0 100644
--- a/chromeos/dbus/fake_bluetooth_gatt_descriptor_client.cc
+++ b/chromeos/dbus/fake_bluetooth_gatt_descriptor_client.cc
@@ -6,6 +6,8 @@
#include "base/bind.h"
#include "base/logging.h"
+#include "chromeos/dbus/bluetooth_gatt_characteristic_client.h"
+#include "chromeos/dbus/dbus_thread_manager.h"
#include "third_party/cros_system_api/dbus/service_constants.h"
namespace chromeos {
@@ -101,7 +103,25 @@ void FakeBluetoothGattDescriptorClient::ReadValue(
return;
}
- callback.Run(iter->second->value);
+ // Assign the value of the descriptor as necessary
+ Properties* properties = iter->second->properties.get();
+ if (properties->uuid.value() == kClientCharacteristicConfigurationUUID) {
+ BluetoothGattCharacteristicClient::Properties* chrc_props =
+ DBusThreadManager::Get()
+ ->GetBluetoothGattCharacteristicClient()
+ ->GetProperties(properties->characteristic.value());
+ DCHECK(chrc_props);
+
+ uint8_t value_byte = chrc_props->notifying.value() ? 0x01 : 0x00;
+ const std::vector<uint8_t>& cur_value = properties->value.value();
+
+ if (!cur_value.size() || cur_value[0] != value_byte) {
+ std::vector<uint8_t> value = {value_byte, 0x00};
+ properties->value.ReplaceValue(value);
+ }
+ }
+
+ callback.Run(iter->second->properties->value.value());
}
void FakeBluetoothGattDescriptorClient::WriteValue(
@@ -151,9 +171,6 @@ dbus::ObjectPath FakeBluetoothGattDescriptorClient::ExposeDescriptor(
DescriptorData* data = new DescriptorData();
data->properties.reset(properties);
- data->value.push_back(1); // Notifications enabled.
- data->value.push_back(0);
-
properties_[object_path] = data;
NotifyDescriptorAdded(object_path);

Powered by Google App Engine
This is Rietveld 408576698