Merge "Revert "[LE unicast] The isBusy state should involve the state of sub device"" into tm-qpr-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
8a283d04f0
@@ -758,23 +758,16 @@ public class CachedBluetoothDevice implements Comparable<CachedBluetoothDevice>
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean isBusy() {
|
public boolean isBusy() {
|
||||||
for (CachedBluetoothDevice memberDevice : getMemberDevice()) {
|
synchronized (mProfileLock) {
|
||||||
if (isBusyState(memberDevice)) {
|
for (LocalBluetoothProfile profile : mProfiles) {
|
||||||
return true;
|
int status = getProfileConnectionState(profile);
|
||||||
}
|
|
||||||
}
|
|
||||||
return isBusyState(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
private boolean isBusyState(CachedBluetoothDevice device){
|
|
||||||
for (LocalBluetoothProfile profile : device.getProfiles()) {
|
|
||||||
int status = device.getProfileConnectionState(profile);
|
|
||||||
if (status == BluetoothProfile.STATE_CONNECTING
|
if (status == BluetoothProfile.STATE_CONNECTING
|
||||||
|| status == BluetoothProfile.STATE_DISCONNECTING) {
|
|| status == BluetoothProfile.STATE_DISCONNECTING) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return device.getBondState() == BluetoothDevice.BOND_BONDING;
|
return getBondState() == BluetoothDevice.BOND_BONDING;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean updateProfiles() {
|
private boolean updateProfiles() {
|
||||||
|
|||||||
@@ -1069,80 +1069,4 @@ public class CachedBluetoothDeviceTest {
|
|||||||
assertThat(mSubCachedDevice.mDevice).isEqualTo(mDevice);
|
assertThat(mSubCachedDevice.mDevice).isEqualTo(mDevice);
|
||||||
assertThat(mCachedDevice.getMemberDevice().contains(mSubCachedDevice)).isTrue();
|
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();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user