fix privacy set status bug
authorshy81.shin <shy81.shin@samsung.com>
Mon, 15 Apr 2013 10:45:35 +0000 (19:45 +0900)
committershy81.shin <shy81.shin@samsung.com>
Mon, 15 Apr 2013 10:45:35 +0000 (19:45 +0900)
setting-privacy/include/setting-privacy.h
setting-privacy/src/setting-privacy-service.c

index 4ee1a78..c242bc8 100755 (executable)
@@ -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;
 };
 
index 9f938bb..79db48b 100755 (executable)
@@ -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);
 }