diff options
author | Jacob Keeler <jacob.keeler@livioradio.com> | 2019-10-28 13:28:00 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-10-28 13:28:00 -0400 |
commit | 9323de6c181cd461ac0f392965c3ae7da12a4646 (patch) | |
tree | fa5f2e729fc7bb09addddd7b575d7fc77ccf4a53 | |
parent | 2ef76219c5923e668fdcc2ad0890d734df6f86a4 (diff) | |
parent | b0353a736a3ffdb1c27a6fd5c7258363e83673f2 (diff) | |
download | sdl_core-9323de6c181cd461ac0f392965c3ae7da12a4646.tar.gz |
Merge pull request #3103 from smartdevicelink/fix/custom_vehicle_data_array_key_translation
Fix custom VD key translation for struct arrays
-rw-r--r-- | src/components/application_manager/rpc_plugins/vehicle_info_plugin/src/custom_vehicle_data_manager_impl.cc | 19 |
1 files changed, 15 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..9df6d922aa 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,22 @@ 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 && + input_param.getType() == smart_objects::SmartType_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; + } } } |