| Index: device/bluetooth/bluetooth_low_energy_device_mac.mm
|
| diff --git a/device/bluetooth/bluetooth_low_energy_device_mac.mm b/device/bluetooth/bluetooth_low_energy_device_mac.mm
|
| index de9ceeee9b28cd576d818d3b26687856ed4a8fe7..2dfaeef16d010f9401021a97d34097b813be0348 100644
|
| --- a/device/bluetooth/bluetooth_low_energy_device_mac.mm
|
| +++ b/device/bluetooth/bluetooth_low_energy_device_mac.mm
|
| @@ -23,9 +23,7 @@ using device::BluetoothLowEnergyDeviceMac;
|
|
|
| BluetoothLowEnergyDeviceMac::BluetoothLowEnergyDeviceMac(
|
| BluetoothAdapterMac* adapter,
|
| - CBPeripheral* peripheral,
|
| - NSDictionary* advertisement_data,
|
| - int rssi)
|
| + CBPeripheral* peripheral)
|
| : BluetoothDeviceMac(adapter),
|
| peripheral_(peripheral, base::scoped_policy::RETAIN) {
|
| DCHECK(BluetoothAdapterMac::IsLowEnergyAvailable());
|
| @@ -35,7 +33,6 @@ BluetoothLowEnergyDeviceMac::BluetoothLowEnergyDeviceMac(
|
| [peripheral_ setDelegate:peripheral_delegate_];
|
| identifier_ = GetPeripheralIdentifier(peripheral);
|
| hash_address_ = GetPeripheralHashAddress(peripheral);
|
| - Update(advertisement_data, rssi);
|
| }
|
|
|
| BluetoothLowEnergyDeviceMac::~BluetoothLowEnergyDeviceMac() {
|
| @@ -44,39 +41,6 @@ BluetoothLowEnergyDeviceMac::~BluetoothLowEnergyDeviceMac() {
|
| }
|
| }
|
|
|
| -void BluetoothLowEnergyDeviceMac::Update(NSDictionary* advertisement_data,
|
| - int rssi) {
|
| - UpdateTimestamp();
|
| - rssi_ = rssi;
|
| - NSNumber* connectable =
|
| - [advertisement_data objectForKey:CBAdvertisementDataIsConnectable];
|
| - connectable_ = [connectable boolValue];
|
| - ClearServiceData();
|
| - NSDictionary* service_data =
|
| - [advertisement_data objectForKey:CBAdvertisementDataServiceDataKey];
|
| - for (CBUUID* uuid in service_data) {
|
| - NSData* data = [service_data objectForKey:uuid];
|
| - BluetoothUUID service_uuid =
|
| - BluetoothAdapterMac::BluetoothUUIDWithCBUUID(uuid);
|
| - SetServiceData(service_uuid, static_cast<const char*>([data bytes]),
|
| - [data length]);
|
| - }
|
| -
|
| - std::unordered_set<BluetoothUUID, BluetoothUUIDHash> uuid_set;
|
| - NSArray* service_uuids =
|
| - [advertisement_data objectForKey:CBAdvertisementDataServiceUUIDsKey];
|
| - for (CBUUID* uuid in service_uuids) {
|
| - uuid_set.emplace([[uuid UUIDString] UTF8String]);
|
| - }
|
| - NSArray* overflow_service_uuids = [advertisement_data
|
| - objectForKey:CBAdvertisementDataOverflowServiceUUIDsKey];
|
| - for (CBUUID* uuid in overflow_service_uuids) {
|
| - uuid_set.emplace([[uuid UUIDString] UTF8String]);
|
| - }
|
| -
|
| - advertised_uuids_ = UUIDList(uuid_set.begin(), uuid_set.end());
|
| -}
|
| -
|
| std::string BluetoothLowEnergyDeviceMac::GetIdentifier() const {
|
| return identifier_;
|
| }
|
| @@ -119,10 +83,6 @@ base::Optional<std::string> BluetoothLowEnergyDeviceMac::GetName() const {
|
| return base::nullopt;
|
| }
|
|
|
| -int BluetoothLowEnergyDeviceMac::GetRSSI() const {
|
| - return rssi_;
|
| -}
|
| -
|
| bool BluetoothLowEnergyDeviceMac::IsPaired() const {
|
| return false;
|
| }
|
| @@ -301,9 +261,10 @@ void BluetoothLowEnergyDeviceMac::DidDiscoverCharacteristics(
|
| ->IsDiscoveryComplete();
|
| }) == gatt_services_.end();
|
| if (discovery_complete) {
|
| - UpdateServiceUUIDs();
|
| + device_uuids_.ReplaceServiceUUIDs(gatt_services_);
|
| SetGattServicesDiscoveryComplete(true);
|
| adapter_->NotifyGattServicesDiscovered(this);
|
| + adapter_->NotifyDeviceChanged(this);
|
| }
|
| }
|
|
|
| @@ -317,8 +278,9 @@ void BluetoothLowEnergyDeviceMac::DidModifyServices(
|
| gatt_services_.take_and_erase(gatt_service->GetIdentifier());
|
| adapter_->NotifyGattServiceRemoved(scoped_service.get());
|
| }
|
| - service_uuids_.clear();
|
| + device_uuids_.ClearServiceUUIDs();
|
| SetGattServicesDiscoveryComplete(false);
|
| + adapter_->NotifyDeviceChanged(this);
|
| [GetPeripheral() discoverServices:nil];
|
| }
|
|
|
| @@ -399,7 +361,7 @@ void BluetoothLowEnergyDeviceMac::DidDisconnectPeripheral(
|
| GattServiceMap gatt_services_swapped;
|
| gatt_services_swapped.swap(gatt_services_);
|
| gatt_services_swapped.clear();
|
| - UpdateServiceUUIDs();
|
| + device_uuids_.ClearServiceUUIDs();
|
| if (create_gatt_connection_error_callbacks_.empty()) {
|
| // TODO(http://crbug.com/585897): Need to pass the error.
|
| DidDisconnectGatt();
|
|
|