| 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_
|
|
|