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

Commit 7f87802a authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge changes from topic "auto_on_flag_removal" into main

* changes:
  Flag 24Q3: hfp_codec_aptx_voice
  Flag 24Q3: load_did_config_from_sysprops
  Flag 24Q3: remove auto_on_feature
parents 02cda7ac b21dee39
Loading
Loading
Loading
Loading
+13 −27
Original line number Diff line number Diff line
@@ -196,7 +196,6 @@ public class HeadsetService extends ProfileService {
        // Step 3: Initialize system interface
        mSystemInterface = HeadsetObjectsFactory.getInstance().makeSystemInterface(this);
        // Step 4: Initialize native interface
        if (Flags.hfpCodecAptxVoice()) {
        mIsAptXSwbEnabled =
                SystemProperties.getBoolean("bluetooth.hfp.codec_aptx_voice.enabled", false);
        Log.i(TAG, "mIsAptXSwbEnabled: " + mIsAptXSwbEnabled);
@@ -204,17 +203,12 @@ public class HeadsetService extends ProfileService {
                SystemProperties.getBoolean(
                        "bluetooth.hfp.swb.aptx.power_management.enabled", false);
        Log.i(TAG, "mIsAptXSwbPmEnabled: " + mIsAptXSwbPmEnabled);
        }
        setHeadsetService(this);
        mMaxHeadsetConnections = mAdapterService.getMaxConnectedAudioDevices();
        // Add 1 to allow a pending device to be connecting or disconnecting
        mNativeInterface.init(mMaxHeadsetConnections + 1, isInbandRingingEnabled());
        if (Flags.hfpCodecAptxVoice()) {
        enableSwbCodec(
                    HeadsetHalConstants.BTHF_SWB_CODEC_VENDOR_APTX,
                    mIsAptXSwbEnabled,
                    mActiveDevice);
        }
                HeadsetHalConstants.BTHF_SWB_CODEC_VENDOR_APTX, mIsAptXSwbEnabled, mActiveDevice);
        // Step 6: Setup broadcast receivers
        IntentFilter filter = new IntentFilter();
        filter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY);
@@ -1185,9 +1179,7 @@ public class HeadsetService extends ProfileService {
            }
            stateMachine.sendMessage(HeadsetStateMachine.CONNECT_AUDIO, device);
        }
        if (Flags.hfpCodecAptxVoice()) {
        enableSwbCodec(HeadsetHalConstants.BTHF_SWB_CODEC_VENDOR_APTX, true, device);
        }
        return true;
    }

@@ -1227,9 +1219,7 @@ public class HeadsetService extends ProfileService {
            }
            stateMachine.sendMessage(HeadsetStateMachine.DISCONNECT_AUDIO, device);
        }
        if (Flags.hfpCodecAptxVoice()) {
        enableSwbCodec(HeadsetHalConstants.BTHF_SWB_CODEC_VENDOR_APTX, false, device);
        }
        return true;
    }

@@ -1902,9 +1892,7 @@ public class HeadsetService extends ProfileService {
            if (!mSystemInterface.getVoiceRecognitionWakeLock().isHeld()) {
                mSystemInterface.getVoiceRecognitionWakeLock().acquire(sStartVrTimeoutMs);
            }
            if (Flags.hfpCodecAptxVoice()) {
            enableSwbCodec(HeadsetHalConstants.BTHF_SWB_CODEC_VENDOR_APTX, true, fromDevice);
            }
            return true;
        }
    }
@@ -1956,9 +1944,7 @@ public class HeadsetService extends ProfileService {
                Log.w(TAG, "stopVoiceRecognitionByHeadset: failed request from " + fromDevice);
                return false;
            }
            if (Flags.hfpCodecAptxVoice()) {
            enableSwbCodec(HeadsetHalConstants.BTHF_SWB_CODEC_VENDOR_APTX, false, fromDevice);
            }
            return true;
        }
    }
