#include <ail.h>
#include <time.h>
#include <setting-main.h>
-#include <setting-plugin.h>
#include <wifi.h>
+#include <tethering.h>
#include <bluetooth.h>
#include <nfc.h>
+#include <pkgmgr-info.h>
+
+#include <setting-common-plugin.h>
+
#define PLUGIN_PREFIX "/opt"
typedef struct _DrawAppInfo
int value, err;
setting_get_int_slp_key(INT_SLP_SETTING_WIFI_STATUS, &value, &err);
- char* pa_wifi = get_pa_Wi_Fi_on_off_str();
+ //char* pa_wifi = get_pa_Wi_Fi_on_off_str();
ad->data_wifi = setting_create_Gendial_field_groupitem(genlist,
- &(ad->itc[GENDIAL_Type_2text_2icon_3]),
+ &(ad->itc[GENDIAL_Type_1text_2icon]),
NULL,
setting_main_click_list_ex_ug_cb,
ug_args,
NULL,
value,
keyStr,
- pa_wifi,
+ NULL,
setting_main_click_list_wifi_mode_cb);
__BACK_POINTER_SET(ad->data_wifi);
- G_FREE(pa_wifi);
+ if(ad->data_wifi)
+ ad->data_wifi->userdata = ad;
+ //G_FREE(pa_wifi);
return ad->data_wifi;
}
setting_get_int_slp_key(INT_SLP_SETTING_BT_STATUS, &value, &err);
ad->data_bt = setting_create_Gendial_field_groupitem(genlist,
- &(ad->itc[GENDIAL_Type_2text_2icon_3]),
+ &(ad->itc[GENDIAL_Type_1text_2icon]),
NULL,
setting_main_click_list_ex_ug_cb,
ug_args,
NULL,
value,
keyStr,
- get_BT_on_off_str
- (),
+ NULL,
setting_main_click_list_bt_mode_cb);
__BACK_POINTER_SET(ad->data_bt);
+ if(ad->data_bt)
+ ad->data_bt->userdata = ad;
return ad->data_bt;
}
setting_get_bool_slp_key(BOOL_SLP_SETTING_NFC_STATUS, &value, &err);
ad->data_nfc = setting_create_Gendial_field_groupitem(genlist,
- &(ad->itc[GENDIAL_Type_2text_2icon_3]),
+ &(ad->itc[GENDIAL_Type_1text_2icon]),
NULL,
setting_main_click_list_ex_ug_cb,
ug_args,
NULL,
value,
keyStr,
- get_NFC_on_off_str(),
+ NULL,
setting_main_click_list_nfc_mode_cb);
__BACK_POINTER_SET(ad->data_nfc);
+ if(ad->data_nfc)
+ ad->data_nfc->userdata = ad;
#if DISABLED_CODE
setting_create_Gendial_field_def(genlist, &itc_multiline_text, NULL,
__load_applications_menu_list(ad, Cfg_Item_Pos_Level_All);
}
-
bool is_3rdapp_installed_setting_cfg(char* pkgname)
{
SETTING_TRACE_BEGIN;
return result_opt;
}
+static int __pkg_list_cb (const pkgmgrinfo_pkginfo_h handle, void *data)
+{
+ SETTING_TRACE_BEGIN;
+
+ DrawAppInfo* pinfo = (DrawAppInfo*)data;
+
+ int ret = -1;
+ char *pkgid;
+ ret = pkgmgr_pkginfo_get_pkgid(handle, &pkgid);
+ if(ret < 0) {
+ SETTING_TRACE(">>>>> pkgmgr_pkginfo_get_pkgid() failed\n");
+ }
+
+ char *label;
+ ret = pkgmgr_pkginfo_get_label(handle, &label);
+ if(ret < 0) {
+ SETTING_TRACE(">>>>> pkgmgr_pkginfo_get_pkg_name() failed\n");
+ }
+ SETTING_TRACE(" 3rd party - pkg id : ----> %s, pkg name ----> %s ", pkgid, label);
+
+ // appid - 1234567890.AppSetting2
+ // pkgid - 1234567890
+ char *name = pkgid;
+
+ if (is_3rdapp_installed_setting_cfg(pkgid) == true )
+ {
+ pinfo->ncount++;
+ // draw code here
+ if (pinfo->draw_app != NULL)
+ {
+ SETTING_TRACE(">>> pkg name --> %s ", pkgid);
+ pinfo->draw_app(pinfo->data, strdup(label)/* appname*/, strdup(pkgid)/* pkg_name*/);
+ }
+ }
+
+ SETTING_TRACE_END;
+ return 0;
+
+}
+
+static void get_3rdapp_installed_setting_list()
+{
+ SETTING_TRACE_BEGIN;
+ int val = 1;
+
+ pkgmgrinfo_pkginfo_filter_h handle;
+ pkgmgrinfo_pkginfo_filter_create(&handle);
+ pkgmgrinfo_pkginfo_filter_add_bool(handle, PMINFO_PKGINFO_PROP_PACKAGE_APPSETTING, val);
+
+ pkgmgrinfo_pkginfo_filter_foreach_pkginfo(handle, __pkg_list_cb, NULL);
+}
+
+
+
/**
* @param data
* ex) name : AppSetting4
}
/**
- *
- * ail code here
- */
-static ail_cb_ret_e __download_apps_cb(ail_appinfo_h ai, void* data)
-{
- DrawAppInfo* pinfo = (DrawAppInfo*)data;
- char *id;
-
- if (AIL_ERROR_OK == ail_appinfo_get_str(ai, AIL_PROP_PACKAGE_STR, &id))
- {
- SETTING_TRACE(" 3rd party - app name : ----> %s ", id);
- }
-
- ail_appinfo_h handle;
-
- char *name = NULL;
- char *icon = NULL;
- int installed_time;
- bool nodisplay = false;
- bool removable = true;
-
- if (AIL_ERROR_OK == ail_package_get_appinfo(id, &handle))
- {
- if (AIL_ERROR_OK != ail_appinfo_get_str(handle, AIL_PROP_NAME_STR, &name))
- SETTING_TRACE("cannot get name");
-
- if (AIL_ERROR_OK != ail_appinfo_get_str(handle, AIL_PROP_ICON_STR, &icon))
- SETTING_TRACE("cannot get icon");
-
- if (AIL_ERROR_OK != ail_appinfo_get_bool(handle, AIL_PROP_NODISPLAY_BOOL, &nodisplay))
- SETTING_TRACE("cannot get nodisplay");
-
- if (AIL_ERROR_OK != ail_appinfo_get_bool(handle, AIL_PROP_X_SLP_REMOVABLE_BOOL, &removable))
- SETTING_TRACE("cannot get removable");
-
- if (AIL_ERROR_OK != ail_appinfo_get_int(handle, AIL_PROP_X_SLP_INSTALLEDTIME_INT, &installed_time))
- SETTING_TRACE("cannot get installed_time");
-
- //SETTING_TRACE("installed_time = %d ", installed_time);
- if (installed_time != 0 && is_3rdapp_installed_setting_cfg(id) == true )
- {
- SETTING_TRACE(" 3rd party - app name : ----> id : %s --- name : %s ", id, name);
- SETTING_TRACE(" 3rd party - icon : ----> %s ", icon);
- SETTING_TRACE(" 3rd party - nodisplay : ----> %d ", nodisplay);
- pinfo->ncount++;
-
- // draw code here
- if (pinfo->draw_app != NULL)
- {
- SETTING_TRACE(">>> pkg name --> %s ", id);
- pinfo->draw_app(pinfo->data, strdup(name)/* appname*/, strdup(id)/* pkg_name*/);
- }
- }
- }
- SETTING_TRACE_END;
- return AIL_CB_RET_CONTINUE;
-}
-
-
-/**
* get 3rd party applist from AIL & searching dir/file by the defined rule
* @param data ad
* if data is NULL --> just get how many items are there
setting_main_appdata *ad = data;
- int ncount = 0;
- ail_filter_h f;
+ int val = 1;
+ pkgmgrinfo_pkginfo_filter_h handle;
+ pkgmgrinfo_pkginfo_filter_create(&handle);
+ pkgmgrinfo_pkginfo_filter_add_bool(handle, PMINFO_PKGINFO_PROP_PACKAGE_APPSETTING, val);
+
+ int ncount = 0;
DrawAppInfo* pinfo = (DrawAppInfo*)malloc(sizeof(DrawAppInfo));
if (pinfo) {
pinfo->ncount = 0;
pinfo->draw_app = draw_3rdapp;
pinfo->data = ad;
+ pkgmgrinfo_pkginfo_filter_foreach_pkginfo(handle, __pkg_list_cb, pinfo);
- if (ail_filter_new(&f) == AIL_ERROR_OK)
- {
- if (ail_filter_add_bool(f, AIL_PROP_NODISPLAY_BOOL, false) != AIL_ERROR_OK)
- {
- SETTING_TRACE("ail filter error");
-
- free(pinfo);
- pinfo = NULL;
-
- ail_filter_destroy(f);
- return 0;
- }
-
- ail_filter_list_appinfo_foreach(f, __download_apps_cb, pinfo);
- //---------------------------------------------------------------
- ail_filter_destroy(f);
- }
ncount = pinfo->ncount;
free(pinfo);
pinfo = NULL;
}
+ if (handle) {
+ if (PMINFO_R_OK == pkgmgrinfo_pkginfo_filter_destroy(handle)) {
+ SETTING_TRACE("remove pkginfo successfully");
+ } else {
+ SETTING_TRACE("failed removing pkginfo");
+ }
+ handle = NULL;
+ }
+
SETTING_TRACE_END;
return ncount;
}
break;
default:
/* do nothing */
+ SETTING_TRACE_DEBUG("default");
+ if(ad->data_flight)
+ setting_set_bool_slp_key(BOOL_SLP_SETTING_FLIGHT_MODE,
+ ad->data_flight->chk_status, &err);
break;
}
return;
ad->flight_popup = NULL;
}
-#if 0
- if (ad->plugin_node)
- {
- setting_plugin_destroy(ad->plugin_node);
- }
-#endif
-
evas_object_smart_callback_del(ad->main_genlist, "realized", __gl_realized);
setting_dbus_handler_fini();
setting_main_appdata *ad = data;
-
ad->plugin_path = strdup(selected_item->sub_desc);
SETTING_TRACE(" >> SELECTED plugin name : %s \n", ad->plugin_path);
- setting_dbus_handler_init( ad );
+ PluginNode* plugin_node = setting_plugin_create(g_main_ad->navibar_main, g_main_ad->win_main);
+ plugin_node->plugin_path = strdup(selected_item->sub_desc);
+ ad->plugin_node = plugin_node; // the selected plugin name
- #if 1
- PluginNode* plugin_node = setting_plugin_create(ad);
- plugin_node->plugin_path = strdup(ad->plugin_path);
- setting_plugin_load(plugin_node, (const char *)plugin_node->plugin_path);
+ setting_drawer_list_init();
+ setting_dbus_handler_init( ad->plugin_node );
- ad->plugin_node = plugin_node; // the selected plugin name
- #endif
+ setting_plugin_load(plugin_node, (const char *)plugin_node->plugin_path);
}
/**
SETTING_TRACE_END;
}
-void __alternate_wifi_mode(Evas_Object *check)
+static void __tethering_disabled_cb(tethering_error_e error, tethering_type_e type, tethering_disabled_cause_e code, void *data)
{
- SETTING_TRACE_BEGIN;
int ret;
- Eina_Bool status = elm_check_state_get(check);
- SETTING_TRACE("wifi mode status : %d", status);
+
+ if (data) {
+ tethering_h th = (tethering_h)data;
+ tethering_destroy(th);
+ }
ret = wifi_initialize();
setting_retm_if(ret < 0, "*** [ERR] wifi_initialize() ***");
-
- if (status) {
- ret = wifi_activate(NULL, NULL);
- setting_retm_if(ret < 0,
- "*** [ERR] wifi_activate() ***");
- } else {
- ret = wifi_deactivate(NULL, NULL);
- setting_retm_if(ret < 0,
- "*** [ERR] wifi_deactivate() ***");
+ ret = wifi_activate(NULL, NULL);
+ if (ret < 0) {
+ wifi_deinitialize();
}
+ setting_retm_if(ret < 0, "*** [ERR] wifi_activate() ***");
+
ret = wifi_deinitialize();
setting_retm_if(ret < 0, "*** [ERR] wifi_deinitialize() ***");
+}
+
+static void __tethering_turn_off_resp_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ setting_retm_if(NULL == obj, "NULL == obj");
+ int response_type = btn_type(obj);
+ Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *)data;
+
+ if (g_main_ad)
+ {
+ evas_object_del(g_main_ad->popup);
+ g_main_ad->popup = NULL;
+ }
+
+ if (POPUP_RESPONSE_OK == response_type)
+ {
+ tethering_h th = NULL;
+ tethering_error_e ret = TETHERING_ERROR_NONE;
+
+ ret = tethering_create(&th);
+ if (ret != TETHERING_ERROR_NONE) {
+ list_item->swallow_type = SWALLOW_Type_1ICON_1RADIO;
+ list_item->chk_status = EINA_FALSE;
+ elm_object_item_data_set(list_item->item, list_item);
+ elm_genlist_item_update(list_item->item);
+ }
+
+ ret = tethering_set_disabled_cb(th, TETHERING_TYPE_WIFI, __tethering_disabled_cb, th);
+ if (ret != TETHERING_ERROR_NONE) {
+ list_item->swallow_type = SWALLOW_Type_1ICON_1RADIO;
+ list_item->chk_status = EINA_FALSE;
+ elm_object_item_data_set(list_item->item, list_item);
+ elm_genlist_item_update(list_item->item);
+
+ tethering_destroy(th);
+ return;
+ }
+
+ tethering_disable(th, TETHERING_TYPE_WIFI);
+ }
+ else if (POPUP_RESPONSE_CANCEL == response_type)
+ {
+ list_item->swallow_type = SWALLOW_Type_1ICON_1RADIO;
+ list_item->chk_status = EINA_FALSE;
+ elm_object_item_data_set(list_item->item, list_item);
+ elm_genlist_item_update(list_item->item);
+ }
+}
+
+void __alternate_wifi_mode(Setting_GenGroupItem_Data *list_item, Evas_Object *check)
+{
+ SETTING_TRACE_BEGIN;
+ int ret;
+ Eina_Bool status = elm_check_state_get(check);
+ SETTING_TRACE("wifi mode status : %d", status);
+
+ int value, err;
+
+ if (tethering_is_enabled(NULL, TETHERING_TYPE_WIFI) == TRUE) {
+ list_item->swallow_type = SWALLOW_Type_1ICON_1PROCESS;
+ elm_object_item_data_set(list_item->item, list_item);
+ elm_genlist_item_update(list_item->item);
+
+ g_main_ad->popup = setting_create_popup_with_btn(list_item,
+ g_main_ad->win_main, NULL,
+ _("Connecting Wi-Fi will turn off Mobile hotspot. Continue?"),
+ __tethering_turn_off_resp_cb,
+ 0, 2, _("IDS_COM_SK_OK"), _("IDS_COM_SK_CANCEL"));
+ } else {
+ ret = wifi_initialize();
+ if (ret < 0) {
+ setting_get_int_slp_key(INT_SLP_SETTING_WIFI_STATUS, &value, &err);
+ list_item->chk_status = value;
+ elm_object_item_data_set(list_item->item, list_item);
+ elm_genlist_item_update(list_item->item);
+ }
+ setting_retm_if(ret < 0, "*** [ERR] wifi_initialize() ***");
+
+ if (status) {
+ ret = wifi_activate(NULL, NULL);
+ if (ret < 0) {
+ setting_get_int_slp_key(INT_SLP_SETTING_WIFI_STATUS, &value, &err);
+ list_item->chk_status = value;
+ elm_object_item_data_set(list_item->item, list_item);
+ elm_genlist_item_update(list_item->item);
+ wifi_deinitialize();
+ }
+ setting_retm_if(ret < 0, "*** [ERR] wifi_activate() ***");
+ } else {
+ ret = wifi_deactivate(NULL, NULL);
+ if (ret < 0) {
+ setting_get_int_slp_key(INT_SLP_SETTING_WIFI_STATUS, &value, &err);
+ list_item->chk_status = value;
+ elm_object_item_data_set(list_item->item, list_item);
+ elm_genlist_item_update(list_item->item);
+ wifi_deinitialize();
+ }
+ setting_retm_if(ret < 0, "*** [ERR] wifi_deactivate() ***");
+ }
+ ret = wifi_deinitialize();
+ if (ret < 0) {
+ setting_get_int_slp_key(INT_SLP_SETTING_WIFI_STATUS, &value, &err);
+ list_item->chk_status = value;
+ elm_object_item_data_set(list_item->item, list_item);
+ elm_genlist_item_update(list_item->item);
+ }
+ setting_retm_if(ret < 0, "*** [ERR] wifi_deinitialize() ***");
+
+ list_item->swallow_type = SWALLOW_Type_1ICON_1PROCESS;
+ elm_object_item_data_set(list_item->item, list_item);
+ elm_genlist_item_update(list_item->item);
+
+ }
SETTING_TRACE_END;
}
-void __alternate_bt_mode(Evas_Object *check)
+void __alternate_bt_mode(Setting_GenGroupItem_Data *list_item, Evas_Object *check)
{
SETTING_TRACE_BEGIN;
int ret;
Eina_Bool status = elm_check_state_get(check);
SETTING_TRACE("bt mode status : %d", status);
+ int value, err;
+
ret = bt_initialize();
+ if (ret < 0) {
+ setting_get_int_slp_key(INT_SLP_SETTING_BT_STATUS, &value, &err);
+ list_item->chk_status = value;
+ elm_object_item_data_set(list_item->item, list_item);
+ elm_genlist_item_update(list_item->item);
+ }
setting_retm_if(ret < 0, "*** [ERR] bt_initialize() ***");
if (status) {
ret = bt_adapter_enable();
- setting_retm_if(ret < 0,
- "*** [ERR] bt_adapter_enable() ***");
+ if (ret < 0) {
+ setting_get_int_slp_key(INT_SLP_SETTING_BT_STATUS, &value, &err);
+ list_item->chk_status = value;
+ elm_object_item_data_set(list_item->item, list_item);
+ elm_genlist_item_update(list_item->item);
+ bt_deinitialize();
+ }
+ setting_retm_if(ret < 0, "*** [ERR] bt_adapter_enable() ***");
} else {
ret = bt_adapter_disable();
- setting_retm_if(ret < 0,
- "*** [ERR] bt_adapter_disable() ***");
+ if (ret < 0) {
+ setting_get_int_slp_key(INT_SLP_SETTING_BT_STATUS, &value, &err);
+ list_item->chk_status = value;
+ elm_object_item_data_set(list_item->item, list_item);
+ elm_genlist_item_update(list_item->item);
+ bt_deinitialize();
+ }
+ setting_retm_if(ret < 0, "*** [ERR] bt_adapter_disable() ***");
}
ret = bt_deinitialize();
+ if (ret < 0) {
+ setting_get_int_slp_key(INT_SLP_SETTING_BT_STATUS, &value, &err);
+ list_item->chk_status = value;
+ elm_object_item_data_set(list_item->item, list_item);
+ elm_genlist_item_update(list_item->item);
+ }
setting_retm_if(ret < 0, "*** [ERR] bt_deinitialize() ***");
+ list_item->swallow_type = SWALLOW_Type_1ICON_1PROCESS;
+ elm_object_item_data_set(list_item->item, list_item);
+ elm_genlist_item_update(list_item->item);
+
SETTING_TRACE_END;
}
-void __alternate_nfc_mode(Evas_Object *check)
+void __alternate_nfc_mode(Setting_GenGroupItem_Data *list_item, Evas_Object *check)
{
SETTING_TRACE_BEGIN;
int ret;
Eina_Bool status = elm_check_state_get(check);
SETTING_TRACE("nfc mode status : %d", status);
+ int value, err;
+
ret = nfc_manager_initialize(NULL, NULL);
+ if (ret < 0) {
+ setting_get_bool_slp_key(BOOL_SLP_SETTING_NFC_STATUS, &value, &err);
+ list_item->chk_status = value;
+ elm_object_item_data_set(list_item->item, list_item);
+ elm_genlist_item_update(list_item->item);
+ }
setting_retm_if(ret < 0, "*** [ERR] nfc_manager_initialize() ***");
-
ret = nfc_manager_set_activation(status, NULL, NULL);
- setting_retm_if(ret < 0,
- "*** [ERR] nfc_manager_set_activation() ***");
+ if (ret < 0) {
+ setting_get_bool_slp_key(BOOL_SLP_SETTING_NFC_STATUS, &value, &err);
+ list_item->chk_status = value;
+ elm_object_item_data_set(list_item->item, list_item);
+ elm_genlist_item_update(list_item->item);
+ nfc_manager_deinitialize();
+ }
+ setting_retm_if(ret < 0, "*** [ERR] nfc_manager_set_activation() ***");
ret = nfc_manager_deinitialize();
+ if (ret < 0) {
+ setting_get_bool_slp_key(BOOL_SLP_SETTING_NFC_STATUS, &value, &err);
+ list_item->chk_status = value;
+ elm_object_item_data_set(list_item->item, list_item);
+ elm_genlist_item_update(list_item->item);
+ }
setting_retm_if(ret < 0, "*** [ERR] nfc_manager_deinitialize() ***");
+ list_item->swallow_type = SWALLOW_Type_1ICON_1PROCESS;
+ elm_object_item_data_set(list_item->item, list_item);
+ elm_genlist_item_update(list_item->item);
+
SETTING_TRACE_END;
}
SETTING_TRACE("process item [%s], status:%d", _(list_item->keyStr),
list_item->chk_status);
- __alternate_wifi_mode(obj);
+ __alternate_wifi_mode(list_item, obj);
SETTING_TRACE_END;
}
SETTING_TRACE("process item [%s], status:%d", _(list_item->keyStr),
list_item->chk_status);
- __alternate_bt_mode(obj);
+ __alternate_bt_mode(list_item, obj);
SETTING_TRACE_END;
}
SETTING_TRACE("process item [%s], status:%d", _(list_item->keyStr),
list_item->chk_status);
- __alternate_nfc_mode(obj);
+ __alternate_nfc_mode(list_item, obj);
SETTING_TRACE_END;
}