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

Commit a0dc7e0d authored by SongFerng Wang's avatar SongFerng Wang
Browse files

Revert "[LE unicast] The isBusy state should involve the state of sub device"

This reverts commit 4b2b34ee.

Reason for revert: According to b/253592180#comment6, we should hide the concept of member sets of a CSIP pairing or joining a group. The UI did not gray out device preference when the member is busy.

Change-Id: Iae13955f34222854f7b1f6b767e9aed09cb3ba32
parent 4b2b34ee
Loading
Loading
Loading
Loading
+8 −15
Original line number Diff line number Diff line
@@ -756,23 +756,16 @@ public class CachedBluetoothDevice implements Comparable<CachedBluetoothDevice>
    }

    public boolean isBusy() {
        for (CachedBluetoothDevice memberDevice : getMemberDevice()) {
            if (isBusyState(memberDevice)) {
                return true;
            }
        }
        return isBusyState(this);
    }

    private boolean isBusyState(CachedBluetoothDevice device){
        for (LocalBluetoothProfile profile : device.getProfiles()) {
            int status = device.getProfileConnectionState(profile);
        synchronized (mProfileLock) {
            for (LocalBluetoothProfile profile : mProfiles) {
                int status = getProfileConnectionState(profile);
                if (status == BluetoothProfile.STATE_CONNECTING
                        || status == BluetoothProfile.STATE_DISCONNECTING) {
                    return true;
                }
            }
        return device.getBondState() == BluetoothDevice.BOND_BONDING;
            return getBondState() == BluetoothDevice.BOND_BONDING;
        }
    }

    private boolean updateProfiles() {
+0 −76
Original line number Diff line number Diff line
@@ -1069,80 +1069,4 @@ public class CachedBluetoothDeviceTest {
        assertThat(mSubCachedDevice.mDevice).isEqualTo(mDevice);
        assertThat(mCachedDevice.getMemberDevice().contains(mSubCachedDevice)).isTrue();
    }

    @Test
    public void isBusy_mainDeviceIsConnecting_returnsBusy() {
        mCachedDevice.addMemberDevice(mSubCachedDevice);
        updateProfileStatus(mA2dpProfile, BluetoothProfile.STATE_CONNECTED);
        updateSubDeviceProfileStatus(mA2dpProfile, BluetoothProfile.STATE_CONNECTED);
        when(mDevice.getBondState()).thenReturn(BluetoothDevice.BOND_BONDED);
        when(mSubDevice.getBondState()).thenReturn(BluetoothDevice.BOND_BONDED);

        updateProfileStatus(mA2dpProfile, BluetoothProfile.STATE_CONNECTING);

        assertThat(mCachedDevice.getMemberDevice().contains(mSubCachedDevice)).isTrue();
        assertThat(mCachedDevice.getProfiles().contains(mA2dpProfile)).isTrue();
        assertThat(mSubCachedDevice.getProfiles().contains(mA2dpProfile)).isTrue();
        assertThat(mCachedDevice.isBusy()).isTrue();
    }

    @Test
    public void isBusy_mainDeviceIsBonding_returnsBusy() {
        mCachedDevice.addMemberDevice(mSubCachedDevice);
        updateProfileStatus(mA2dpProfile, BluetoothProfile.STATE_CONNECTED);
        updateSubDeviceProfileStatus(mA2dpProfile, BluetoothProfile.STATE_CONNECTED);
        when(mSubDevice.getBondState()).thenReturn(BluetoothDevice.BOND_BONDED);

        when(mDevice.getBondState()).thenReturn(BluetoothDevice.BOND_BONDING);

        assertThat(mCachedDevice.getMemberDevice().contains(mSubCachedDevice)).isTrue();
        assertThat(mCachedDevice.getProfiles().contains(mA2dpProfile)).isTrue();
        assertThat(mSubCachedDevice.getProfiles().contains(mA2dpProfile)).isTrue();
        assertThat(mCachedDevice.isBusy()).isTrue();
    }

    @Test
    public void isBusy_memberDeviceIsConnecting_returnsBusy() {
        mCachedDevice.addMemberDevice(mSubCachedDevice);
        updateProfileStatus(mA2dpProfile, BluetoothProfile.STATE_CONNECTED);
        updateSubDeviceProfileStatus(mA2dpProfile, BluetoothProfile.STATE_CONNECTED);
        when(mDevice.getBondState()).thenReturn(BluetoothDevice.BOND_BONDED);
        when(mSubDevice.getBondState()).thenReturn(BluetoothDevice.BOND_BONDED);

        updateSubDeviceProfileStatus(mA2dpProfile, BluetoothProfile.STATE_CONNECTING);

        assertThat(mCachedDevice.getMemberDevice().contains(mSubCachedDevice)).isTrue();
        assertThat(mCachedDevice.getProfiles().contains(mA2dpProfile)).isTrue();
        assertThat(mSubCachedDevice.getProfiles().contains(mA2dpProfile)).isTrue();
        assertThat(mCachedDevice.isBusy()).isTrue();
    }

    @Test
    public void isBusy_memberDeviceIsBonding_returnsBusy() {
        mCachedDevice.addMemberDevice(mSubCachedDevice);
        updateProfileStatus(mA2dpProfile, BluetoothProfile.STATE_CONNECTED);
        updateSubDeviceProfileStatus(mA2dpProfile, BluetoothProfile.STATE_CONNECTED);
        when(mDevice.getBondState()).thenReturn(BluetoothDevice.BOND_BONDED);

        when(mSubDevice.getBondState()).thenReturn(BluetoothDevice.BOND_BONDING);

        assertThat(mCachedDevice.getMemberDevice().contains(mSubCachedDevice)).isTrue();
        assertThat(mCachedDevice.getProfiles().contains(mA2dpProfile)).isTrue();
        assertThat(mSubCachedDevice.getProfiles().contains(mA2dpProfile)).isTrue();
        assertThat(mCachedDevice.isBusy()).isTrue();
    }

    @Test
    public void isBusy_allDevicesAreNotBusy_returnsNotBusy() {
        mCachedDevice.addMemberDevice(mSubCachedDevice);
        updateProfileStatus(mA2dpProfile, BluetoothProfile.STATE_CONNECTED);
        updateSubDeviceProfileStatus(mA2dpProfile, BluetoothProfile.STATE_CONNECTED);
        when(mDevice.getBondState()).thenReturn(BluetoothDevice.BOND_BONDED);
        when(mSubDevice.getBondState()).thenReturn(BluetoothDevice.BOND_BONDED);

        assertThat(mCachedDevice.getMemberDevice().contains(mSubCachedDevice)).isTrue();
        assertThat(mCachedDevice.getProfiles().contains(mA2dpProfile)).isTrue();
        assertThat(mSubCachedDevice.getProfiles().contains(mA2dpProfile)).isTrue();
        assertThat(mCachedDevice.isBusy()).isFalse();
    }
}