diff options
Diffstat (limited to 'src/components/application_manager/src/help_prompt_manager_impl.cc')
-rw-r--r-- | src/components/application_manager/src/help_prompt_manager_impl.cc | 54 |
1 files changed, 49 insertions, 5 deletions
diff --git a/src/components/application_manager/src/help_prompt_manager_impl.cc b/src/components/application_manager/src/help_prompt_manager_impl.cc index 30a1139deb..99a919366e 100644 --- a/src/components/application_manager/src/help_prompt_manager_impl.cc +++ b/src/components/application_manager/src/help_prompt_manager_impl.cc @@ -183,6 +183,40 @@ void HelpPromptManagerImpl::OnSetGlobalPropertiesReceived( SetSendingType(msg); } +void HelpPromptManagerImpl::OnResetGlobalPropertiesReceived( + const smart_objects::SmartObject& msg) { + SDL_LOG_AUTO_TRACE(); + auto& global_properties_ids = msg[strings::properties]; + + for (size_t i = 0; i < global_properties_ids.length(); ++i) { + mobile_apis::GlobalProperty::eType global_property = + static_cast<mobile_apis::GlobalProperty::eType>( + global_properties_ids[i].asInt()); + switch (global_property) { + case mobile_apis::GlobalProperty::HELPPROMPT: { + sending_type_ = (SendingType::kNoneSend == sending_type_ || + SendingType::kSendHelpPrompt == sending_type_) + ? SendingType::kSendHelpPrompt + : SendingType::kSendBoth; + break; + } + case mobile_apis::GlobalProperty::VRHELPTITLE: + case mobile_apis::GlobalProperty::VRHELPITEMS: { + sending_type_ = (SendingType::kNoneSend == sending_type_ || + SendingType::kSendVRHelp == sending_type_) + ? SendingType::kSendVRHelp + : SendingType::kSendBoth; + break; + } + default: { + return; + } + } + } + + SDL_LOG_DEBUG("Sending type set to:" << static_cast<uint32_t>(sending_type_)); +} + HelpPromptManagerImpl::SendingType HelpPromptManagerImpl::GetSendingType() const { return sending_type_; @@ -330,12 +364,22 @@ void HelpPromptManagerImpl::CreateVRMsg( GenerateVrItems(out_msg_params, strings::vr_help); if (out_msg_params[strings::vr_help].empty()) { - out_msg_params.erase(strings::vr_help); - app_.reset_vr_help(); - } else { - app_.set_vr_help(out_msg_params[strings::vr_help]); + int32_t index = 0; + + smart_objects::SmartObject so_default_vr_help(smart_objects::SmartType_Map); + so_default_vr_help[strings::position] = index + 1; + so_default_vr_help[strings::text] = app_.name(); + out_msg_params[strings::vr_help][index++] = so_default_vr_help; + + if (app_.vr_synonyms()) { + smart_objects::SmartObject item(smart_objects::SmartType_Map); + item[strings::text] = (*(app_.vr_synonyms())).getElement(0); + item[strings::position] = index + 1; + out_msg_params[strings::vr_help][index++] = item; + } } -} + app_.set_vr_help(out_msg_params[strings::vr_help]); +} // namespace application_manager void HelpPromptManagerImpl::SetSendingType( const smart_objects::SmartObject& msg) { |