Phone fails to switch channel mode from stereo to mono
-Set codec to SBC when HD audio is off Bug: 194349060 Test: make -j50 RunSettingsRoboTests Change-Id: Iae4aa3f1d77350f5b4d91e7a687e048091c1daea
This commit is contained in:
@@ -219,11 +219,17 @@ public abstract class AbstractBluetoothDialogPreferenceController extends
|
||||
*/
|
||||
public void onHDAudioEnabled(boolean enabled) {}
|
||||
|
||||
static int getHighestCodec(BluetoothCodecConfig[] configs) {
|
||||
static int getHighestCodec(BluetoothA2dp bluetoothA2dp, BluetoothDevice activeDevice,
|
||||
BluetoothCodecConfig[] configs) {
|
||||
if (configs == null) {
|
||||
Log.d(TAG, "Unable to get highest codec. Configs are empty");
|
||||
return BluetoothCodecConfig.SOURCE_CODEC_TYPE_INVALID;
|
||||
}
|
||||
// If HD audio is not enabled, SBC is the only one available codec.
|
||||
if (bluetoothA2dp.isOptionalCodecsEnabled(activeDevice)
|
||||
!= BluetoothA2dp.OPTIONAL_CODECS_PREF_ENABLED) {
|
||||
return BluetoothCodecConfig.SOURCE_CODEC_TYPE_SBC;
|
||||
}
|
||||
for (int i = 0; i < CODEC_TYPES.length; i++) {
|
||||
for (int j = 0; j < configs.length; j++) {
|
||||
if ((configs[j].getCodecType() == CODEC_TYPES[i])) {
|
||||
|
@@ -93,8 +93,9 @@ public class BluetoothCodecDialogPreferenceController extends
|
||||
int codecPriorityValue = BluetoothCodecConfig.CODEC_PRIORITY_DEFAULT;
|
||||
switch (index) {
|
||||
case 0:
|
||||
codecTypeValue = getHighestCodec(getSelectableConfigs(
|
||||
mBluetoothA2dp.getActiveDevice()));
|
||||
final BluetoothDevice activeDevice = mBluetoothA2dp.getActiveDevice();
|
||||
codecTypeValue = getHighestCodec(mBluetoothA2dp, activeDevice,
|
||||
getSelectableConfigs(activeDevice));
|
||||
codecPriorityValue = BluetoothCodecConfig.CODEC_PRIORITY_HIGHEST;
|
||||
break;
|
||||
case 1:
|
||||
@@ -147,6 +148,11 @@ public class BluetoothCodecDialogPreferenceController extends
|
||||
mCallback.onBluetoothCodecChanged();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onHDAudioEnabled(boolean enabled) {
|
||||
writeConfigurationValues(/* index= */ 0);
|
||||
}
|
||||
|
||||
private List<Integer> getIndexFromConfig(BluetoothCodecConfig[] configs) {
|
||||
List<Integer> indexArray = new ArrayList<>();
|
||||
for (int i = 0; i < configs.length; i++) {
|
||||
|
Reference in New Issue
Block a user