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

Commit e18b79d2 authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Revert "Revert "Pass in active device to all BluetoothA2dp APIs ..."" am: 84fab912

Change-Id: I95089501349894acad9e09b4417c74657a906722
parents 0fbe6488 84fab912
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;