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

Commit f9f3eead authored by Eric Laurent's avatar Eric Laurent Committed by Android (Google) Code Review
Browse files

Merge "AudioDeviceBroker: restore use of hearing aids by default for VoIP calls" into udc-qpr-dev

parents 8ecd6992 97014eff
Loading
Loading
Loading
Loading
+21 −11
Original line number Diff line number Diff line
@@ -2411,7 +2411,11 @@ public class AudioDeviceBroker {
    }

    @GuardedBy("mDeviceStateLock")
    private boolean communnicationDeviceCompatOn() {
    // LE Audio: For system server (Telecom) and APKs targeting S and above, we let the audio
    // policy routing rules select the default communication device.
    // For older APKs, we force LE Audio headset when connected as those APKs cannot select a LE
    // Audiodevice explicitly.
    private boolean communnicationDeviceLeAudioCompatOn() {
        return mAudioModeOwner.mMode == AudioSystem.MODE_IN_COMMUNICATION
                && !(CompatChanges.isChangeEnabled(
                        USE_SET_COMMUNICATION_DEVICE, mAudioModeOwner.mUid)
@@ -2419,19 +2423,25 @@ public class AudioDeviceBroker {
    }

    @GuardedBy("mDeviceStateLock")
    AudioDeviceAttributes getDefaultCommunicationDevice() {
        // For system server (Telecom) and APKs targeting S and above, we let the audio
    // Hearing Aid: For system server (Telecom) and IN_CALL mode we let the audio
    // policy routing rules select the default communication device.
        // For older APKs, we force Hearing Aid or LE Audio headset when connected as
        // those APKs cannot select a LE Audio or Hearing Aid device explicitly.
    // For 3p apps and IN_COMMUNICATION mode we force Hearing aid when connected to maintain
    // backwards compatibility
    private boolean communnicationDeviceHaCompatOn() {
        return mAudioModeOwner.mMode == AudioSystem.MODE_IN_COMMUNICATION
                && !(mAudioModeOwner.mUid == android.os.Process.SYSTEM_UID);
    }

    @GuardedBy("mDeviceStateLock")
    AudioDeviceAttributes getDefaultCommunicationDevice() {
        AudioDeviceAttributes device = null;
        if (communnicationDeviceCompatOn()) {
        // If both LE and Hearing Aid are active (thie should not happen),
        // priority to Hearing Aid.
        if (communnicationDeviceHaCompatOn()) {
            device = mDeviceInventory.getDeviceOfType(AudioSystem.DEVICE_OUT_HEARING_AID);
            if (device == null) {
                device = mDeviceInventory.getDeviceOfType(AudioSystem.DEVICE_OUT_BLE_HEADSET);
        }
        if (device == null && communnicationDeviceLeAudioCompatOn()) {
            device = mDeviceInventory.getDeviceOfType(AudioSystem.DEVICE_OUT_BLE_HEADSET);
        }
        return device;
    }