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

Commit 84fab912 authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

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

parents 177ce8f0 27d9ac4f
Loading
Loading
Loading
Loading
+26 −5
Original line number Diff line number Diff line
@@ -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,17 @@ public abstract class AbstractBluetoothA2dpPreferenceController extends

    @Override
    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;
        }

        BluetoothCodecConfig codecConfig;
        synchronized (mBluetoothA2dpConfigStore) {
            codecConfig = getCodecConfig(null);         // Use current active device
            codecConfig = getCodecConfig(activeDevice);
        }

        final int index = getCurrentA2dpSettingIndex(codecConfig);
@@ -178,13 +186,26 @@ public abstract class AbstractBluetoothA2dpPreferenceController extends
    @VisibleForTesting
    void setCodecConfigPreference(BluetoothDevice device,
            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
    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();
            }
+11 −2
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package com.android.settings.development;

import android.bluetooth.BluetoothCodecConfig;
import android.bluetooth.BluetoothDevice;
import android.content.Context;

import com.android.settings.R;
@@ -109,14 +110,22 @@ public class BluetoothAudioCodecPreferenceController extends
            case 6:
                synchronized (mBluetoothA2dpConfigStore) {
                    if (mBluetoothA2dp != null) {
                        mBluetoothA2dp.enableOptionalCodecs(null); // Use current active device
                        BluetoothDevice activeDevice = mBluetoothA2dp.getActiveDevice();
                        if (activeDevice == null) {
                            return;
                        }
                        mBluetoothA2dp.enableOptionalCodecs(activeDevice);
                    }
                }
                return;
            case 7:
                synchronized (mBluetoothA2dpConfigStore) {
                    if (mBluetoothA2dp != null) {
                        mBluetoothA2dp.disableOptionalCodecs(null); // Use current active device
                        BluetoothDevice activeDevice = mBluetoothA2dp.getActiveDevice();
                        if (activeDevice == null) {
                            return;
                        }
                        mBluetoothA2dp.disableOptionalCodecs(activeDevice);
                    }
                }
                return;