4 * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd.
6 * Contact: MyoungJune Park <mj2004.park@samsung.com>
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
12 * http://www.apache.org/licenses/LICENSE-2.0
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
21 #include <setting-phone-ticker-notification.h>
23 #define SUPPORT_TWITTER 0
24 #define SUPPORT_FACEBOOK 0
25 static void get_3rd_applist(void *data, Evas_Object *scroller);
27 static char *get_appname(char *keyname);
29 static int setting_phone_ticker_notfication_create(void *cb);
30 static int setting_phone_ticker_notfication_destroy(void *cb);
31 static int setting_phone_ticker_notfication_update(void *cb);
32 static int setting_phone_ticker_notfication_cleanup(void *cb);
34 setting_view setting_view_phone_ticker_notification = {
35 .create = setting_phone_ticker_notfication_create,
36 .destroy = setting_phone_ticker_notfication_destroy,
37 .update = setting_phone_ticker_notfication_update,
38 .cleanup = setting_phone_ticker_notfication_cleanup,
41 /* ***************************************************
45 ***************************************************/
46 static char *get_email_subtext()
48 char ret_str[MAX_SPECIALIZITION_LEN] = { 0, };
50 vconf_get_bool(VCONFKEY_SETAPPL_STATE_TICKER_NOTI_EMAIL_BOOL, ¬i);
52 vconf_get_bool(VCONFKEY_TICKER_NOTI_SOUND_EMAIL, &sound);
54 vconf_get_bool(VCONFKEY_TICKER_NOTI_DISPLAY_CONTENT_EMAIL, &display);
56 vconf_get_bool(VCONFKEY_TICKER_NOTI_BADGE_EMAIL, &badge);
60 g_strlcat(ret_str, _("IDS_ST_BODY_NOTIFICATION"), MAX_SPECIALIZITION_LEN);
66 g_strlcat(ret_str, ", ", MAX_SPECIALIZITION_LEN);
67 g_strlcat(ret_str, _(KeyStr_Sounds), MAX_SPECIALIZITION_LEN);
73 g_strlcat(ret_str, ", ", MAX_SPECIALIZITION_LEN);
74 g_strlcat(ret_str, _("IDS_ST_BODY_DISPLAY_CONTENTS"), MAX_SPECIALIZITION_LEN);
80 g_strlcat(ret_str, ", ", MAX_SPECIALIZITION_LEN);
81 g_strlcat(ret_str, _("IDS_COM_BODY_BADGE_ABB"), MAX_SPECIALIZITION_LEN);
84 return (char *)g_strdup(ret_str);
86 static char *get_message_subtext()
88 char ret_str[MAX_SPECIALIZITION_LEN] = { 0, };
90 vconf_get_bool(VCONFKEY_SETAPPL_STATE_TICKER_NOTI_MESSAGES_BOOL, ¬i);
92 vconf_get_bool(VCONFKEY_TICKER_NOTI_SOUND_MESSAGES, &sound);
94 vconf_get_bool(VCONFKEY_TICKER_NOTI_DISPLAY_CONTENT_MESSASGES, &display);
96 vconf_get_bool(VCONFKEY_TICKER_NOTI_BADGE_MESSAGES, &badge);
100 g_strlcat(ret_str, _("IDS_ST_BODY_NOTIFICATION"), MAX_SPECIALIZITION_LEN);
106 g_strlcat(ret_str, ", ", MAX_SPECIALIZITION_LEN);
107 g_strlcat(ret_str, _(KeyStr_Sounds), MAX_SPECIALIZITION_LEN);
113 g_strlcat(ret_str, ", ", MAX_SPECIALIZITION_LEN);
114 g_strlcat(ret_str, _("IDS_ST_BODY_DISPLAY_CONTENTS"), MAX_SPECIALIZITION_LEN);
120 g_strlcat(ret_str, ", ", MAX_SPECIALIZITION_LEN);
121 g_strlcat(ret_str, _("IDS_COM_BODY_BADGE_ABB"), MAX_SPECIALIZITION_LEN);
125 return (char *)g_strdup(ret_str);
128 static char *get_im_subtext()
130 char ret_str[MAX_SPECIALIZITION_LEN] = { 0, };
132 vconf_get_bool(VCONFKEY_SETAPPL_STATE_TICKER_NOTI_IM_BOOL, ¬i);
134 vconf_get_bool(VCONFKEY_TICKER_NOTI_SOUND_IM, &sound);
136 vconf_get_bool(VCONFKEY_TICKER_NOTI_DISPLAY_CONTENT_IM, &display);
138 vconf_get_bool(VCONFKEY_TICKER_NOTI_BADGE_IM, &badge);
142 g_strlcat(ret_str, _("IDS_ST_BODY_NOTIFICATION"), MAX_SPECIALIZITION_LEN);
148 g_strlcat(ret_str, ", ", MAX_SPECIALIZITION_LEN);
149 g_strlcat(ret_str, _(KeyStr_Sounds), MAX_SPECIALIZITION_LEN);
155 g_strlcat(ret_str, ", ", MAX_SPECIALIZITION_LEN);
156 g_strlcat(ret_str, _("IDS_ST_BODY_DISPLAY_CONTENTS"), MAX_SPECIALIZITION_LEN);
162 g_strlcat(ret_str, ", ", MAX_SPECIALIZITION_LEN);
163 g_strlcat(ret_str, _("IDS_COM_BODY_BADGE_ABB"), MAX_SPECIALIZITION_LEN);
167 return (char *)g_strdup(ret_str);
170 static char *get_facebook_subtext()
172 char ret_str[MAX_SPECIALIZITION_LEN] = { 0, };
174 vconf_get_bool(VCONFKEY_SETAPPL_STATE_TICKER_NOTI_FACEBOOK_BOOL, ¬i);
176 /*vconf_get_bool(VCONFKEY_TICKER_NOTI_SOUND_FACEBOOK, &sound); */
178 vconf_get_bool(VCONFKEY_TICKER_NOTI_DISPLAY_CONTENT_FACEBOOK, &display);
180 vconf_get_bool(VCONFKEY_TICKER_NOTI_BADGE_FACEBOOK, &badge);
184 g_strlcat(ret_str, _("IDS_ST_BODY_NOTIFICATION"), MAX_SPECIALIZITION_LEN);
191 /* g_strlcat(ret_str, ", ", MAX_SPECIALIZITION_LEN); */
192 /* g_strlcat(ret_str, _(KeyStr_Sounds), MAX_SPECIALIZITION_LEN); */
198 g_strlcat(ret_str, ", ", MAX_SPECIALIZITION_LEN);
199 g_strlcat(ret_str, _("IDS_ST_BODY_DISPLAY_CONTENTS"), MAX_SPECIALIZITION_LEN);
205 g_strlcat(ret_str, ", ", MAX_SPECIALIZITION_LEN);
206 g_strlcat(ret_str, _("IDS_COM_BODY_BADGE_ABB"), MAX_SPECIALIZITION_LEN);
210 return (char *)g_strdup(ret_str);
212 static char *get_twitter_subtext()
214 char ret_str[MAX_SPECIALIZITION_LEN] = { 0, };
216 vconf_get_bool(VCONFKEY_SETAPPL_STATE_TICKER_NOTI_TWITTER_BOOL, ¬i);
218 /*vconf_get_bool(VCONFKEY_TICKER_NOTI_SOUND_TWITTER, &sound); */
220 vconf_get_bool(VCONFKEY_TICKER_NOTI_DISPLAY_CONTENT_TWITTER, &display);
222 vconf_get_bool(VCONFKEY_TICKER_NOTI_BADGE_TWITTER, &badge);
226 g_strlcat(ret_str, _("IDS_ST_BODY_NOTIFICATION"), MAX_SPECIALIZITION_LEN);
233 /* g_strlcat(ret_str, ", ", MAX_SPECIALIZITION_LEN); */
234 /* g_strlcat(ret_str, _(KeyStr_Sounds), MAX_SPECIALIZITION_LEN); */
240 g_strlcat(ret_str, ", ", MAX_SPECIALIZITION_LEN);
241 g_strlcat(ret_str, _("IDS_ST_BODY_DISPLAY_CONTENTS"), MAX_SPECIALIZITION_LEN);
247 g_strlcat(ret_str, ", ", MAX_SPECIALIZITION_LEN);
248 g_strlcat(ret_str, _("IDS_COM_BODY_BADGE_ABB"), MAX_SPECIALIZITION_LEN);
252 return (char *)g_strdup(ret_str);
256 static int setting_phone_ticker_notfication_create(void *cb)
259 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
260 SettingPhoneUG *ad = (SettingPhoneUG *) cb;
262 Evas_Object *scroller;
264 /* scroller is a genlist */
266 setting_create_layout_navi_bar_genlist(ad->win_main_layout,
268 setting_gettext(KeyStr_EventsNotifications),
269 dgettext("sys_string", "IDS_COM_BODY_BACK"),
271 setting_phone_noti_click_softkey_back_cb,
274 elm_genlist_mode_set(scroller, ELM_LIST_COMPRESS);
277 Elm_Object_Item *item;
279 item = elm_genlist_item_append(scroller, &itc_seperator, NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
280 elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
283 /*setting_get_bool_slp_key(BOOL_SLP_SETTING_TICKER_NOTI_EMAIL, &value, &err);
285 status = setting_gettext("IDS_COM_BODY_ON_M_STATUS");
287 status = setting_gettext("IDS_COM_BODY_OFF_M_STATUS");
289 Setting_GenGroupItem_Data *data_last_item;
291 status = get_email_subtext();
292 data_last_item = ad->data_n_email =
293 setting_create_Gendial_field_groupitem(scroller,
294 &itc_multiline_2text,
296 setting_phone_noti_mouse_up_Gendial_list_cb,
298 SWALLOW_Type_INVALID,
301 value, /* chk_status*/
303 status, /* sub_desk*/
304 setting_phone_noti_mouse_up_chk_btn_cb);
306 if (ad->data_n_email) {
307 ad->data_n_email->userdata = ad;
308 ad->data_n_email->group_style = SETTING_GROUP_STYLE_TOP;
310 SETTING_TRACE_ERROR("ad->data_n_email is NULL");
314 /*setting_get_bool_slp_key(BOOL_SLP_SETTING_TICKER_NOTI_MESSAGES, &value, &err);
316 status = setting_gettext("IDS_COM_BODY_ON_M_STATUS");
318 status = setting_gettext("IDS_COM_BODY_OFF_M_STATUS");
321 status = get_message_subtext();
322 data_last_item = ad->data_n_msg =
323 setting_create_Gendial_field_groupitem(scroller,
324 &itc_multiline_2text,
326 setting_phone_noti_mouse_up_Gendial_list_cb,
328 SWALLOW_Type_INVALID,
331 value, /* chk_status*/
332 "IDS_ST_BODY_MESSAGE",
333 status, /* sub_desk*/
334 setting_phone_noti_mouse_up_chk_btn_cb);
337 if (ad->data_n_msg) {
338 ad->data_n_msg->userdata = ad;
339 ad->data_n_msg->group_style = SETTING_GROUP_STYLE_CENTER;
341 SETTING_TRACE_ERROR("ad->data_n_msg is NULL");
345 /* [UI] Instant messenger */
346 /*setting_get_bool_slp_key(BOOL_SLP_SETTING_TICKER_NOTI_IM, &value, &err);
348 status = setting_gettext("IDS_COM_BODY_ON_M_STATUS");
350 status = setting_gettext("IDS_COM_BODY_OFF_M_STATUS");
353 status = get_im_subtext();
354 data_last_item = ad->data_n_im =
355 setting_create_Gendial_field_groupitem(scroller,
356 &itc_multiline_2text,
358 setting_phone_noti_mouse_up_Gendial_list_cb,
360 SWALLOW_Type_INVALID,
363 value, /* chk_status*/
364 "IDS_COM_BODY_INSTANT_MESSENGER",
365 status, /* sub_desk*/
366 setting_phone_noti_mouse_up_chk_btn_cb);
369 ad->data_n_im->userdata = ad;
370 ad->data_n_im->group_style = SETTING_GROUP_STYLE_BOTTOM;
372 SETTING_TRACE_ERROR("ad->data_n_im is NULL");
377 /*setting_get_bool_slp_key(BOOL_SLP_SETTING_TICKER_NOTI_FACEBOOK, &value, &err);
379 status = setting_gettext("IDS_COM_BODY_ON_M_STATUS");
381 status = setting_gettext("IDS_COM_BODY_OFF_M_STATUS");
384 status = get_facebook_subtext();
386 data_last_item = ad->data_n_fb =
387 setting_create_Gendial_field_groupitem(scroller,
388 &itc_multiline_2text,
390 setting_phone_noti_mouse_up_Gendial_list_cb,
392 SWALLOW_Type_INVALID,
395 value, /* chk_status*/
397 status, /* sub_desk*/
398 setting_phone_noti_mouse_up_chk_btn_cb);
401 ad->data_n_fb->userdata = ad;
403 SETTING_TRACE_ERROR("ad->data_n_msg is NULL");
409 /*setting_get_bool_slp_key(BOOL_SLP_SETTING_TICKER_NOTI_TWITTER, &value, &err);
411 status = setting_gettext("IDS_COM_BODY_ON_M_STATUS");
413 status = setting_gettext("IDS_COM_BODY_OFF_M_STATUS");
416 status = get_twitter_subtext();
417 data_last_item = ad->data_n_twt =
418 setting_create_Gendial_field_groupitem(scroller,
419 &itc_multiline_2text,
421 setting_phone_noti_mouse_up_Gendial_list_cb,
423 SWALLOW_Type_INVALID,
426 value, /* chk_status*/
428 status, /* sub_desk*/
429 setting_phone_noti_mouse_up_chk_btn_cb);
431 if (ad->data_n_twt) {
432 ad->data_n_twt->userdata = ad;
434 SETTING_TRACE_ERROR("ad->data_n_msg is NULL");
437 /* [UI] list of 3rd party apps */
439 get_3rd_applist(ad, scroller);
441 /*data_last_item->group_style = SETTING_GROUP_STYLE_BOTTOM; */
442 setting_genlist_item_groupstyle_set(data_last_item, SETTING_GROUP_STYLE_BOTTOM);
444 setting_view_phone_ticker_notification.is_create = 1;
445 return SETTING_RETURN_SUCCESS;
448 static int setting_phone_ticker_notfication_destroy(void *cb)
452 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
454 SettingPhoneUG *ad = (SettingPhoneUG *) cb;
456 if (ad->ly_ticker != NULL) {
457 evas_object_del(ad->ly_ticker);
458 setting_view_phone_ticker_notification.is_create = 0;
461 return SETTING_RETURN_SUCCESS;
464 static int setting_phone_ticker_notfication_update(void *cb)
468 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
470 SettingPhoneUG *ad = (SettingPhoneUG *) cb;
471 if (ad->data_n_email) {
472 G_FREE(ad->data_n_email->sub_desc);
473 ad->data_n_email->sub_desc = get_email_subtext();
474 elm_genlist_item_fields_update(ad->data_n_email->item, "*", ELM_GENLIST_ITEM_FIELD_TEXT);
476 if (ad->data_n_msg) {
477 G_FREE(ad->data_n_msg->sub_desc);
478 ad->data_n_msg->sub_desc = get_message_subtext();
479 elm_genlist_item_fields_update(ad->data_n_msg->item, "*", ELM_GENLIST_ITEM_FIELD_TEXT);
482 G_FREE(ad->data_n_im->sub_desc);
483 ad->data_n_im->sub_desc = get_im_subtext();
484 elm_genlist_item_fields_update(ad->data_n_im->item, "*", ELM_GENLIST_ITEM_FIELD_TEXT);
487 G_FREE(ad->data_n_fb->sub_desc);
488 ad->data_n_fb->sub_desc = get_facebook_subtext();
489 elm_genlist_item_fields_update(ad->data_n_fb->item, "*", ELM_GENLIST_ITEM_FIELD_TEXT);
491 if (ad->data_n_twt) {
492 G_FREE(ad->data_n_twt->sub_desc);
493 ad->data_n_twt->sub_desc = get_twitter_subtext();
494 elm_genlist_item_fields_update(ad->data_n_twt->item, "*", ELM_GENLIST_ITEM_FIELD_TEXT);
497 if (ad->ly_ticker != NULL) {
498 evas_object_show(ad->ly_ticker);
501 return SETTING_RETURN_SUCCESS;
504 static int setting_phone_ticker_notfication_cleanup(void *cb)
508 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
510 SettingPhoneUG *ad = (SettingPhoneUG *) cb;
512 if (ad->ly_ticker != NULL) {
513 evas_object_hide(ad->ly_ticker);
516 return SETTING_RETURN_SUCCESS;
519 /* ***************************************************
523 ***************************************************/
525 /* ***************************************************
529 ***************************************************/
531 static void setting_phone_noti_mouse_up_chk_btn_cb(void *data, Evas_Object *obj,
539 setting_phone_noti_mouse_up_Gendial_list_cb(void *data, Evas_Object *obj,
544 setting_retm_if(data == NULL, "Data parameter is NULL");
545 retm_if(event_info == NULL, "Invalid argument: event info is NULL");
547 SettingPhoneUG *ad = (SettingPhoneUG *) data;
549 Elm_Object_Item *item = (Elm_Object_Item *) event_info;
550 elm_genlist_item_selected_set(item, 0);
551 Setting_GenGroupItem_Data *list_item =
552 (Setting_GenGroupItem_Data *) elm_object_item_data_get(item);
554 setting_update_gl_item_chk_status(list_item, !(list_item->chk_status));
556 if (0 == safeStrCmp(list_item->keyStr, "IDS_ST_BODY_DISPLAY_CONTENTS")) {
557 ad->sel_string = "IDS_ST_BODY_DISPLAY_CONTENTS";
559 } else if (0 == safeStrCmp(list_item->keyStr, "IDS_ST_BODY_MESSAGE")) {
560 ad->sel_string = "IDS_ST_BODY_MESSAGE";
562 } else if (0 == safeStrCmp(list_item->keyStr, "IDS_ST_BODY_EMAIL")) {
563 ad->sel_string = "IDS_ST_BODY_EMAIL";
567 else if (0 == safeStrCmp(list_item->keyStr, "IDS_COM_BODY_INSTANT_MESSENGER")) {
568 ad->sel_string = "IDS_COM_BODY_INSTANT_MESSENGER";
569 } else if (0 == safeStrCmp(list_item->keyStr, KeyStr_Twitter)) {
570 ad->sel_string = KeyStr_Twitter;
571 } else if (0 == safeStrCmp(list_item->keyStr, KeyStr_Facebook)) {
572 ad->sel_string = KeyStr_Facebook;
576 /* go to 'details' page */
577 setting_view_change(&setting_view_phone_ticker_notification, &setting_view_phone_ticker_notification_details, ad);
581 setting_phone_noti_click_softkey_back_cb(void *data, Evas_Object *obj,
585 retm_if(data == NULL, "Data parameter is NULL");
587 SettingPhoneUG *ad = (SettingPhoneUG *) data;
589 /* Send destroy request */
590 ug_destroy_me(ad->ug);
596 setting_phone_noti_3rd_apps_chk_btn_cb(void *data, Evas_Object *obj,
601 retm_if(data == NULL, "Data parameter is NULL");
602 Setting_GenGroupItem_Data *list_item =
603 (Setting_GenGroupItem_Data *) data;
604 /* SettingPhoneUG *ad = list_item->userdata; */
605 list_item->chk_status = elm_check_state_get(obj); /* for genlist update status */
607 if (0 != vconf_set_int(list_item->sub_desc, list_item->chk_status)) {
608 SETTING_TRACE("Set vconf[%s] failed", list_item->sub_desc);
609 /* restore if failed */
610 setting_update_gl_item_chk_status(list_item, !(list_item->chk_status));
612 SETTING_TRACE("Set vconf[%s] success", list_item->sub_desc);
615 ret = vconf_set_int(list_item->sub_desc, list_item->chk_status);
617 SETTING_TRACE("Set vconf[%s] failed",
618 list_item->sub_desc);
620 /* TODO : find alternatives */
621 /* ret = heynoti_publish ("setting_event_noti_3rdapp_changed"); */
622 /* SETTING_TRACE("heynoti publish ret = %d ", ret); */
624 /* SETTING_TRACE_ERROR ("heynoti_publish error - [%d] failed", ret); */
629 SETTING_TRACE("heynoti publish ret = %d ", ret);
630 /* restore if failed */
631 setting_update_gl_item_chk_status(list_item, !(list_item->chk_status));
637 setting_phone_noti_3rd_apps_mouse_up_Gendial_list_cb(void *data,
642 setting_retm_if(data == NULL, "Data parameter is NULL");
644 retm_if(event_info == NULL, "Invalid argument: event info is NULL");
645 Elm_Object_Item *item = (Elm_Object_Item *) event_info;
647 elm_genlist_item_selected_set(item, 0);
648 Setting_GenGroupItem_Data *list_item =
649 (Setting_GenGroupItem_Data *) elm_object_item_data_get(item);
651 setting_update_gl_item_chk_status(list_item, !(list_item->chk_status));
655 * 3rd party apps list
657 static void get_3rd_applist(void *data, Evas_Object *scroller)
659 SettingPhoneUG *ad = (SettingPhoneUG *) data;
661 keylist_t *kl = NULL;
662 keynode_t *temp_node = NULL;
664 kl = vconf_keylist_new();
667 while ((temp_node = vconf_keylist_nextnode(kl))) {
669 if (VCONF_TYPE_INT == vconf_keynode_get_type(temp_node)) {
670 SETTING_TRACE("key = %s, value = %d",
671 vconf_keynode_get_name(temp_node),
672 vconf_keynode_get_int(temp_node));
674 int val = vconf_keynode_get_int(temp_node);
677 char *vconf_key = vconf_keynode_get_name(temp_node); /* key */
679 /* get app name with app_pkg_name and AIL */
681 char *app_name = get_appname(vconf_key);
683 app_name = strdup("UNTITLED");
688 Elm_Object_Item *item = NULL;
689 item = elm_genlist_item_append(scroller, &itc_seperator, NULL, NULL,
690 ELM_GENLIST_ITEM_NONE, NULL, NULL);
693 vconf_keylist_free(kl);
695 setting_retm_if(item == NULL, "elm_genlist_item_append failed");
696 elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
700 Setting_GenGroupItem_Data *obj =
701 setting_create_Gendial_field_def(scroller,
704 setting_phone_noti_3rd_apps_mouse_up_Gendial_list_cb,
706 SWALLOW_Type_1TOGGLE,
710 setting_phone_noti_3rd_apps_chk_btn_cb);
712 obj->sub_desc = (char *)g_strdup(vconf_key);
713 ad->app_list = eina_list_append(ad->app_list, obj); /* resources are freed at itc structure. */
715 SETTING_TRACE_ERROR("obj is NULL");
724 SETTING_TRACE("Unknown Type\n");
727 vconf_keylist_free(kl);
731 static char *strrstr(const char *str, const char *strSearch)
733 char *ptr, *last = NULL;
735 while ((ptr = strstr(ptr, strSearch)))
741 static char *package_get_name(char *package, int *err_ref)
743 ail_appinfo_h handle;
747 char *ret_str = NULL;
751 ret = ail_get_appinfo(package, &handle);
752 if (ret != AIL_ERROR_OK) {
753 err = AIL_ERROR_FAIL;
756 ret = ail_appinfo_get_str(handle, AIL_PROP_NAME_STR, &str);
757 if (ret != AIL_ERROR_OK) {
758 err = AIL_ERROR_FAIL;
762 ret_str = strdup(str);
764 SETTING_TRACE_ERROR("str is NULL");
766 SETTING_TRACE("1 Package[%s] : %s", package, ret_str);
768 ret = ail_destroy_appinfo(handle);
769 if (ret != AIL_ERROR_OK) {
770 err = AIL_ERROR_FAIL;
774 SETTING_TRACE("2 Package[%s] : %s", package, ret_str);
779 /* input : package name*/
781 /* outout : app name*/
782 static char *get_appname(char *keyname)
786 char *pkg_name = strrstr(keyname, "/");
788 char *ret2 = package_get_name(pkg_name, &err);
791 SETTING_TRACE("app name : %s", ret2);
794 return strdup("UNTITLED");