+3 −7
Original line number Diff line number Diff line
@@ -512,9 +512,6 @@ class HeadsetStateMachine extends StateMachine {
        abstract int getAudioStateInt();

        protected void setAptxVoice(HeadsetCallState callState) {
            if (!Flags.hfpCodecAptxVoice()) {
                return;
            }
            if (!mHeadsetService.isAptXSwbEnabled()) {
                return;
            }
@@ -1339,8 +1336,7 @@ class HeadsetStateMachine extends StateMachine {
                        mSystemInterface.getAudioManager().setLeAudioSuspended(true);
                    }

                    if (Flags.hfpCodecAptxVoice()
                            && mHeadsetService.isAptXSwbEnabled()
                    if (mHeadsetService.isAptXSwbEnabled()
                            && mHeadsetService.isAptXSwbPmEnabled()) {
                        if (!mHeadsetService.isVirtualCallStarted()
                                && mSystemInterface.isHighDefCallInProgress()) {
@@ -1880,7 +1876,7 @@ class HeadsetStateMachine extends StateMachine {
                        + (" hasSwbEnabled=" + mHasSwbLc3Enabled)
                        + (" hasAptXSwbEnabled=" + mHasSwbAptXEnabled));
        am.setParameters("bt_lc3_swb=" + (mHasSwbLc3Enabled ? "on" : "off"));
        if (Flags.hfpCodecAptxVoice() && mHeadsetService.isAptXSwbEnabled()) {
        if (mHeadsetService.isAptXSwbEnabled()) {
            /* AptX bt_swb: 0 -> on, 65535 -> off */
            am.setParameters("bt_swb=" + (mHasSwbAptXEnabled ? "0" : "65535"));
        }
@@ -2030,7 +2026,7 @@ class HeadsetStateMachine extends StateMachine {
        switch (wbsConfig) {
            case HeadsetHalConstants.BTHF_WBS_YES:
                mHasWbsEnabled = true;
                if (Flags.hfpCodecAptxVoice() && mHeadsetService.isAptXSwbEnabled()) {
                if (mHeadsetService.isAptXSwbEnabled()) {
                    mHasSwbAptXEnabled = false;
                }
                break;
+61 −88
Original line number Diff line number Diff line
@@ -187,7 +187,6 @@ public class HeadsetServiceAndStateMachineTest {
        verify(mNativeInterface).init(MAX_HEADSET_CONNECTIONS + 1, true /* inband ringtone */);

        // Set up the Connection State Changed receiver
        if (Flags.hfpCodecAptxVoice()) {
        verify(mNativeInterface)
                .enableSwb(
                        eq(HeadsetHalConstants.BTHF_SWB_CODEC_VENDOR_APTX),
@@ -196,7 +195,6 @@ public class HeadsetServiceAndStateMachineTest {
                                        "bluetooth.hfp.codec_aptx_voice.enabled", false)),
                        eq(mHeadsetService.getActiveDevice()));
    }
    }

    @After
    public void tearDown() {
@@ -743,13 +741,11 @@ public class HeadsetServiceAndStateMachineTest {
        verify(mNativeInterface, times(2))
                .atResponseCode(device, HeadsetHalConstants.AT_RESPONSE_OK, 0);
        verify(mNativeInterface).disconnectAudio(device);
        if (Flags.hfpCodecAptxVoice()) {
        verify(mNativeInterface, atLeast(1))
                .enableSwb(
                        eq(HeadsetHalConstants.BTHF_SWB_CODEC_VENDOR_APTX),
                        anyBoolean(),
                        eq(device));
        }
        verifyNoMoreInteractions(mNativeInterface);
    }

@@ -819,13 +815,11 @@ public class HeadsetServiceAndStateMachineTest {
        mTestLooper.dispatchAll();
        verify(mNativeInterface).atResponseCode(device, HeadsetHalConstants.AT_RESPONSE_ERROR, 0);

        if (Flags.hfpCodecAptxVoice()) {
        verify(mNativeInterface, atLeast(1))
                .enableSwb(
                        eq(HeadsetHalConstants.BTHF_SWB_CODEC_VENDOR_APTX),
                        anyBoolean(),
                        eq(device));
        }
        verifyNoMoreInteractions(ignoreStubs(mNativeInterface));
        verifyZeroInteractions(mAudioManager);
    }
@@ -904,13 +898,11 @@ public class HeadsetServiceAndStateMachineTest {
        mTestLooper.dispatchAll();
        verify(mNativeInterface).stopVoiceRecognition(device);
        verify(mNativeInterface).disconnectAudio(device);
        if (Flags.hfpCodecAptxVoice()) {
        verify(mNativeInterface, atLeast(1))
                .enableSwb(
                        eq(HeadsetHalConstants.BTHF_SWB_CODEC_VENDOR_APTX),
                        anyBoolean(),
                        eq(device));
        }
        verifyNoMoreInteractions(mNativeInterface);
    }

@@ -990,13 +982,11 @@ public class HeadsetServiceAndStateMachineTest {
        verify(mAudioManager).setA2dpSuspended(true);
        verify(mAudioManager).setLeAudioSuspended(true);
        verify(mNativeInterface).connectAudio(deviceA);
        if (Flags.hfpCodecAptxVoice()) {
        verify(mNativeInterface, atLeast(1))
                .enableSwb(
                        eq(HeadsetHalConstants.BTHF_SWB_CODEC_VENDOR_APTX),
                        anyBoolean(),
                        eq(deviceA));
        }
        verifyNoMoreInteractions(ignoreStubs(mNativeInterface));
    }

@@ -1060,13 +1050,11 @@ public class HeadsetServiceAndStateMachineTest {
        verify(mAudioManager).setA2dpSuspended(true);
        verify(mAudioManager).setLeAudioSuspended(true);
        verify(mNativeInterface).connectAudio(deviceA);
        if (Flags.hfpCodecAptxVoice()) {
        verify(mNativeInterface, atLeast(1))
                .enableSwb(
                        eq(HeadsetHalConstants.BTHF_SWB_CODEC_VENDOR_APTX),
                        anyBoolean(),
                        eq(deviceA));
        }
        verifyNoMoreInteractions(ignoreStubs(mNativeInterface));
    }

@@ -1114,13 +1102,11 @@ public class HeadsetServiceAndStateMachineTest {
        verify(mNativeInterface).disconnectAudio(deviceB);
        // This request should still fail
        verify(mNativeInterface).atResponseCode(deviceA, HeadsetHalConstants.AT_RESPONSE_ERROR, 0);
        if (Flags.hfpCodecAptxVoice()) {
        verify(mNativeInterface, atLeast(1))
                .enableSwb(
                        eq(HeadsetHalConstants.BTHF_SWB_CODEC_VENDOR_APTX),
                        anyBoolean(),
                        eq(deviceB));
        }
        verifyNoMoreInteractions(ignoreStubs(mNativeInterface));
    }

@@ -1177,13 +1163,11 @@ public class HeadsetServiceAndStateMachineTest {
                deviceA,
                BluetoothHeadset.STATE_AUDIO_CONNECTED,
                BluetoothHeadset.STATE_AUDIO_CONNECTING);
        if (Flags.hfpCodecAptxVoice()) {
        verify(mNativeInterface, atLeast(1))
                .enableSwb(
                        eq(HeadsetHalConstants.BTHF_SWB_CODEC_VENDOR_APTX),
                        anyBoolean(),
                        eq(deviceA));
        }
        verifyNoMoreInteractions(ignoreStubs(mNativeInterface));
    }

@@ -1301,7 +1285,7 @@ public class HeadsetServiceAndStateMachineTest {
                BluetoothHeadset.STATE_AUDIO_CONNECTING);

        // Check that AptX SWB disabled, LC3 SWB disabled
        verifySetParametersToAudioSystemInvocation(false, false);
        verifySetParametersToAudioSystemInvocation(false, true, false);
        verify(mNativeInterface, times(1)).connectAudio(eq(device));
        verify(mNativeInterface).sendBsir(eq(device), eq(true));
        verify(mNativeInterface, times(2))
@@ -1385,7 +1369,7 @@ public class HeadsetServiceAndStateMachineTest {
                BluetoothHeadset.STATE_AUDIO_CONNECTING);

        // Check that AptX SWB enabled, LC3 SWB disabled
        verifySetParametersToAudioSystemInvocation(false, true);
        verifySetParametersToAudioSystemInvocation(false, true, true);
        verify(mNativeInterface, times(1)).connectAudio(eq(device));
        verify(mNativeInterface).sendBsir(eq(device), eq(true));
        verify(mNativeInterface, times(2))
@@ -1422,7 +1406,7 @@ public class HeadsetServiceAndStateMachineTest {
        // Start voice recognition
        startVoiceRecognitionFromHf(device);
        // Check that proper codecs were set
        verifySetParametersToAudioSystemInvocation(true, false);
        verifySetParametersToAudioSystemInvocation(true, true, false);
        configureHeadsetServiceForAptxVoice(false);
    }

@@ -1453,7 +1437,7 @@ public class HeadsetServiceAndStateMachineTest {
        // Start voice recognition
        startVoiceRecognitionFromHf(device);
        // Check that proper codecs were set
        verifySetParametersToAudioSystemInvocation(true, false);
        verifySetParametersToAudioSystemInvocation(true, false, false);
    }

    /**
@@ -1483,7 +1467,7 @@ public class HeadsetServiceAndStateMachineTest {
        // Start voice recognition
        startVoiceRecognitionFromHf(device);
        // Check that proper codecs were set
        verifySetParametersToAudioSystemInvocation(false, true);
        verifySetParametersToAudioSystemInvocation(false, true, true);
        configureHeadsetServiceForAptxVoice(false);
    }

@@ -1512,7 +1496,7 @@ public class HeadsetServiceAndStateMachineTest {
        // Start voice recognition
        startVoiceRecognitionFromHf(device);
        // Check that proper codecs were set
        verifySetParametersToAudioSystemInvocation(false, false);
        verifySetParametersToAudioSystemInvocation(false, true, false);
        configureHeadsetServiceForAptxVoice(false);
    }

@@ -1541,7 +1525,7 @@ public class HeadsetServiceAndStateMachineTest {
        // Start voice recognition
        startVoiceRecognitionFromHf(device);
        // Check that proper codecs were set
        verifySetParametersToAudioSystemInvocation(false, false);
        verifySetParametersToAudioSystemInvocation(false, false, false);
    }

    /**
@@ -1671,13 +1655,11 @@ public class HeadsetServiceAndStateMachineTest {
        verify(mAudioManager).setA2dpSuspended(true);
        verify(mAudioManager).setLeAudioSuspended(true);
        verify(mNativeInterface).connectAudio(device);
        if (Flags.hfpCodecAptxVoice()) {
        verify(mNativeInterface, atLeast(1))
                .enableSwb(
                        eq(HeadsetHalConstants.BTHF_SWB_CODEC_VENDOR_APTX),
                        anyBoolean(),
                        eq(device));
        }
        verifyAudioStateIntent(
                device,
                BluetoothHeadset.STATE_AUDIO_CONNECTING,
@@ -1726,13 +1708,11 @@ public class HeadsetServiceAndStateMachineTest {
        verify(mAudioManager).setA2dpSuspended(true);
        verify(mAudioManager).setLeAudioSuspended(true);
        verify(mNativeInterface).connectAudio(device);
        if (Flags.hfpCodecAptxVoice()) {
        verify(mNativeInterface, atLeast(1))
                .enableSwb(
                        eq(HeadsetHalConstants.BTHF_SWB_CODEC_VENDOR_APTX),
                        anyBoolean(),
                        eq(device));
        }
        verifyAudioStateIntent(
                device,
                BluetoothHeadset.STATE_AUDIO_CONNECTING,
@@ -1935,9 +1915,9 @@ public class HeadsetServiceAndStateMachineTest {
    }

    private void verifySetParametersToAudioSystemInvocation(
            boolean lc3Enabled, boolean aptxEnabled) {
            boolean lc3Enabled, boolean aptxSupported, boolean aptxEnabled) {
        verify(mAudioManager).setParameters(lc3Enabled ? "bt_lc3_swb=on" : "bt_lc3_swb=off");
        if (Flags.hfpCodecAptxVoice()) {
        if (aptxSupported) {
            verify(mAudioManager).setParameters(aptxEnabled ? "bt_swb=0" : "bt_swb=65535");
        }
    }
@@ -1958,13 +1938,6 @@ public class HeadsetServiceAndStateMachineTest {
    }

    private void configureHeadsetServiceForAptxVoice(boolean enable) {
        if (enable) {
            mSetFlagsRule.enableFlags(Flags.FLAG_HFP_CODEC_APTX_VOICE);
            assertThat(Flags.hfpCodecAptxVoice()).isTrue();
        } else {
            mSetFlagsRule.disableFlags(Flags.FLAG_HFP_CODEC_APTX_VOICE);
            assertThat(Flags.hfpCodecAptxVoice()).isFalse();
        }
        setAptxVoiceSystemProperties(enable, enable);
        mHeadsetService.mIsAptXSwbEnabled = enable;
        assertThat(mHeadsetService.isAptXSwbEnabled()).isEqualTo(enable);
+2 −9
Original line number Diff line number Diff line
@@ -2105,11 +2105,9 @@ public class HeadsetStateMachineTest {
        verify(mAudioManager, timeout(ASYNC_CALL_TIMEOUT_MILLIS))
                .setParameters(lc3Enabled ? "bt_lc3_swb=on" : "bt_lc3_swb=off");

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

    /**
     * set sink audio policy
@@ -2296,11 +2294,6 @@ public class HeadsetStateMachineTest {
    private void configureHeadsetServiceForAptxVoice(boolean enable) {
        if (enable) {
            when(mHeadsetService.isAptXSwbEnabled()).thenReturn(true);
            mSetFlagsRule.enableFlags(Flags.FLAG_HFP_CODEC_APTX_VOICE);
            Assert.assertTrue(Flags.hfpCodecAptxVoice());
        } else {
            mSetFlagsRule.disableFlags(Flags.FLAG_HFP_CODEC_APTX_VOICE);
            Assert.assertFalse(Flags.hfpCodecAptxVoice());
        }
    }
}
+0 −1
Original line number Diff line number Diff line
@@ -20,7 +20,6 @@ aconfig_declarations {
        "btm_ble.aconfig",
        "connectivity.aconfig",
        "device_iot_config.aconfig",
        "did.aconfig",
        "dis.aconfig",
        "dumpsys.aconfig",
        "framework.aconfig",
Loading