diff options
| author | 2024-03-27 18:24:32 -0700 | |
|---|---|---|
| committer | 2024-04-01 14:59:16 -0700 | |
| commit | 16aa857f6d4ed95978d912bfc562e7a69f73ddd9 (patch) | |
| tree | 8ee619567d54ac09e8a413bc493d86060aa1ccc0 | |
| parent | 0d8256dd2fc26ad364a937aa17304346df081b36 (diff) | |
Fix order of mute adjustment in VGS sync with VSS
If setting the index before the mute this can lead to reapplying a stale
mute value that was not updated on the initial stream state
Test: adb shell device_config put media_audio com.android.media.audio.vgs_vss_sync_mute_order true
Test: https://android-build.corp.google.com/test_investigate/?invocationId=I82200010260265841&testResultId=TR11329232125910570
Bug: 331849188
Change-Id: If8940f123c9a94860fb3b154bcfd123fdebf0ba0
| -rw-r--r-- | services/core/java/com/android/server/audio/AudioService.java | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/services/core/java/com/android/server/audio/AudioService.java b/services/core/java/com/android/server/audio/AudioService.java index ed58c4033c4c..40099581c68b 100644 --- a/services/core/java/com/android/server/audio/AudioService.java +++ b/services/core/java/com/android/server/audio/AudioService.java @@ -47,6 +47,7 @@ import static com.android.media.audio.Flags.alarmMinVolumeZero; import static com.android.media.audio.Flags.disablePrescaleAbsoluteVolume; import static com.android.media.audio.Flags.ringerModeAffectsAlarm; import static com.android.media.audio.Flags.setStreamVolumeOrder; +import static com.android.media.audio.Flags.vgsVssSyncMuteOrder; import static com.android.server.audio.SoundDoseHelper.ACTION_CHECK_MUSIC_ACTIVE; import static com.android.server.utils.EventLogger.Event.ALOGE; import static com.android.server.utils.EventLogger.Event.ALOGI; @@ -4544,6 +4545,8 @@ public class AudioService extends IAudioService.Stub + setStreamVolumeOrder()); pw.println("\tandroid.media.audio.roForegroundAudioControl:" + roForegroundAudioControl()); + pw.println("\tcom.android.media.audio.vgsVssSyncMuteOrder:" + + vgsVssSyncMuteOrder()); } private void dumpAudioMode(PrintWriter pw) { @@ -8317,13 +8320,23 @@ public class AudioService extends IAudioService.Stub synced = true; continue; } + if (vgsVssSyncMuteOrder()) { + if ((isMuted() != streamMuted) && isVssMuteBijective( + stream)) { + mStreamStates[stream].mute(isMuted(), + "VGS.applyAllVolumes#1"); + } + } if (indexForStream != index) { mStreamStates[stream].setIndex(index * 10, device, caller, true /*hasModifyAudioSettings*/); } - if ((isMuted() != streamMuted) && isVssMuteBijective(stream)) { - mStreamStates[stream].mute(isMuted(), - "VGS.applyAllVolumes#1"); + if (!vgsVssSyncMuteOrder()) { + if ((isMuted() != streamMuted) && isVssMuteBijective( + stream)) { + mStreamStates[stream].mute(isMuted(), + "VGS.applyAllVolumes#1"); + } } } } |