Add id exist check logic for get app control 10/140310/5 submit/tizen_3.0/20170725.224529
authorHyunho Kang <hhstark.kang@samsung.com>
Mon, 24 Jul 2017 11:09:50 +0000 (20:09 +0900)
committerHyunho Kang <hhstark.kang@samsung.com>
Tue, 25 Jul 2017 10:21:28 +0000 (10:21 +0000)
Change-Id: I1012fb99ea15eb6bca6ca234b185c68989979512
Signed-off-by: Hyunho Kang <hhstark.kang@samsung.com>
watch-control/src/control.c

index b287bcb..b7da2c5 100644 (file)
@@ -296,6 +296,11 @@ API int watch_manager_get_app_control(const char *app_id, app_control_h *app_con
        bundle *b = NULL;
        screen_connector_toolkit_evas_ops ops;
 
+       if (app_id == NULL) {
+               _E("Invalid param");
+               return -1;
+       }
+
        app_control_create(app_control);
        app_control_set_app_id(*app_control, app_id);
 
@@ -306,10 +311,21 @@ API int watch_manager_get_app_control(const char *app_id, app_control_h *app_con
 
        app_control_set_operation(*app_control, APP_CONTROL_OPERATION_MAIN);
 
-       ops.added_cb = __screen_connector_toolkit_evas_added_cb;
-       ops.removed_cb = __screen_connector_toolkit_evas_removed_cb;
-       ops.updated_cb = __screen_connector_toolkit_evas_updated_cb;
-       __toolkit = screen_connector_toolkit_evas_add(&ops, (char *)app_id, SCREEN_CONNECTOR_SCREEEN_TYPE_WATCH, NULL);
+       if (__toolkit == NULL ||
+                       (__watch_appid != NULL &&
+                       strcmp(__watch_appid, app_id) != 0)) {
+
+               _D("cur %s, new %s", __watch_appid, app_id);
+               if (screen_connector_toolkit_is_exist((char *)__watch_appid,
+                               SCREEN_CONNECTOR_SCREEEN_TYPE_WATCH))
+                       screen_connector_toolkit_evas_remove(__toolkit);
+               ops.added_cb = __screen_connector_toolkit_evas_added_cb;
+               ops.removed_cb = __screen_connector_toolkit_evas_removed_cb;
+               ops.updated_cb = __screen_connector_toolkit_evas_updated_cb;
+               __toolkit = screen_connector_toolkit_evas_add(&ops,
+                               (char *)app_id,
+                               SCREEN_CONNECTOR_SCREEEN_TYPE_WATCH, NULL);
+       }
 
        app_control_to_bundle(*app_control, &b);
        if (b) {