From e60e16860f1ae07a53000223eefb0c084d997219 Mon Sep 17 00:00:00 2001 From: "shy81.shin" Date: Mon, 15 Apr 2013 19:45:35 +0900 Subject: [PATCH] fix privacy set status bug --- setting-privacy/include/setting-privacy.h | 7 ++-- setting-privacy/src/setting-privacy-service.c | 51 +++++++++++++++++++++------ 2 files changed, 43 insertions(+), 15 deletions(-) diff --git a/setting-privacy/include/setting-privacy.h b/setting-privacy/include/setting-privacy.h index 4ee1a78..c242bc8 100755 --- a/setting-privacy/include/setting-privacy.h +++ b/setting-privacy/include/setting-privacy.h @@ -41,17 +41,16 @@ struct _SettingPrivacyUG { Evas_Object *bg; Evas_Object *ly_main; Evas_Object *navi_bar; // for navigation effect - Evas_Object *genlist_privacy; //privacy genlist + Evas_Object *genlist_privacy; //privacy genlist Evas_Object *scroller; - + Eina_List* privacy_check_list; // UI elements - view main Setting_GenGroupItem_Data *privacy_service; - + Elm_Genlist_Item_Class itc_2text_2; Elm_Genlist_Item_Class itc_1text_1icon; - //Eina_List* item_check_list; //check list setting_view *view_to_load; }; diff --git a/setting-privacy/src/setting-privacy-service.c b/setting-privacy/src/setting-privacy-service.c index 9f938bb..79db48b 100755 --- a/setting-privacy/src/setting-privacy-service.c +++ b/setting-privacy/src/setting-privacy-service.c @@ -48,6 +48,40 @@ void _init_privacy_list(void *data) SETTING_TRACE_DEBUG("ad->privacy_check_list %d items", eina_list_count(ad->privacy_check_list)); } +static int _set_privacy(void* data, int chk_status) +{ + Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *) data; + SettingPrivacyUG *ad = NULL; + ad = list_item->userdata; + int r=0; + + setting_privacy_privacyinfo_t* node = NULL; + if (ad->privacy_check_list != NULL) { + + Eina_List *l = NULL; + EINA_LIST_FOREACH(ad->privacy_check_list, l, node) { + if (node->privacy_id != NULL) + { + if ( strcmp(list_item->keyStr, node->privacy_name) == 0) + { + node->enabled = chk_status; + SETTING_TRACE("SELECTED ITEM, list_item->keyStr[%s] : privacy_id[%s], privacy_name[%s] -- (state:%d) ",list_item->keyStr , node->privacy_id, node->privacy_name,node->enabled); + + // #case 1 + SETTING_TRACE("ad->pkg_id : %s, node->privacy_id:%s, list_item->chk_status:%d", ad->pkg_id, node->privacy_id, list_item->chk_status); + r = privacy_manager_set_package_privacy(ad->pkg_id, node->privacy_id, list_item->chk_status); + if(r!=0) + SETTING_TRACE("privacy_manager_set_package_privacy : faied [%d]", r); + } + } else { + SETTING_TRACE(" SELECTED ITEM is NULL - excpetion case"); + } + } + } + + return r; +} + static int _get_privacy_appinfo_by_pkgid(void* data) { SETTING_TRACE_BEGIN; @@ -175,7 +209,7 @@ static void _privacy_info_cb(const privacy_info_h* privacy_info, void* data) return SETTING_RETURN_FAIL; } - //ad->privacy_check_list = eina_list_append(ad->privacy_check_list, app_info); + ad->privacy_check_list = eina_list_append(ad->privacy_check_list, app_info); //FREE(privacy_id); //FREE(privacy_name); @@ -365,10 +399,9 @@ static void setting_privacy_service_list_Gendial_mouse_up_cb(void *data, Evas_Ob elm_check_state_set(list_item->eo_check, list_item->chk_status); /* privacy set */ - SETTING_TRACE("ad->pkg_id : %s, ad->privacy_id:%s, list_item->chk_status:%d", ad->pkg_id, ad->privacy_id, list_item->chk_status); - int r = privacy_manager_set_package_privacy(ad->pkg_id, ad->privacy_id, list_item->chk_status); + int r = _set_privacy(list_item, list_item->chk_status); if(r!=0) - SETTING_TRACE("privacy_manager_set_package_privacy : faied [%d]", r); + SETTING_TRACE("_set_privacy : faied [%d]", r); } static void setting_privacy_service_list_Gendial_chk_btn_cb(void *data, Evas_Object *obj, @@ -376,11 +409,8 @@ static void setting_privacy_service_list_Gendial_chk_btn_cb(void *data, Evas_Obj { SETTING_TRACE_BEGIN; /* error check */ - //retm_if(data == NULL, "Data parameter is NULL"); - //SettingPrivacyUG *ad = (SettingPrivacyUG *) data; - SettingPrivacyUG *ad = NULL; - retm_if(data == NULL, "Data parameter is NULL"); + SettingPrivacyUG *ad = NULL; Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *) data; ad = list_item->userdata; @@ -388,9 +418,8 @@ static void setting_privacy_service_list_Gendial_chk_btn_cb(void *data, Evas_Obj list_item->chk_status = elm_check_state_get(list_item->eo_check); /* privacy set */ - SETTING_TRACE("ad->pkg_id : %s, ad->privacy_id:%s, list_item->chk_status:%d", ad->pkg_id, ad->privacy_id, list_item->chk_status); - int r = privacy_manager_set_package_privacy(ad->pkg_id, ad->privacy_id, list_item->chk_status); + int r = _set_privacy(list_item, list_item->chk_status); if(r!=0) - SETTING_TRACE("privacy_manager_set_package_privacy : faied [%d]", r); + SETTING_TRACE("_set_privacy : faied [%d]", r); } -- 2.7.4