Index: device/bluetooth/bluetooth_adapter_android.cc |
diff --git a/device/bluetooth/bluetooth_adapter_android.cc b/device/bluetooth/bluetooth_adapter_android.cc |
index 489050c005e34178f2e3256f2d6bd9cf7ff90d5b..1b2f862e2480d35e64b8e6f0bb3350f7a28c44f4 100644 |
--- a/device/bluetooth/bluetooth_adapter_android.cc |
+++ b/device/bluetooth/bluetooth_adapter_android.cc |
@@ -11,6 +11,7 @@ |
#include "base/thread_task_runner_handle.h" |
#include "device/bluetooth/android/wrappers.h" |
#include "device/bluetooth/bluetooth_advertisement.h" |
+#include "device/bluetooth/bluetooth_device_android.h" |
#include "jni/ChromeBluetoothAdapter_jni.h" |
using base::android::AttachCurrentThread; |
@@ -131,6 +132,28 @@ void BluetoothAdapterAndroid::OnScanFailed(JNIEnv* env, jobject obj) { |
MarkDiscoverySessionsAsInactive(); |
} |
+void BluetoothAdapterAndroid::CreateOrUpdateDeviceOnScan( |
+ JNIEnv* env, |
+ jobject obj, |
Jeffrey Yasskin
2015/07/07 00:11:14
|obj| isn't used? Wildly guessing at why it's ther
scheib
2015/07/08 00:49:10
:( Yes, this seems unfortunate that JNI presumes t
|
+ const jstring& jaddress, |
+ jobject bluetooth_device_wrapper, |
+ jobject advertised_uuids) { |
+ BluetoothDevice*& device = devices_[ConvertJavaStringToUTF8(env, jaddress)]; |
+ if (!device) { |
+ device = BluetoothDeviceAndroid::Create(bluetooth_device_wrapper); |
+ static_cast<BluetoothDeviceAndroid*>(device) |
+ ->UpdateAdvertisedUUIDs(advertised_uuids); |
+ FOR_EACH_OBSERVER(BluetoothAdapter::Observer, observers_, |
+ DeviceAdded(this, device)); |
+ } else { |
+ if (static_cast<BluetoothDeviceAndroid*>(device) |
+ ->UpdateAdvertisedUUIDs(advertised_uuids)) { |
+ FOR_EACH_OBSERVER(BluetoothAdapter::Observer, observers_, |
+ DeviceChanged(this, device)); |
+ } |
+ } |
+} |
+ |
BluetoothAdapterAndroid::BluetoothAdapterAndroid() : weak_ptr_factory_(this) { |
} |