Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 63c15500 authored by Tomoharu Kasahara's avatar Tomoharu Kasahara
Browse files

AudioPolicy: enable apps to mute BLUETOOTH_SCO

This change enables an app that has the MODIFY_PHONE_STATE
permission to mute the BULETOOTH_SCO stream.
The change adds specific handling in AudioPolicyManager
for the case in which volume index is 0 and stream type is
BLUETOOTH_SCO.
The permission check is done in the AudioService Java code for the
calling process.

Bug: 111195322
Test: Tested manually
Change-Id: I5085826a7287dfbc2cfb17a9bd2d3ca1af66ea4a
parent b2e28dac
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -2255,10 +2255,11 @@ status_t AudioPolicyManager::setStreamVolumeIndex(audio_stream_type_t stream,
                                                  audio_devices_t device)
{

    // VOICE_CALL stream has minVolumeIndex > 0  but can be muted directly by an
    // app that has MODIFY_PHONE_STATE permission.
    // VOICE_CALL and BLUETOOTH_SCO stream have minVolumeIndex > 0 but
    // can be muted directly by an app that has MODIFY_PHONE_STATE permission.
    if (((index < mVolumeCurves->getVolumeIndexMin(stream)) &&
            !(stream == AUDIO_STREAM_VOICE_CALL && index == 0)) ||
            !((stream == AUDIO_STREAM_VOICE_CALL || stream == AUDIO_STREAM_BLUETOOTH_SCO) &&
            index == 0)) ||
            (index > mVolumeCurves->getVolumeIndexMax(stream))) {
        return BAD_VALUE;
    }