From bb58b4e6848865ca3c45e10dd1521d1cb6533cf9 Mon Sep 17 00:00:00 2001 From: François Gaffie Date: Fri, 20 Mar 2020 16:57:45 -0700 Subject: [AudioServer] Fix CTS for volume groups based on non public streams This CL fixes VolumeGroup CTS by preventing to set the volume per stream for group associated to a non public stream type. Bug: 136121584 Test: run cts-dev -m CtsMediaTestCase --test android.media.cts.AudioProductStrategyTest run cts-dev -m CtsMediaTestCase --test android.media.cts.AudioVolumeGroupTest run cts-dev -m CtsMediaTestCase --test android.media.cts.AudioVolumeGroupChangeHandlerTest run cts-dev -m CtsMediaTestCase --test android.media.cts.AudioManagerTest#testPermissionsForVolumePerAttributes run cts-dev -m CtsMediaTestCase --test android.media.cts.AudioManagerTest#testGetAndValidateProductStrategies run cts-dev -m CtsMediaTestCase --test android.media.cts.AudioManagerTest#testGetAndValidateVolumeGroups run cts-dev -m CtsMediaTestCase --test android.media.cts.AudioManagerTest#testSetGetVolumePerAttributesWithInvalidAttributes run cts-dev -m CtsMediaTestCase --test android.media.cts.AudioManagerTest#testSetGetVolumePerAttributes run cts-dev -m CtsMediaTestCase --test android.media.cts.AudioManagerTest#testVolumeGroupCallback Change-Id: I53d9d2d4d7591300bf364d591412b548356cd118 --- services/core/java/com/android/server/audio/AudioService.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/services/core/java/com/android/server/audio/AudioService.java b/services/core/java/com/android/server/audio/AudioService.java index 1f0146ad815d..1ff443293e53 100644 --- a/services/core/java/com/android/server/audio/AudioService.java +++ b/services/core/java/com/android/server/audio/AudioService.java @@ -2325,6 +2325,13 @@ public class AudioService extends IAudioService.Stub // For legacy reason, propagate to all streams associated to this volume group for (final int groupedStream : vgs.getLegacyStreamTypes()) { + try { + ensureValidStreamType(groupedStream); + } catch (IllegalArgumentException e) { + Log.d(TAG, "volume group " + volumeGroup + " has internal streams (" + groupedStream + + "), do not change associated stream volume"); + continue; + } setStreamVolume(groupedStream, index, flags, callingPackage, callingPackage, Binder.getCallingUid()); } -- cgit v1.2.3-59-g8ed1b