From ef19dec3d6425101ed7d6d6c911e70cd9b53cd68 Mon Sep 17 00:00:00 2001 From: jacobkeeler Date: Thu, 24 Oct 2019 17:39:17 -0400 Subject: Fix custom VD key translation for struct arrays --- .../src/custom_vehicle_data_manager_impl.cc | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/components/application_manager/rpc_plugins/vehicle_info_plugin/src/custom_vehicle_data_manager_impl.cc b/src/components/application_manager/rpc_plugins/vehicle_info_plugin/src/custom_vehicle_data_manager_impl.cc index ecd6be207b..f41167cde8 100644 --- a/src/components/application_manager/rpc_plugins/vehicle_info_plugin/src/custom_vehicle_data_manager_impl.cc +++ b/src/components/application_manager/rpc_plugins/vehicle_info_plugin/src/custom_vehicle_data_manager_impl.cc @@ -111,11 +111,21 @@ void CustomVehicleDataManagerImpl::CreateMobileMessageParams( const auto& item_name = schema->name; if (policy_table::VehicleDataItem::kStruct == std::string(schema->type)) { - const auto param = - fill_mobile_msg(input_params[key], SearchMethod::RECURSIVE); - if (!param.empty()) { - out_params[item_name] = param; + auto& input_param = input_params[key]; + if (*schema->array) { + for (size_t i = 0; i < input_param.length(); i++) { + const auto param = + fill_mobile_msg(input_param[i], SearchMethod::RECURSIVE); + out_params[item_name][i] = param; + } continue; + } else { + const auto param = + fill_mobile_msg(input_param, SearchMethod::RECURSIVE); + if (!param.empty()) { + out_params[item_name] = param; + continue; + } } } -- cgit v1.2.1