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

Commit da45bc80 authored by jasonwshsu's avatar jasonwshsu
Browse files

[HA Audio Output] When switching between paired hearing aids and LE-audio, it...

[HA Audio Output] When switching between paired hearing aids and LE-audio, it will call removePreferredDevicesForStrategy

Root Cause: Since the audio routing feature is not ready, it should not
run the code at this moment.

Solution: Hide the audio routing related code behind the feature flag

Bug: 303001133
Test: atest HearingAidDeviceManagerTest
Change-Id: I3e795d2d5175752144e783e09764c763c0e4ee4b
parent 0236ee80
Loading
Loading
Loading
Loading
+11 −5
Original line number Original line Diff line number Diff line
@@ -26,6 +26,7 @@ import android.media.AudioDeviceAttributes;
import android.media.audiopolicy.AudioProductStrategy;
import android.media.audiopolicy.AudioProductStrategy;
import android.os.ParcelUuid;
import android.os.ParcelUuid;
import android.provider.Settings;
import android.provider.Settings;
import android.util.FeatureFlagUtils;
import android.util.Log;
import android.util.Log;


import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.annotations.VisibleForTesting;
@@ -42,11 +43,13 @@ public class HearingAidDeviceManager {
    private static final boolean DEBUG = BluetoothUtils.D;
    private static final boolean DEBUG = BluetoothUtils.D;


    private final ContentResolver mContentResolver;
    private final ContentResolver mContentResolver;
    private final Context mContext;
    private final LocalBluetoothManager mBtManager;
    private final LocalBluetoothManager mBtManager;
    private final List<CachedBluetoothDevice> mCachedDevices;
    private final List<CachedBluetoothDevice> mCachedDevices;
    private final HearingAidAudioRoutingHelper mRoutingHelper;
    private final HearingAidAudioRoutingHelper mRoutingHelper;
    HearingAidDeviceManager(Context context, LocalBluetoothManager localBtManager,
    HearingAidDeviceManager(Context context, LocalBluetoothManager localBtManager,
            List<CachedBluetoothDevice> CachedDevices) {
            List<CachedBluetoothDevice> CachedDevices) {
        mContext = context;
        mContentResolver = context.getContentResolver();
        mContentResolver = context.getContentResolver();
        mBtManager = localBtManager;
        mBtManager = localBtManager;
        mCachedDevices = CachedDevices;
        mCachedDevices = CachedDevices;
@@ -56,6 +59,7 @@ public class HearingAidDeviceManager {
    @VisibleForTesting
    @VisibleForTesting
    HearingAidDeviceManager(Context context, LocalBluetoothManager localBtManager,
    HearingAidDeviceManager(Context context, LocalBluetoothManager localBtManager,
            List<CachedBluetoothDevice> cachedDevices, HearingAidAudioRoutingHelper routingHelper) {
            List<CachedBluetoothDevice> cachedDevices, HearingAidAudioRoutingHelper routingHelper) {
        mContext = context;
        mContentResolver = context.getContentResolver();
        mContentResolver = context.getContentResolver();
        mBtManager = localBtManager;
        mBtManager = localBtManager;
        mCachedDevices = cachedDevices;
        mCachedDevices = cachedDevices;
@@ -285,6 +289,7 @@ public class HearingAidDeviceManager {
    }
    }


    void onActiveDeviceChanged(CachedBluetoothDevice device) {
    void onActiveDeviceChanged(CachedBluetoothDevice device) {
        if (FeatureFlagUtils.isEnabled(mContext, FeatureFlagUtils.SETTINGS_AUDIO_ROUTING)) {
            if (device.isActiveDevice(BluetoothProfile.HEARING_AID) || device.isActiveDevice(
            if (device.isActiveDevice(BluetoothProfile.HEARING_AID) || device.isActiveDevice(
                    BluetoothProfile.LE_AUDIO)) {
                    BluetoothProfile.LE_AUDIO)) {
                setAudioRoutingConfig(device);
                setAudioRoutingConfig(device);
@@ -292,6 +297,7 @@ public class HearingAidDeviceManager {
                clearAudioRoutingConfig();
                clearAudioRoutingConfig();
            }
            }
        }
        }
    }


    private void setAudioRoutingConfig(CachedBluetoothDevice device) {
    private void setAudioRoutingConfig(CachedBluetoothDevice device) {
        AudioDeviceAttributes hearingDeviceAttributes =
        AudioDeviceAttributes hearingDeviceAttributes =
+2 −0
Original line number Original line Diff line number Diff line
@@ -42,6 +42,7 @@ import android.media.AudioDeviceInfo;
import android.media.AudioManager;
import android.media.AudioManager;
import android.media.audiopolicy.AudioProductStrategy;
import android.media.audiopolicy.AudioProductStrategy;
import android.os.Parcel;
import android.os.Parcel;
import android.util.FeatureFlagUtils;


import androidx.test.core.app.ApplicationProvider;
import androidx.test.core.app.ApplicationProvider;


@@ -109,6 +110,7 @@ public class HearingAidDeviceManagerTest {


    @Before
    @Before
    public void setUp() {
    public void setUp() {
        FeatureFlagUtils.setEnabled(mContext, FeatureFlagUtils.SETTINGS_AUDIO_ROUTING, true);
        when(mDevice1.getAddress()).thenReturn(DEVICE_ADDRESS_1);
        when(mDevice1.getAddress()).thenReturn(DEVICE_ADDRESS_1);
        when(mDevice2.getAddress()).thenReturn(DEVICE_ADDRESS_2);
        when(mDevice2.getAddress()).thenReturn(DEVICE_ADDRESS_2);
        when(mDevice1.getName()).thenReturn(DEVICE_NAME_1);
        when(mDevice1.getName()).thenReturn(DEVICE_NAME_1);