_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);
}
// --------------------------------------------------------
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;
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);
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);
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
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)
{
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,
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);
}
}
}
-
-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);
- }
- }
-}