AudioService: reduce EU volume warning thresdhold for USB headsets

Take into account additional gain due to simultaneous application of
EQ and bass boost by substracting 7dB from current warning message threshold.

Bug: 65225835
Test: check warning displayed when playing over USB headset after boot when
no SIM is present

Change-Id: I1bfcbf571d72122f4df6ff5e40be227c42d555e3
(cherry picked from commit 0e5deb3967398834c9d2321b31d3c56b380e98b5)
(cherry picked from commit 630f37a4ad13126d0bbdaa47052177e2c43c358f)
diff --git a/services/core/java/com/android/server/audio/ b/services/core/java/com/android/server/audio/
index 0326299..36b3fbf 100644
--- a/services/core/java/com/android/server/audio/
+++ b/services/core/java/com/android/server/audio/
@@ -6039,12 +6039,12 @@
     private int mSafeMediaVolumeIndex;
     // mSafeUsbMediaVolumeIndex is used for USB Headsets and is the music volume UI index
     // corresponding to a gain of -30 dBFS in audio flinger mixer.
-    // We remove -15 dBs from the theoretical -15dB to account for the EQ boost when bands are set
-    // to max gain.
+    // We remove -22 dBs from the theoretical -15dB to account for the EQ + bass boost
+    // amplification when both effects are on with all band gains at maximum.
     // This level corresponds to a loudness of 85 dB SPL for the warning to be displayed when
     // the headset is compliant to EN 60950 with a max loudness of 100dB SPL.
     private int mSafeUsbMediaVolumeIndex;
-    private static final float SAFE_VOLUME_GAIN_DBFS = -30.0f;
+    private static final float SAFE_VOLUME_GAIN_DBFS = -37.0f;
     // mSafeMediaVolumeDevices lists the devices for which safe media volume is enforced,
     private final int mSafeMediaVolumeDevices = AudioSystem.DEVICE_OUT_WIRED_HEADSET |
                                                 AudioSystem.DEVICE_OUT_WIRED_HEADPHONE |