diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2022-07-07 03:05:57 +0000 |
---|---|---|
committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2022-07-07 03:05:57 +0000 |
commit | 5fc8a1da8857becb4b51c8f7dbde90d50e905e90 (patch) | |
tree | c61916af2f276ff383df03327485222330af1fb6 | |
parent | c97cda94cfe4697924ea2558f0dffc3d6ce630d8 (diff) | |
parent | dddf1151c53f5c32c614601ec2bbf47a3c262691 (diff) |
Merge cherrypicks of [19132091] into tm-release.
Change-Id: I83e1dd57f9d93178bd7b07f51fe9ed914149fd28
-rw-r--r-- | system/gd/hci/le_address_manager.cc | 15 |
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> |