Merge "Fix setting_about_main_get_battery_string to be platform specific" into 2...
[apps/core/preloaded/settings.git] / src / setting-main.c
index 827d08e..5c448af 100755 (executable)
@@ -432,7 +432,7 @@ static Setting_GenGroupItem_Data * __network_handler(void* data, char* keyStr, c
 {
        setting_main_appdata *ad = (setting_main_appdata *)data;
 
-       Setting_GenGroupItem_Data * obj = setting_create_Gendial_field_groupitem(genlist,
+       ad->data_network = setting_create_Gendial_field_groupitem(genlist,
                                                                       &(ad->itc[GENDIAL_Type_1text_1icon_2]),
                                                                       NULL,
                                                                       setting_main_click_list_network_ug_cb,
@@ -444,7 +444,7 @@ static Setting_GenGroupItem_Data * __network_handler(void* data, char* keyStr, c
                                                                       NULL,
                                                                       NULL);
 
-       return obj;
+       return ad->data_network;
 }
 
 static Setting_GenGroupItem_Data * __nfc_handler(void* data, char* keyStr, char* icon_path, char* ug_args, Evas_Object *genlist)
@@ -996,11 +996,18 @@ static void draw_3rdapp(void* data, char* name, char* pkgname)
 
        if (ad)
        {
+               if (ad->plugin_path)
+               {
+                       free(ad->plugin_path);
+                       ad->plugin_path = NULL;
+               }
+               ad->plugin_path = strdup(fullpath);
+
                setting_create_Gendial_field_groupitem(ad->main_genlist,
                                                           &(ad->itc[GENDIAL_Type_1text_1icon_2]),
                                                           NULL,
                                                           setting_main_click_list_plugin_cb,
-                                                          strdup(fullpath),
+                                                          ad,
                                                           SWALLOW_Type_INVALID,
                                                           IMG_DefaultIcon, NULL,
                                                           0, name, NULL,
@@ -1846,6 +1853,14 @@ static int setting_main_destroy(void *cb)
                evas_object_del(ad->flight_popup);
                ad->flight_popup = NULL;
        }
+
+#if 0
+       if (ad->plugin_node)
+       {
+               setting_plugin_destroy(ad->plugin_node);
+       }
+#endif
+
        setting_view_main.is_create = 0;
        SETTING_TRACE_END;
        return SETTING_RETURN_SUCCESS;
@@ -1927,6 +1942,7 @@ void setting_update_gl_item(void* data)
                        }
 
                        if (item_to_update) {
+                               SETTING_TRACE("gl update [%s], bGlUpdate:%d", _(item_to_update->keyStr), bGlUpdate);
                                if(bGlUpdate) {
                                        SETTING_TRACE("gl update:%d", nDx);
                                        elm_object_item_data_set(item_to_update->item, item_to_update);
@@ -2165,8 +2181,26 @@ setting_main_click_list_plugin_cb(void *data, Evas_Object *obj,
        retm_if(event_info == NULL, "Invalid argument: event info is NULL");
        Elm_Object_Item *item = (Elm_Object_Item *) event_info;
        elm_genlist_item_selected_set(item, EINA_FALSE);
+
+       setting_main_appdata *ad = data;
 #ifdef PLUGIN
-       setting_plugin_load((const char *)data);
+       if (ad->plugin_path)
+       {
+               PluginNode* plugin_node = setting_plugin_create();
+
+               plugin_node->plugin_path = strdup(ad->plugin_path);
+
+               setting_plugin_load(plugin_node, (const char *)ad->plugin_path);
+               ad->plugin_node = (void*)plugin_node;
+
+               #if 0
+               if(ad->plugin_path)
+               {
+                       free(ad->plugin_path);
+                       ad->plugin_path = NULL;
+               }
+               #endif
+       }
 #endif
 }