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

Commit c39cc151 authored by William Escande's avatar William Escande Committed by Gerrit Code Review
Browse files

Merge "AptXVoice: Add missing java flagging" into main

parents 9759a649 535a8104
Loading
Loading
Loading
Loading
+10 −2
Original line number Original line Diff line number Diff line
@@ -36,6 +36,7 @@ import android.os.Build;
import android.os.Looper;
import android.os.Looper;
import android.os.Message;
import android.os.Message;
import android.os.SystemClock;
import android.os.SystemClock;
import android.os.SystemProperties;
import android.os.UserHandle;
import android.os.UserHandle;
import android.telephony.PhoneNumberUtils;
import android.telephony.PhoneNumberUtils;
import android.telephony.PhoneStateListener;
import android.telephony.PhoneStateListener;
@@ -48,6 +49,7 @@ import com.android.bluetooth.Utils;
import com.android.bluetooth.btservice.AdapterService;
import com.android.bluetooth.btservice.AdapterService;
import com.android.bluetooth.btservice.ProfileService;
import com.android.bluetooth.btservice.ProfileService;
import com.android.bluetooth.btservice.storage.DatabaseManager;
import com.android.bluetooth.btservice.storage.DatabaseManager;
import com.android.bluetooth.flags.Flags;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.util.State;
import com.android.internal.util.State;
import com.android.internal.util.StateMachine;
import com.android.internal.util.StateMachine;
@@ -166,6 +168,10 @@ public class HeadsetStateMachine extends StateMachine {


    private BluetoothSinkAudioPolicy mHsClientAudioPolicy;
    private BluetoothSinkAudioPolicy mHsClientAudioPolicy;


    static final boolean IS_APTX_SUPPORT_ENABLED =
            Flags.hfpCodecAptxVoice()
                    && SystemProperties.getBoolean("bluetooth.hfp.codec_aptx_voice.enabled", false);

    // Keys are AT commands, and values are the company IDs.
    // Keys are AT commands, and values are the company IDs.
    private static final Map<String, Integer> VENDOR_SPECIFIC_AT_COMMAND_COMPANY_ID;
    private static final Map<String, Integer> VENDOR_SPECIFIC_AT_COMMAND_COMPANY_ID;


@@ -1685,8 +1691,10 @@ public class HeadsetStateMachine extends StateMachine {
                        + (" hasSwbEnabled=" + mHasSwbLc3Enabled)
                        + (" hasSwbEnabled=" + mHasSwbLc3Enabled)
                        + (" hasAptXSwbEnabled=" + mHasSwbAptXEnabled));
                        + (" hasAptXSwbEnabled=" + mHasSwbAptXEnabled));
        am.setParameters("bt_lc3_swb=" + (mHasSwbLc3Enabled ? "on" : "off"));
        am.setParameters("bt_lc3_swb=" + (mHasSwbLc3Enabled ? "on" : "off"));
        if (IS_APTX_SUPPORT_ENABLED) {
            /* AptX bt_swb: 0 -> on, 65535 -> off */
            /* AptX bt_swb: 0 -> on, 65535 -> off */
            am.setParameters("bt_swb=" + (mHasSwbAptXEnabled ? "0" : "65535"));
            am.setParameters("bt_swb=" + (mHasSwbAptXEnabled ? "0" : "65535"));
        }
        am.setBluetoothHeadsetProperties(getCurrentDeviceName(), mHasNrecEnabled, mHasWbsEnabled);
        am.setBluetoothHeadsetProperties(getCurrentDeviceName(), mHasNrecEnabled, mHasWbsEnabled);
    }
    }


+1 −0
Original line number Original line Diff line number Diff line
@@ -31,6 +31,7 @@ java_defaults {
        "frameworks-base-testutils",
        "frameworks-base-testutils",
        "gson",
        "gson",
        "mockito-target",
        "mockito-target",
        "platform-test-annotations",
        "truth",
        "truth",
    ],
    ],


