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

Commit 3c350e3f authored by Automerger Merge Worker's avatar Automerger Merge Worker
Browse files

Merge "Update connect() api" am: 867e1aed am: ead3d8fb

Change-Id: I963ad5b327eed71c4025d2f8a0ce4f04fa3b480c
parents b3e8c16a ead3d8fb
Loading
Loading
Loading
Loading
+21 −35
Original line number Diff line number Diff line
@@ -184,13 +184,28 @@ public class CachedBluetoothDevice implements Comparable<CachedBluetoothDevice>
        }
    }

    /**
     * Connect this device.
     *
     * @param connectAllProfiles {@code true} to connect all profile, {@code false} otherwise.
     *
     * @deprecated use {@link #connect()} instead.
     */
    @Deprecated
    public void connect(boolean connectAllProfiles) {
        connect();
    }

    /**
     * Connect this device.
     */
    public void connect() {
        if (!ensurePaired()) {
            return;
        }

        mConnectAttempted = SystemClock.elapsedRealtime();
        connectWithoutResettingTimer(connectAllProfiles);
        connectAllEnabledProfiles();
    }

    public long getHiSyncId() {
@@ -211,10 +226,10 @@ public class CachedBluetoothDevice implements Comparable<CachedBluetoothDevice>
    void onBondingDockConnect() {
        // Attempt to connect if UUIDs are available. Otherwise,
        // we will connect when the ACTION_UUID intent arrives.
        connect(false);
        connect();
    }

    private void connectWithoutResettingTimer(boolean connectAllProfiles) {
    private void connectAllEnabledProfiles() {
        synchronized (mProfileLock) {
            // Try to initialize the profiles if they were not.
            if (mProfiles.isEmpty()) {
@@ -229,36 +244,7 @@ public class CachedBluetoothDevice implements Comparable<CachedBluetoothDevice>
                return;
            }

            int preferredProfiles = 0;
            for (LocalBluetoothProfile profile : mProfiles) {
                if (connectAllProfiles ? profile.accessProfileEnabled()
                        : profile.isAutoConnectable()) {
                    if (profile.isPreferred(mDevice)) {
                        ++preferredProfiles;
                        connectInt(profile);
                    }
                }
            }
            if (BluetoothUtils.D) Log.d(TAG, "Preferred profiles = " + preferredProfiles);

            if (preferredProfiles == 0) {
                connectAutoConnectableProfiles();
            }
        }
    }

    private void connectAutoConnectableProfiles() {
        if (!ensurePaired()) {
            return;
        }

        synchronized (mProfileLock) {
            for (LocalBluetoothProfile profile : mProfiles) {
                if (profile.isAutoConnectable()) {
                    profile.setPreferred(mDevice, true);
                    connectInt(profile);
                }
            }
            mLocalAdapter.connectAllEnabledProfiles(mDevice);
        }
    }

@@ -625,7 +611,7 @@ public class CachedBluetoothDevice implements Comparable<CachedBluetoothDevice>
         */
        if (!mProfiles.isEmpty()
                && ((mConnectAttempted + timeout) > SystemClock.elapsedRealtime())) {
            connectWithoutResettingTimer(false);
            connectAllEnabledProfiles();
        }

        dispatchAttributesChanged();
@@ -644,7 +630,7 @@ public class CachedBluetoothDevice implements Comparable<CachedBluetoothDevice>
        refresh();

        if (bondState == BluetoothDevice.BOND_BONDED && mDevice.isBondingInitiatedLocally()) {
            connect(false);
            connect();
        }
    }

+1 −1
Original line number Diff line number Diff line
@@ -116,7 +116,7 @@ public class LocalMediaManager implements BluetoothCallback {
            final CachedBluetoothDevice cachedDevice =
                    ((BluetoothMediaDevice) device).getCachedDevice();
            if (!cachedDevice.isConnected() && !cachedDevice.isBusy()) {
                cachedDevice.connect(true);
                cachedDevice.connect();
                return;
            }
        }
+1 −1
Original line number Diff line number Diff line
@@ -127,7 +127,7 @@ public class LocalMediaManagerTest {
        mLocalMediaManager.registerCallback(mCallback);
        mLocalMediaManager.connectDevice(device);

        verify(cachedDevice).connect(true);
        verify(cachedDevice).connect();
    }

    @Test