From: MinJeong Kim Date: Mon, 28 Oct 2019 00:37:05 +0000 (+0900) Subject: e_policy_wl/e_service_launcher: use e_policy_appinfo X-Git-Tag: submit/tizen/20191107.035437~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d46e1f7339dea7becb81f618d0093b8e5a826fbd;p=platform%2Fupstream%2Fenlightenment.git e_policy_wl/e_service_launcher: use e_policy_appinfo Change-Id: I7bbec15654f8ee157b8a6fddd8e562924dcf81fc Signed-off-by: MinJeong Kim --- diff --git a/src/bin/e_policy_wl.c b/src/bin/e_policy_wl.c index fcf0ea4013..7de1af135c 100644 --- a/src/bin/e_policy_wl.c +++ b/src/bin/e_policy_wl.c @@ -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); diff --git a/src/bin/services/e_service_launcher.c b/src/bin/services/e_service_launcher.c index e0435006d3..622b395127 100644 --- a/src/bin/services/e_service_launcher.c +++ b/src/bin/services/e_service_launcher.c @@ -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); - } - } -} diff --git a/src/bin/services/e_service_launcher.h b/src/bin/services/e_service_launcher.h index f20b706f9a..f3e01a3912 100644 --- a/src/bin/services/e_service_launcher.h +++ b/src/bin/services/e_service_launcher.h @@ -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