diff options
author | Andrey Oleynik (GitHub) <aoleynik@luxoft.com> | 2017-11-13 10:38:43 +0200 |
---|---|---|
committer | Andriy Byzhynar <AByzhynar@luxoft.com> | 2018-01-18 12:03:51 +0200 |
commit | 48f0999d896d828b78eaeef825d1ec6b1a46fa4b (patch) | |
tree | 8a8124397bd3d1a1c7517ebf7d1ecdd3df40ad69 | |
parent | d92414259d14bce5ddd8cdf77776790d68cabc12 (diff) | |
download | sdl_core-48f0999d896d828b78eaeef825d1ec6b1a46fa4b.tar.gz |
Fixes sending 'transport_switch' signal back to adapter/device
After StopDevice call BT device channel is not usable anymore, so to
talk back to system USB channel is used.
Fixes unit test as well.
-rw-r--r-- | src/components/transport_manager/src/transport_manager_impl.cc | 12 | ||||
-rw-r--r-- | src/components/transport_manager/test/transport_manager_impl_test.cc | 2 |
2 files changed, 8 insertions, 6 deletions
diff --git a/src/components/transport_manager/src/transport_manager_impl.cc b/src/components/transport_manager/src/transport_manager_impl.cc index 05c54db210..2b4660700c 100644 --- a/src/components/transport_manager/src/transport_manager_impl.cc +++ b/src/components/transport_manager/src/transport_manager_impl.cc @@ -735,18 +735,20 @@ bool TransportManagerImpl::TryDeviceSwitch( DeviceToAdapterMap::iterator value) { LOG4CXX_AUTO_TRACE(logger_); const auto device_uid = value->first; - const auto adapter = value->second; + const auto old_adapter = value->second; - if (transport_adapter::DeviceType::IOS_BT != adapter->GetDeviceType()) { + if (transport_adapter::DeviceType::IOS_BT != old_adapter->GetDeviceType()) { LOG4CXX_DEBUG(logger_, "Adapter type is not IOS_BT."); return false; } - adapter->StopDevice(device_uid); - adapter->DeviceSwitched(device_uid); + + const auto new_adapter = ta; + old_adapter->StopDevice(device_uid); + new_adapter->DeviceSwitched(device_uid); DeactivateDeviceConnections(device_uid); - value->second = ta; + value->second = new_adapter; device_to_reconnect_ = device_uid; const uint32_t timeout = get_settings().app_transport_change_timer() + diff --git a/src/components/transport_manager/test/transport_manager_impl_test.cc b/src/components/transport_manager/test/transport_manager_impl_test.cc index 2e0e66a7a9..cd5bb27a0f 100644 --- a/src/components/transport_manager/test/transport_manager_impl_test.cc +++ b/src/components/transport_manager/test/transport_manager_impl_test.cc @@ -1159,7 +1159,7 @@ TEST_F(TransportManagerImplTest, transport_adapter::DeviceType::IOS_USB); EXPECT_CALL(*mock_adapter_, StopDevice(mac_address_)); - EXPECT_CALL(*mock_adapter_, DeviceSwitched(mac_address_)); + EXPECT_CALL(*second_mock_adapter, DeviceSwitched(mac_address_)); EXPECT_CALL(mock_transport_manager_settings_, app_transport_change_timer()) .WillOnce(Return(timeout)); |