X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fsetting-main.c;h=a3484bd914e58fe5b977119119dc74d427e1fcd5;hb=9a14082a2f74c0510ff41e952f254c59dc5eda19;hp=f6cede966eb0d5833a2b6d134e923d26c6737975;hpb=235baa18001ed03fc0728b27b336f3c1791d2bcc;p=apps%2Fcore%2Fpreloaded%2Fsettings.git diff --git a/src/setting-main.c b/src/setting-main.c index f6cede9..a3484bd 100755 --- a/src/setting-main.c +++ b/src/setting-main.c @@ -1,34 +1,31 @@ /* * setting + * Copyright (c) 2012 Samsung Electronics Co., Ltd. * - * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. - * - * Contact: MyoungJune Park - * - * Licensed under the Apache License, Version 2.0 (the "License"); + * Licensed under the Flora License, Version 1.0 (the License); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://floralicense.org/license/ * * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, + * distributed under the License is distributed on an AS IS BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * */ - #include #include #include #include #include -#include #include +#include #include #include +#include + #define PLUGIN_PREFIX "/opt" typedef struct _DrawAppInfo @@ -381,9 +378,9 @@ static Setting_GenGroupItem_Data * __wifi_handler(void* data, char* keyStr, char 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, @@ -392,10 +389,12 @@ static Setting_GenGroupItem_Data * __wifi_handler(void* data, char* keyStr, char 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; } @@ -407,7 +406,7 @@ static Setting_GenGroupItem_Data * __bluetooth_handler(void* data, char* keyStr, 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, @@ -416,10 +415,11 @@ static Setting_GenGroupItem_Data * __bluetooth_handler(void* data, char* keyStr, 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; } @@ -469,7 +469,7 @@ static Setting_GenGroupItem_Data * __nfc_handler(void* data, char* keyStr, char* 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, @@ -478,9 +478,11 @@ static Setting_GenGroupItem_Data * __nfc_handler(void* data, char* keyStr, char* 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, @@ -1708,6 +1710,10 @@ static void setting_main_tapi_event_cb(TapiHandle *handle, int result, void *dat 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; @@ -1834,13 +1840,6 @@ static int setting_main_destroy(void *cb) 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(); @@ -2204,19 +2203,17 @@ setting_main_click_list_plugin_cb(void *data, Evas_Object *obj, 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); } /** @@ -2342,77 +2339,241 @@ void __alternate_flight_mode(Evas_Object *check) 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; } @@ -2548,7 +2709,7 @@ setting_main_click_list_wifi_mode_cb(void *data, Evas_Object *obj, 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; } @@ -2567,7 +2728,7 @@ setting_main_click_list_bt_mode_cb(void *data, Evas_Object *obj, 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; } @@ -2586,7 +2747,7 @@ setting_main_click_list_nfc_mode_cb(void *data, Evas_Object *obj, 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; }