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

Commit 35eedb89 authored by William Escande's avatar William Escande Committed by Gerrit Code Review
Browse files

Merge changes If418f9b2,I0bb6be94,Ie64a2fa5 into main

* changes:
  Trunk Stable/BondStateMachine: Use static flagging
  Trunk Stable/MediaPlayerList: Use static flagging
  Trunk Stable/HearingAid: Use static flagging
parents a776bbc5 007940ef
Loading
Loading
Loading
Loading
+2 −4
Original line number Diff line number Diff line
@@ -37,8 +37,7 @@ import android.util.Log;

import com.android.bluetooth.BluetoothEventLogger;
import com.android.bluetooth.Utils;
import com.android.bluetooth.flags.FeatureFlags;
import com.android.bluetooth.flags.FeatureFlagsImpl;
import com.android.bluetooth.flags.Flags;
import com.android.internal.annotations.VisibleForTesting;

import java.util.ArrayList;
@@ -92,7 +91,6 @@ public class MediaPlayerList {
    private MediaSessionManager mMediaSessionManager;
    private MediaData mCurrMediaData = null;
    private final AudioManager mAudioManager;
    private final FeatureFlags mFeatureFlags = new FeatureFlagsImpl();

    private final BluetoothEventLogger mActivePlayerLogger =
            new BluetoothEventLogger(ACTIVE_PLAYER_LOGGER_SIZE, ACTIVE_PLAYER_LOGGER_TITLE);
@@ -211,7 +209,7 @@ public class MediaPlayerList {

        // Build the list of browsable players and afterwards, build the list of media players
        Intent intent = new Intent(android.service.media.MediaBrowserService.SERVICE_INTERFACE);
        if (mFeatureFlags.keepStoppedMediaBrowserService()) {
        if (Flags.keepStoppedMediaBrowserService()) {
            // Don't query stopped apps, that would end up unstopping them
            intent.addFlags(Intent.FLAG_EXCLUDE_STOPPED_PACKAGES);
        }
+2 −5
Original line number Diff line number Diff line
@@ -38,8 +38,7 @@ import com.android.bluetooth.Utils;
import com.android.bluetooth.a2dp.A2dpService;
import com.android.bluetooth.a2dpsink.A2dpSinkService;
import com.android.bluetooth.btservice.RemoteDevices.DeviceProperties;
import com.android.bluetooth.flags.FeatureFlags;
import com.android.bluetooth.flags.FeatureFlagsImpl;
import com.android.bluetooth.flags.Flags;
import com.android.bluetooth.hfp.HeadsetService;
import com.android.bluetooth.hfpclient.HeadsetClientService;
import com.android.bluetooth.hid.HidHostService;
@@ -97,8 +96,6 @@ final class BondStateMachine extends StateMachine {

    @VisibleForTesting Set<BluetoothDevice> mPendingBondedDevices = new HashSet<>();

    private final FeatureFlags mFeatureFlags = new FeatureFlagsImpl();

    private BondStateMachine(AdapterService service, AdapterProperties prop,
            RemoteDevices remoteDevices) {
        super("BondStateMachine:");
@@ -153,7 +150,7 @@ final class BondStateMachine extends StateMachine {
                    next pairing is started while previous still makes service discovery, it
                    would fail. Check the busy status of BTIF instead, and wait with starting
                    the bond. */
                    if (mFeatureFlags.delayBondingWhenBusy()
                    if (Flags.delayBondingWhenBusy()
                            && mAdapterService.getNative().pairingIsBusy()) {
                        short retry_no =
                                (msg.getData() != null)
+2 −9
Original line number Diff line number Diff line
@@ -51,8 +51,7 @@ import com.android.bluetooth.btservice.MetricsLogger;
import com.android.bluetooth.btservice.ProfileService;
import com.android.bluetooth.btservice.ServiceFactory;
import com.android.bluetooth.btservice.storage.DatabaseManager;
import com.android.bluetooth.flags.FeatureFlags;
import com.android.bluetooth.flags.FeatureFlagsImpl;
import com.android.bluetooth.flags.Flags;
import com.android.internal.annotations.VisibleForTesting;
import com.android.modules.utils.SynchronousResultReceiver;

@@ -78,7 +77,6 @@ public class HearingAidService extends ProfileService {
    private static final int MAX_HEARING_AID_STATE_MACHINES = 10;
    private static HearingAidService sHearingAidService;

    private FeatureFlags mFeatureFlags = new FeatureFlagsImpl();
    private AdapterService mAdapterService;
    private DatabaseManager mDatabaseManager;
    private HandlerThread mStateMachinesThread;
@@ -721,11 +719,6 @@ public class HearingAidService extends ProfileService {
        sendBroadcast(intent, BLUETOOTH_CONNECT);
    }

    @VisibleForTesting
    void setFeatureFlags(FeatureFlags featureFlags) {
        mFeatureFlags = featureFlags;
    }

    /* Notifications of audio device disconnection events. */
    private class AudioManagerOnAudioDevicesRemovedCallback extends AudioDeviceCallback {
        @Override
@@ -1062,7 +1055,7 @@ public class HearingAidService extends ProfileService {
            try {
                HearingAidService service = getService(source);
                if (service != null) {
                    if (service.mFeatureFlags.audioRoutingCentralization()) {
                    if (Flags.audioRoutingCentralization()) {
                        ((AudioRoutingManager) service.mAdapterService.getActiveDeviceManager())
                                .activateDeviceProfile(
                                        device, BluetoothProfile.HEARING_AID, receiver);
+6 −8
Original line number Diff line number Diff line
@@ -42,6 +42,7 @@ import android.media.AudioManager;
import android.media.BluetoothProfileConnectionInfo;
import android.os.Looper;
import android.os.ParcelUuid;
import android.platform.test.flag.junit.SetFlagsRule;

import androidx.test.filters.MediumTest;
import androidx.test.platform.app.InstrumentationRegistry;
@@ -52,7 +53,6 @@ import com.android.bluetooth.btservice.ActiveDeviceManager;
import com.android.bluetooth.btservice.AdapterService;
import com.android.bluetooth.btservice.AudioRoutingManager;
import com.android.bluetooth.btservice.storage.DatabaseManager;
import com.android.bluetooth.flags.FakeFeatureFlagsImpl;
import com.android.bluetooth.flags.Flags;
import com.android.bluetooth.x.com.android.modules.utils.SynchronousResultReceiver;

@@ -60,6 +60,7 @@ import org.hamcrest.Matcher;
import org.hamcrest.core.AllOf;
import org.junit.After;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.ArgumentCaptor;
@@ -84,12 +85,12 @@ public class HearingAidServiceTest {
    private static final BluetoothDevice mRightDevice = TestUtils.getTestDevice(mAdapter, 1);
    private static final BluetoothDevice mSingleDevice = TestUtils.getTestDevice(mAdapter, 2);

    @Rule public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();

    private HearingAidService mService;
    private HearingAidService.BluetoothHearingAidBinder mServiceBinder;
    private HashMap<BluetoothDevice, LinkedBlockingQueue<Intent>> mDeviceQueueMap;

    private FakeFeatureFlagsImpl mFakeFlagsImpl;

    @Mock private AdapterService mAdapterService;
    @Mock private ActiveDeviceManager mActiveDeviceManager;
    @Mock private AudioRoutingManager mAudioRoutingManager;
@@ -112,13 +113,11 @@ public class HearingAidServiceTest {
        if (Looper.myLooper() == null) {
            Looper.prepare();
        }
        mFakeFlagsImpl = new FakeFeatureFlagsImpl();
        mFakeFlagsImpl.setFlag(Flags.FLAG_AUDIO_ROUTING_CENTRALIZATION, false);

        TestUtils.setAdapterService(mAdapterService);
        doAnswer(
                        invocation -> {
                            if (mFakeFlagsImpl.audioRoutingCentralization()) {
                            if (Flags.audioRoutingCentralization()) {
                                return mAudioRoutingManager;
                            } else {
                                return mActiveDeviceManager;
@@ -969,14 +968,13 @@ public class HearingAidServiceTest {
        assertThat(mService.getActiveDevices()).containsNoneOf(mRightDevice, mLeftDevice);
        assertThat(mService.getActiveDevices()).contains(mSingleDevice);

        mService.setFeatureFlags(mFakeFlagsImpl);
        SynchronousResultReceiver<Boolean> recv = SynchronousResultReceiver.get();
        boolean defaultRecvValue = false;
        mServiceBinder.setActiveDevice(null, null, recv);
        assertThat(recv.awaitResultNoInterrupt(TIMEOUT).getValue(defaultRecvValue)).isTrue();
        assertThat(mService.getActiveDevices()).doesNotContain(mSingleDevice);

        mFakeFlagsImpl.setFlag(Flags.FLAG_AUDIO_ROUTING_CENTRALIZATION, true);
        mSetFlagsRule.enableFlags(Flags.FLAG_AUDIO_ROUTING_CENTRALIZATION);
        recv = SynchronousResultReceiver.get();
        mServiceBinder.setActiveDevice(null, null, recv);
        verify(mAudioRoutingManager)