summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/components/application_manager/src/application_manager_impl.cc11
-rw-r--r--src/components/connection_handler/src/connection_handler_impl.cc8
-rw-r--r--src/components/transport_manager/include/transport_manager/transport_manager_impl.h3
-rw-r--r--src/components/transport_manager/src/transport_manager_impl.cc15
4 files changed, 26 insertions, 11 deletions
diff --git a/src/components/application_manager/src/application_manager_impl.cc b/src/components/application_manager/src/application_manager_impl.cc
index 3166f7383d..e6705a4d8e 100644
--- a/src/components/application_manager/src/application_manager_impl.cc
+++ b/src/components/application_manager/src/application_manager_impl.cc
@@ -898,7 +898,6 @@ void ApplicationManagerImpl::OnHMIStartedCooperation() {
resume_controller().ResetLaunchTime();
RefreshCloudAppInformation();
- SendUpdateAppList();
}
std::string ApplicationManagerImpl::PolicyIDByIconUrl(const std::string url) {
@@ -2070,7 +2069,7 @@ void ApplicationManagerImpl::StopNaviService(
app->set_audio_streaming_allowed(false);
}
// push_back for judge in ForbidStreaming(),
- navi_app_to_end_stream_.push_back(app_id);
+ StartEndStreamTimer(app_id);
}
ApplicationSharedPtr app = application(app_id);
@@ -4085,11 +4084,17 @@ bool ApplicationManagerImpl::IsHMICooperating() const {
void ApplicationManagerImpl::OnApplicationListUpdateTimer() {
LOG4CXX_DEBUG(logger_, "Application list update timer finished");
+ const bool is_new_app_registered = registered_during_timer_execution_;
registered_during_timer_execution_ = false;
+
apps_to_register_list_lock_ptr_->Acquire();
const bool trigger_ptu = apps_size_ != applications_.size();
apps_to_register_list_lock_ptr_->Release();
- SendUpdateAppList();
+
+ if (is_new_app_registered) {
+ SendUpdateAppList();
+ }
+
GetPolicyHandler().OnAppsSearchCompleted(trigger_ptu);
}
diff --git a/src/components/connection_handler/src/connection_handler_impl.cc b/src/components/connection_handler/src/connection_handler_impl.cc
index 4b97aa0e0c..1ad938332a 100644
--- a/src/components/connection_handler/src/connection_handler_impl.cc
+++ b/src/components/connection_handler/src/connection_handler_impl.cc
@@ -1418,8 +1418,12 @@ void ConnectionHandlerImpl::ConnectToAllDevices() {
sync_primitives::AutoReadLock lock(device_list_lock_);
for (DeviceMap::iterator i = device_list_.begin(); i != device_list_.end();
++i) {
- connection_handler::DeviceHandle device_handle = i->first;
- ConnectToDevice(device_handle);
+ if (transport_manager::webengine_constants::kWebEngineDeviceName ==
+ i->second.user_friendly_name()) {
+ LOG4CXX_DEBUG(logger_, "No need to connect to web engine device");
+ continue;
+ }
+ ConnectToDevice(i->first);
}
}
diff --git a/src/components/transport_manager/include/transport_manager/transport_manager_impl.h b/src/components/transport_manager/include/transport_manager/transport_manager_impl.h
index a765bb045a..85d96bac55 100644
--- a/src/components/transport_manager/include/transport_manager/transport_manager_impl.h
+++ b/src/components/transport_manager/include/transport_manager/transport_manager_impl.h
@@ -525,8 +525,9 @@ class TransportManagerImpl
/**
* @brief Updates total device list with info from specific transport adapter.
* @param ta Transport adapter
+ * @return True if device list has been changed, otherwise - false
*/
- void UpdateDeviceList(TransportAdapter* ta);
+ bool UpdateDeviceList(TransportAdapter* ta);
}; // class TransportManagerImpl
} // namespace transport_manager
#endif // SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TRANSPORT_MANAGER_IMPL_H_
diff --git a/src/components/transport_manager/src/transport_manager_impl.cc b/src/components/transport_manager/src/transport_manager_impl.cc
index 9d4f6be316..ddff4f3780 100644
--- a/src/components/transport_manager/src/transport_manager_impl.cc
+++ b/src/components/transport_manager/src/transport_manager_impl.cc
@@ -711,10 +711,8 @@ void TransportManagerImpl::CreateWebEngineDevice() {
ws_device->set_keep_on_disconnect(true);
- RaiseEvent(&TransportManagerListener::OnDeviceAdded, web_engine_device_info_);
- device_list_.push_back(
- std::make_pair(web_socket_ta, web_engine_device_info_));
web_socket_ta->AddDevice(ws_device);
+ OnDeviceListUpdated(web_socket_ta);
#endif // WEBSOCKET_SERVER_TRANSPORT_SUPPORT
}
@@ -723,7 +721,7 @@ const DeviceInfo& TransportManagerImpl::GetWebEngineDeviceInfo() const {
return web_engine_device_info_;
}
-void TransportManagerImpl::UpdateDeviceList(TransportAdapter* ta) {
+bool TransportManagerImpl::UpdateDeviceList(TransportAdapter* ta) {
LOG4CXX_TRACE(logger_, "enter. TransportAdapter: " << ta);
std::set<DeviceInfo> old_devices;
std::set<DeviceInfo> new_devices;
@@ -775,7 +773,9 @@ void TransportManagerImpl::UpdateDeviceList(TransportAdapter* ta) {
++it) {
RaiseEvent(&TransportManagerListener::OnDeviceRemoved, *it);
}
+
LOG4CXX_TRACE(logger_, "exit");
+ return added_devices.size() + removed_devices.size() > 0;
}
void TransportManagerImpl::PostMessage(
@@ -1067,7 +1067,12 @@ void TransportManagerImpl::OnDeviceListUpdated(TransportAdapter* ta) {
LOG4CXX_ERROR(logger_, "Device list update failed.");
return;
}
- UpdateDeviceList(ta);
+
+ if (!UpdateDeviceList(ta)) {
+ LOG4CXX_DEBUG(logger_, "Device list was not changed");
+ return;
+ }
+
std::vector<DeviceInfo> device_infos;
device_list_lock_.AcquireForReading();
for (DeviceInfoList::const_iterator it = device_list_.begin();