summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Treehugger Robot <android-test-infra-autosubmit@system.gserviceaccount.com> 2024-05-25 20:48:35 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2024-05-25 20:48:35 +0000
commit1baf5540c505cead56cbe8c10fd8fecf3b19f1ae (patch)
tree99e2b7321b2bfbd680e755a880ce76ede0952bbd
parentaf3f73fd696ccf82410f830b653efffa84082073 (diff)
parent8d4310e0c4c15c1b5d11e5ff942de7cc0e0bf539 (diff)
Merge "AudioVolumeGroup: implement hashCode method" into main
-rw-r--r--media/java/android/media/AudioManager.java1
-rw-r--r--media/java/android/media/IAudioService.aidl2
-rw-r--r--media/java/android/media/audiopolicy/AudioVolumeGroup.java7
-rw-r--r--services/core/java/com/android/server/audio/AudioService.java5
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.