summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Jean-Michel Trivi <jmtrivi@google.com> 2023-11-27 17:30:04 -0800
committer Jean-Michel Trivi <jmtrivi@google.com> 2023-11-27 17:30:04 -0800
commita8247087b1ada3e2385d8d04e3d3dddce5a8fe1a (patch)
tree99973bc20b47e1467d54598f59711d67bbb2f25d
parenta8d03d7b917c7a7f9eeb7932ddfca7e6778c531a (diff)
AudioService: fix volume code path with a null audio device
The VolumeGroup synchronization with the VolumeStream calls into setStreamVolume without a device. Bug: 302751899 Test: atest android.media.audio.cts.AudioManagerTest Test: atest com.android.audiopolicytest.AudioVolumeGroupTest Change-Id: I27051bc8bfda8df3ff4b6998c19f40a936121680
-rw-r--r--services/core/java/com/android/server/audio/AudioService.java6
1 files changed, 4 insertions, 2 deletions
diff --git a/services/core/java/com/android/server/audio/AudioService.java b/services/core/java/com/android/server/audio/AudioService.java
index d4b72c1770f7..3f27ca024f15 100644
--- a/services/core/java/com/android/server/audio/AudioService.java
+++ b/services/core/java/com/android/server/audio/AudioService.java
@@ -4600,7 +4600,7 @@ public class AudioService extends IAudioService.Stub
}
private void setStreamVolume(int streamType, int index, int flags,
- @NonNull AudioDeviceAttributes ada,
+ @Nullable AudioDeviceAttributes ada,
String callingPackage, String caller, String attributionTag, int uid,
boolean hasModifyAudioSettings,
boolean canChangeMuteAndUpdateController) {
@@ -4618,7 +4618,9 @@ public class AudioService extends IAudioService.Stub
int streamTypeAlias = mStreamVolumeAlias[streamType];
VolumeStreamState streamState = mStreamStates[streamTypeAlias];
- final int device = ada.getInternalType();
+ final int device = (ada == null)
+ ? getDeviceForStream(streamType)
+ : ada.getInternalType();
int oldIndex;
// skip a2dp absolute volume control request when the device