summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Dorin Drimus <dorindrimus@google.com> 2023-08-24 08:36:37 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2023-08-24 08:36:37 +0000
commit31db4124e4a9c18050ddb48192051036bcc50212 (patch)
treebb12968a1a6a34571adb48ea251c3a6874fdf016
parent9335a252809316bc47e3c95711dcdae255ba1939 (diff)
parent858102a54dbe05ee4b2274ced069233975a7d4ec (diff)
Merge "Remove redundant broadcasts when adjusting volume on single volume devices" into main
-rw-r--r--services/core/java/com/android/server/audio/AudioService.java19
1 files changed, 12 insertions, 7 deletions
diff --git a/services/core/java/com/android/server/audio/AudioService.java b/services/core/java/com/android/server/audio/AudioService.java
index 5f15995687b7..77cf8f120112 100644
--- a/services/core/java/com/android/server/audio/AudioService.java
+++ b/services/core/java/com/android/server/audio/AudioService.java
@@ -8677,13 +8677,18 @@ public class AudioService extends IAudioService.Stub
// fire changed intents for all streams, but only when the device it changed on
// is the current device
if ((index != oldIndex) && isCurrentDevice) {
- mVolumeChanged.putExtra(AudioManager.EXTRA_VOLUME_STREAM_VALUE, index);
- mVolumeChanged.putExtra(AudioManager.EXTRA_PREV_VOLUME_STREAM_VALUE, oldIndex);
- mVolumeChanged.putExtra(AudioManager.EXTRA_VOLUME_STREAM_TYPE_ALIAS,
- mStreamVolumeAlias[mStreamType]);
- AudioService.sVolumeLogger.enqueue(new VolChangedBroadcastEvent(
- mStreamType, mStreamVolumeAlias[mStreamType], index));
- sendBroadcastToAll(mVolumeChanged, mVolumeChangedOptions);
+ // for single volume devices, only send the volume change broadcast
+ // on the alias stream
+ if (!mIsSingleVolume || (mStreamVolumeAlias[mStreamType] == mStreamType)) {
+ mVolumeChanged.putExtra(AudioManager.EXTRA_VOLUME_STREAM_VALUE, index);
+ mVolumeChanged.putExtra(AudioManager.EXTRA_PREV_VOLUME_STREAM_VALUE,
+ oldIndex);
+ mVolumeChanged.putExtra(AudioManager.EXTRA_VOLUME_STREAM_TYPE_ALIAS,
+ mStreamVolumeAlias[mStreamType]);
+ AudioService.sVolumeLogger.enqueue(new VolChangedBroadcastEvent(
+ mStreamType, mStreamVolumeAlias[mStreamType], index));
+ sendBroadcastToAll(mVolumeChanged, mVolumeChangedOptions);
+ }
}
}
return changed;