Call service_state_changed_cb on client side 17/183417/2
authorWonnam Jang <wn.jang@samsung.com>
Thu, 5 Jul 2018 07:52:42 +0000 (16:52 +0900)
committerWonnam Jang <wn.jang@samsung.com>
Thu, 5 Jul 2018 07:58:21 +0000 (16:58 +0900)
Change-Id: If72acefe89371e7880f2aa3353296489b5629571
Signed-off-by: Wonnam Jang <wn.jang@samsung.com>
client/vc.c
client/vc_mgr.c
client/vc_mgr_client.c
client/vc_widget.c
server/vcd_server.c

index 14bdf8b06110c4cf0d94705b91f38878588bce5e..1152606a23b5766a938d7c53bab5ee558ab6886f 100644 (file)
@@ -511,8 +511,25 @@ static Eina_Bool __vc_connect_daemon(void *data)
                }
 
                /* Set service state */
+               vc_service_state_e previous_service_state;
+               vc_client_get_service_state(g_vc, &previous_service_state);
+
                vc_client_set_service_state(g_vc, (vc_service_state_e)service_state);
 
+               vc_service_state_changed_cb service_changed_callback = NULL;
+               void* user_data = NULL;
+               vc_client_get_service_state_changed_cb(g_vc, &service_changed_callback, &user_data);
+
+               if (NULL != service_changed_callback) {
+                       vc_client_use_callback(g_vc);
+                       service_changed_callback(previous_service_state, service_state, user_data);
+                       vc_client_not_use_callback(g_vc);
+                       SLOG(LOG_DEBUG, TAG_VCC, "Service state changed callback is called");
+               } else {
+                       SLOG(LOG_WARN, TAG_VCC, "[WARNING] Service state changed callback is null");
+               }
+
+               /* Register focus handler */
                g_focus_in_handler = ecore_event_handler_add(ECORE_WL_EVENT_FOCUS_IN, __focus_changed_cb, NULL);
                g_focus_out_handler = ecore_event_handler_add(ECORE_WL_EVENT_FOCUS_OUT, __focus_changed_cb, NULL);
 
index ab8d584f1af268c5f99c9a501120432c9a06cdb8..ff628fc85ea56047c9cb46b3c6a9138c02dbe4b7 100644 (file)
@@ -396,18 +396,33 @@ static Eina_Bool __vc_mgr_connect_daemon(void *data)
        }
 
        /* Set service state */
+       vc_service_state_e previous_service_state;
+       vc_mgr_client_get_service_state(g_vc_m, &previous_service_state);
+
        vc_mgr_client_set_service_state(g_vc_m, (vc_service_state_e)service_state);
 
+       vc_service_state_changed_cb service_changed_callback = NULL;
+       void* user_data = NULL;
+       vc_mgr_client_get_service_state_changed_cb(g_vc_m, &service_changed_callback, &user_data);
+
+       if (NULL != service_changed_callback) {
+               vc_mgr_client_use_callback(g_vc_m);
+               service_changed_callback(previous_service_state, service_state, user_data);
+               vc_mgr_client_not_use_callback(g_vc_m);
+               SLOG(LOG_DEBUG, TAG_VCM, "Service state changed callback is called");
+       } else {
+               SLOG(LOG_WARN, TAG_VCM, "[WARNING] Service state changed callback is null");
+       }
+
        /* Set foreground */
        vc_mgr_client_set_foreground(g_vc_m, foreground, true);
 
        SLOG(LOG_ERROR, TAG_VCM, "[SUCCESS] Connected daemon");
 
+       /* Set client state */
        vc_mgr_client_set_client_state(g_vc_m, VC_STATE_READY);
 
        vc_state_changed_cb changed_callback = NULL;
-       void* user_data = NULL;
-
        vc_mgr_client_get_state_changed_cb(g_vc_m, &changed_callback, &user_data);
 
        vc_state_e current_state;
index 18120ed9bebdcd7edb7bde40fd98e531f2146003..f6b96036f30d4491fc214c06af27e372f36477a2 100644 (file)
@@ -198,7 +198,7 @@ int vc_mgr_client_create(vc_h* vc)
        client->result_event = -1;
        client->result_text = NULL;
 
-       client->service_state = 0;
+       client->service_state = VC_SERVICE_STATE_NONE;
 
        client->internal_state = VC_INTERNAL_STATE_NONE;
 
index 0dcca65435f5e8f8fe1dd8ae20ebc7ff27881942..eb54aa7530700337646885528a827a4ecb975066 100644 (file)
@@ -395,10 +395,28 @@ static Eina_Bool __vc_widget_connect_daemon(void *data)
                return EINA_TRUE;
        }
 
+       /* Set service state */
+       vc_service_state_e previous_service_state;
+       vc_widget_client_get_service_state(vc_w, &previous_service_state);
+
        vc_widget_client_set_service_state(vc_w, (vc_service_state_e)service_state);
 
+       vc_service_state_changed_cb service_changed_callback = NULL;
+       void* user_data = NULL;
+       vc_widget_client_get_service_state_changed_cb(vc_w, &service_changed_callback, &user_data);
+
+       if (NULL != service_changed_callback) {
+               vc_widget_client_use_callback(vc_w);
+               service_changed_callback(previous_service_state, service_state, user_data);
+               vc_widget_client_not_use_callback(vc_w);
+               SLOG(LOG_DEBUG, TAG_VCW, "Service state changed callback is called");
+       } else {
+               SLOG(LOG_WARN, TAG_VCW, "[WARNING] Service state changed callback is null");
+       }
+
        SLOG(LOG_INFO, TAG_VCW, "@@@ [Widget] Connect daemon");
 
+       /* Get app focus and set foreground */
        char appid[1024] = {'\0',};
        aul_app_get_appid_bypid(getpid(), appid, sizeof(appid) - 1);
 
@@ -411,10 +429,10 @@ static Eina_Bool __vc_widget_connect_daemon(void *data)
                }
        }
 
+       /* Set client state */
        vc_widget_client_set_state(vc_w, VC_STATE_READY);
 
        vc_state_changed_cb changed_callback = NULL;
-       void* user_data;
 
        vc_widget_client_get_state_changed_cb(vc_w, &changed_callback, &user_data);
 
index d5bf69b52ad408dace0cb74617ee43e7988afc1f..8bdf090e2191113ca34e3b8510b6abd9be972b7a 100644 (file)
@@ -1217,7 +1217,7 @@ int vcd_initialize(vce_request_callback_s *callback)
        vcd_client_manager_unset();
 
        vcd_config_set_service_state(VCD_STATE_READY);
-       vcdc_send_service_state(VCD_STATE_READY);
+//     vcdc_send_service_state(VCD_STATE_READY);
 
        /* Set timer cleanup client all */
        g_check_client_timer = ecore_timer_add(CLIENT_CLEAN_UP_TIME, vcd_cleanup_client_all, NULL);