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

Commit 9dfdb686 authored by Cheney Ni's avatar Cheney Ni
Browse files

BTAudio: report session ended after cleaning up

While Bluetooth stack ending a session, this CL does clean up first, and
then reports the change. All observers are able to get the correct
session state by invoking IsSessionReady() within the change callback.

Bug: 162065063
Test: manually
Change-Id: I920ea578d626d2e5844eb7c8a701636e20d7a219
parent b278ae0c
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -90,14 +90,16 @@ void BluetoothAudioSession::OnSessionStarted(
// bluetooth_audio outputs
void BluetoothAudioSession::OnSessionEnded() {
  std::lock_guard<std::recursive_mutex> guard(mutex_);
  if (IsSessionReady()) {
    ReportSessionStatus();
  }
  bool toggled = IsSessionReady();
  LOG(INFO) << __func__ << " - SessionType=" << toString(session_type_);
  audio_config_ = (session_type_ == SessionType::A2DP_HARDWARE_OFFLOAD_DATAPATH
                       ? kInvalidOffloadAudioConfiguration
                       : kInvalidSoftwareAudioConfiguration);
  stack_iface_ = nullptr;
  UpdateDataPath(nullptr);
  if (toggled) {
    ReportSessionStatus();
  }
}

// invoking the registered session_changed_cb_