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

Commit 08efb17b authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "Check paused client by switch"

parents 5dd23a9c 5c6292ce
Loading
Loading
Loading
Loading
+19 −8
Original line number Diff line number Diff line
@@ -210,9 +210,15 @@ AddressWithType LeAddressManager::GetAnotherAddress() {

void LeAddressManager::pause_registered_clients() {
  for (auto& client : registered_clients_) {
    if (client.second != ClientState::PAUSED && client.second != ClientState::WAITING_FOR_PAUSE) {
    switch (client.second) {
      case ClientState::PAUSED:
      case ClientState::WAITING_FOR_PAUSE:
        break;
      case WAITING_FOR_RESUME:
      case RESUMED:
        client.second = ClientState::WAITING_FOR_PAUSE;
        client.first->OnPause();
        break;
    }
  }
}
@@ -228,13 +234,18 @@ void LeAddressManager::ack_pause(LeAddressManagerCallback* callback) {
  }
  registered_clients_.find(callback)->second = ClientState::PAUSED;
  for (auto client : registered_clients_) {
    if (client.second != ClientState::PAUSED) {
    switch (client.second) {
      case ClientState::PAUSED:
        break;
      case ClientState::WAITING_FOR_PAUSE:
        // make sure all client paused
      if (client.second != ClientState::WAITING_FOR_PAUSE) {
        LOG_DEBUG("Wait all clients paused, return");
        return;
      case WAITING_FOR_RESUME:
      case RESUMED:
        LOG_DEBUG("Trigger OnPause for client that not paused and not waiting for pause");
        client.second = ClientState::WAITING_FOR_PAUSE;
        client.first->OnPause();
      }
        return;
    }
  }