Index: device/bluetooth/bluetooth_device_android.h |
diff --git a/device/bluetooth/bluetooth_low_energy_device_mac.h b/device/bluetooth/bluetooth_device_android.h |
similarity index 53% |
copy from device/bluetooth/bluetooth_low_energy_device_mac.h |
copy to device/bluetooth/bluetooth_device_android.h |
index 5fa43355c83eb3967560df43b9edb3a41d1e7e13..dd323f3436111634dd5ba88fd161d05d6ecf1ab0 100644 |
--- a/device/bluetooth/bluetooth_low_energy_device_mac.h |
+++ b/device/bluetooth/bluetooth_device_android.h |
@@ -2,37 +2,43 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-#ifndef DEVICE_BLUETOOTH_BLUETOOTH_LOW_ENERGY_DEVICE_MAC_H_ |
-#define DEVICE_BLUETOOTH_BLUETOOTH_LOW_ENERGY_DEVICE_MAC_H_ |
+#ifndef DEVICE_BLUETOOTH_BLUETOOTH_DEVICE_ANDROID_H_ |
+#define DEVICE_BLUETOOTH_BLUETOOTH_DEVICE_ANDROID_H_ |
-#if defined(OS_IOS) |
-#import <CoreBluetooth/CoreBluetooth.h> |
-#else |
-#import <IOBluetooth/IOBluetooth.h> |
-#endif |
- |
-#include "base/mac/scoped_nsobject.h" |
-#include "base/mac/sdk_forward_declarations.h" |
+#include "base/android/jni_android.h" |
+#include "base/memory/weak_ptr.h" |
#include "device/bluetooth/bluetooth_device.h" |
namespace device { |
-class BluetoothLowEnergyDiscoverManagerMac; |
- |
-class BluetoothLowEnergyDeviceMac : public BluetoothDevice { |
+// BluetoothDeviceAndroid along with the Java class |
+// org.chromium.device.bluetooth.BluetoothDevice implement BluetoothDevice. |
+class DEVICE_BLUETOOTH_EXPORT BluetoothDeviceAndroid final |
+ : public BluetoothDevice { |
public: |
- BluetoothLowEnergyDeviceMac(CBPeripheral* peripheral, |
- NSDictionary* advertisementData, |
- int rssi); |
- ~BluetoothLowEnergyDeviceMac() override; |
- |
- int GetRSSI() const; |
- |
- // BluetoothDevice overrides. |
- std::string GetIdentifier() const override; |
+ // Create a BluetoothDeviceAndroid instance and associated Java |
+ // ChromeBluetoothDevice using the provided |java_bluetooth_device_wrapper|. |
+ // |
+ // The ChromeBluetoothDevice instance will hold a Java reference |
+ // to |java_bluetooth_device_wrapper|. |
+ // |
+ // TODO(scheib): Return a scoped_ptr<>, but then adapter will need to handle |
+ // this correctly. http://crbug.com/506416 |
+ static BluetoothDeviceAndroid* Create(jobject java_bluetooth_device_wrapper); |
+ |
+ ~BluetoothDeviceAndroid() override; |
+ |
+ // Register C++ methods exposed to Java using JNI. |
+ static bool RegisterJNI(JNIEnv* env); |
+ |
+ // Updates cached copy of advertised UUIDs discovered during a scan. |
+ // Returns true if new UUIDs differed from cached values. |
+ bool UpdateAdvertisedUUIDs(jobject advertised_uuids); |
+ |
+ // BluetoothDevice: |
uint32 GetBluetoothClass() const override; |
std::string GetAddress() const override; |
- BluetoothDevice::VendorIDSource GetVendorIDSource() const override; |
+ VendorIDSource GetVendorIDSource() const override; |
uint16 GetVendorID() const override; |
uint16 GetProductID() const override; |
uint16 GetDeviceID() const override; |
@@ -40,14 +46,14 @@ class BluetoothLowEnergyDeviceMac : public BluetoothDevice { |
bool IsConnected() const override; |
bool IsConnectable() const override; |
bool IsConnecting() const override; |
- BluetoothDevice::UUIDList GetUUIDs() const override; |
+ UUIDList GetUUIDs() const override; |
int16 GetInquiryRSSI() const override; |
int16 GetInquiryTxPower() const override; |
bool ExpectingPinCode() const override; |
bool ExpectingPasskey() const override; |
bool ExpectingConfirmation() const override; |
void GetConnectionInfo(const ConnectionInfoCallback& callback) override; |
- void Connect(PairingDelegate* pairing_delegate, |
+ void Connect(device::BluetoothDevice::PairingDelegate* pairing_delegate, |
const base::Closure& callback, |
const ConnectErrorCallback& error_callback) override; |
void SetPinCode(const std::string& pincode) override; |
@@ -59,7 +65,7 @@ class BluetoothLowEnergyDeviceMac : public BluetoothDevice { |
const ErrorCallback& error_callback) override; |
void Forget(const ErrorCallback& error_callback) override; |
void ConnectToService( |
- const BluetoothUUID& uuid, |
+ const device::BluetoothUUID& uuid, |
const ConnectToServiceCallback& callback, |
const ConnectToServiceErrorCallback& error_callback) override; |
void ConnectToServiceInsecurely( |
@@ -71,31 +77,17 @@ class BluetoothLowEnergyDeviceMac : public BluetoothDevice { |
const ConnectErrorCallback& error_callback) override; |
protected: |
- // BluetoothDevice override. |
- std::string GetDeviceName() const override; |
+ BluetoothDeviceAndroid(); |
- // Updates information about the device. |
- virtual void Update(CBPeripheral* peripheral, |
- NSDictionary* advertisementData, |
- int rssi); |
- |
- static std::string GetPeripheralIdentifier(CBPeripheral* peripheral); |
- |
- private: |
- friend class BluetoothAdapterMac; |
- |
- // CoreBluetooth data structure. |
- base::scoped_nsobject<CBPeripheral> peripheral_; |
- |
- // RSSI value. |
- int rssi_; |
+ // BluetoothDevice: |
+ std::string GetDeviceName() const override; |
- // Whether the device is connectable. |
- bool connectable_; |
+ // Java object org.chromium.device.bluetooth.ChromeBluetoothDevice. |
+ base::android::ScopedJavaGlobalRef<jobject> j_device_; |
- DISALLOW_COPY_AND_ASSIGN(BluetoothLowEnergyDeviceMac); |
+ DISALLOW_COPY_AND_ASSIGN(BluetoothDeviceAndroid); |
}; |
} // namespace device |
-#endif // DEVICE_BLUETOOTH_BLUETOOTH_LOW_ENERGY_DEVICE_MAC_H_ |
+#endif // DEVICE_BLUETOOTH_BLUETOOTH_DEVICE_ANDROID_H_ |