Support send viewer state feature in multi-viewer 02/136902/6 submit/tizen_3.0/20170704.045321
authorHyunho Kang <hhstark.kang@samsung.com>
Mon, 3 Jul 2017 11:08:04 +0000 (20:08 +0900)
committerHyunho Kang <hhstark.kang@samsung.com>
Tue, 4 Jul 2017 04:47:02 +0000 (13:47 +0900)
Multiple viewer like AOD viewer can send viewer state
to watch application

Change-Id: I351a8aba6a4d1daf48c0305c96e6eb79e5834482
Signed-off-by: Hyunho Kang <hhstark.kang@samsung.com>
watch-control/src/control.c

index 2b7f7259015f675d538b0279e8be32edb8f1f1f3..62b4acb0681f5908d2b732c471b8f06d602cafb0 100644 (file)
@@ -164,6 +164,8 @@ API int watch_manager_set_resource_id(int resource_id)
 {
        screen_connector_toolkit_evas_ops ops;
        screen_connector_toolkit_evas_h handle;
+       char *appid = NULL;
+       int ret;
 
        ops.added_cb = __screen_connector_toolkit_evas_added_cb;
        ops.removed_cb = __screen_connector_toolkit_evas_removed_cb;
@@ -174,6 +176,18 @@ API int watch_manager_set_resource_id(int resource_id)
                return -1;
        }
 
+       ret = aul_screen_connector_get_appid_by_surface_id_request(resource_id,
+               &appid);
+       if (ret == AUL_R_OK) {
+               if (__watch_appid)
+                       free(__watch_appid);
+               __watch_appid = appid;
+       } else {
+               screen_connector_toolkit_evas_remove(handle);
+               _E("Fail to get appid of %d", resource_id);
+               return -1;
+       }
+
        return 0;
 }
 
@@ -247,6 +261,9 @@ API int watch_manager_get_app_control(const char *app_id, app_control_h *app_con
                bundle_add_str(b, AUL_K_WIDGET_VIEWER, viewer_appid);
        }
 
+       if (__watch_appid)
+               free(__watch_appid);
+
        __watch_appid = strdup(app_id);
 
        return 0;
@@ -422,6 +439,11 @@ static int __change_viewer_visibility(bool visible)
                return -1;
        }
 
+       if (__watch_appid == NULL) {
+               _E("watch is not added");
+               return -1;
+       }
+
        if (visible)
                state = WATCH_CONTROL_RESUME;
        else