+11 −2
Original line number Original line Diff line number Diff line
@@ -19,6 +19,7 @@ package com.android.bluetooth.hfp;
import static android.Manifest.permission.BLUETOOTH_CONNECT;
import static android.Manifest.permission.BLUETOOTH_CONNECT;


import static org.mockito.Mockito.*;
import static org.mockito.Mockito.*;
import static org.junit.Assume.assumeTrue;


import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothDevice;
@@ -36,7 +37,9 @@ import android.os.Build;
import android.os.Bundle;
import android.os.Bundle;
import android.os.CancellationSignal;
import android.os.CancellationSignal;
import android.os.HandlerThread;
import android.os.HandlerThread;
import android.os.SystemProperties;
import android.os.UserHandle;
import android.os.UserHandle;
import android.platform.test.annotations.RequiresFlagsEnabled;
import android.provider.CallLog;
import android.provider.CallLog;
import android.provider.CallLog.Calls;
import android.provider.CallLog.Calls;
import android.telephony.PhoneNumberUtils;
import android.telephony.PhoneNumberUtils;
@@ -55,6 +58,7 @@ import com.android.bluetooth.btservice.AdapterService;
import com.android.bluetooth.btservice.RemoteDevices;
import com.android.bluetooth.btservice.RemoteDevices;
import com.android.bluetooth.btservice.SilenceDeviceManager;
import com.android.bluetooth.btservice.SilenceDeviceManager;
import com.android.bluetooth.btservice.storage.DatabaseManager;
import com.android.bluetooth.btservice.storage.DatabaseManager;
import com.android.bluetooth.flags.Flags;


import org.hamcrest.core.IsInstanceOf;
import org.hamcrest.core.IsInstanceOf;
import org.junit.After;
import org.junit.After;
@@ -1613,7 +1617,9 @@ public class HeadsetStateMachineTest {


    /** Test setting audio parameters according to received SWB event. SWB AptX is enabled. */
    /** Test setting audio parameters according to received SWB event. SWB AptX is enabled. */
    @Test
    @Test
    @RequiresFlagsEnabled(Flags.FLAG_HFP_CODEC_APTX_VOICE)
    public void testSetAudioParameters_SwbAptxEnabled() {
    public void testSetAudioParameters_SwbAptxEnabled() {
        assumeTrue(SystemProperties.getBoolean("bluetooth.hfp.codec_aptx_voice.enabled", false));
        setUpConnectedState();
        setUpConnectedState();
        mHeadsetStateMachine.sendMessage(
        mHeadsetStateMachine.sendMessage(
                HeadsetStateMachine.STACK_EVENT,
                HeadsetStateMachine.STACK_EVENT,
@@ -1683,9 +1689,12 @@ public class HeadsetStateMachineTest {
    private void verifyAudioSystemSetParametersInvocation(boolean lc3Enabled, boolean aptxEnabled) {
    private void verifyAudioSystemSetParametersInvocation(boolean lc3Enabled, boolean aptxEnabled) {
        verify(mAudioManager, timeout(ASYNC_CALL_TIMEOUT_MILLIS))
        verify(mAudioManager, timeout(ASYNC_CALL_TIMEOUT_MILLIS))
                .setParameters(lc3Enabled ? "bt_lc3_swb=on" : "bt_lc3_swb=off");
                .setParameters(lc3Enabled ? "bt_lc3_swb=on" : "bt_lc3_swb=off");

        if (mHeadsetStateMachine.IS_APTX_SUPPORT_ENABLED) {
            verify(mAudioManager, timeout(ASYNC_CALL_TIMEOUT_MILLIS))
            verify(mAudioManager, timeout(ASYNC_CALL_TIMEOUT_MILLIS))
                    .setParameters(aptxEnabled ? "bt_swb=0" : "bt_swb=65535");
                    .setParameters(aptxEnabled ? "bt_swb=0" : "bt_swb=65535");
        }
        }
    }


    /**
    /**
     * set sink audio policy
     * set sink audio policy