Loading android/app/src/com/android/bluetooth/a2dpsink/A2dpSinkStateMachine.java +4 −0 Original line number Original line Diff line number Diff line Loading @@ -218,6 +218,10 @@ public class A2dpSinkStateMachine extends StateMachine { case CONNECT_TIMEOUT: case CONNECT_TIMEOUT: transitionTo(mDisconnected); transitionTo(mDisconnected); return true; return true; case DISCONNECT: Log.d(TAG, "Received disconnect message while connecting. deferred"); deferMessage(message); return true; } } return false; return false; } } Loading android/app/tests/unit/src/com/android/bluetooth/a2dpsink/A2dpSinkStateMachineTest.java +8 −1 Original line number Original line Diff line number Diff line Loading @@ -269,12 +269,19 @@ public class A2dpSinkStateMachineTest { } } @Test @Test public void testDisconnectInConnecting() { public void testDisconnectInConnecting_disconnectDeferredAndProcessed() { testConnectInDisconnected(); testConnectInDisconnected(); assertThat(mStateMachine.getState()).isEqualTo(BluetoothProfile.STATE_CONNECTING); assertThat(mStateMachine.getState()).isEqualTo(BluetoothProfile.STATE_CONNECTING); mStateMachine.disconnect(); mStateMachine.disconnect(); TestUtils.waitForLooperToFinishScheduledTask(mStateMachine.getHandler().getLooper()); TestUtils.waitForLooperToFinishScheduledTask(mStateMachine.getHandler().getLooper()); assertThat(mStateMachine.getState()).isEqualTo(BluetoothProfile.STATE_CONNECTING); assertThat(mStateMachine.getState()).isEqualTo(BluetoothProfile.STATE_CONNECTING); // send connected, disconnect should get processed sendConnectionEvent(BluetoothProfile.STATE_CONNECTED); TestUtils.waitForLooperToFinishScheduledTask(mStateMachine.getHandler().getLooper()); verify(mNativeInterface, times(1)).disconnectA2dpSink(mDevice); verify(mService, timeout(TIMEOUT_MS).times(1)).removeStateMachine(mStateMachine); assertThat(mStateMachine.getState()).isEqualTo(BluetoothProfile.STATE_DISCONNECTED); } } /********************************************************************************************** /********************************************************************************************** Loading Loading
android/app/src/com/android/bluetooth/a2dpsink/A2dpSinkStateMachine.java +4 −0 Original line number Original line Diff line number Diff line Loading @@ -218,6 +218,10 @@ public class A2dpSinkStateMachine extends StateMachine { case CONNECT_TIMEOUT: case CONNECT_TIMEOUT: transitionTo(mDisconnected); transitionTo(mDisconnected); return true; return true; case DISCONNECT: Log.d(TAG, "Received disconnect message while connecting. deferred"); deferMessage(message); return true; } } return false; return false; } } Loading
android/app/tests/unit/src/com/android/bluetooth/a2dpsink/A2dpSinkStateMachineTest.java +8 −1 Original line number Original line Diff line number Diff line Loading @@ -269,12 +269,19 @@ public class A2dpSinkStateMachineTest { } } @Test @Test public void testDisconnectInConnecting() { public void testDisconnectInConnecting_disconnectDeferredAndProcessed() { testConnectInDisconnected(); testConnectInDisconnected(); assertThat(mStateMachine.getState()).isEqualTo(BluetoothProfile.STATE_CONNECTING); assertThat(mStateMachine.getState()).isEqualTo(BluetoothProfile.STATE_CONNECTING); mStateMachine.disconnect(); mStateMachine.disconnect(); TestUtils.waitForLooperToFinishScheduledTask(mStateMachine.getHandler().getLooper()); TestUtils.waitForLooperToFinishScheduledTask(mStateMachine.getHandler().getLooper()); assertThat(mStateMachine.getState()).isEqualTo(BluetoothProfile.STATE_CONNECTING); assertThat(mStateMachine.getState()).isEqualTo(BluetoothProfile.STATE_CONNECTING); // send connected, disconnect should get processed sendConnectionEvent(BluetoothProfile.STATE_CONNECTED); TestUtils.waitForLooperToFinishScheduledTask(mStateMachine.getHandler().getLooper()); verify(mNativeInterface, times(1)).disconnectA2dpSink(mDevice); verify(mService, timeout(TIMEOUT_MS).times(1)).removeStateMachine(mStateMachine); assertThat(mStateMachine.getState()).isEqualTo(BluetoothProfile.STATE_DISCONNECTED); } } /********************************************************************************************** /********************************************************************************************** Loading