From c89895fd3947f9477e0dce9d5bf1790d2a185f6a Mon Sep 17 00:00:00 2001 From: Eric Laurent Date: Wed, 18 Aug 2021 17:49:43 +0200 Subject: [PATCH] AudioService: stop SCO audio when communication route client dies Fix AudioDeviceBroker.onCommunicationRouteClientDied() implementation to actually stop BT SCO audio in case of client death. Previous implementation was just removing the client from the client list and restoring audio route but wihtout stopping the actual SCO audio link. Bug: 196922082 Test: repro steps in bug Change-Id: I381537f61740f9a9fcbf3232ef4336943b0826c5 --- .../java/com/android/server/audio/AudioDeviceBroker.java | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/services/core/java/com/android/server/audio/AudioDeviceBroker.java b/services/core/java/com/android/server/audio/AudioDeviceBroker.java index 8961a5a055465..5ecdfe49cdf72 100644 --- a/services/core/java/com/android/server/audio/AudioDeviceBroker.java +++ b/services/core/java/com/android/server/audio/AudioDeviceBroker.java @@ -1719,11 +1719,10 @@ import java.util.concurrent.atomic.AtomicBoolean; if (client == null) { return; } - Log.w(TAG, "Speaker client died"); - if (removeCommunicationRouteClient(client.getBinder(), false) - != null) { - onUpdateCommunicationRoute("onCommunicationRouteClientDied"); - } + Log.w(TAG, "Communication client died"); + setCommunicationRouteForClient( + client.getBinder(), client.getPid(), null, BtHelper.SCO_MODE_UNDEFINED, + "onCommunicationRouteClientDied"); } /**