Merge "Revert "Revert "Pass in active device to all BluetoothA2dp APIs ..."" am: 84fab912b0
Change-Id: I95089501349894acad9e09b4417c74657a906722
This commit is contained in:
@@ -83,7 +83,11 @@ public abstract class AbstractBluetoothA2dpPreferenceController extends
|
|||||||
final BluetoothCodecConfig codecConfig = mBluetoothA2dpConfigStore.createCodecConfig();
|
final BluetoothCodecConfig codecConfig = mBluetoothA2dpConfigStore.createCodecConfig();
|
||||||
synchronized (mBluetoothA2dpConfigStore) {
|
synchronized (mBluetoothA2dpConfigStore) {
|
||||||
if (mBluetoothA2dp != null) {
|
if (mBluetoothA2dp != null) {
|
||||||
setCodecConfigPreference(null, codecConfig); // Use current active device
|
BluetoothDevice activeDevice = mBluetoothA2dp.getActiveDevice();
|
||||||
|
if (activeDevice == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
setCodecConfigPreference(activeDevice, codecConfig);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Because the setting is not persisted into permanent storage, we cannot call update state
|
// Because the setting is not persisted into permanent storage, we cannot call update state
|
||||||
@@ -102,13 +106,17 @@ public abstract class AbstractBluetoothA2dpPreferenceController extends
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updateState(Preference preference) {
|
public void updateState(Preference preference) {
|
||||||
if (getCodecConfig(null) == null || mPreference == null) { // Use current active device
|
if (mBluetoothA2dp == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
BluetoothDevice activeDevice = mBluetoothA2dp.getActiveDevice();
|
||||||
|
if (activeDevice == null || getCodecConfig(activeDevice) == null || mPreference == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
BluetoothCodecConfig codecConfig;
|
BluetoothCodecConfig codecConfig;
|
||||||
synchronized (mBluetoothA2dpConfigStore) {
|
synchronized (mBluetoothA2dpConfigStore) {
|
||||||
codecConfig = getCodecConfig(null); // Use current active device
|
codecConfig = getCodecConfig(activeDevice);
|
||||||
}
|
}
|
||||||
|
|
||||||
final int index = getCurrentA2dpSettingIndex(codecConfig);
|
final int index = getCurrentA2dpSettingIndex(codecConfig);
|
||||||
@@ -178,13 +186,26 @@ public abstract class AbstractBluetoothA2dpPreferenceController extends
|
|||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
void setCodecConfigPreference(BluetoothDevice device,
|
void setCodecConfigPreference(BluetoothDevice device,
|
||||||
BluetoothCodecConfig config) {
|
BluetoothCodecConfig config) {
|
||||||
mBluetoothA2dp.setCodecConfigPreference(device, config);
|
if (mBluetoothA2dp == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
BluetoothDevice bluetoothDevice =
|
||||||
|
(device != null) ? device : mBluetoothA2dp.getActiveDevice();
|
||||||
|
if (bluetoothDevice == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
mBluetoothA2dp.setCodecConfigPreference(bluetoothDevice, config);
|
||||||
}
|
}
|
||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
BluetoothCodecConfig getCodecConfig(BluetoothDevice device) {
|
BluetoothCodecConfig getCodecConfig(BluetoothDevice device) {
|
||||||
if (mBluetoothA2dp != null) {
|
if (mBluetoothA2dp != null) {
|
||||||
BluetoothCodecStatus codecStatus = mBluetoothA2dp.getCodecStatus(device);
|
BluetoothDevice bluetoothDevice =
|
||||||
|
(device != null) ? device : mBluetoothA2dp.getActiveDevice();
|
||||||
|
if (bluetoothDevice == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
BluetoothCodecStatus codecStatus = mBluetoothA2dp.getCodecStatus(bluetoothDevice);
|
||||||
if (codecStatus != null) {
|
if (codecStatus != null) {
|
||||||
return codecStatus.getCodecConfig();
|
return codecStatus.getCodecConfig();
|
||||||
}
|
}
|
||||||
|
@@ -17,6 +17,7 @@
|
|||||||
package com.android.settings.development;
|
package com.android.settings.development;
|
||||||
|
|
||||||
import android.bluetooth.BluetoothCodecConfig;
|
import android.bluetooth.BluetoothCodecConfig;
|
||||||
|
import android.bluetooth.BluetoothDevice;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
@@ -109,14 +110,22 @@ public class BluetoothAudioCodecPreferenceController extends
|
|||||||
case 6:
|
case 6:
|
||||||
synchronized (mBluetoothA2dpConfigStore) {
|
synchronized (mBluetoothA2dpConfigStore) {
|
||||||
if (mBluetoothA2dp != null) {
|
if (mBluetoothA2dp != null) {
|
||||||
mBluetoothA2dp.enableOptionalCodecs(null); // Use current active device
|
BluetoothDevice activeDevice = mBluetoothA2dp.getActiveDevice();
|
||||||
|
if (activeDevice == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
mBluetoothA2dp.enableOptionalCodecs(activeDevice);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
case 7:
|
case 7:
|
||||||
synchronized (mBluetoothA2dpConfigStore) {
|
synchronized (mBluetoothA2dpConfigStore) {
|
||||||
if (mBluetoothA2dp != null) {
|
if (mBluetoothA2dp != null) {
|
||||||
mBluetoothA2dp.disableOptionalCodecs(null); // Use current active device
|
BluetoothDevice activeDevice = mBluetoothA2dp.getActiveDevice();
|
||||||
|
if (activeDevice == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
mBluetoothA2dp.disableOptionalCodecs(activeDevice);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
|
Reference in New Issue
Block a user