Master mute is valid when running fixed volume for automotive
In Automotive case, we set fixed volume to suggest no volume control inside AudioFlinger and master mute is a mapping to the physical mute button in a car, which toggles the global mute state. Bug: 80474559 Test: adb shell input keyevent 164 Change-Id: I1d4fd143a98ee96f11850811c90e6d9932cab948
This commit is contained in:
@@ -215,6 +215,10 @@ public class AudioService extends IAudioService.Stub
|
||||
return mPlatformType == AudioSystem.PLATFORM_TELEVISION;
|
||||
}
|
||||
|
||||
private boolean isPlatformAutomotive() {
|
||||
return mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE);
|
||||
}
|
||||
|
||||
/** The controller for the volume UI. */
|
||||
private final VolumeController mVolumeController = new VolumeController();
|
||||
|
||||
@@ -2367,8 +2371,11 @@ public class AudioService extends IAudioService.Stub
|
||||
if (DEBUG_VOL) {
|
||||
Log.d(TAG, String.format("Master mute %s, %d, user=%d", mute, flags, userId));
|
||||
}
|
||||
if (mUseFixedVolume) {
|
||||
return; // If using fixed volume, we don't mute.
|
||||
if (!isPlatformAutomotive() && mUseFixedVolume) {
|
||||
// If using fixed volume, we don't mute.
|
||||
// TODO: remove the isPlatformAutomotive check here.
|
||||
// The isPlatformAutomotive check is added for safety but may not be necessary.
|
||||
return;
|
||||
}
|
||||
if (getCurrentUserId() == userId) {
|
||||
if (mute != AudioSystem.getMasterMute()) {
|
||||
|
||||
Reference in New Issue
Block a user