summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2022-07-07 03:05:57 +0000
committerAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2022-07-07 03:05:57 +0000
commit5fc8a1da8857becb4b51c8f7dbde90d50e905e90 (patch)
treec61916af2f276ff383df03327485222330af1fb6
parentc97cda94cfe4697924ea2558f0dffc3d6ce630d8 (diff)
parentdddf1151c53f5c32c614601ec2bbf47a3c262691 (diff)
Merge cherrypicks of [19132091] into tm-release.
Change-Id: I83e1dd57f9d93178bd7b07f51fe9ed914149fd28
-rw-r--r--system/gd/hci/le_address_manager.cc15
1 files changed, 10 insertions, 5 deletions
diff --git a/system/gd/hci/le_address_manager.cc b/system/gd/hci/le_address_manager.cc
index 6d1806d809..28f51004a7 100644
--- a/system/gd/hci/le_address_manager.cc
+++ b/system/gd/hci/le_address_manager.cc
@@ -230,6 +230,11 @@ void LeAddressManager::ack_pause(LeAddressManagerCallback* callback) {
for (auto client : registered_clients_) {
if (client.second != ClientState::PAUSED) {
// make sure all client paused
+ if (client.second != ClientState::WAITING_FOR_PAUSE) {
+ LOG_DEBUG("Trigger OnPause for client that not paused and not waiting for pause");
+ client.second = ClientState::WAITING_FOR_PAUSE;
+ client.first->OnPause();
+ }
return;
}
}
@@ -421,9 +426,9 @@ void LeAddressManager::AddDeviceToResolvingList(
cached_commands_.push(std::move(enable));
if (registered_clients_.empty()) {
- handle_next_command();
+ handler_->BindOnceOn(this, &LeAddressManager::handle_next_command).Invoke();
} else {
- pause_registered_clients();
+ handler_->BindOnceOn(this, &LeAddressManager::pause_registered_clients).Invoke();
}
}
@@ -452,9 +457,9 @@ void LeAddressManager::RemoveDeviceFromResolvingList(
cached_commands_.push(std::move(enable));
if (registered_clients_.empty()) {
- handle_next_command();
+ handler_->BindOnceOn(this, &LeAddressManager::handle_next_command).Invoke();
} else {
- pause_registered_clients();
+ handler_->BindOnceOn(this, &LeAddressManager::pause_registered_clients).Invoke();
}
}
@@ -479,7 +484,7 @@ void LeAddressManager::ClearResolvingList() {
Command enable = {CommandType::SET_ADDRESS_RESOLUTION_ENABLE, std::move(enable_builder)};
cached_commands_.push(std::move(enable));
- pause_registered_clients();
+ handler_->BindOnceOn(this, &LeAddressManager::pause_registered_clients).Invoke();
}
template <class View>