diff options
author | Dmitrii Trunov (GitHub) <dtrunov@luxoft.com> | 2016-10-12 22:18:19 +0300 |
---|---|---|
committer | Anton Hrytsevich (GitHub) <AGritsevich@users.noreply.github.com> | 2016-10-12 22:18:19 +0300 |
commit | 6d6394c3ebabd21edfa72944bd207cf8dbaa1828 (patch) | |
tree | 4f1d4df7dea369ed2da0a01e73afb25c91225777 | |
parent | 7767e65c2009c0c5e9bdd219d1d936a0cfd2e4ef (diff) | |
download | sdl_core-6d6394c3ebabd21edfa72944bd207cf8dbaa1828.tar.gz |
Fix/sdl responds add command with incorrect info (#898)
* Fix problem with merging info
Closes defect [APPLINK-28758](https://adc.luxoft.com/jira/browse/APPLINK-28758)
5 files changed, 30 insertions, 11 deletions
diff --git a/src/components/application_manager/src/commands/mobile/add_command_request.cc b/src/components/application_manager/src/commands/mobile/add_command_request.cc index 6c361c2ff4..a76f537a24 100644 --- a/src/components/application_manager/src/commands/mobile/add_command_request.cc +++ b/src/components/application_manager/src/commands/mobile/add_command_request.cc @@ -550,12 +550,26 @@ const std::string AddCommandRequest::GenerateMobileResponseInfo() { // In case if ui_result_ is UNSUPPORTED_RESOURCE ui_info should be on the // first place // Other way order is doesn't matter - if (hmi_apis::Common_Result::UNSUPPORTED_RESOURCE == vr_result_) { - return MergeInfos(vr_info_, ui_info_); + + HmiInterfaces& hmi_interfaces = application_manager_.hmi_interfaces(); + HmiInterfaces::InterfaceState ui_interface_state = + hmi_interfaces.GetInterfaceState(HmiInterfaces::HMI_INTERFACE_UI); + + HmiInterfaces::InterfaceState vr_interface_state = + hmi_interfaces.GetInterfaceState(HmiInterfaces::HMI_INTERFACE_VR); + + if ((ui_interface_state == HmiInterfaces::STATE_NOT_AVAILABLE) && + (vr_interface_state != HmiInterfaces::STATE_NOT_AVAILABLE) && + !vr_info_.empty()) { + return vr_info_; } - if (hmi_apis::Common_Result::UNSUPPORTED_RESOURCE == ui_result_) { - return MergeInfos(ui_info_, vr_info_); + + if ((vr_interface_state == HmiInterfaces::STATE_NOT_AVAILABLE) && + (ui_interface_state != HmiInterfaces::STATE_NOT_AVAILABLE) && + !ui_info_.empty()) { + return ui_info_; } + return MergeInfos(ui_info_, vr_info_); } diff --git a/src/components/application_manager/src/commands/mobile/alert_request.cc b/src/components/application_manager/src/commands/mobile/alert_request.cc index 60113508f5..48eb45f9ce 100644 --- a/src/components/application_manager/src/commands/mobile/alert_request.cc +++ b/src/components/application_manager/src/commands/mobile/alert_request.cc @@ -224,11 +224,13 @@ bool AlertRequest::PrepareResponseParameters( tts_alert_info.is_unsupported_resource && HmiInterfaces::STATE_AVAILABLE == tts_alert_info.interface_state) { tts_response_info_ = "Unsupported phoneme type sent in a prompt"; - info = MergeInfos(ui_response_info_, tts_response_info_); + info = MergeInfos( + ui_alert_info, ui_response_info_, tts_alert_info, tts_response_info_); return result; } result_code = PrepareResultCodeForResponse(ui_alert_info, tts_alert_info); - info = MergeInfos(ui_response_info_, tts_response_info_); + info = MergeInfos( + ui_alert_info, ui_response_info_, tts_alert_info, tts_response_info_); return result; } diff --git a/src/components/application_manager/src/commands/mobile/perform_audio_pass_thru_request.cc b/src/components/application_manager/src/commands/mobile/perform_audio_pass_thru_request.cc index 28c7918f22..9f5fd937f9 100644 --- a/src/components/application_manager/src/commands/mobile/perform_audio_pass_thru_request.cc +++ b/src/components/application_manager/src/commands/mobile/perform_audio_pass_thru_request.cc @@ -203,11 +203,11 @@ bool PerformAudioPassThruRequest::PrepareResponseParameters( HmiInterfaces::STATE_AVAILABLE == tts_perform_info.interface_state) { result_code = mobile_apis::Result::WARNINGS; tts_info_ = "Unsupported phoneme type sent in a prompt"; - info = MergeInfos(ui_info_, tts_info_); + info = MergeInfos(ui_perform_info, ui_info_, tts_perform_info, tts_info_); return result; } result_code = PrepareResultCodeForResponse(ui_perform_info, tts_perform_info); - info = MergeInfos(ui_info_, tts_info_); + info = MergeInfos(ui_perform_info, ui_info_, tts_perform_info, tts_info_); return result; } diff --git a/src/components/application_manager/src/commands/mobile/perform_interaction_request.cc b/src/components/application_manager/src/commands/mobile/perform_interaction_request.cc index 34ec2b4fe2..d094c3d80e 100644 --- a/src/components/application_manager/src/commands/mobile/perform_interaction_request.cc +++ b/src/components/application_manager/src/commands/mobile/perform_interaction_request.cc @@ -935,7 +935,8 @@ void PerformInteractionRequest::SendBothModeResponse( PrepareResultCodeForResponse(ui_perform_info, vr_perform_info); const smart_objects::SmartObject* response_params = msg_param.empty() ? NULL : &msg_param; - std::string info = MergeInfos(ui_info_, vr_info_); + std::string info = + MergeInfos(ui_perform_info, ui_info_, vr_perform_info, vr_info_); DisablePerformInteraction(); SendResponse(result, perform_interaction_result_code, diff --git a/src/components/application_manager/src/commands/mobile/set_global_properties_request.cc b/src/components/application_manager/src/commands/mobile/set_global_properties_request.cc index d198c115d5..fcfea5e744 100644 --- a/src/components/application_manager/src/commands/mobile/set_global_properties_request.cc +++ b/src/components/application_manager/src/commands/mobile/set_global_properties_request.cc @@ -292,12 +292,14 @@ bool SetGlobalPropertiesRequest::PrepareResponseParameters( (tts_properties_info.is_unsupported_resource)) { result_code = mobile_apis::Result::WARNINGS; tts_response_info_ = "Unsupported phoneme type sent in a prompt"; - info = MergeInfos(tts_response_info_, ui_response_info_); + info = MergeInfos(tts_properties_info, + tts_response_info_, + ui_properties_info, + ui_response_info_); return result; } result_code = PrepareResultCodeForResponse(ui_properties_info, tts_properties_info); - info = MergeInfos(tts_properties_info, tts_response_info_, ui_properties_info, |