diff options
| -rw-r--r-- | services/core/java/com/android/server/audio/AudioService.java | 11 |
1 files 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 d606aba9b27a..e088950332a8 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; } } |