From b61e129f358ca0d8e02d92618a0b1f2a4efd492a Mon Sep 17 00:00:00 2001 From: Omer Osman Date: Fri, 22 Apr 2022 02:10:26 +0000 Subject: [PATCH] Add support for selection of Opus in Developer Options Stub implementation for LC3 is added due to the interfaces being present. The BT stack does not currently implement LC3 over A2DP. Bug: 226441860 Test: BluetoothCodecDialogPreferenceControllerTest Change-Id: I40546c97370872b37c0258d10e67a3871f9d9af5 --- res/layout/bluetooth_audio_codec_dialog.xml | 9 ++++ ...ctBluetoothDialogPreferenceController.java | 6 ++- .../BluetoothCodecDialogPreference.java | 2 + ...etoothCodecDialogPreferenceController.java | 13 +++++ ...thCodecDialogPreferenceControllerTest.java | 54 ++++++++++++++++--- 5 files changed, 76 insertions(+), 8 deletions(-) diff --git a/res/layout/bluetooth_audio_codec_dialog.xml b/res/layout/bluetooth_audio_codec_dialog.xml index 96364270558..3a260a655e7 100644 --- a/res/layout/bluetooth_audio_codec_dialog.xml +++ b/res/layout/bluetooth_audio_codec_dialog.xml @@ -54,6 +54,15 @@ + + + + + mCodecConfigs = Arrays.asList(mCodecConfigOPUS, + mCodecConfigAAC, mCodecConfigSBC); + mCodecStatus = new BluetoothCodecStatus.Builder() + .setCodecConfig(mCodecConfigOPUS) + .setCodecsSelectableCapabilities(mCodecConfigs) + .build(); + when(mBluetoothA2dp.getCodecStatus(mActiveDevice)).thenReturn(mCodecStatus); + when(mBluetoothA2dp.isOptionalCodecsEnabled(mActiveDevice)).thenReturn( + BluetoothA2dp.OPTIONAL_CODECS_PREF_ENABLED); + mController.onBluetoothServiceConnected(mBluetoothA2dp); + + mController.onHDAudioEnabled(/* enabled= */ true); + + verify(mBluetoothA2dpConfigStore, atLeastOnce()).setCodecType( + eq(SOURCE_CODEC_TYPE_OPUS)); // TODO(b/240635097): update in U + } + @Test public void onHDAudioEnabled_optionalCodecEnabled_setsCodecTypeAsAAC() { - List mCodecConfigs = Arrays.asList(mCodecConfigAAC, mCodecConfigSBC); + List mCodecConfigs = Arrays.asList(mCodecConfigOPUS, + mCodecConfigAAC, mCodecConfigSBC); mCodecStatus = new BluetoothCodecStatus.Builder() .setCodecConfig(mCodecConfigAAC) .setCodecsSelectableCapabilities(mCodecConfigs) @@ -223,7 +262,8 @@ public class BluetoothCodecDialogPreferenceControllerTest { } @Test public void onHDAudioEnabled_optionalCodecDisabled_setsCodecTypeAsSBC() { - List mCodecConfigs = Arrays.asList(mCodecConfigAAC, mCodecConfigSBC); + List mCodecConfigs = Arrays.asList(mCodecConfigOPUS, + mCodecConfigAAC, mCodecConfigSBC); mCodecStatus = new BluetoothCodecStatus.Builder() .setCodecConfig(mCodecConfigAAC) .setCodecsSelectableCapabilities(mCodecConfigs)