Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8fea7e07 authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "gd: Check cached commands by handler"

parents 1ef185e7 d2d4f6ee
Loading
Loading
Loading
Loading
+12 −2
Original line number Diff line number Diff line
@@ -440,10 +440,20 @@ void LeAddressManager::OnCommandComplete(bluetooth::hci::CommandCompleteView vie
    }
  }

  handler_->BindOnceOn(this, &LeAddressManager::check_cached_commands).Invoke();
}

void LeAddressManager::check_cached_commands() {
  for (auto client : registered_clients_) {
    if (client.second != ClientState::PAUSED) {
      return;
    }
  }

  if (cached_commands_.empty()) {
    handler_->BindOnceOn(this, &LeAddressManager::resume_registered_clients).Invoke();
    resume_registered_clients();
  } else {
    handler_->BindOnceOn(this, &LeAddressManager::handle_next_command).Invoke();
    handle_next_command();
  }
}

+1 −0
Original line number Diff line number Diff line
@@ -126,6 +126,7 @@ class LeAddressManager {
  hci::Address generate_rpa();
  hci::Address generate_nrpa();
  void handle_next_command();
  void check_cached_commands();

  common::Callback<void(std::unique_ptr<CommandBuilder>)> enqueue_command_;
  os::Handler* handler_;