diff options
author | Alex Blasche <alexander.blasche@qt.io> | 2018-08-29 16:24:00 +0200 |
---|---|---|
committer | Alex Blasche <alexander.blasche@qt.io> | 2018-08-30 08:29:17 +0000 |
commit | 9004e89bb902a709c3d61c7f168d2d39fe2cd936 (patch) | |
tree | fa515abbd92da9159cdd84cf6105fc8a931b6ac6 | |
parent | bd7a3e23f6b97249ec99df45b5fed46f3e11c297 (diff) |
Ensure that local services have state LocalService
and invalidate the state once they have been disconnected. This affects
Android, Bluez and Apple code lines.
Change-Id: I2b87577930b6ae78e7ef7ef061e597beba946594
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
-rw-r--r-- | src/bluetooth/qlowenergycontroller_osx.mm | 1 | ||||
-rw-r--r-- | src/bluetooth/qlowenergycontrollerbase.cpp | 9 |
2 files changed, 6 insertions, 4 deletions
diff --git a/src/bluetooth/qlowenergycontroller_osx.mm b/src/bluetooth/qlowenergycontroller_osx.mm index 46782a22..d01686ae 100644 --- a/src/bluetooth/qlowenergycontroller_osx.mm +++ b/src/bluetooth/qlowenergycontroller_osx.mm @@ -1372,6 +1372,7 @@ QLowEnergyService *QLowEnergyController::addService(const QLowEnergyServiceData if (const auto servicePrivate = [osx_d_ptr->peripheralManager addService:data]) { servicePrivate->setController(osx_d_ptr); + servicePrivate->state = QLowEnergyService::LocalService; osx_d_ptr->discoveredServices.insert(servicePrivate->uuid, servicePrivate); return new QLowEnergyService(servicePrivate, parent); } diff --git a/src/bluetooth/qlowenergycontrollerbase.cpp b/src/bluetooth/qlowenergycontrollerbase.cpp index bfdd61a6..86108648 100644 --- a/src/bluetooth/qlowenergycontrollerbase.cpp +++ b/src/bluetooth/qlowenergycontrollerbase.cpp @@ -255,10 +255,11 @@ quint16 QLowEnergyControllerPrivate::updateValueOfDescriptor( void QLowEnergyControllerPrivate::invalidateServices() { - for (QSharedPointer<QLowEnergyServicePrivate> service : serviceList.values()) { + for (QSharedPointer<QLowEnergyServicePrivate> service : serviceList.values()) + service->setController(nullptr); + + for (QSharedPointer<QLowEnergyServicePrivate> service : localServices.values()) service->setController(nullptr); - service->setState(QLowEnergyService::InvalidService); - } serviceList.clear(); localServices.clear(); @@ -273,8 +274,8 @@ QLowEnergyService *QLowEnergyControllerPrivate::addServiceHelper( // for it. const auto servicePrivate = QSharedPointer<QLowEnergyServicePrivate>::create(); - servicePrivate->state = QLowEnergyService::LocalService; servicePrivate->setController(this); + servicePrivate->state = QLowEnergyService::LocalService; servicePrivate->uuid = service.uuid(); servicePrivate->type = service.type() == QLowEnergyServiceData::ServiceTypePrimary ? QLowEnergyService::PrimaryService : QLowEnergyService::IncludedService; |