summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacob Keeler <jacob.keeler@livioradio.com>2019-10-28 13:28:00 -0400
committerGitHub <noreply@github.com>2019-10-28 13:28:00 -0400
commit9323de6c181cd461ac0f392965c3ae7da12a4646 (patch)
treefa5f2e729fc7bb09addddd7b575d7fc77ccf4a53
parent2ef76219c5923e668fdcc2ad0890d734df6f86a4 (diff)
parentb0353a736a3ffdb1c27a6fd5c7258363e83673f2 (diff)
downloadsdl_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.cc19
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;
+ }
}
}