summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjacobkeeler <jacob.keeler@livioradio.com>2019-10-24 17:39:17 -0400
committerjacobkeeler <jacob.keeler@livioradio.com>2019-10-24 17:39:17 -0400
commitef19dec3d6425101ed7d6d6c911e70cd9b53cd68 (patch)
tree4f2067a833c40b7fc529dde0fede10bee93c157a
parent7c9b576774d78b3690eb27655ea525f7d4474a87 (diff)
downloadsdl_core-ef19dec3d6425101ed7d6d6c911e70cd9b53cd68.tar.gz
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.cc18
1 files 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;
+ }
}
}