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

Commit 3ddfa01d authored by Etienne Ruffieux's avatar Etienne Ruffieux Committed by Automerger Merge Worker
Browse files

Merge "Replacing getActiveDevice by btAdapter.getActiveDevices()" am: 7ff6347c

Original change: https://android-review.googlesource.com/c/platform/packages/apps/Settings/+/1966615

Change-Id: Ie61c0613fd3124401ab0478685bfc189ca107a87
parents 21d08383 7ff6347c
Loading
Loading
Loading
Loading
+25 −9
Original line number Diff line number Diff line
@@ -17,9 +17,12 @@
package com.android.settings.development;

import android.bluetooth.BluetoothA2dp;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothCodecConfig;
import android.bluetooth.BluetoothCodecStatus;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothManager;
import android.bluetooth.BluetoothProfile;
import android.content.Context;

import androidx.annotation.VisibleForTesting;
@@ -34,6 +37,8 @@ import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnDestroy;
import com.android.settingslib.development.DeveloperOptionsPreferenceController;

import java.util.List;

public abstract class AbstractBluetoothA2dpPreferenceController extends
        DeveloperOptionsPreferenceController implements Preference.OnPreferenceChangeListener,
        PreferenceControllerMixin, BluetoothServiceConnectionListener, LifecycleObserver,
