summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Vlad Popa <pvlad@google.com> 2024-03-27 18:24:32 -0700
committer Vlad Popa <pvlad@google.com> 2024-04-01 14:59:16 -0700
commit16aa857f6d4ed95978d912bfc562e7a69f73ddd9 (patch)
tree8ee619567d54ac09e8a413bc493d86060aa1ccc0
parent0d8256dd2fc26ad364a937aa17304346df081b36 (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.java19
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");
+ }
}
}
}