summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordtrunov <dtrunov@luxoft.com>2016-07-15 16:35:47 +0300
committerdtrunov <dtrunov@luxoft.com>2016-07-18 10:47:45 +0300
commitf9490277e8d188411f8f4a0ee21958e51393c521 (patch)
tree984bb48623022e09c3625ec84f5c24caf66d2269
parentcf0ac46253ab8359ac3c5e770721bdf3f52040f5 (diff)
downloadsdl_core-f9490277e8d188411f8f4a0ee21958e51393c521.tar.gz
Fix comments after review
Changed interface in hmi_capabilities.h, reworked loks for HMILanguageHandler. Related issue:[APPLINK-26397](https://adc.luxoft.com/jira/browse/APPLINK-26397)
-rw-r--r--src/components/application_manager/include/application_manager/hmi_capabilities.h10
-rw-r--r--src/components/application_manager/include/application_manager/hmi_state.h8
-rw-r--r--src/components/application_manager/src/application_impl.cc3
-rw-r--r--src/components/application_manager/src/application_manager_impl.cc3
-rw-r--r--src/components/application_manager/src/hmi_capabilities.cc4
-rw-r--r--src/components/application_manager/src/hmi_language_handler.cc65
6 files changed, 45 insertions, 48 deletions
diff --git a/src/components/application_manager/include/application_manager/hmi_capabilities.h b/src/components/application_manager/include/application_manager/hmi_capabilities.h
index 461b1616cd..f94c8125c8 100644
--- a/src/components/application_manager/include/application_manager/hmi_capabilities.h
+++ b/src/components/application_manager/include/application_manager/hmi_capabilities.h
@@ -417,11 +417,13 @@ class HMICapabilities {
void Init(resumption::LastState* last_state);
/**
- * @brief Removes application from container after
- * removing application from core
- * @param app_id id application for removing
+ * @brief return component which follows for correctness of
+ * languages
+ * @return HMI language handler
*/
- void OnUnregisterApplication(uint32_t app_id);
+ HMILanguageHandler& get_hmi_language_handler() {
+ return hmi_language_handler_;
+ }
protected:
/*
diff --git a/src/components/application_manager/include/application_manager/hmi_state.h b/src/components/application_manager/include/application_manager/hmi_state.h
index bd8cbdd7fc..31da7647fa 100644
--- a/src/components/application_manager/include/application_manager/hmi_state.h
+++ b/src/components/application_manager/include/application_manager/hmi_state.h
@@ -165,14 +165,6 @@ class HmiState {
state_id_ = state_id;
}
- /**
- * @brief return application id
- * @return return application id
- */
- uint32_t app_id() {
- return app_id_;
- }
-
protected:
uint32_t app_id_;
StateID state_id_;
diff --git a/src/components/application_manager/src/application_impl.cc b/src/components/application_manager/src/application_impl.cc
index a1e8eeed3c..61451e3602 100644
--- a/src/components/application_manager/src/application_impl.cc
+++ b/src/components/application_manager/src/application_impl.cc
@@ -210,7 +210,6 @@ bool ApplicationImpl::IsAudioApplication() const {
void ApplicationImpl::SetRegularState(HmiStatePtr state) {
LOG4CXX_AUTO_TRACE(logger_);
- DCHECK_OR_RETURN_VOID(state->app_id() == app_id());
state_.AddState(state);
}
@@ -221,7 +220,6 @@ void ApplicationImpl::RemovePostponedState() {
void ApplicationImpl::SetPostponedState(HmiStatePtr state) {
LOG4CXX_AUTO_TRACE(logger_);
- DCHECK_OR_RETURN_VOID(state->app_id() == app_id());
state_.AddState(state);
}
@@ -235,7 +233,6 @@ struct StateIDComparator {
void ApplicationImpl::AddHMIState(HmiStatePtr state) {
LOG4CXX_AUTO_TRACE(logger_);
- DCHECK_OR_RETURN_VOID(state->app_id() == app_id());
state_.AddState(state);
}
diff --git a/src/components/application_manager/src/application_manager_impl.cc b/src/components/application_manager/src/application_manager_impl.cc
index 9d4a489609..7aa1bd550d 100644
--- a/src/components/application_manager/src/application_manager_impl.cc
+++ b/src/components/application_manager/src/application_manager_impl.cc
@@ -2587,7 +2587,8 @@ void ApplicationManagerImpl::UnregisterApplication(
resume_ctrl_.RemoveApplicationFromSaved(app_to_remove);
}
applications_.erase(app_to_remove);
- hmi_capabilities_.OnUnregisterApplication(app_id);
+ (hmi_capabilities_.get_hmi_language_handler())
+ .OnUnregisterApplication(app_id);
AppV4DevicePredicate finder(handle);
ApplicationSharedPtr app = FindApp(accessor, finder);
if (!app) {
diff --git a/src/components/application_manager/src/hmi_capabilities.cc b/src/components/application_manager/src/hmi_capabilities.cc
index 269815ab78..7535984c16 100644
--- a/src/components/application_manager/src/hmi_capabilities.cc
+++ b/src/components/application_manager/src/hmi_capabilities.cc
@@ -947,8 +947,4 @@ void HMICapabilities::convert_json_languages_to_obj(
}
}
-void HMICapabilities::OnUnregisterApplication(uint32_t app_id) {
- hmi_language_handler_.OnUnregisterApplication(app_id);
-}
-
} // namespace application_manager
diff --git a/src/components/application_manager/src/hmi_language_handler.cc b/src/components/application_manager/src/hmi_language_handler.cc
index 1bbb0f2051..d37467ee76 100644
--- a/src/components/application_manager/src/hmi_language_handler.cc
+++ b/src/components/application_manager/src/hmi_language_handler.cc
@@ -131,10 +131,12 @@ void HMILanguageHandler::on_event(const event_engine::Event& event) {
is_tts_language_received_ = true;
break;
case hmi_apis::FunctionID::BasicCommunication_OnAppRegistered:
- if (msg[strings::params].keyExists(strings::app_id)) {
- CheckApplication(std::make_pair(
- msg[strings::params][strings::app_id].asUInt(), true));
+ if (!(msg[strings::params].keyExists(strings::app_id))) {
+ LOG4CXX_ERROR(logger_, "Message doesn't contain parameter app_id");
+ return;
}
+ CheckApplication(
+ std::make_pair(msg[strings::params][strings::app_id].asUInt(), true));
return;
default:
return;
@@ -275,29 +277,31 @@ void HMILanguageHandler::VerifyWithPersistedLanguages() {
sync_primitives::AutoLock lock(apps_lock_);
if (0 == apps_.size()) {
LOG4CXX_DEBUG(logger_,
- "No registered apps found. Unsubscribing from all events.");
+ "No registered apps found. HMILanguageHandler unsubscribed "
+ "from all events.");
unsubscribe_from_all_events();
}
}
void HMILanguageHandler::HandleWrongLanguageApp(const Apps::value_type& app) {
LOG4CXX_AUTO_TRACE(logger_);
- Apps::iterator it = apps_.find(app.first);
- if (apps_.end() == it) {
- LOG4CXX_DEBUG(logger_,
- "Application id "
- << app.first
- << " is not found within apps with wrong language.");
- return;
- }
- apps_.erase(it);
- if (0 == apps_.size()) {
- LOG4CXX_DEBUG(logger_,
- "All apps processed. Unsubscribing from all events.");
- unsubscribe_from_all_events();
+ {
+ sync_primitives::AutoLock lock(apps_lock_);
+ Apps::iterator it = apps_.find(app.first);
+ if (apps_.end() == it) {
+ LOG4CXX_DEBUG(logger_,
+ "Application id "
+ << app.first
+ << " is not found within apps with wrong language.");
+ return;
+ }
+ apps_.erase(it);
+ if (0 == apps_.size()) {
+ LOG4CXX_DEBUG(logger_,
+ "HMILanguageHandler unsubscribed from all events.");
+ unsubscribe_from_all_events();
+ }
}
-
- sync_primitives::AutoUnlock un_lock(apps_lock_);
SendOnLanguageChangeToMobile(app.first);
application_manager_.ManageMobileCommand(
MessageHelper::GetOnAppInterfaceUnregisteredNotificationToMobile(
@@ -313,16 +317,21 @@ void HMILanguageHandler::HandleWrongLanguageApp(const Apps::value_type& app) {
void HMILanguageHandler::CheckApplication(const Apps::value_type app) {
LOG4CXX_AUTO_TRACE(logger_);
- sync_primitives::AutoLock lock(apps_lock_);
- Apps::iterator it = apps_.find(app.first);
- if (apps_.end() == it) {
- LOG4CXX_INFO(logger_,
- "Adding application id "
- << app.first << " Application registered: " << app.second);
- apps_.insert(app);
- return;
+ bool is_need_handle_wrong_language = false;
+ {
+ sync_primitives::AutoLock lock(apps_lock_);
+ Apps::iterator it = apps_.find(app.first);
+ if (apps_.end() == it) {
+ LOG4CXX_INFO(logger_,
+ "Adding application id "
+ << app.first
+ << " Application registered: " << app.second);
+ apps_.insert(app);
+ return;
+ }
+ is_need_handle_wrong_language = apps_[app.first];
}
- if (apps_[app.first]) {
+ if (is_need_handle_wrong_language) {
HandleWrongLanguageApp(app);
}
}