| 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 51%
|
| copy from device/bluetooth/bluetooth_low_energy_device_mac.h
|
| copy to device/bluetooth/bluetooth_device_android.h
|
| index d8d62efc4d276da29463a10ac7d40eb9e5e7789e..90891b1f3ed730411458ecdc8a531d58bf971342 100644
|
| --- a/device/bluetooth/bluetooth_low_energy_device_mac.h
|
| +++ b/device/bluetooth/bluetooth_device_android.h
|
| @@ -2,37 +2,45 @@
|
| // 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 "device/bluetooth/bluetooth_device_mac.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 BluetoothDeviceMac {
|
| +// 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 |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 bluetooth_device_wrapper); // Java Type: bluetoothDeviceWrapper
|
| +
|
| + ~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); // Java Type: List<ParcelUuid>
|
| +
|
| + // 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 +48,14 @@ class BluetoothLowEnergyDeviceMac : public BluetoothDeviceMac {
|
| 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 +67,7 @@ class BluetoothLowEnergyDeviceMac : public BluetoothDeviceMac {
|
| 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(
|
| @@ -70,38 +78,18 @@ class BluetoothLowEnergyDeviceMac : public BluetoothDeviceMac {
|
| const GattConnectionCallback& callback,
|
| const ConnectErrorCallback& error_callback) override;
|
|
|
| - // BluetoothDeviceMac override.
|
| - NSDate* GetLastUpdateTime() const 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_;
|
| -
|
| - // Whether the device is connectable.
|
| - bool connectable_;
|
| + // BluetoothDevice:
|
| + std::string GetDeviceName() const override;
|
|
|
| - // Stores the time of the most recent call to Update().
|
| - base::scoped_nsobject<NSDate> last_update_time_;
|
| + // 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_
|
|
|