diff options
| author | 2023-08-24 08:36:37 +0000 | |
|---|---|---|
| committer | 2023-08-24 08:36:37 +0000 | |
| commit | 31db4124e4a9c18050ddb48192051036bcc50212 (patch) | |
| tree | bb12968a1a6a34571adb48ea251c3a6874fdf016 | |
| parent | 9335a252809316bc47e3c95711dcdae255ba1939 (diff) | |
| parent | 858102a54dbe05ee4b2274ced069233975a7d4ec (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.java | 19 |
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; |