Revert "Revert "Pass in active device to all BluetoothA2dp APIs ..."

Revert submission 10303287-revert-10253996-bt-a2dp-no-null-FQRXACWPIA

Reason for revert: Fixing breakage
Reverted Changes:
I4d9f2f819:Revert "Make sure calls to BluetoothA2dp APIs pass...
I771ca0d57:Revert "Need to now pass in active device instead ...
I76529c7a1:Revert "Pass in active device to all BluetoothA2dp...
I297bda68d:Revert "Require user pass in a non-null BluetoothD...
I525327959:Revert "Pass in active device to all BluetoothA2dp...
I1d8660b11:Revert "Pass in active device to all BluetoothA2dp...

Bug: 147287141
Test: robotests
Merged-In: I5aecfa4b5a8e371b914573ddd080acb98078bfca
Change-Id: I5aecfa4b5a8e371b914573ddd080acb98078bfca
This commit is contained in:
Rahul Sabnis
2020-02-25 22:28:00 +00:00
parent f7fe2b0dec
commit 3e0f661f11
11 changed files with 137 additions and 45 deletions

View File

@@ -83,7 +83,11 @@ public abstract class AbstractBluetoothA2dpPreferenceController extends
final BluetoothCodecConfig codecConfig = mBluetoothA2dpConfigStore.createCodecConfig();
synchronized (mBluetoothA2dpConfigStore) {
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
@@ -102,13 +106,14 @@ public abstract class AbstractBluetoothA2dpPreferenceController extends
@Override
public void updateState(Preference preference) {
if (getCodecConfig(null) == null || mPreference == null) { // Use current active device
BluetoothDevice activeDevice = mBluetoothA2dp.getActiveDevice();
if (activeDevice == null || getCodecConfig(activeDevice) == null || mPreference == null) {
return;
}
BluetoothCodecConfig codecConfig;
synchronized (mBluetoothA2dpConfigStore) {
codecConfig = getCodecConfig(null); // Use current active device
codecConfig = getCodecConfig(activeDevice);
}
final int index = getCurrentA2dpSettingIndex(codecConfig);
@@ -178,13 +183,23 @@ public abstract class AbstractBluetoothA2dpPreferenceController extends
@VisibleForTesting
void setCodecConfigPreference(BluetoothDevice device,
BluetoothCodecConfig config) {
mBluetoothA2dp.setCodecConfigPreference(device, config);
BluetoothDevice bluetoothDevice =
(device != null) ? device : mBluetoothA2dp.getActiveDevice();
if (bluetoothDevice == null) {
return;
}
mBluetoothA2dp.setCodecConfigPreference(bluetoothDevice, config);
}
@VisibleForTesting
BluetoothCodecConfig getCodecConfig(BluetoothDevice device) {
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) {
return codecStatus.getCodecConfig();
}