e_policy_wl/e_service_launcher: use e_policy_appinfo 14/216514/5
authorMinJeong Kim <minjjj.kim@samsung.com>
Mon, 28 Oct 2019 00:37:05 +0000 (09:37 +0900)
committerGwanglim Lee <gl77.lee@samsung.com>
Thu, 7 Nov 2019 05:03:37 +0000 (05:03 +0000)
Change-Id: I7bbec15654f8ee157b8a6fddd8e562924dcf81fc
Signed-off-by: MinJeong Kim <minjjj.kim@samsung.com>
src/bin/e_policy_wl.c
src/bin/services/e_service_launcher.c
src/bin/services/e_service_launcher.h

index fcf0ea4013f12b5266950e33cce15ea4d49b6eb9..7de1af135c337719ff3f26627f93ab05602f3cba 100644 (file)
@@ -3318,15 +3318,21 @@ static void
 _tzpol_iface_cb_set_appid(struct wl_client *client, struct wl_resource *res_tzpol, int32_t pid, const char *appid)
 {
    E_Policy_Wl_Tzpol *tzpol;
+   E_Policy_Appinfo *appinfo;
 
    tzpol = _e_policy_wl_tzpol_get(res_tzpol);
    EINA_SAFETY_ON_NULL_RETURN(tzpol);
 
    ELOGF("TZPOL", "Set appid(%s) pid(%d)", NULL, appid, pid);
 
-   /* TODO: deliver to appinfo */
+   if (!(appinfo = e_policy_appinfo_find_with_appid(appid)))
+     {
+        appinfo = e_policy_appinfo_new();
+        e_policy_appinfo_appid_set(appinfo, appid);
+     }
+   EINA_SAFETY_ON_NULL_RETURN(appinfo);
 
-   e_service_launcher_appid_register(appid, pid);
+   e_policy_appinfo_pid_set(appinfo, pid);
 }
 
 // --------------------------------------------------------
