From: Pawel Wasowski
Date: Fri, 21 Dec 2018 13:16:04 +0000 (+0100)
Subject: Fix ApplicationControlData creation
X-Git-Tag: submit/tizen/20190109.233706^2~3
X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ed40b3693b3104e6ab85346667de537b8ca31aa6;p=platform%2Fcore%2Fapi%2Fwebapi-plugins.git
Fix ApplicationControlData creation
Verification: 100% TCT pass rate
Signed-off-by: Pawel Wasowski
Change-Id: I3dc0a7eba685a0ec7e1e111350f9a68ae3f3296d
---
diff --git a/src/application/application_utils.cc b/src/application/application_utils.cc
index 5b46388b..3fbeeba5 100644
--- a/src/application/application_utils.cc
+++ b/src/application/application_utils.cc
@@ -389,8 +389,17 @@ PlatformResult ApplicationUtils::ApplicationControlDataToServiceExtraData(
value_data.push_back(v.get().c_str());
}
- auto result = app_control_add_extra_data_array(app_control, key.c_str(), value_data.data(),
- value_data.size());
+ int result = APP_CONTROL_ERROR_NONE;
+ /*
+ * Native applications handle single extra data objects and arrays in a different ways,
+ * hence they have to be packed with different native API functions.
+ */
+ if (1 == value_data.size()) {
+ result = app_control_add_extra_data(app_control, key.c_str(), value_data[0]);
+ } else {
+ result = app_control_add_extra_data_array(app_control, key.c_str(), value_data.data(), value_data.size());
+ }
+
if (APP_CONTROL_ERROR_INVALID_PARAMETER == result) {
if (0 == key.length()) {
LoggerD("app_control_add_extra_data_array failed: zero-length key");