@@ -48,11 +53,15 @@ public abstract class AbstractBluetoothA2dpPreferenceController extends
    private final String[] mListValues;
    private final String[] mListSummaries;

    @VisibleForTesting
    BluetoothAdapter mBluetoothAdapter;

    public AbstractBluetoothA2dpPreferenceController(Context context, Lifecycle lifecycle,
            BluetoothA2dpConfigStore store) {
        super(context);

        mBluetoothA2dpConfigStore = store;
        mBluetoothAdapter = context.getSystemService(BluetoothManager.class).getAdapter();
        mListValues = getListValues();
        mListSummaries = getListSummaries();

@@ -82,14 +91,12 @@ public abstract class AbstractBluetoothA2dpPreferenceController extends

        final BluetoothCodecConfig codecConfig = mBluetoothA2dpConfigStore.createCodecConfig();
        synchronized (mBluetoothA2dpConfigStore) {
            if (mBluetoothA2dp != null) {
                BluetoothDevice activeDevice = mBluetoothA2dp.getActiveDevice();
            BluetoothDevice activeDevice = getA2dpActiveDevice();
            if (activeDevice == null) {
                return false;
            }
            setCodecConfigPreference(activeDevice, codecConfig);
        }
        }
        // Because the setting is not persisted into permanent storage, we cannot call update state
        // here to update the preference.
        // Instead, we just assume it was set and update the preference here.
@@ -106,7 +113,7 @@ public abstract class AbstractBluetoothA2dpPreferenceController extends

    @Override
    public void updateState(Preference preference) {
        BluetoothDevice activeDevice = mBluetoothA2dp.getActiveDevice();
        BluetoothDevice activeDevice = getA2dpActiveDevice();
        if (activeDevice == null || getCodecConfig(activeDevice) == null || mPreference == null) {
            return;
        }
@@ -184,7 +191,7 @@ public abstract class AbstractBluetoothA2dpPreferenceController extends
    void setCodecConfigPreference(BluetoothDevice device,
            BluetoothCodecConfig config) {
        BluetoothDevice bluetoothDevice =
                (device != null) ? device : mBluetoothA2dp.getActiveDevice();
                (device != null) ? device : getA2dpActiveDevice();
        if (bluetoothDevice == null) {
            return;
        }
@@ -195,7 +202,7 @@ public abstract class AbstractBluetoothA2dpPreferenceController extends
    BluetoothCodecConfig getCodecConfig(BluetoothDevice device) {
        if (mBluetoothA2dp != null) {
            BluetoothDevice bluetoothDevice =
                    (device != null) ? device : mBluetoothA2dp.getActiveDevice();
                    (device != null) ? device : getA2dpActiveDevice();
            if (bluetoothDevice == null) {
                return null;
            }
@@ -206,4 +213,13 @@ public abstract class AbstractBluetoothA2dpPreferenceController extends
        }
        return null;
    }

    private BluetoothDevice getA2dpActiveDevice() {
        if (mBluetoothAdapter == null) {
            return null;
        }
        List<BluetoothDevice> activeDevices =
                mBluetoothAdapter.getActiveDevices(BluetoothProfile.A2DP);
        return (activeDevices.size() > 0) ? activeDevices.get(0) : null;
    }
}
+4 −4
Original line number Diff line number Diff line
@@ -84,7 +84,7 @@ public abstract class AbstractBluetoothDialogPreferenceController extends
        }
        writeConfigurationValues(index);
        final BluetoothCodecConfig codecConfig = mBluetoothA2dpConfigStore.createCodecConfig();
        BluetoothDevice activeDevice = mBluetoothA2dp.getActiveDevice();
        BluetoothDevice activeDevice = getA2dpActiveDevice();
        if (activeDevice != null) {
            bluetoothA2dp.setCodecConfigPreference(activeDevice, codecConfig);
        }
@@ -153,7 +153,7 @@ public abstract class AbstractBluetoothDialogPreferenceController extends
        if (bluetoothA2dp == null) {
            return null;
        }
        BluetoothDevice activeDevice = bluetoothA2dp.getActiveDevice();
        BluetoothDevice activeDevice = getA2dpActiveDevice();
        if (activeDevice == null) {
            Log.d(TAG, "Unable to get current codec config. No active device.");
            return null;
@@ -178,7 +178,7 @@ public abstract class AbstractBluetoothDialogPreferenceController extends
            return null;
        }
        BluetoothDevice bluetoothDevice =
                (device != null) ? device : bluetoothA2dp.getActiveDevice();
                (device != null) ? device : getA2dpActiveDevice();
        if (bluetoothDevice == null) {
            return null;
        }
@@ -195,7 +195,7 @@ public abstract class AbstractBluetoothDialogPreferenceController extends
     * @return {@link BluetoothCodecConfig}.
     */
    protected BluetoothCodecConfig getSelectableByCodecType(int codecTypeValue) {
        BluetoothDevice activeDevice = mBluetoothA2dp.getActiveDevice();
        BluetoothDevice activeDevice = getA2dpActiveDevice();
        if (activeDevice == null) {
            Log.d(TAG, "Unable to get selectable config. No active device.");
            return null;
+21 −0
Original line number Diff line number Diff line
@@ -17,8 +17,14 @@
package com.android.settings.development.bluetooth;

import android.bluetooth.BluetoothA2dp;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothManager;
import android.bluetooth.BluetoothProfile;
import android.content.Context;

import androidx.annotation.VisibleForTesting;

import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.development.BluetoothA2dpConfigStore;
import com.android.settings.development.BluetoothServiceConnectionListener;
@@ -27,6 +33,8 @@ import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnDestroy;
import com.android.settingslib.development.DeveloperOptionsPreferenceController;

import java.util.List;

/**
 * Abstract class for Bluetooth A2DP config controller in developer option.
 */
@@ -36,12 +44,16 @@ public abstract class AbstractBluetoothPreferenceController extends

    protected volatile BluetoothA2dp mBluetoothA2dp;

    @VisibleForTesting
    BluetoothAdapter mBluetoothAdapter;

    public AbstractBluetoothPreferenceController(Context context, Lifecycle lifecycle,
                                                 BluetoothA2dpConfigStore store) {
        super(context);
        if (lifecycle != null) {
            lifecycle.addObserver(this);
        }
        mBluetoothAdapter = context.getSystemService(BluetoothManager.class).getAdapter();
    }

    @Override
@@ -82,4 +94,13 @@ public abstract class AbstractBluetoothPreferenceController extends
         */
        void onBluetoothHDAudioEnabled(boolean enabled);
    }

    protected BluetoothDevice getA2dpActiveDevice() {
        if (mBluetoothAdapter == null) {
            return null;
        }
        List<BluetoothDevice> activeDevices =
                mBluetoothAdapter.getActiveDevices(BluetoothProfile.A2DP);
        return (activeDevices.size() > 0) ? activeDevices.get(0) : null;
    }
}
+2 −2
Original line number Diff line number Diff line
@@ -69,7 +69,7 @@ public class BluetoothCodecDialogPreferenceController extends
        if (bluetoothA2dp == null) {
            return index;
        }
        final BluetoothDevice activeDevice = bluetoothA2dp.getActiveDevice();
        final BluetoothDevice activeDevice = getA2dpActiveDevice();
        if (activeDevice == null) {
            Log.d(TAG, "Unable to get selectable index. No Active Bluetooth device");
            return index;
@@ -93,7 +93,7 @@ public class BluetoothCodecDialogPreferenceController extends
        int codecPriorityValue = BluetoothCodecConfig.CODEC_PRIORITY_DEFAULT;
        switch (index) {
            case 0:
                final BluetoothDevice activeDevice = mBluetoothA2dp.getActiveDevice();
                final BluetoothDevice activeDevice = getA2dpActiveDevice();
                codecTypeValue = getHighestCodec(mBluetoothA2dp, activeDevice,
                        getSelectableConfigs(activeDevice));
                codecPriorityValue = BluetoothCodecConfig.CODEC_PRIORITY_HIGHEST;
+2 −2
Original line number Diff line number Diff line
@@ -52,7 +52,7 @@ public class BluetoothHDAudioPreferenceController extends AbstractBluetoothPrefe
            mPreference.setEnabled(false);
            return;
        }
        final BluetoothDevice activeDevice = bluetoothA2dp.getActiveDevice();
        final BluetoothDevice activeDevice = getA2dpActiveDevice();
        if (activeDevice == null) {
            Log.e(TAG, "Active device is null. To disable HD audio button");
            mPreference.setEnabled(false);
@@ -84,7 +84,7 @@ public class BluetoothHDAudioPreferenceController extends AbstractBluetoothPrefe
        final int prefValue = enabled
                ? BluetoothA2dp.OPTIONAL_CODECS_PREF_ENABLED
                : BluetoothA2dp.OPTIONAL_CODECS_PREF_DISABLED;
        BluetoothDevice activeDevice = bluetoothA2dp.getActiveDevice();
        BluetoothDevice activeDevice = getA2dpActiveDevice();
        if (activeDevice == null) {
            mPreference.setEnabled(false);
            return true;
Loading