From 5e721b6b4a2d9883f7d805d075b4218d7dc43849 Mon Sep 17 00:00:00 2001
From: Alice Kuo <aliceypkuo@google.com>
Date: Tue, 27 Feb 2024 13:34:42 +0800
Subject: [PATCH] Add back the aidl trasnport handle for
 Sink::CancelStreamingRequest

Bug: 326868963
Bug: 322106376
Bug: 325181889
Test: mmm packages/modules/Bluetooth
Test: media and phone call handover
Change-Id: I05ba63ec13e04a30d29cb0a534ffc80f6e453df0
---
 .../audio_hal_interface/le_audio_software.cc  | 22 +++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/system/audio_hal_interface/le_audio_software.cc b/system/audio_hal_interface/le_audio_software.cc
index 25120c7e709..5793b444fbe 100644
--- a/system/audio_hal_interface/le_audio_software.cc
+++ b/system/audio_hal_interface/le_audio_software.cc
@@ -325,6 +325,28 @@ void LeAudioClientInterface::Sink::CancelStreamingRequest() {
         break;
     }
   }
+
+  auto aidl_instance = get_aidl_transport_instance(is_broadcaster_);
+  auto start_request_state = aidl_instance->GetStartRequestState();
+  switch (start_request_state) {
+    case StartRequestState::IDLE:
+      LOG_WARN(", no pending start stream request");
+      return;
+    case StartRequestState::PENDING_BEFORE_RESUME:
+      LOG_INFO("Response before sending PENDING to audio HAL");
+      aidl_instance->SetStartRequestState(StartRequestState::CANCELED);
+      return;
+    case StartRequestState::PENDING_AFTER_RESUME:
+      LOG_INFO("Response after sending PENDING to audio HAL");
+      aidl_instance->ClearStartRequestState();
+      get_aidl_client_interface(is_broadcaster_)
+          ->StreamStarted(aidl::BluetoothAudioCtrlAck::FAILURE);
+      return;
+    case StartRequestState::CONFIRMED:
+    case StartRequestState::CANCELED:
+      LOG_ERROR("Invalid state, start stream already confirmed");
+      break;
+  }
 }
 
 void LeAudioClientInterface::Sink::CancelStreamingRequestV2() {
-- 
GitLab