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

Commit 00bd9a0f authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Check paused client by switch" am: 08efb17b

parents d9d06ae1 08efb17b
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;
    }
  }