@@ -6097,7 +6103,6 @@ _launchscreen_splash_setup(E_Policy_Wl_Tzlaunch_Splash *splash,
                        len = strlen(p_char) + 1;
                        size -= len;
 
-                       /* TODO : use tizen_launch_appinfo */
                        splash->appid = eina_stringshare_add(p_char);
                        splash->custom_effect_callee = EINA_TRUE;
 
@@ -6265,7 +6270,6 @@ _tzlaunch_splash_iface_cb_owner(struct wl_client *client EINA_UNUSED, struct wl_
 
              e_comp->launchscrns = eina_list_append(e_comp->launchscrns, new_ec);
 
-             /* TODO : use tizen_launch_appinfo */
              if (tzlaunch_splash->custom_effect_callee)
                {
                   e_service_launcher_callee_register(tzlaunch_splash->appid, new_ec);
@@ -6309,7 +6313,6 @@ _tzlaunch_splash_iface_cb_owner(struct wl_client *client EINA_UNUSED, struct wl_
         old_ec->new_client = EINA_FALSE;
         old_ec->icccm.accepts_focus = EINA_TRUE;
 
-        /* TODO : use tizen_launch_appinfo */
         if (tzlaunch_splash->custom_effect_callee)
           {
              e_service_launcher_callee_register(tzlaunch_splash->appid, old_ec);
index e0435006d3fcb81adb39be3bcf28e0cdd1b36615..622b395127c75f88bcfcb3131b677280619ce786 100644 (file)
@@ -57,7 +57,8 @@ struct _E_Service_Launcher_Handler
    Eina_List           *hooks_ec;       //hook list for E_CLIENT_HOOK_*
    Eina_List           *hooks_vis;      //hook list for E_POL_VIS_HOOK_TYPE_*
    Eina_List           *hooks_co;       //hook list for E_COMP_OBJECT_INTERCEPT_HOOK_*
-   Eina_List           *hdlrs_ev;       //handler list for ecore events
+   Eina_List           *hooks_appinfo;  //hook list for E_POLICY_APPINFO_HOOK_*
+   Eina_List           *hdlrs_ev;       //handler list for ecore event
 
    E_Service_Launcher  *runner;         //current runner(running launcher)
    E_Service_Launcher  *pre_runner;     //previous runner
@@ -1566,6 +1567,29 @@ send_stop:
    return EINA_TRUE;
 }
 
+static void _launcher_handler_cb_hook_appinfo_pid_set(const char *appid, pid_t pid, void *data)
+{
+   E_Service_Launcher *runner;
+
+   EINA_SAFETY_ON_NULL_RETURN(appid);
+   EINA_SAFETY_ON_TRUE_RETURN(pid < 0);
+
+   runner = _launcher_handler_launcher_runner_get();
+   if (!runner) return;
+   if (runner->state != LAUNCHER_STATE_MONITORING) return;
+
+   if (runner->target.appid)
+     {
+        if (!e_util_strcmp(appid, runner->target.appid))
+          {
+             runner->target.pid = pid;
+
+             ELOGF("LAUNCHER_SRV", "Register callee pid:%d by appid(%s)",
+                   runner->ec, pid, runner->target.appid);
+          }
+     }
+}
+
 static Eina_Bool
 _launcher_handler_cb_event_client_show(void *data, int type EINA_UNUSED, void *event)
 {
@@ -1696,6 +1720,10 @@ _launcher_handler_create(void)
                            E_COMP_OBJECT_INTERCEPT_HOOK_SHOW_HELPER,
                            _launcher_handler_cb_hook_intercept_show_helper, NULL);
 
+   LAUNCHER_HANDLER_CB_ADD(laundler->hooks_appinfo,
+                           e_policy_appinfo_hook_add,
+                           E_POLICY_APPINFO_HOOK_PID_SET,
+                           _launcher_handler_cb_hook_appinfo_pid_set, NULL);
 
    LAUNCHER_HANDLER_CB_ADD(laundler->hdlrs_ev,
                            ecore_event_handler_add,
@@ -1713,6 +1741,7 @@ _launcher_handler_destroy(E_Service_Launcher_Handler *laundler)
    EINA_SAFETY_ON_NULL_RETURN(laundler);
 
    E_FREE_LIST(laundler->hdlrs_ev, ecore_event_handler_del);
+   E_FREE_LIST(laundler->hooks_appinfo, e_policy_appinfo_hook_del);
    E_FREE_LIST(laundler->hooks_co, e_comp_object_intercept_hook_del);
    E_FREE_LIST(laundler->hooks_ec, e_client_hook_del);
    E_FREE_LIST(laundler->hooks_vis, e_policy_visibility_hook_del);
@@ -1933,24 +1962,3 @@ e_service_launcher_callee_register(const char *appid, E_Client *callee)
           }
      }
 }
-
-EINTERN void
-e_service_launcher_appid_register(const char *appid, pid_t pid)
-{
-   E_Service_Launcher *runner;
-
-   runner = _launcher_handler_launcher_runner_get();
-   EINA_SAFETY_ON_NULL_RETURN(runner);
-   EINA_SAFETY_ON_TRUE_RETURN(runner->state != LAUNCHER_STATE_MONITORING);
-
-   if (runner->target.appid)
-     {
-        if (!e_util_strcmp(appid, runner->target.appid))
-          {
-             runner->target.pid = pid;
-
-             ELOGF("LAUNCHER_SRV", "Register callee pid:%d  by appid(%s)",
-                   runner->ec, pid, runner->target.appid);
-          }
-     }
-}
index f20b706f9a67b5420066d5eae46bf90b4cf7f296..f3e01a3912398c6e913dca881bdeb8d28224c0c0 100644 (file)
@@ -11,6 +11,5 @@ EINTERN void              e_service_launcher_prepare_send_with_shared_widget_inf
 EINTERN void              e_service_launcher_release_shared_widget_launch(E_Client *ec);
 
 EINTERN void              e_service_launcher_callee_register(const char *appid, E_Client *callee);
-EINTERN void              e_service_launcher_appid_register(const char *appid, pid_t pid);
 
 #endif