diff options
| author | 2024-05-25 20:48:35 +0000 | |
|---|---|---|
| committer | 2024-05-25 20:48:35 +0000 | |
| commit | 1baf5540c505cead56cbe8c10fd8fecf3b19f1ae (patch) | |
| tree | 99e2b7321b2bfbd680e755a880ce76ede0952bbd | |
| parent | af3f73fd696ccf82410f830b653efffa84082073 (diff) | |
| parent | 8d4310e0c4c15c1b5d11e5ff942de7cc0e0bf539 (diff) | |
Merge "AudioVolumeGroup: implement hashCode method" into main
4 files changed, 13 insertions, 2 deletions
diff --git a/media/java/android/media/AudioManager.java b/media/java/android/media/AudioManager.java index 63b45387f040..386a606c61c6 100644 --- a/media/java/android/media/AudioManager.java +++ b/media/java/android/media/AudioManager.java @@ -8617,6 +8617,7 @@ public class AudioManager { @SystemApi @NonNull @RequiresPermission(Manifest.permission.MODIFY_AUDIO_ROUTING) + // TODO also open to MODIFY_AUDIO_SETTINGS_PRIVILEGED b/341780042 public static List<AudioVolumeGroup> getAudioVolumeGroups() { final IAudioService service = getService(); try { diff --git a/media/java/android/media/IAudioService.aidl b/media/java/android/media/IAudioService.aidl index e612645fb4d7..c8b9da50b082 100644 --- a/media/java/android/media/IAudioService.aidl +++ b/media/java/android/media/IAudioService.aidl @@ -142,7 +142,7 @@ interface IAudioService { @UnsupportedAppUsage int getStreamMaxVolume(int streamType); - @EnforcePermission("MODIFY_AUDIO_ROUTING") + @EnforcePermission(anyOf={"MODIFY_AUDIO_SETTINGS_PRIVILEGED", "MODIFY_AUDIO_ROUTING"}) List<AudioVolumeGroup> getAudioVolumeGroups(); @EnforcePermission(anyOf={"MODIFY_AUDIO_SETTINGS_PRIVILEGED", "MODIFY_AUDIO_ROUTING"}) diff --git a/media/java/android/media/audiopolicy/AudioVolumeGroup.java b/media/java/android/media/audiopolicy/AudioVolumeGroup.java index d60712674990..0f5fbcc25f09 100644 --- a/media/java/android/media/audiopolicy/AudioVolumeGroup.java +++ b/media/java/android/media/audiopolicy/AudioVolumeGroup.java @@ -31,6 +31,7 @@ import com.android.internal.util.Preconditions; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.Objects; /** * A class to create the association between different playback attributes @@ -118,6 +119,12 @@ public final class AudioVolumeGroup implements Parcelable { && Arrays.equals(mAudioAttributes, thatAvg.mAudioAttributes); } + @Override + public int hashCode() { + return Objects.hash(mName, mId, + Arrays.hashCode(mAudioAttributes), Arrays.hashCode(mLegacyStreamTypes)); + } + /** * @return List of {@link AudioAttributes} involved in this {@link AudioVolumeGroup}. */ diff --git a/services/core/java/com/android/server/audio/AudioService.java b/services/core/java/com/android/server/audio/AudioService.java index 7deef2ffb5dd..72c52544a44a 100644 --- a/services/core/java/com/android/server/audio/AudioService.java +++ b/services/core/java/com/android/server/audio/AudioService.java @@ -2123,7 +2123,10 @@ public class AudioService extends IAudioService.Stub return AudioProductStrategy.getAudioProductStrategies(); } - @android.annotation.EnforcePermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) + @android.annotation.EnforcePermission(anyOf = { + MODIFY_AUDIO_SETTINGS_PRIVILEGED, + android.Manifest.permission.MODIFY_AUDIO_ROUTING + }) /** * @return the List of {@link android.media.audiopolicy.AudioVolumeGroup} discovered from the * platform configuration file. |