e_policy_wl/e_service_launcher: use e_policy_appinfo 06/230206/1
authorMinJeong Kim <minjjj.kim@samsung.com>
Mon, 28 Oct 2019 00:37:05 +0000 (09:37 +0900)
committerMinJeong Kim <minjjj.kim@samsung.com>
Wed, 8 Apr 2020 11:18:39 +0000 (20:18 +0900)
Change-Id: I2f389abf9fe71d5e7bca6eb2e00beaeb4d2a04e3
Signed-off-by: MinJeong Kim <minjjj.kim@samsung.com>
src/bin/e_policy_wl.c
src/bin/services/e_service_launcher.c

index 36fb652deef7815b7a619d5f83224d7a1cade4d6..0d08f1e4b099982400c7fd827681c5571d4c79e7 100644 (file)
@@ -3326,15 +3326,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);
 }
 
 // --------------------------------------------------------
@@ -6142,7 +6148,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;
 
@@ -6310,7 +6315,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(new_ec, tzlaunch_splash->appid, tzlaunch_splash->path, SPLASH_GROUP_NAME);
@@ -6354,7 +6358,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(old_ec, tzlaunch_splash->appid, tzlaunch_splash->path, SPLASH_GROUP_NAME);
index ef00b5a27ba285ce6956182a598bc1788571058d..31b44098652ed15ae84d5672b6fa9c75e88eb6e6 100644 (file)
@@ -62,7 +62,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
@@ -1634,6 +1635,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)
 {
@@ -1764,6 +1788,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,
@@ -1781,6 +1809,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);
@@ -2003,24 +2032,3 @@ e_service_launcher_callee_register(E_Client *callee, const char *appid, const ch
           }
      }
 }
-
-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);
-          }
-     }
-}