Loading system/gd/hci/le_address_manager.cc +14 −4 Original line number Diff line number Diff line Loading @@ -164,7 +164,14 @@ void LeAddressManager::Unregister(LeAddressManagerCallback* callback) { } void LeAddressManager::unregister_client(LeAddressManagerCallback* callback) { if (registered_clients_.find(callback) != registered_clients_.end()) { if (registered_clients_.find(callback)->second == ClientState::WAITING_FOR_PAUSE) { ack_pause(callback); } else if (registered_clients_.find(callback)->second == ClientState::WAITING_FOR_RESUME) { ack_resume(callback); } registered_clients_.erase(callback); } if (registered_clients_.empty() && address_rotation_alarm_ != nullptr) { address_rotation_alarm_->Cancel(); } Loading Loading @@ -207,7 +214,9 @@ void LeAddressManager::push_command(Command command) { } void LeAddressManager::ack_pause(LeAddressManagerCallback* callback) { ASSERT(registered_clients_.find(callback) != registered_clients_.end()); if (registered_clients_.find(callback) == registered_clients_.end()) { return; } registered_clients_.find(callback)->second = ClientState::PAUSED; for (auto client : registered_clients_) { if (client.second != ClientState::PAUSED) { Loading Loading @@ -235,9 +244,10 @@ void LeAddressManager::resume_registered_clients() { } void LeAddressManager::ack_resume(LeAddressManagerCallback* callback) { ASSERT(registered_clients_.find(callback) != registered_clients_.end()); if (registered_clients_.find(callback) != registered_clients_.end()) { registered_clients_.find(callback)->second = ClientState::RESUMED; } } void LeAddressManager::prepare_to_rotate() { Command command = {CommandType::ROTATE_RANDOM_ADDRESS, nullptr}; Loading Loading
system/gd/hci/le_address_manager.cc +14 −4 Original line number Diff line number Diff line Loading @@ -164,7 +164,14 @@ void LeAddressManager::Unregister(LeAddressManagerCallback* callback) { } void LeAddressManager::unregister_client(LeAddressManagerCallback* callback) { if (registered_clients_.find(callback) != registered_clients_.end()) { if (registered_clients_.find(callback)->second == ClientState::WAITING_FOR_PAUSE) { ack_pause(callback); } else if (registered_clients_.find(callback)->second == ClientState::WAITING_FOR_RESUME) { ack_resume(callback); } registered_clients_.erase(callback); } if (registered_clients_.empty() && address_rotation_alarm_ != nullptr) { address_rotation_alarm_->Cancel(); } Loading Loading @@ -207,7 +214,9 @@ void LeAddressManager::push_command(Command command) { } void LeAddressManager::ack_pause(LeAddressManagerCallback* callback) { ASSERT(registered_clients_.find(callback) != registered_clients_.end()); if (registered_clients_.find(callback) == registered_clients_.end()) { return; } registered_clients_.find(callback)->second = ClientState::PAUSED; for (auto client : registered_clients_) { if (client.second != ClientState::PAUSED) { Loading Loading @@ -235,9 +244,10 @@ void LeAddressManager::resume_registered_clients() { } void LeAddressManager::ack_resume(LeAddressManagerCallback* callback) { ASSERT(registered_clients_.find(callback) != registered_clients_.end()); if (registered_clients_.find(callback) != registered_clients_.end()) { registered_clients_.find(callback)->second = ClientState::RESUMED; } } void LeAddressManager::prepare_to_rotate() { Command command = {CommandType::ROTATE_RANDOM_ADDRESS, nullptr}; Loading