diff options
author | dtrunov <dtrunov@luxoft.com> | 2016-07-15 16:35:47 +0300 |
---|---|---|
committer | dtrunov <dtrunov@luxoft.com> | 2016-07-18 10:47:45 +0300 |
commit | f9490277e8d188411f8f4a0ee21958e51393c521 (patch) | |
tree | 984bb48623022e09c3625ec84f5c24caf66d2269 | |
parent | cf0ac46253ab8359ac3c5e770721bdf3f52040f5 (diff) | |
download | sdl_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)
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); } } |