From d4439a06ac7b8a44731566706717e7fcfaa8db24 Mon Sep 17 00:00:00 2001 From: Andy Hung Date: Tue, 22 Feb 2022 17:48:37 -0800 Subject: [PATCH] AudioService: Unify multiple device volume selection with APM Java selectOneAudioDevice() should match native apm_extract_one_audio_device(). Generally cosmetic change, but could have implications if other logic is modified. Test: compiles Bug: 220948052 Merged-In: Iabdf49df08a9bb3f92f0673b59ba699818746804 Change-Id: Iabdf49df08a9bb3f92f0673b59ba699818746804 --- .../java/com/android/server/audio/AudioService.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/services/core/java/com/android/server/audio/AudioService.java b/services/core/java/com/android/server/audio/AudioService.java index d606aba9b27ab..e088950332a8f 100644 --- a/services/core/java/com/android/server/audio/AudioService.java +++ b/services/core/java/com/android/server/audio/AudioService.java @@ -6297,13 +6297,16 @@ public class AudioService extends IAudioService.Stub return AudioSystem.DEVICE_OUT_HDMI_ARC; } else if (deviceSet.contains(AudioSystem.DEVICE_OUT_HDMI_EARC)) { return AudioSystem.DEVICE_OUT_HDMI_EARC; - } else if (deviceSet.contains(AudioSystem.DEVICE_OUT_SPDIF)) { - return AudioSystem.DEVICE_OUT_SPDIF; } else if (deviceSet.contains(AudioSystem.DEVICE_OUT_AUX_LINE)) { return AudioSystem.DEVICE_OUT_AUX_LINE; + } else if (deviceSet.contains(AudioSystem.DEVICE_OUT_SPDIF)) { + return AudioSystem.DEVICE_OUT_SPDIF; } else { - for (int deviceType : AudioSystem.DEVICE_OUT_ALL_A2DP_SET) { - if (deviceSet.contains(deviceType)) { + // At this point, deviceSet should contain exactly one A2DP device; + // regardless, return the first A2DP device in numeric order. + // If there is no A2DP device, this falls through to log an error. + for (int deviceType : deviceSet) { + if (AudioSystem.DEVICE_OUT_ALL_A2DP_SET.contains(deviceType)) { return deviceType; } }