diff options
author | Raquel Medina <raquel.medina@konsulko.com> | 2020-07-13 21:58:07 +0200 |
---|---|---|
committer | Raquel Medina <raquel.medina@konsulko.com> | 2020-07-21 15:31:41 +0200 |
commit | 2c9af605274c5d348d71a856fef04a47dd4e0874 (patch) | |
tree | ce7552d2503a45d10e0a145c73c1e9c5844f3f81 /bluetooth | |
parent | 14c3bea3a90d54577ae1f6a124f61e90fb05c731 (diff) |
update bt power state if no adapterjellyfish_9.99.2jellyfish/9.99.29.99.2
In case of no adapter, update 'powered' property to
update status fed back to clients (i.e., if there's
no adapter and the user enables bluetooth via
settings slider, this patch provides the action to
take the slider back to OFF position, without this
fix it'd stay ON which can mislead the user's
expectations).
As SPEC-3301 has introduced changes to support the
no adapter scenario, this patch is also delivered
under this jira issue.
Bug-AGL: SPEC-3301
Signed-off-by: Raquel Medina <raquel.medina@konsulko.com>
Change-Id: I4fcc98b2a7cbf4093d39dc54ac83d5217de7e5ff
Diffstat (limited to 'bluetooth')
-rw-r--r-- | bluetooth/bluetooth.cpp | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/bluetooth/bluetooth.cpp b/bluetooth/bluetooth.cpp index fe1212f..82ef2f1 100644 --- a/bluetooth/bluetooth.cpp +++ b/bluetooth/bluetooth.cpp @@ -289,13 +289,21 @@ void Bluetooth::onMessageReceived(std::shared_ptr<Message> msg) } else if (ename == "agent") { emit requestConfirmationEvent(data); } - } else if (msg->isReply()) { std::shared_ptr<ResponseMessage> rmsg = std::static_pointer_cast<ResponseMessage>(msg); - //get api name QString verb = rmsg->requestVerb(); QJsonObject data = rmsg->replyData(); - if (verb == "managed_objects") { + if (rmsg->requestApi() != "Bluetooth-Manager") + return; + + if (rmsg->replyStatus() == "failed") { + qDebug() << "failed bt verb:" << verb; + if (rmsg->replyInfo().contains("No adapter")) { + m_power = false; + emit powerChanged(m_power); + } + } + else if (verb == "managed_objects") { populateDeviceList(data); } else if (verb == "adapter_state") { bool powered = data.value("powered").toBool(); |