Fix setting watch control 85/146285/2
authorHwankyu Jhun <h.jhun@samsung.com>
Sun, 27 Aug 2017 23:16:27 +0000 (08:16 +0900)
committerHwankyu Jhun <h.jhun@samsung.com>
Sun, 27 Aug 2017 23:47:27 +0000 (08:47 +0900)
The type of the bundle data can be an array.

Change-Id: I9ea154e5f1b26ab0d4b667ef21bff856d5e78951
Signed-off-by: Hwankyu Jhun <h.jhun@samsung.com>
widget_viewer_sdk/src/main.c

index 3804fb7..ba6af3e 100644 (file)
@@ -655,10 +655,26 @@ static void _run_widget(char *widget_id, app_control_h service, char *lazy_loade
        }
 }
 
+static void __copy_bundle(bundle *src_b, bundle *dst_b, const char *key)
+{
+       const char **str_arr;
+       char *str = NULL;
+       int len = 0;
+
+       if (bundle_get_type(src_b, key) == BUNDLE_TYPE_STR_ARRAY) {
+               str_arr = bundle_get_str_array(src_b, key, &len);
+               if (str_arr)
+                       bundle_add_str_array(dst_b, key, str_arr, len);
+       } else {
+               bundle_get_str(src_b, key, &str);
+               if (str)
+                       bundle_add_str(dst_b, key, str);
+       }
+}
+
 static void __set_bundle_for_watchapp(bundle *app_control_b, bundle *b)
 {
        char *sdk_util = NULL;
-       char *sdk_util_arg = NULL;
        char *value = NULL;
        char buf[32];
 
@@ -701,16 +717,12 @@ static void __set_bundle_for_watchapp(bundle *app_control_b, bundle *b)
        bundle_get_str(app_control_b, AUL_K_SDK, &sdk_util);
        if (sdk_util != NULL) {
                bundle_add_str(b, AUL_K_SDK, sdk_util);
-               if (strcmp(sdk_util, SDK_VALGRIND) == 0) {
-                       bundle_get_str(app_control_b, DLP_K_VALGRIND_ARG, &sdk_util_arg);
-                       if (sdk_util_arg)
-                               bundle_add_str(b, DLP_K_VALGRIND_ARG, sdk_util_arg);
-               } else if (strcmp(sdk_util, SDK_DEBUG) == 0) {
-                       bundle_get_str(app_control_b, DLP_K_DEBUG_ARG, &sdk_util_arg);
-                       if (sdk_util_arg)
-                               bundle_add_str(b, DLP_K_DEBUG_ARG, sdk_util_arg);
-               }
-               DbgPrint("util %s arg %s", sdk_util, sdk_util_arg);
+               if (strcmp(sdk_util, SDK_VALGRIND) == 0)
+                       __copy_bundle(app_control_b, b, DLP_K_VALGRIND_ARG);
+               else if (strcmp(sdk_util, SDK_DEBUG) == 0)
+                       __copy_bundle(app_control_b, b, DLP_K_DEBUG_ARG);
+
+               DbgPrint("util %s", sdk_util);
        }
 }