summaryrefslogtreecommitdiff
path: root/src/components/application_manager/src/help_prompt_manager_impl.cc
diff options
context:
space:
mode:
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.cc54
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) {