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

Commit 0da195e0 authored by Android Build Coastguard Worker's avatar Android Build Coastguard Worker
Browse files

Snap for 11434712 from 2e7cdb71 to 24Q2-release

Change-Id: I4b499181014a693b1842546c2ea26857a60fbcdb
parents 3da5d98e 2e7cdb71
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -148,6 +148,7 @@ cc_library_shared {
        "server_configurable_flags",
    ],
    shared_libs: [
        "libPlatformProperties",
        "libaaudio",
        "libbinder_ndk",
        "libcrypto",
+7 −6
Original line number Diff line number Diff line
@@ -141,10 +141,13 @@ public class A2dpService extends ProfileService {
        return BluetoothProperties.isProfileA2dpSourceEnabled().orElse(false);
    }

    ActiveDeviceManager getActiveDeviceManager() {
        return mAdapterService.getActiveDeviceManager();
    }

    @Override
    protected IProfileServiceBinder initBinder() {
        return new BluetoothA2dpBinder(
                this, AdapterService.getAdapterService().getActiveDeviceManager());
        return new BluetoothA2dpBinder(this);
    }

    @Override
@@ -1372,7 +1375,6 @@ public class A2dpService extends ProfileService {
    static class BluetoothA2dpBinder extends IBluetoothA2dp.Stub
            implements IProfileServiceBinder {
        private A2dpService mService;
        private ActiveDeviceManager mActiveDeviceManager;

        @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
        private A2dpService getService(AttributionSource source) {
@@ -1387,9 +1389,8 @@ public class A2dpService extends ProfileService {
            return mService;
        }

        BluetoothA2dpBinder(A2dpService svc, ActiveDeviceManager activeDeviceManager) {
        BluetoothA2dpBinder(A2dpService svc) {
            mService = svc;
            mActiveDeviceManager = activeDeviceManager;
        }

        @Override
@@ -1479,7 +1480,7 @@ public class A2dpService extends ProfileService {
                A2dpService service = getService(source);
                if (service != null) {
                    if (Flags.audioRoutingCentralization()) {
                        ((AudioRoutingManager) mActiveDeviceManager)
                        ((AudioRoutingManager) service.getActiveDeviceManager())
                                .activateDeviceProfile(device, BluetoothProfile.A2DP, receiver);
                    } else {
                        boolean result;
+6 −8
Original line number Diff line number Diff line
@@ -39,7 +39,7 @@ import com.android.bluetooth.BluetoothMethodProxy;
import com.android.bluetooth.Utils;
import com.android.bluetooth.a2dp.A2dpService;
import com.android.bluetooth.btservice.storage.DatabaseManager;
import com.android.bluetooth.flags.FeatureFlags;
import com.android.bluetooth.flags.Flags;
import com.android.bluetooth.hearingaid.HearingAidService;
import com.android.bluetooth.hfp.HeadsetService;
import com.android.bluetooth.le_audio.LeAudioService;
@@ -100,7 +100,7 @@ import java.util.Set;
 *      active Bluetooth device.
 */
public class ActiveDeviceManager implements AdapterService.BluetoothStateCallback {
    private static final String TAG = "ActiveDeviceManager";
    private static final String TAG = ActiveDeviceManager.class.getSimpleName();
    private static final boolean DBG = true;
    @VisibleForTesting
    static final int A2DP_HFP_SYNC_CONNECTION_TIMEOUT_MS = 5_000;
@@ -112,7 +112,6 @@ public class ActiveDeviceManager implements AdapterService.BluetoothStateCallbac
    private Handler mHandler = null;
    private final AudioManager mAudioManager;
    private final AudioManagerAudioDeviceCallback mAudioManagerAudioDeviceCallback;
    private final FeatureFlags mFeatureFlags;

    private final Object mLock = new Object();
    @GuardedBy("mLock")
@@ -811,10 +810,9 @@ public class ActiveDeviceManager implements AdapterService.BluetoothStateCallbac
        }
    }

    ActiveDeviceManager(AdapterService service, ServiceFactory factory, FeatureFlags featureFlags) {
    ActiveDeviceManager(AdapterService service, ServiceFactory factory) {
        mAdapterService = service;
        mDbManager = mAdapterService.getDatabase();
        mFeatureFlags = Objects.requireNonNull(featureFlags, "Feature Flags cannot be null");
        mFactory = factory;
        mAudioManager = service.getSystemService(AudioManager.class);
        mAudioManagerAudioDeviceCallback = new AudioManagerAudioDeviceCallback();
@@ -987,7 +985,7 @@ public class ActiveDeviceManager implements AdapterService.BluetoothStateCallbac
            if (device == null) {
                success = leAudioService.removeActiveDevice(hasFallbackDevice);
            } else {
                if (mFeatureFlags.leaudioActiveDeviceManagerGroupHandlingFix()) {
                if (Flags.leaudioActiveDeviceManagerGroupHandlingFix()) {
                    if ((mLeAudioActiveDevice != null)
                            && (Objects.equals(
                                    mLeAudioActiveDevice, leAudioService.getLeadDevice(device)))) {
@@ -1004,7 +1002,7 @@ public class ActiveDeviceManager implements AdapterService.BluetoothStateCallbac
                return false;
            }

            if (mFeatureFlags.leaudioActiveDeviceManagerGroupHandlingFix()) {
            if (Flags.leaudioActiveDeviceManagerGroupHandlingFix()) {
                mLeAudioActiveDevice = leAudioService.getLeadDevice(device);
            } else {
                mLeAudioActiveDevice = device;
@@ -1260,7 +1258,7 @@ public class ActiveDeviceManager implements AdapterService.BluetoothStateCallbac
     * @return {@code true} if is broadcasting audio, {@code false} otherwise
     */
    private boolean isBroadcastingAudio() {
        if (!mFeatureFlags.leaudioBroadcastAudioHandoverPolicies()) {
        if (!Flags.leaudioBroadcastAudioHandoverPolicies()) {
            // disable this if feature flag is false
            return false;
        }
+6 −12
Original line number Diff line number Diff line
@@ -125,7 +125,6 @@ import com.android.bluetooth.btservice.bluetoothkeystore.BluetoothKeystoreServic
import com.android.bluetooth.btservice.storage.DatabaseManager;
import com.android.bluetooth.btservice.storage.MetadataDatabase;
import com.android.bluetooth.csip.CsipSetCoordinatorService;
import com.android.bluetooth.flags.FeatureFlagsImpl;
import com.android.bluetooth.flags.Flags;
import com.android.bluetooth.gatt.GattService;
import com.android.bluetooth.hap.HapClientService;
@@ -402,7 +401,6 @@ public class AdapterService extends Service {
    private volatile boolean mTestModeEnabled = false;

    private MetricsLogger mMetricsLogger;
    private FeatureFlagsImpl mFeatureFlags;

    /**
     * Register a {@link ProfileService} with AdapterService.
@@ -686,9 +684,7 @@ public class AdapterService extends Service {

        mSdpManager = SdpManager.init(this);

        mFeatureFlags = new FeatureFlagsImpl();

        mDatabaseManager = new DatabaseManager(this, mFeatureFlags);
        mDatabaseManager = new DatabaseManager(this);
        mDatabaseManager.start(MetadataDatabase.createDatabase(this));

        boolean isAutomotiveDevice =
@@ -704,18 +700,16 @@ public class AdapterService extends Service {
         */
        if (!isAutomotiveDevice && getResources().getBoolean(R.bool.enable_phone_policy)) {
            Log.i(TAG, "Phone policy enabled");
            mPhonePolicy = new PhonePolicy(this, new ServiceFactory(), mFeatureFlags);
            mPhonePolicy = new PhonePolicy(this, new ServiceFactory());
            mPhonePolicy.start();
        } else {
            Log.i(TAG, "Phone policy disabled");
        }

        if (mFeatureFlags.audioRoutingCentralization()) {
            mActiveDeviceManager =
                    new AudioRoutingManager(this, new ServiceFactory(), mFeatureFlags);
        if (Flags.audioRoutingCentralization()) {
            mActiveDeviceManager = new AudioRoutingManager(this, new ServiceFactory());
        } else {
            mActiveDeviceManager =
                    new ActiveDeviceManager(this, new ServiceFactory(), mFeatureFlags);
            mActiveDeviceManager = new ActiveDeviceManager(this, new ServiceFactory());
        }
        mActiveDeviceManager.start();

@@ -6192,7 +6186,7 @@ public class AdapterService extends Service {
    }

    int getConnectionState(BluetoothDevice device) {
        if (mFeatureFlags.apiGetConnectionStateUsingIdentityAddress()) {
        if (Flags.apiGetConnectionStateUsingIdentityAddress()) {
            final String identityAddress = device.getIdentityAddress();
            return (identityAddress == null)
                    ? mNativeInterface.getConnectionState(getBytesFromAddress(device.getAddress()))
+2 −3
Original line number Diff line number Diff line
@@ -43,7 +43,6 @@ import com.android.bluetooth.BluetoothMethodProxy;
import com.android.bluetooth.Utils;
import com.android.bluetooth.a2dp.A2dpService;
import com.android.bluetooth.btservice.storage.DatabaseManager;
import com.android.bluetooth.flags.FeatureFlags;
import com.android.bluetooth.hearingaid.HearingAidService;
import com.android.bluetooth.hfp.HeadsetService;
import com.android.bluetooth.le_audio.LeAudioService;
@@ -146,8 +145,8 @@ public class AudioRoutingManager extends ActiveDeviceManager {
        }
    }

    AudioRoutingManager(AdapterService service, ServiceFactory factory, FeatureFlags featureFlags) {
        super(service, factory, featureFlags);
    AudioRoutingManager(AdapterService service, ServiceFactory factory) {
        super(service, factory);
        mAdapterService = service;
        mDbManager = mAdapterService.getDatabase();
        mFactory = factory;
Loading