/*
* setting
- * Copyright (c) 2012 Samsung Electronics Co., Ltd.
*
- * Licensed under the Flora License, Version 1.1 (the License);
+ * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd.
+ *
+ * Contact: MyoungJune Park <mj2004.park@samsung.com>
+ *
+ * Licensed under the Apache License, Version 2.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://floralicense.org/license/
+ * http://www.apache.org/licenses/LICENSE-2.0
*
* 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.
+ *
+ */
+
+/**
+ * @file setting-cis-main2.c
+ * @brief implement first view of Setting application
+ *
+ * first view has tabbar and Gengrid
*/
-#include <tapi_common.h>
-#include <aul.h>
-#include <ail.h>
-#include <time.h>
+#define _GNU_SOURCE
+
#include <setting-main.h>
-#include <wifi.h>
-#include <tethering.h>
-#include <bluetooth.h>
-#include <nfc.h>
+#include <setting-handler.h>
+#include <setting-helper.h>
-#include <pkgmgr-info.h>
+#include <setting-common-sound.h>
+#include <setting-common-alarmmgr.h>
-#include <setting-common-plugin.h>
+#include <sqlite3.h>
-#define PLUGIN_PREFIX "/opt"
+/**
+ * [UI] search bar
+ * plain list item style
+ */
+static char *s_grid_items[] = {
+ // 1
+ KeyStr_FlightMode,
+ KeyStr_HighTouchSens,
+ KeyStr_MultiWindowMode,
-typedef struct _DrawAppInfo
-{
- int ncount;
- //------------------------------------
- void (*draw_app)(void* arg, char* name, char* pkgname);
- void* data;
-} DrawAppInfo;
+ KeyStr_Storage,
+ KeyStr_Sounds,
+ KeyStr_Display,
+
+ KeyStr_Wallpaper,
+ KeyStr_LockedScreen,
+ KeyStr_Noti_Panel,
+
+ // 2
+ KeyStr_Motions,
+// KeyStr_SafetyAssistance,
+ KeyStr_Powersaving,
+
+};
static int setting_main_create(void *cb);
static int setting_main_destroy(void *cb);
.cleanup = setting_main_cleanup,
};
-setting_main_appdata *g_main_ad = NULL;
-
-static void setting_main_tapi_event_cb(TapiHandle *handle, int result, void *data, void *user_data);
-static int setting_main_refresh(void *data);
-static void __alternate_flight_mode(Evas_Object *check);
-static void setting_main_click_Gendial_list_flight_mode_cb(void *data,
- Evas_Object *obj,
- void *event_info);
-static void __alternate_flight_mode(Evas_Object *check);
-void setting_main_click_list_item_ug_cb(void *data, Evas_Object *obj, char *ug_to_load, service_h svc, struct ug_cbs *cbs);
+//////////////////////////////////////////////////////////////////////////////////////////////
-static void
-__setting_chk_changed(void *data, Evas_Object *obj, void *event_info)
+void __all_gl_realized_cb(void *data, Evas_Object *obj, void *event_info)
{
- /* SETTING_TRACE_BEGIN; */
- retm_if(data == NULL, "Data parameter is NULL");
- Setting_GenGroupItem_Data *list_item =
- (Setting_GenGroupItem_Data *) data;
- /* SETTING_TRACE("process item [%s]", _(list_item->keyStr)); */
- list_item->chk_status = elm_check_state_get(obj);
-
- Eina_List *check_list = g_main_ad->item_check_list;
- Setting_GenGroupItem_Data *item = NULL;
- bool isFoundNotSelSomeone = FALSE;
- bool isFoundSelSomeone = FALSE;
- while (check_list) {
- item = (Setting_GenGroupItem_Data *)
- eina_list_data_get(check_list);
- if (NULL == item) {
- continue;
- }
- if (!(item->chk_status)) {
- isFoundNotSelSomeone = TRUE;
- } else {
- isFoundSelSomeone = TRUE;
- }
- if (isFoundNotSelSomeone && isFoundSelSomeone) {
- break;
- }
- check_list = eina_list_next(check_list);
+ //SETTING_TRACE_BEGIN;
+ __gl_realized_cb(data, obj, event_info);
+ setting_retm_if(event_info == NULL, "invalid parameter: event_info is NULL");
+ Elm_Object_Item *item = (Elm_Object_Item *)event_info;
+ //elm_object_item_signal_emit(item, "elm,state,default", "elm");//to cancel the 2depth color
+ Setting_GenGroupItem_Data *item_data = elm_object_item_data_get(item);
+ if(!item_data)
+ {
+ return;
}
- if (isFoundNotSelSomeone) {
- g_main_ad->check_all_item->chk_status = 0; /* for update new state */
- } else {
- g_main_ad->check_all_item->chk_status = 1; /* for update new state */
- }
- elm_object_item_data_set(g_main_ad->check_all_item->item, g_main_ad->check_all_item);
- elm_genlist_item_update(g_main_ad->check_all_item->item);
-
- if (isFoundSelSomeone) {
- /* SETTING_TRACE("Set it to active"); */
- /*
- elm_object_item_disabled_set(elm_toolbar_last_item_get
- (g_main_ad->controllbar_all_check),
- EINA_FALSE);*/
+ if (item_data->isPlaying) {
+ elm_object_item_signal_emit(item_data->item, "elm,state,expanded", "elm");
}
}
-static void __setting_list_changed(void *data, Evas_Object *obj,
- void *event_info)
+static void __all_gl_group_clicked_cb(void *data, Evas_Object *obj, void *event_info)
{
-
SETTING_TRACE_BEGIN;
/* error check */
- retm_if(event_info == NULL, "Invalid argument: event info is NULL");
-
+ //setting_retm_if(data == NULL, "Data parameter is NULL");
+ int view_type = (int)data;
+ setting_main_appdata *ad = g_main_ad;
Elm_Object_Item *item = (Elm_Object_Item *) event_info;
elm_genlist_item_selected_set(item, 0);
- Setting_GenGroupItem_Data *list_item =
- (Setting_GenGroupItem_Data *) elm_object_item_data_get(item);
-
- int old_status = elm_check_state_get(list_item->eo_check);
- /* new status */
- list_item->chk_status = !old_status;
- elm_check_state_set(list_item->eo_check, list_item->chk_status);
-
- Eina_List *check_list = g_main_ad->item_check_list;
- Setting_GenGroupItem_Data *group_item = NULL;
- bool isFoundNotSelSomeone = FALSE;
- bool isFoundSelSomeone = FALSE;
- while (check_list) {
- group_item = (Setting_GenGroupItem_Data *)
- eina_list_data_get(check_list);
- if (NULL == group_item) {
- continue;
- }
- if (!(group_item->chk_status)) {
- isFoundNotSelSomeone = TRUE;
- /* break; */
- } else {
- isFoundSelSomeone = TRUE;
- }
- if (isFoundNotSelSomeone && isFoundSelSomeone) {
- break;
- }
+ Setting_GenGroupItem_Data *data_parentItem = (Setting_GenGroupItem_Data *)elm_object_item_data_get(item);
+ setting_retm_if(data_parentItem == NULL, "data_parentItem is NULL");
- check_list = eina_list_next(check_list);
- }
- if (isFoundNotSelSomeone) {
- g_main_ad->check_all_item->chk_status = 0; /* for update new state */
- } else {
- g_main_ad->check_all_item->chk_status = 1; /* for update new state */
- }
- elm_object_item_data_set(g_main_ad->check_all_item->item, g_main_ad->check_all_item);
- elm_genlist_item_update(g_main_ad->check_all_item->item);
-
- if (isFoundSelSomeone) {
- /* SETTING_TRACE("Set it to active"); */
- /*
- elm_object_item_disabled_set(elm_toolbar_last_item_get
- (g_main_ad->controllbar_all_check),
- EINA_FALSE);*/
- }
+ Elm_Object_Item *start_item = NULL;
+ Elm_Object_Item *end_item = NULL;
+ Elm_Object_Item *it;
-}
+ data_parentItem->isPlaying = !data_parentItem->isPlaying;
+ int hide_flag = !(data_parentItem->isPlaying);
+ SETTING_TRACE("----------------------> expand list:%s, hide_flag:%d", _(data_parentItem->keyStr), hide_flag);
-static void
-__setting_chk_sel_all_changed(void *data, Evas_Object *obj, void *event_info)
-{
- /* SETTING_TRACE_BEGIN; */
- retm_if(data == NULL, "Data parameter is NULL");
- Setting_GenGroupItem_Data *list_item =
- (Setting_GenGroupItem_Data *) data;
- bool is_all_checked = elm_check_state_get(obj);
- list_item->chk_status = is_all_checked; /* for update new state */
- /* SETTING_TRACE("is_all_checked:%d", is_all_checked); */
-
- Eina_List *check_list = g_main_ad->item_check_list;
-
- while (check_list) {
- list_item = (Setting_GenGroupItem_Data *)
- eina_list_data_get(check_list);
- if (NULL == list_item) {
- continue;
- }
- list_item->chk_status = is_all_checked;
- elm_object_item_data_set(list_item->item, list_item);
- elm_genlist_item_update(list_item->item);
- check_list = eina_list_next(check_list);
+ //to controll the arrow
+ if (hide_flag)
+ elm_object_item_signal_emit(data_parentItem->item, "elm,state,contracted", "elm");
+ else
+ elm_object_item_signal_emit(data_parentItem->item, "elm,state,expanded", "elm");
+
+ int group_idx = data_parentItem->chk_status;
+
+ SETTING_TRACE("view_type:%d, group_idx:%d", view_type, group_idx);
+ start_item = ad->gl_data_item[view_type][group_idx]->item;
+ SETTING_TRACE("START:%s", _(ad->gl_data_item[view_type][group_idx]->keyStr));
+ if(group_idx != GL_Group_Apps)
+ {
+ end_item = ad->gl_data_item[view_type][group_idx+1]->item;
+ SETTING_TRACE("END:%s", _(ad->gl_data_item[view_type][group_idx+1]->keyStr));
}
- if (is_all_checked) {
- /*
- elm_object_item_disabled_set(elm_toolbar_last_item_get
- (g_main_ad->controllbar_all_check),
- EINA_FALSE);*/
+
+ for (it = elm_genlist_item_next_get(start_item);
+ it && it != end_item;it = elm_genlist_item_next_get(it))
+ {
+ Setting_GenGroupItem_Data *data_parentItem = (Setting_GenGroupItem_Data *)elm_object_item_data_get(it);
+ if(data_parentItem && data_parentItem->keyStr) SETTING_TRACE("data_parentItem:%s", data_parentItem->keyStr);
+ elm_genlist_item_hide_set(it, hide_flag);
+ if(!hide_flag && group_idx == GL_Group_Apps)
+ {
+ elm_genlist_item_bring_in(it, ELM_GENLIST_ITEM_SCROLLTO_IN);
+ }
}
}
-static void __setting_list_sel_all_changed(void *data, Evas_Object *obj,
- void *event_info)
+
+Evas_Object *_view_list_geter(void *data)
{
- /* error check */
SETTING_TRACE_BEGIN;
- SETTING_TRACE();
- 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, 0);
- Setting_GenGroupItem_Data *list_item =
- (Setting_GenGroupItem_Data *) elm_object_item_data_get(item);
-
- int old_status = elm_check_state_get(list_item->eo_check);
- /* new status */
- int is_all_checked = list_item->chk_status = !old_status;
- elm_check_state_set(list_item->eo_check, list_item->chk_status);
-
- Eina_List *check_list = g_main_ad->item_check_list;
+ retvm_if(data == NULL, NULL, "Invalid argument: data is NULL");
+ setting_main_appdata *ad = (setting_main_appdata *)data;
+ SETTING_TRACE("ad->sc_gl[SC_All]:%p", ad->sc_gl[SC_All_List]);
- while (check_list) {
- list_item = (Setting_GenGroupItem_Data *)
- eina_list_data_get(check_list);
- if (NULL == list_item) {
- continue;
- }
- list_item->chk_status = is_all_checked;
- /* elm_check_state_set(list_item->eo_check, is_all_checked); */
- elm_object_item_data_set(list_item->item, list_item);
- elm_genlist_item_update(list_item->item);
- check_list = eina_list_next(check_list);
- }
- if (is_all_checked) {
- /*
- elm_object_item_disabled_set(elm_toolbar_last_item_get
- (g_main_ad->controllbar_all_check),
- EINA_FALSE);*/
+ if (ad->sc_gl[SC_All_List])
+ {
+ evas_object_show(ad->sc_gl[SC_All_List]);
+ return ad->sc_gl[SC_All_List];
}
-}
+ Evas_Object *genlist = elm_genlist_add(ad->win_main);
+ retvm_if(genlist == NULL, NULL, "Cannot set genlist object as contento of layout");
-static void __load_check_list(void *data, Evas_Object **genlist,
- char *menuNameKey)
-{
- SETTING_TRACE_BEGIN;
- setting_main_appdata *ad = (setting_main_appdata *) data;
+ ad->sc_gl[SC_All_List] = genlist;
+ elm_genlist_realization_mode_set(genlist, EINA_TRUE);
+ elm_object_style_set(genlist, "dialogue");
+ elm_genlist_clear(genlist); /* first to clear list */
+ elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS); /* resolve abnormal height issue */
+ evas_object_smart_callback_add(genlist, "realized", __all_gl_realized_cb, ad);
+ evas_object_show(genlist);
- bool state = FALSE;
+ Setting_GenGroupItem_Data *item_data = NULL;
+ Elm_Object_Item *item = NULL;
+ int group_dx = GL_Group_QuickSettings;
+ setting_main_genlist_handler_reset(ad);
+ //----------------------------------------------------------------------------------------
+ // 2.category name loop
+ //----------------------------------------------------------------------------------------
+ int i,j;
char *keyStr = NULL;
- Cfg_Item_Position pos = Cfg_Item_Pos_Uninstall;
- bool isFoundNonSelItem = FALSE;
- bool isFoundSelSomeoneItem = FALSE;
-
- int i, j;
char *icon_path = NULL;
+ char *ug_args = NULL;
- ad->check_all_item =
- setting_create_Gendial_field_def(ad->gl_sel_all,
- &(ad->itc[GENDIAL_Type_sel_all]),
- __setting_list_sel_all_changed, ad,
- SWALLOW_Type_1CHECK, NULL, NULL,
- state, KeyStr_Select_All, NULL,
- __setting_chk_sel_all_changed);
- __BACK_POINTER_SET(ad->check_all_item);
-
- Setting_GenGroupItem_Data *item = NULL;
- Setting_GenGroupItem_Data *category_item = NULL;
+ char *group_name = NULL;
+ int index = 0;
for (i = 0; i < setting_cfg_get_category_length(); i++) {
- if (NULL == menuNameKey) {
- /* SETTING_TRACE("load all the items in config file"); */
- } else
- if (safeStrCmp
- (setting_cfg_get_category_name(i), menuNameKey)) {
- continue;
+ group_name = setting_cfg_get_category_name(i);
+ group_dx++;//from the first
+ item_data = setting_create_Gendial_field_groupitem(
+ genlist,
+ &(ad->itc[GENDIAL_Type_expandable_proc]),
+ NULL,
+ __all_gl_group_clicked_cb,
+ (void *)VIEW_All_List,
+ SWALLOW_Type_INVALID,
+ NULL, // l_icon
+ NULL, // r_icon
+ 0,
+ group_name,
+ NULL, // r_icon
+ NULL);
+ if (item_data)
+ {
+ item_data->isPlaying = TRUE;//expandable ?
+ item_data->chk_status = group_dx;//keep the group idx
+
+ ad->gl_data_item[VIEW_All_List][group_dx] = item_data;
+ __BACK_POINTER_SET(ad->gl_data_item[VIEW_All_List][group_dx]);
}
- char *category_name = setting_cfg_get_category_name(i);
-
- category_item =
- setting_create_Gendial_field_group_titleItem(*genlist,
- &(ad->itc
- [GENDIAL_Type_group_item]),
- NULL,
- ELM_GENLIST_ITEM_NONE,
- category_name,
- NULL);
- if (category_item) {
- for (j = 0; j < setting_cfg_get_menu_length(i); j++) {
- keyStr = setting_cfg_get_keyname_idx(i, j);
- pos = (Cfg_Item_Position) setting_cfg_get_pos_idx(i, j);
-
- if (Cfg_Item_Pos_Level1 == pos) {
- state = FALSE;
- isFoundNonSelItem = TRUE;
- } else {
- state = TRUE;
- isFoundSelSomeoneItem = TRUE;
- }
+ index = 0;
+
+
+ //----------------------------------------------------------------------------------------
+ // 2. display each items, following category
+ //----------------------------------------------------------------------------------------
+ // add sub items
+ for (j = 0; j < setting_cfg_get_menu_length(i); j++) {
+ keyStr = setting_cfg_get_keyname_idx(i, j);
+
+ ug_args = setting_cfg_get_ug_args_idx(i, j);
icon_path = setting_cfg_get_icon_path_idx(i, j);
- item =
- setting_create_Gendial_field_groupitem(*genlist,
- &(ad->itc
- [GENDIAL_Type_1text_2icon_2]),
- category_item->item,
- __setting_list_changed,
- ad,
- SWALLOW_Type_1CHECKICON,
- NULL,
- icon_path,
- state,
- keyStr, NULL,
- __setting_chk_changed);
-
- ad->item_check_list =
- eina_list_append(ad->item_check_list, item);
+
+ mainlist_entry* entry = settinig_drawer_hash_find(ad, keyStr);
+
+ if (entry)
+ {
+ if (entry->type == UG_HANDLE)
+ {
+ if (is_ug_installed_by_ug_args(ug_args))
+ {
+ item_data = entry->ui_handler(ad, keyStr, icon_path, ug_args, genlist, NULL);
+ entry->item_data = item_data;
+ }
+ } else if (entry->type == UI_PROC) {
+ item_data = entry->ui_handler(ad, keyStr, icon_path, ug_args, genlist, NULL);
+ entry->item_data = item_data;
+ }
+ } else {
+ entry = settinig_drawer_hash_find(ad, "Default");
+ item_data = entry->ui_handler(ad, keyStr, icon_path, ug_args, genlist, NULL);
+ entry->item_data = item_data;
}
- } else {
- SETTING_TRACE_ERROR("category_item is NULL");
- }
- }
- if (ad->check_all_item) {
- if (isFoundNonSelItem) {
- ad->check_all_item->chk_status = 0; /* for update new state */
- } else {
- ad->check_all_item->chk_status = 1; /* for update new state */
+ // dupcated code (REFACTORING)
+ if (item_data && item_data->item) {
+
+ set_node_pointer(keyStr, item_data->item);
+ setting_genlist_item_groupstyle_set(item_data, SETTING_GROUP_STYLE_CENTER);
+ index++;
+ }
}
- elm_object_item_data_set(ad->check_all_item->item, ad->check_all_item);
- elm_genlist_item_update(ad->check_all_item->item);
- } else {
- SETTING_TRACE_ERROR("ad->check_all_item is NULL");
- }
- if (isFoundSelSomeoneItem) {
- /* elm_object_item_disabled_set(elm_toolbar_last_item_get
- (ad->controllbar_all_check),
- EINA_FALSE);
- */
- } else {
- /*
- elm_object_item_disabled_set(elm_toolbar_last_item_get
- (ad->controllbar_all_check),
- EINA_TRUE);*/
+ //if (item_data)
+ //SETTING_TRACE("keyStr[%s] is being set to BOTTOM style",_(item_data->keyStr));
+ setting_genlist_item_groupstyle_set(item_data, index==1?SETTING_GROUP_STYLE_NONE : SETTING_GROUP_STYLE_BOTTOM);
}
- SETTING_TRACE_END;
+ setting_main_genlist_handler_set(ad, VIEW_All_List);
+ setting_main_genlist_handler_reset(ad);
+ return genlist;
}
-
-static Setting_GenGroupItem_Data * __flightmode_handler(void* data, char* keyStr, char* icon_path, char* ug_name, Evas_Object *genlist)
+static void ___grid_select_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
{
- // NOT UG --> it's just UI drawing
+ //SETTING_TRACE_BEGIN;
+ Evas_Object *image = elm_object_part_content_get(obj, "elm.swallow.icon");
+ const char *file;
+ elm_image_file_get(image, &file, NULL);
+ //SETTING_TRACE("file:%s", file);
+ if (!safeStrCmp(IMG_SETTING, file))
+ {
+ return;
+ }
+ setting_dim_evas_object(elm_object_part_content_get(obj, "elm.swallow.icon"), FALSE);
+ elm_object_signal_emit(obj,"SELECTED","elm");
- setting_main_appdata *ad = (setting_main_appdata *)data;
- int value, err;
- setting_get_bool_slp_key (BOOL_SLP_SETTING_FLIGHT_MODE, &value, &err);
-
- /* create flight_mode */
- ad->data_flight = setting_create_Gendial_field_groupitem(genlist,
- &(ad->itc[GENDIAL_Type_1text_2icon]),
- NULL,
- setting_main_click_Gendial_list_flight_mode_cb,
- ad,
- SWALLOW_Type_1ICON_1RADIO,
- icon_path,
- NULL,
- value,
- keyStr,
- NULL,
- setting_main_click_list_flight_mode_cb);
- __BACK_POINTER_SET(ad->data_flight);
-
- return ad->data_flight;
+ retm_if(event_info == NULL, "Invalid argument: event info is NULL");
+ retm_if(data == NULL, "Invalid argument: data is NULL");
+ Evas_Event_Mouse_Down *ev = (Evas_Event_Mouse_Down *)event_info;
+ Evas_Point *point_down = data;
+ point_down->x = ev->output.x;
+ point_down->y = ev->output.y;
}
-static Setting_GenGroupItem_Data * __wifi_handler(void* data, char* keyStr, char* icon_path, char* ug_args, Evas_Object *genlist)
+static void ___grid_release_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
{
- setting_main_appdata *ad = (setting_main_appdata *)data;
- 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();
- ad->data_wifi = setting_create_Gendial_field_groupitem(genlist,
- &(ad->itc[GENDIAL_Type_1text_2icon]),
- NULL,
- setting_main_click_list_ex_ug_cb,
- ug_args,
- SWALLOW_Type_1ICON_1RADIO,
- icon_path,
- NULL,
- value,
- keyStr,
- NULL,
- setting_main_click_list_wifi_mode_cb);
- __BACK_POINTER_SET(ad->data_wifi);
- if(ad->data_wifi)
- ad->data_wifi->userdata = ad;
- //G_FREE(pa_wifi);
-
- return ad->data_wifi;
+ //SETTING_TRACE_BEGIN;
+ setting_undo_dim_evas_object(elm_object_part_content_get(obj, "elm.swallow.icon"), FALSE);
+ elm_object_signal_emit(obj,"UNSELECTED","elm");
}
-static Setting_GenGroupItem_Data * __bluetooth_handler(void* data, char* keyStr, char* icon_path, char* ug_args, Evas_Object *genlist)
+static void ___grid_mouse_move_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
{
- setting_main_appdata *ad = (setting_main_appdata *)data;
- int value, err;
- 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_1text_2icon]),
- NULL,
- setting_main_click_list_ex_ug_cb,
- ug_args,
- SWALLOW_Type_1ICON_1RADIO,
- icon_path,
- NULL,
- value,
- keyStr,
- 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_TRACE_BEGIN;
+ retm_if(event_info == NULL, "Invalid argument: event info is NULL");
+ retm_if(data == NULL, "Invalid argument: data is NULL");
+ Evas_Point *point_down = data;
+ Evas_Event_Mouse_Move*ev = (Evas_Event_Mouse_Move*)event_info;
+ int x_offset = ev->cur.output.x - point_down->x;
+ int y_offset = ev->cur.output.y - point_down->y;
+ if(x_offset < 0) x_offset = -x_offset;
+ if(y_offset < 0) y_offset = -y_offset;
+ if (x_offset <= MIN_MOVE_DISTANCE && y_offset <= MIN_MOVE_DISTANCE)
+ {
+ return;
+ }
+ setting_undo_dim_evas_object(elm_object_part_content_get(obj, "elm.swallow.icon"), FALSE);
+ elm_object_signal_emit(obj,"UNSELECTED","elm");
}
-
-static Setting_GenGroupItem_Data * __allshare_handler(void* data, char* keyStr, char* icon_path, char* ug_args, Evas_Object *genlist)
+static void ___grid_del_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
{
- setting_main_appdata *ad = (setting_main_appdata *)data;
-
- Setting_GenGroupItem_Data * obj = setting_create_Gendial_field_groupitem(genlist,
- &(ad->itc[GENDIAL_Type_1text_1icon_2]),
- NULL,
- setting_main_click_list_default_ug_cb,
- ad,
- SWALLOW_Type_INVALID,
- icon_path,
- NULL, 0,
- keyStr,
- NULL,
- NULL);
- return obj;
+ //SETTING_TRACE_BEGIN;
+ ret_if(!data);
+ Evas_Point *point_down = data;
+ FREE(point_down);//delete the date.
}
-static Setting_GenGroupItem_Data * __network_handler(void* data, char* keyStr, char* icon_path, char* ug_args, Evas_Object *genlist)
+/**
+* To make an object looks clickable: if pressed, it is dim color;if unpressed, it is normal color;
+*
+* @param[in] obj
+*/
+EXPORT_PUBLIC
+void __grid_clickable_enable(Evas_Object *obj)
{
- setting_main_appdata *ad = (setting_main_appdata *)data;
-
- ad->data_network = setting_create_Gendial_field_groupitem(genlist,
- &(ad->itc[GENDIAL_Type_1text_1icon_2]),
- NULL,
- setting_main_click_list_network_ug_cb,
- ad,
- SWALLOW_Type_INVALID,
- icon_path,
- NULL, 0,
- keyStr,
- NULL,
- NULL);
-
- return ad->data_network;
+ if (obj) {
+ Evas_Point *point_down = calloc(1,sizeof(Evas_Point));
+ evas_object_event_callback_add(obj, EVAS_CALLBACK_MOUSE_DOWN, ___grid_select_cb, point_down);
+ evas_object_event_callback_add(obj, EVAS_CALLBACK_MOUSE_UP, ___grid_release_cb, NULL);
+ evas_object_event_callback_add(obj, EVAS_CALLBACK_MOUSE_MOVE, ___grid_mouse_move_cb, point_down);
+ evas_object_event_callback_add(obj, EVAS_CALLBACK_DEL, ___grid_del_cb, point_down);
+ }
}
-static Setting_GenGroupItem_Data * __nfc_handler(void* data, char* keyStr, char* icon_path, char* ug_args, Evas_Object *genlist)
+static void __grid_binded_vconf_cb(keynode_t *key, void *data)
{
- setting_main_appdata *ad = (setting_main_appdata *)data;
+ SETTING_TRACE_BEGIN;
+ char *vconf_name = vconf_keynode_get_name(key);
+ SETTING_TRACE("the value of [ %s ] just changed", vconf_name);
+ ret_if(!data);
+ Evas_Object *layout = data;
+ SETTING_TRACE("layout:%p", layout);
+ Evas_Object* image = elm_object_part_content_get(layout, "elm.swallow.icon");
+ ret_if(!image);
- int value, err;
- 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_1text_2icon]),
- NULL,
- setting_main_click_list_ex_ug_cb,
- ug_args,
- SWALLOW_Type_1ICON_1RADIO,
- icon_path,
- NULL,
- value,
- keyStr,
- 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,
- ad, SWALLOW_Type_LAYOUT_SPECIALIZTION_X,
- NULL, NULL, 0, SETTING_NFC_DESC, NULL, NULL);
- elm_genlist_item_select_mode_set(elm_genlist_item_append(genlist, &(itc_seperator), NULL, NULL,ELM_GENLIST_ITEM_NONE, NULL, NULL),
- ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+ int status = 0;
+ char *icon_path = NULL;
+ if (!safeStrCmp(vconf_name, VCONFKEY_TELEPHONY_FLIGHT_MODE))
+ {
+ vconf_get_bool(VCONFKEY_TELEPHONY_FLIGHT_MODE, &status);
+ if (!status)
+ {
+ icon_path = (char *)g_strdup(SETTING_ICON_PATH_CFG"settings_flightoff2.png");
+ }
+ else
+ {
+ icon_path = (char *)g_strdup(SETTING_ICON_PATH_CFG"A01-1_icon_Flight_Mode.png");
+ }
+ }
+#if SUPPORT_NETWORK_RESTRICTION
+ else if (!safeStrCmp(vconf_name, VCONFKEY_SETAPPL_NETWORK_RESTRICT_MODE))
+ {
+ vconf_get_bool(VCONFKEY_SETAPPL_NETWORK_RESTRICT_MODE, &status);
+ if (!status)
+ {
+ icon_path = (char *)g_strdup(IMG_NetRestrictionOffMode);
+ }
+ else
+ {
+ icon_path = (char *)g_strdup(IMG_NetRestrictionMode);
+ }
+ }
#endif
- return ad->data_nfc;
-}
+ else if (!safeStrCmp(vconf_name, VCONFKEY_SETAPPL_ENHANCED_TOUCH))
+ {
+ vconf_get_bool(VCONFKEY_SETAPPL_ENHANCED_TOUCH, &status);
+ if (status)
+ {
+ icon_path = (char *)g_strdup(IMG_HighTouch);
+ }
+ else
+ {
+ icon_path = (char *)g_strdup(IMG_HighTouchOff);
+ }
+ }
+ else if (!safeStrCmp(vconf_name, VCONFKEY_QUICKSETTING_MULTIWINDOW_ENABLED))
+ {
+ #if 0
+ vconf_get_bool(VCONFKEY_QUICKSETTING_MULTIWINDOW_ENABLED, &status);
+ if (!status)
+ {
+ icon_path = (char *)g_strdup(IMG_MutiWindowDisable);
+ }
+ else
+ {
+ icon_path = (char *)g_strdup(IMG_MutiWindow);
+ }
+ #else
+ icon_path = (char *)g_strdup(IMG_MutiWindow);
+ #endif
+ }
-static Setting_GenGroupItem_Data * __default_handler(void* data, char* keyStr, char* icon_path, char* ug_args, Evas_Object *genlist)
-{
- setting_main_appdata *ad = (setting_main_appdata *)data;
- Setting_GenGroupItem_Data * obj = setting_create_Gendial_field_groupitem(genlist,
- &(ad->itc[GENDIAL_Type_1text_1icon_2]),
- NULL,
- setting_main_click_list_ex_ug_cb,
- ug_args,
- SWALLOW_Type_INVALID,
- icon_path,
- NULL, 0,
- keyStr,
- NULL,
- NULL);
-
-
- return obj;
+ if (icon_path) elm_image_file_set(image, icon_path, NULL);
}
-typedef struct mainlist_entry mainlist_entry;
-
-struct mainlist_entry {
- char* title;
- Setting_GenGroupItem_Data* (*ui_handler)(void* data, char* title, char* iconpath, char* ugname, Evas_Object *genlist);
-};
-
-
-enum {
- MAINLIST_ENTRY_FLIGHT_MODE = 0,
- MAINLIST_ENTRY_WIFI,
- MAINLIST_ENTRY_BT,
- MAINLIST_ENTRY_ALLSHARE,
- MAINLIST_ENTRY_NETWORK,
- MAINLIST_ENTRY_NFC,
- MAINLIST_ENTRY_DEFAULT,
- MAINLIST_ENTRY_MAX,
-};
-
-static mainlist_entry mainlist_table[] = {
- {KeyStr_FlightMode, __flightmode_handler}, // 0 --> NOT UG
- {KeyStr_WiFi, __wifi_handler}, // 1 --> UG
- {KeyStr_Bluetooth, __bluetooth_handler}, // 1 --> UG
- {KeyStr_AllShare, __allshare_handler}, // NOT UG
- {KeyStr_Network, __network_handler}, // 1 --> UG
- {KeyStr_NFC, __nfc_handler}, // 1 --> UG
- {"Default", __default_handler}, // 1 --> UG
-
- //--------------------------------------------------------------
- {NULL, NULL},
- };
-
-
-void __gl_realized(void *data, Evas_Object *obj, void *event_info)
+//Duplicate one to give diff instance vconf cb to the two same name grids
+static void __grid_binded_vconf_cb2(keynode_t *key, void *data)
{
- //SETTING_TRACE_BEGIN;
- setting_retm_if(data == NULL, "invalid parameter: data is NULL");
- setting_retm_if(event_info == NULL, "invalid parameter: event_info is NULL");
- setting_main_appdata *ad = (setting_main_appdata *)data;
- Elm_Object_Item *item = (Elm_Object_Item *)event_info;
- Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *)elm_object_item_data_get(item);
-
- //setting_retm_if(list_item == NULL, "list_item is NULL");
-
- if (list_item) {
- if (list_item->group_style == SETTING_GROUP_STYLE_TOP) {
- elm_object_item_signal_emit(item, "elm,state,top", "");
- } else if (list_item->group_style == SETTING_GROUP_STYLE_BOTTOM) {
- elm_object_item_signal_emit(item, "elm,state,bottom", "");
- } else if (list_item->group_style == SETTING_GROUP_STYLE_CENTER) {
- elm_object_item_signal_emit(item, "elm,state,center", "");
- } else if (list_item->group_style == SETTING_GROUP_STYLE_NONE) {
- /* do nothing */
- } else {
- SETTING_TRACE_ERROR("list_item->group_style is wrong");
- }
- } else {
- /* item is used for description */
- elm_object_item_signal_emit(item, "elm,state,center", "");
- }
+ __grid_binded_vconf_cb(key, data);
}
-// Flight Mode - not UG
-// All share - not UG
-// WiFi - added toggle
-// Bluetooth
-// Mobile AP
-// Network
-// NFC
-// Other UGs
-void __load_connectivity_menu_list(void *data, Cfg_Item_Position inputPos, Evas_Object *genlist)
+static void _grid_del(void *data, Evas_Object *obj)
{
- SETTING_TRACE_BEGIN;
- setting_main_appdata *ad = data;
- //group title, only display in setting main view
- if (SETTING_VIEW_MAIN == ad->view_load) {
- setting_create_Gendial_field_group_titleItem(ad->main_genlist,
- &(ad->itc[GENDIAL_Type_group_item]),
- NULL,
- ELM_GENLIST_ITEM_NONE,
- KeyStr_Connectivity, NULL);
+ GridItem *item_data = (GridItem *) data;
+ if (item_data) {
+ G_FREE(item_data->name);
+ G_FREE(item_data->icon_path);
+ G_FREE((item_data->ug_name));
+ FREE(item_data);
}
+}
- int idx_second_menu = 0;
-
- char *keyStr = NULL;
- char *icon_path = NULL;
- char *ug_args = NULL;
- Cfg_Item_Position tmpPos = Cfg_Item_Pos_Uninstall;
- int i, j;
-
- bool is_emulator = isEmulBin();
-
- Setting_GenGroupItem_Data *item_data = NULL;
- int index = 0;
-
- for (i = 0; i < setting_cfg_get_category_length(); i++) {
- if (safeStrCmp
- (setting_cfg_get_category_name(i), KeyStr_Connectivity))
- continue;
-
- for (j = 0; j < setting_cfg_get_menu_length(i); j++) {
- keyStr = setting_cfg_get_keyname_idx(i, j);
- tmpPos = (Cfg_Item_Position) setting_cfg_get_pos_idx(i, j);
- ug_args = setting_cfg_get_ug_args_idx(i, j);
- icon_path = setting_cfg_get_icon_path_idx(i, j);
- /* SETTING_TRACE_DEBUG("Got an item[keyStr:%s, ug_args:%s, pos:%d]", */
- /* keyStr, ug_args, tmpPos); */
-
- if (is_emulator) {
- if (!safeStrCmp(KeyStr_FlightMode, keyStr)) {
- continue; /* hide Flight Mode in Emulator*/
- } else if (!safeStrCmp(KeyStr_WiFi, keyStr)) {
- continue; /* hide WIFI in Emulator*/
- } else if (!safeStrCmp(KeyStr_WiFiDirect, keyStr)) {
- continue; /* hide WiFiDirect in Emulator*/
- } else if (!safeStrCmp(KeyStr_Network, keyStr)) {
- continue; /* hide Network in Emulator*/
- } else if (!safeStrCmp(KeyStr_Bluetooth, keyStr)) {
- continue; /* hide Bluetooth in Emulator*/
- } else if (!safeStrCmp(KeyStr_MobileAP, keyStr)) {
- continue; /* hide Tethering in Emulator*/
- } else {
- /* do nothing */
- }
- }
- if (idx_second_menu < MAX_MORE_MENU_NUM
- && Cfg_Item_Pos_Level1 == tmpPos
- && SETTING_VIEW_MAIN == ad->view_load
- && MAIN_PROFILE_PREFERRED == ad->profile_type) {
- if (is_ug_installed_by_ug_args(ug_args)) {
- ad->more_connective_menus[idx_second_menu++] = keyStr;
- }
- }
+/**
+* @brief update toggle state in Genlist
+*
+* when genGrid updates, the toggle states in Genlist should be updated too.
+*
+* @param data application context
+* @param obj NOT USED
+* @param event_info NOT USED
+*/
+static void ____gg_process_toogle_icon(void* data, Evas_Object* obj, void* event_info)
+{
+ SETTING_TRACE_BEGIN;
+ setting_retm_if(data == NULL, "data is NULL");
+ GridItem* pitem = (GridItem*)data;
+ // do nothing now
+ setting_main_appdata *ad = pitem->data;
+ setting_retm_if(ad == NULL, "ad is NULL");
+
+ if (safeStrCmp(pitem->name, KeyStr_FlightMode) == 0) {
+
+ int old_status, err;
+ setting_get_bool_slp_key (BOOL_SLP_SETTING_FLIGHT_MODE, &old_status, &err);
+ /* new status */
+ if(ad && !old_status) {
+ ad->popup_flight_mode = setting_create_popup_with_btn(NULL,
+ ad->win_main, KeyStr_FlightMode,
+ ENABLE_FLIGHT_MODE_MSG,
+ setting_flightmode_turn_on_resp_cb,
+ 0, 2, "IDS_ST_BUTTON_ENABLE", "IDS_COM_SK_CANCEL");
+ } else {
- if (Cfg_Item_Pos_Level_All == inputPos) {
- } else if (inputPos != tmpPos) { /* not in the inputPos level */
- continue;
+ Setting_GenGroupItem_Data *item_to_update;
+ int i;
+ for (i = VIEW_All_List; i < VIEW_Max; i++)
+ {
+ item_to_update = ad->gl_data_item[i][GL_FlightMode];
+ setting_update_gl_item_chk_status(item_to_update, !old_status);
}
- if (!safeStrCmp(KeyStr_FlightMode, keyStr)) { /* load special radio */
- // ug == NULL
- item_data = mainlist_table[MAINLIST_ENTRY_FLIGHT_MODE].ui_handler(ad, keyStr, icon_path, ug_args, genlist);
-
- } else if (!safeStrCmp(KeyStr_AllShare, keyStr)) { /* NOT UG */
-
- item_data = mainlist_table[MAINLIST_ENTRY_ALLSHARE].ui_handler(ad, keyStr, icon_path, ug_args, genlist);
-
- } else if (!safeStrCmp(KeyStr_WiFi, keyStr) && is_ug_installed_by_ug_args(ug_args)) { /* load special icon */
-
- item_data = mainlist_table[MAINLIST_ENTRY_WIFI].ui_handler(ad, keyStr, icon_path, ug_args, genlist);
+ setting_main_alternate_flight_mode(!old_status);
+ }
+ return;
+ }
+ else if(safeStrCmp(pitem->name, KeyStr_MultiWindowMode) == 0){
+ int ret = 0;
+ int value = 0;
+ ret = vconf_get_bool(VCONFKEY_QUICKSETTING_MULTIWINDOW_ENABLED,&value);
+ SETTING_TRACE_DEBUG("vconf_get_bool() returns %d", ret);
+
+ const char *tmp = pitem->icon_path;
+ if(!value){
+ //OFF->ON
+ pitem->icon_path = (char *)g_strdup(IMG_MutiWindow);
+ }else{
+ //ON->OFF
+ pitem->icon_path = (char *)g_strdup(IMG_MutiWindowDisable);
+ }
+ G_FREE(tmp);
+ //update the icon
+ Evas_Object *layout = NULL;
+ Evas_Object *image = NULL;
+ if ((layout =elm_object_item_part_content_get(pitem->item, "elm.swallow.icon"))
+ && (image = elm_object_part_content_get(layout, "elm.swallow.icon")))
+ {
+ elm_image_file_set(image, pitem->icon_path, NULL);
+ }
- } else if (!safeStrCmp(KeyStr_Bluetooth, keyStr) && is_ug_installed_by_ug_args(ug_args)) { /* load special icon */
+ vconf_set_bool(VCONFKEY_QUICKSETTING_MULTIWINDOW_ENABLED,!value);
+ }
+ else if(safeStrCmp(pitem->name, KeyStr_NetRestrictionMode) == 0)
+ {
+ int status = SETTING_ON_OFF_BTN_OFF;
+ int err;
+ setting_get_bool_slp_key( BOOL_SLP_SETTING_NET_RESTRICTION_MODE, &status, &err );
- item_data = mainlist_table[MAINLIST_ENTRY_BT].ui_handler(ad, keyStr, icon_path, ug_args, genlist);
+ if (!status)
+ {
+ // Off -> On
+ ad->popup_net_restriction_mode = setting_create_popup_with_btn(NULL,
+ ad->win_main,
+ "IDS_ST_HEADER_NETWORK_RESTRICTION_MODE_ABB_JPN",
+ "IDS_QP_POP_IN_NETWORK_RESTRICTION_MODE_YOU_CAN_USE_ALL_YOUR_APPLICATIONS_WITHOUT_CONNECTING_TO_THE_NETWORK_YOU_CAN_ALSO_RECEIVE_CALLS_AND_SMS_MESSAGES_MSG_JPN",
+ setting_main_net_restriction_mode_turn_on_resp_cb,
+ 0, // timer
+ 2, // button count
+ "IDS_COM_SK_OK",
+ "IDS_COM_SK_CANCEL");
+ }
+ else
+ {
+ // On -> Off
+ ad->popup_net_restriction_mode = setting_create_popup_with_btn(NULL,
+ ad->win_main,
+ "IDS_ST_HEADER_NETWORK_RESTRICTION_MODE_ABB_JPN" ,
+ "IDS_QP_POP_NETWORK_RESTRICTION_MODE_WILL_BE_DISABLED_JPN" ,
+ setting_main_net_restriction_mode_turn_off_resp_cb,
+ 0, // timer
+ 2, // button count
+ "IDS_COM_SK_OK",
+ "IDS_COM_SK_CANCEL" );
+ }
+ return;
+ }
+ else if(safeStrCmp(pitem->name, KeyStr_HighTouchSens) == 0)
+ {
+ int old_status = display_get_enhanced_touch();
+ display_set_enhanced_touch((!old_status));
+ int new_status = display_get_enhanced_touch();
+ SETTING_TRACE("old_status:%d, display_get_enhanced_touch():%d", old_status, new_status);
+ if (new_status >= 0)
+ {
+ const char *tmp = pitem->icon_path;
+ if (1 == new_status)
+ {
+ vconf_set_bool(VCONFKEY_SETAPPL_ENHANCED_TOUCH, 1); //sync to vconf
+ pitem->icon_path = (char *)g_strdup(IMG_HighTouch);
}
-#if 0
- else if (!safeStrCmp(KeyStr_MobileAP, keyStr) && is_ug_installed_by_ug_args(ug_args)) { /* load special icon */
-
- item_data = mainlist_table[MAINLIST_ENTRY_MOBILEAP].ui_handler(ad, keyStr, icon_path, ug_args, genlist);
+ else
+ {
+ vconf_set_bool(VCONFKEY_SETAPPL_ENHANCED_TOUCH, 0); //sync to vconf
+ pitem->icon_path = (char *)g_strdup(IMG_HighTouchOff);
+ }
+ G_FREE(tmp);
+ Evas_Object *layout = NULL;
+ Evas_Object *image = NULL;
+ if ((layout =elm_object_item_part_content_get(pitem->item, "elm.swallow.icon"))
+ && (image = elm_object_part_content_get(layout, "elm.swallow.icon")))
+ {
+ elm_image_file_set(image, pitem->icon_path, NULL);
}
-#endif
- else if (!safeStrCmp(KeyStr_Network, keyStr) && is_ug_installed_by_ug_args(ug_args)) { /* load special UG */
+ }
+ else
+ {
+ setting_create_simple_popup(NULL, ad->win_main,
+ NULL, "IDS_COM_POP_UNEXPECTED_ERROR");
+ }
+ return;
+ }
+}
- item_data = mainlist_table[MAINLIST_ENTRY_NETWORK].ui_handler(ad, keyStr, icon_path, ug_args, genlist);
- } else if (!safeStrCmp(KeyStr_NFC, keyStr) && is_ug_installed_by_ug_args(ug_args)) { /* load special icon */
- int nfc_value = FALSE; //default
- vconf_get_bool(VCONFKEY_NFC_FEATURE, &nfc_value);
- if (VCONFKEY_NFC_FEATURE_ON == nfc_value)
- {
- item_data = mainlist_table[MAINLIST_ENTRY_NFC].ui_handler(ad, keyStr, icon_path, ug_args, genlist);
- }
- } else { /* load other UGs */
- if (is_ug_installed_by_ug_args(ug_args))
- {
- item_data = mainlist_table[MAINLIST_ENTRY_DEFAULT].ui_handler(ad, keyStr, icon_path, ug_args, genlist);
- }
- }
+/**
+ * call event handler when touching each item on grid
+ @todo REMOVE THE IF_ELSE NESTED
+ */
+static void ___gg_item_selected(void* data, Evas_Object* obj, void* event_info)
+{
+ SETTING_TRACE_BEGIN;
+ setting_retm_if(data == NULL, "data is NULL");
+ GridItem* pitem = (GridItem*)data;
- if (item_data) {
- if (j == 0) {
- item_data->group_style = SETTING_GROUP_STYLE_TOP;
- } else if (j == setting_cfg_get_menu_length(i) - 1) {
- item_data->group_style = SETTING_GROUP_STYLE_BOTTOM;
- } else {
- item_data->group_style = SETTING_GROUP_STYLE_CENTER;
- }
+ setting_main_appdata *ad = pitem->data;
+ setting_retm_if(ad == NULL, "ad is NULL");
- if (index == 0) {
- item_data->group_style = SETTING_GROUP_STYLE_TOP;
- }
- index++;
- }
- }
- }
- //end group , only display in setting main view
-#if SUPPORT_MORE_ITEM_FUNCTION
- if (SETTING_VIEW_MAIN == ad->view_load && MAIN_PROFILE_PREFERRED == ad->profile_type && idx_second_menu > 0)
+ char * style = evas_object_data_get(obj, "style");
+ //SETTING_TRACE("style:%s", style);
+ if (!isEmptyStr(style))//has value "WithCheck", it indicates we are in edit mode
+ {
+ //in edit mode
+ Evas_Object *layout = elm_object_item_part_content_get(pitem->item, "elm.swallow.icon");
+ if (layout)
{
- char sub_text[MAX_COMMON_BUFFER_LEN] = {0, };
- int idx = 0;
- while (idx < MAX_MORE_MENU_NUM && ad->more_connective_menus[idx])
+ Evas_Object *check = elm_object_part_content_get(layout, "elm.swallow.check");
+ if(check)
{
- if (idx != 0)
+ int old = elm_check_state_get(check);
+ SETTING_TRACE("old:%d", old);
+ elm_check_state_set(check, !old);
+
+ if(!old)
+ ad->edit_sel_list = eina_list_append(ad->edit_sel_list, pitem->name);
+ else
{
- safeStrNCat(sub_text, ", ", MAX_COMMON_BUFFER_LEN);
+ //NOTE!! DO NOT USE eina_list_remove()
+ //The API was based on eina_list_data_find_list(),
+ //which cannot statisfy ad->edit_sel_list's demanding(ad->edit_sel_list keep const strings,not addresses of memory)
+ //eina_list_data_find_list use memory address to compare: list_data == data
+ Eina_List *list = ad->edit_sel_list;
+ while (list) {
+ char *str = eina_list_data_get(list);
+ if (NULL == str)
+ continue;
+ if(0 == safeStrCmp(str, pitem->name))
+ break;
+ list = eina_list_next(list);
+ }
+ ad->edit_sel_list = eina_list_remove_list(ad->edit_sel_list, list);
}
- safeStrNCat(sub_text, _(ad->more_connective_menus[idx]), MAX_COMMON_BUFFER_LEN);
- idx++;
- }
- ad->data_moreConnect =
- setting_create_Gendial_field_groupitem(ad->main_genlist,
- &(ad->itc[GENDIAL_Type_2text_3]),
- NULL,
- setting_main_click_list_more_cb,
- ad,
- SWALLOW_Type_INVALID,
- NULL,
- NULL,
- 0,
- KeyStr_MoreConnect,
- sub_text,
- NULL);
- __BACK_POINTER_SET(ad->data_moreConnect);
-
- /* if has <more ..> item , change the last item_date to SETTING_GROUP_STYLE_CENTER*/
- if (item_data && index > 1) {
- item_data->group_style = SETTING_GROUP_STYLE_CENTER;
+ char text[MAX_DISPLAY_NAME_LEN_ON_UI +1] = {0, };
+ snprintf(text, MAX_DISPLAY_NAME_LEN_ON_UI, _("IDS_ST_HEADER_PD_SELECTED"),eina_list_count(ad->edit_sel_list));
+ elm_object_item_part_text_set(ad->edit_navi_it, "elm.text.title", text);
}
- ad->data_moreConnect->group_style = SETTING_GROUP_STYLE_BOTTOM;
-
- item_data = ad->data_moreConnect;
- index++;
}
-#endif
+ return;
+ }
- if (index == 1) {
- item_data->group_style = SETTING_GROUP_STYLE_NONE;
- } else if (index == 2) {
- item_data->group_style = SETTING_GROUP_STYLE_BOTTOM;
+ if(ad->isInUGMode && ad->ug)
+ {
+ SETTING_TRACE(" UG is already loaded - do nothing ");
+ return; // do nothing
}
- SETTING_TRACE_END;
-}
-void __load_connectivity_level0_list(void *data)
-{
- setting_main_appdata *ad = data;
- __load_connectivity_menu_list(ad, Cfg_Item_Pos_Level0, ad->main_genlist);
-}
+ effect_playsound_play();// make sound (touch)
-void __load_connectivity_level_all_list(void *data)
-{
- SETTING_TRACE_BEGIN;
- setting_main_appdata *ad = data;
- __load_connectivity_menu_list(ad, Cfg_Item_Pos_Level_All, ad->main_genlist);
-}
-
-void __load_system_menu_list(void *data, Cfg_Item_Position inputPos, Evas_Object *genlist)
-{
- SETTING_TRACE_BEGIN;
- SETTING_TRACE_DEBUG("pos :%d", inputPos);
- setting_main_appdata *ad = data;
- //group title, only display in setting main view
- if (SETTING_VIEW_MAIN == ad->view_load) {
- setting_create_Gendial_field_group_titleItem(ad->main_genlist,
- &(ad->itc[GENDIAL_Type_group_item]),
- NULL,
- ELM_GENLIST_ITEM_NONE,
- KeyStr_System, NULL);
- }
- int idx_second_menu = 0;
-
- char *keyStr = NULL;
- char *icon_path = NULL;
- char *ug_args = NULL;
-
- Cfg_Item_Position tmpPos = Cfg_Item_Pos_Uninstall;
-
- int ncount = 0;
- int i, j;
-
- bool is_emulator = isEmulBin();
-
- Setting_GenGroupItem_Data *item_data = NULL;
- int index = 0;
-
- //SETTING_TRACE("setting_cfg_get_category_length() :: %d ", setting_cfg_get_category_length());
- for (i = 0; i < setting_cfg_get_category_length(); i++) {
- if (safeStrCmp(setting_cfg_get_category_name(i), KeyStr_System))
- continue;
-
- //SETTING_TRACE(" setting_cfg_get_menu_length(%d) :: %d ",i, setting_cfg_get_menu_length(i) );
- for (j = 0; j < setting_cfg_get_menu_length(i); j++) {
- keyStr = setting_cfg_get_keyname_idx(i, j);
- /* sg_path = setting_cfg_get_ugpath_idx(i, j); */
- tmpPos = (Cfg_Item_Position) setting_cfg_get_pos_idx(i, j);
- icon_path = setting_cfg_get_icon_path_idx(i, j);
- ug_args = setting_cfg_get_ug_args_idx(i, j);
-
- //SETTING_TRACE("KeyString : %s , tmpPos : %d , inputPos : %d ", keyStr, tmpPos, inputPos );
-
- if (is_emulator) {
- if (!safeStrCmp(KeyStr_Security, keyStr)) {
- continue; /* hide Security in Emulator*/
- } else if (!safeStrCmp(KeyStr_Memory, keyStr)) {
- continue; /* hide Memory in Emulator*/
- } else if (!safeStrCmp(KeyStr_Powersaving, keyStr)) {
- continue; /* hide Powersaving in Emulator*/
- } else if (!safeStrCmp(KeyStr_FlightMode, keyStr)) {
- continue; /* hide Powersaving in Emulator*/
- } else {
- /* do nothing */
- }
- }
-
- if (idx_second_menu < MAX_MORE_MENU_NUM
- && Cfg_Item_Pos_Level1 == tmpPos
- && SETTING_VIEW_MAIN == ad->view_load
- && MAIN_PROFILE_PREFERRED == ad->profile_type) {
-
- if (is_ug_installed_by_ug_args(ug_args)) {
- ad->more_system_menus[idx_second_menu++] = keyStr;
- }
- }
-
- if (Cfg_Item_Pos_Level_All == inputPos) {
- // do nothing
- //SETTING_TRACE("Cfg_Item_Pos_Level_All == inputPos ---> no draw --- WHY?? ");
- } else if (inputPos != tmpPos) { /* not in the inputPos level */
- //SETTING_TRACE("inputPos == tmp Pos ---> no draw --- WHY?? ");
- continue;
- }
-
- if (!safeStrCmp(KeyStr_FlightMode, keyStr)) { /* load special radio */
- // ug == NULL
- item_data = mainlist_table[MAINLIST_ENTRY_FLIGHT_MODE].ui_handler(ad, keyStr, icon_path, ug_args, genlist);
-
- }
- else if (!safeStrCmp(KeyStr_Landscape, keyStr)) { /* load special UG */
- int value = 0;
- vconf_get_bool
- (VCONFKEY_SETAPPL_AUTO_ROTATE_SCREEN_BOOL, &value);
-
- ad->data_rotationMode =
- setting_create_Gendial_field_groupitem(genlist,
- &(ad->itc[GENDIAL_Type_1text_2icon]),
- NULL,
- setting_main_sel_list_mouse_up_cb,
- ad,
- SWALLOW_Type_1ICON_1RADIO,
- icon_path,
- NULL,
- value,
- keyStr,
- NULL,
- setting_main_list_mouse_up_cb);
- __BACK_POINTER_SET(ad->data_rotationMode);
- item_data = ad->data_rotationMode;
- }
- else if (!safeStrCmp(KeyStr_Brightness, keyStr)) {
-
- char* pa_bright = get_brightness_mode_str();
- ad->data_bright=
- setting_create_Gendial_field_groupitem(genlist,
- &(ad->itc[GENDIAL_Type_1icon_2text]),
- NULL,
- setting_main_click_list_ex_ug_cb,
- ug_args,
- SWALLOW_Type_INVALID,
- icon_path,
- NULL,
- 0,
- keyStr,
- pa_bright,
- NULL);
- __BACK_POINTER_SET(ad->data_bright);
- item_data = ad->data_bright;
- ncount++;
- }
- else { /* load other UGs */
- item_data = setting_create_Gendial_field_groupitem(genlist,
- &(ad->itc[GENDIAL_Type_1text_1icon_2]),
- NULL,
- setting_main_click_list_ex_ug_cb,
- ug_args,
- SWALLOW_Type_INVALID,
- icon_path,
- NULL, 0,
- keyStr,
- NULL,
- NULL);
- ncount++;
- }
-
- if (item_data) {
- if (j == 0) {
- item_data->group_style = SETTING_GROUP_STYLE_TOP;
- } else if (j == setting_cfg_get_menu_length(i) - 1) {
- item_data->group_style = SETTING_GROUP_STYLE_BOTTOM;
- } else {
- item_data->group_style = SETTING_GROUP_STYLE_CENTER;
- }
-
- if (index == 0) {
- item_data->group_style = SETTING_GROUP_STYLE_TOP;
- }
- index++;
- }
- }
+ if (!safeStrCmp(pitem->name, KeyStr_FlightMode)
+ || !safeStrCmp(pitem->name, KeyStr_NetRestrictionMode)
+ || !safeStrCmp(pitem->name, KeyStr_HighTouchSens)
+ /*|| !safeStrCmp(pitem->name, KeyStr_MultiWindowMode)*/)
+ {
+ ____gg_process_toogle_icon(data, obj, event_info);
+ return;
}
- //end group, only display in setting main view
-#if SUPPORT_MORE_ITEM_FUNCTION
- if (SETTING_VIEW_MAIN == ad->view_load && MAIN_PROFILE_PREFERRED == ad->profile_type && idx_second_menu > 0)
- {
- char sub_text[MAX_COMMON_BUFFER_LEN] = {0, };
- int idx = 0;
- while (idx < MAX_MORE_MENU_NUM && ad->more_system_menus[idx])
- {
- if (idx != 0)
- {
- safeStrNCat(sub_text, ", ", MAX_COMMON_BUFFER_LEN);
- }
- safeStrNCat(sub_text, _(ad->more_system_menus[idx]), MAX_COMMON_BUFFER_LEN);
- idx++;
- }
-
- ad->data_moreSystem =
- setting_create_Gendial_field_groupitem(ad->main_genlist,
- &(ad->itc[GENDIAL_Type_2text_3]),
- NULL,
- setting_main_click_list_more_cb,
- ad,
- SWALLOW_Type_INVALID,
- NULL,
- NULL,
- 0,
- KeyStr_MoreSystem,
- sub_text,
- NULL);
- __BACK_POINTER_SET(ad->data_moreSystem);
-
- /* if has <more ..> item , change the last item_date to SETTING_GROUP_STYLE_CENTER*/
- if (item_data && index > 1) {
- item_data->group_style = SETTING_GROUP_STYLE_CENTER;
- }
- ad->data_moreSystem->group_style = SETTING_GROUP_STYLE_BOTTOM;
-
- item_data = ad->data_moreSystem;
- index++;
- }
+ else if (!safeStrCmp(pitem->name, KeyStr_Call)
+ || !safeStrCmp(pitem->name, keystr_Blockingmode)
+#if SUPPORT_DRIVINGMODE
+ || !safeStrCmp(pitem->name, keystr_Drivingmode)
#endif
- if (index == 1) {
- item_data->group_style = SETTING_GROUP_STYLE_NONE;
- } else if (index == 2) {
- item_data->group_style = SETTING_GROUP_STYLE_BOTTOM;
- }
-}
-
-static void __load_system_level0_list(void *data)
-{
- setting_main_appdata *ad = data;
- __load_system_menu_list(ad, Cfg_Item_Pos_Level0, ad->main_genlist);
-}
-
-static void __load_system_level_all_list(void *data)
-{
- SETTING_TRACE_BEGIN;
- setting_main_appdata *ad = data;
- __load_system_menu_list(ad, Cfg_Item_Pos_Level_All, ad->main_genlist);
-}
-
-static void __load_applications_menu_list(void *data,
- Cfg_Item_Position inputPos)
-{
- SETTING_TRACE_BEGIN;
- SETTING_TRACE_DEBUG("pos :%d", inputPos);
- setting_main_appdata *ad = data;
-
- bool is_emulator = isEmulBin();
-
- //group title
- setting_create_Gendial_field_group_titleItem(ad->main_genlist,
- &(ad->itc[GENDIAL_Type_group_item]),
- NULL,
- ELM_GENLIST_ITEM_NONE,
- KeyStr_Applications, NULL);
- char *keyStr = NULL;
- char *icon_path = NULL;
- char *ug_args = NULL;
- Cfg_Item_Position tmpPos = Cfg_Item_Pos_Uninstall;
- int i, j;
-
- Setting_GenGroupItem_Data *item_data = NULL;
- int index = 0;
- for (i = 0; i < setting_cfg_get_category_length(); i++) {
- if (safeStrCmp
- (setting_cfg_get_category_name(i), KeyStr_Applications))
- continue;
-
- for (j = 0; j < setting_cfg_get_menu_length(i); j++) {
- keyStr = setting_cfg_get_keyname_idx(i, j);
- icon_path = setting_cfg_get_icon_path_idx(i, j);
- ug_args = setting_cfg_get_ug_args_idx(i, j);
- tmpPos =
- (Cfg_Item_Position) setting_cfg_get_pos_idx(i, j);
-
- if (Cfg_Item_Pos_Level_All == inputPos) {
- } else if (inputPos != tmpPos) { /* not in the inputPos level */
- continue;
- }
-
- if (is_emulator) {
- /* hide all except Email */
- if (safeStrCmp(KeyStr_Email, keyStr)) {
- continue;
- } else {
- /* do nothing */
- }
- }
-
- item_data = setting_create_Gendial_field_groupitem(ad->main_genlist,
- &(ad->itc[GENDIAL_Type_1text_1icon_2]),
- NULL,
- setting_main_click_list_ex_ug_cb,
- ug_args,
- SWALLOW_Type_INVALID,
- icon_path, NULL,
- 0, keyStr, NULL,
- NULL);
-
- if (item_data) {
- if (j == 0) {
- item_data->group_style = SETTING_GROUP_STYLE_TOP;
- } else if (j == setting_cfg_get_menu_length(i) - 1) {
- item_data->group_style = SETTING_GROUP_STYLE_BOTTOM;
- } else {
- item_data->group_style = SETTING_GROUP_STYLE_CENTER;
- }
-
- if (index == 0) {
- item_data->group_style = SETTING_GROUP_STYLE_TOP;
- }
- index++;
- }
- }
- }
-
- if (index == 1) {
- item_data->group_style = SETTING_GROUP_STYLE_NONE;
- } else if (index == 2) {
- item_data->group_style = SETTING_GROUP_STYLE_BOTTOM;
- }
-
- SETTING_TRACE_END;
-}
-
-static void __load_applications_level0_list(void *data)
-{
- setting_main_appdata *ad = data;
- __load_applications_menu_list(ad, Cfg_Item_Pos_Level0);
-}
-
-static void __load_applications_level_all_list(void *data)
-{
- SETTING_TRACE_BEGIN;
- setting_main_appdata *ad = data;
- __load_applications_menu_list(ad, Cfg_Item_Pos_Level_All);
-}
-
-bool is_3rdapp_installed_setting_cfg(char* pkgname)
-{
- SETTING_TRACE_BEGIN;
- char path[512];
-
- SETTING_TRACE("1");
- if (snprintf(path, 512, PLUGIN_PREFIX"/apps/%s/setting/setting.xml", pkgname) < 0)
- return false;
-
- struct stat st;
- bool result_opt = false;
-
- if(stat(path, &st) == 0) {
- result_opt = true;
- } else {
- SETTING_TRACE_ERROR(" %s is *NOT* present\n", path);
- result_opt = false;
- }
-
- 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("pitem->ug_name:%s", pitem->ug_name);
+ if(app_launcher(pitem->ug_name) == 0)
{
- SETTING_TRACE(">>> pkg name --> %s ", pkgid);
- pinfo->draw_app(pinfo->data, strdup(label)/* appname*/, strdup(pkgid)/* pkg_name*/);
+ // add timer
+ ad->event_freeze_timer = ecore_timer_add(1, setting_main_freeze_event_timer_cb, ad);
+ evas_object_freeze_events_set(ad->navibar_main, EINA_TRUE);
}
- }
-
- 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
- * ex) pkgname : UBKFwQidax.AppSetting4
- */
-static void draw_3rdapp(void* data, char* name, char* pkgname)
-{
- SETTING_TRACE_BEGIN;
- SETTING_TRACE(" name : %s", name);
- SETTING_TRACE(" pkgname : %s", pkgname);
-
- setting_main_appdata *ad = data;
-
- //3rd cfg
- char fullpath[512];
- if (snprintf(fullpath, 512, PLUGIN_PREFIX"/apps/%s/setting/setting.xml", pkgname) < 0)
+ int click_times = setting_cfg_get_click_times((char *)(pitem->name));
+ setting_cfg_set_click_times((char *)(pitem->name), ++click_times);
+ setting_cfg_file_update();
return;
-
- SETTING_TRACE(" fullpath : %s", fullpath);
-
- if (ad)
- {
- char* plugin_path = strdup(fullpath);
- Setting_GenGroupItem_Data * plugin_node = setting_create_Gendial_field_groupitem(ad->main_genlist,
- &(ad->itc[GENDIAL_Type_1text_1icon_2]),
- NULL,
- setting_main_click_list_plugin_cb,
- ad,
- SWALLOW_Type_INVALID,
- IMG_DefaultIcon, NULL,
- 0, name, plugin_path, // <<-- refactoring
- NULL);
- }
- SETTING_TRACE_END;
-}
-
-/**
- * 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
- * if data is NOT NULL --> draw UI code
- */
-static int get_downloadapp_list(void* data)
-{
- SETTING_TRACE_BEGIN;
-
- setting_main_appdata *ad = data;
-
- 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);
-
- 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;
-}
-
-static int __get_downloaded_apps_num(Cfg_Item_Position inputPos)
-{
- SETTING_TRACE_BEGIN;
- SETTING_TRACE_DEBUG("pos :%d", inputPos);
- int downloaded_apps_num = 0;
- Cfg_Item_Position tmpPos = Cfg_Item_Pos_Uninstall;
- int i, j;
- for (i = 0; i < setting_cfg_get_category_length(); i++) {
- if (safeStrCmp
- (setting_cfg_get_category_name(i), KeyStr_DownloadedAPPs))
- continue;
-
- for (j = 0; j < setting_cfg_get_menu_length(i); j++) {
- tmpPos = (Cfg_Item_Position) setting_cfg_get_pos_idx(i, j);
- if (Cfg_Item_Pos_Level_All == inputPos) {
- } else if (inputPos != tmpPos) { /* not in the inputPos level */
- continue;
- }
-
- downloaded_apps_num++;
+ //special checking:
+ //1.Network cannot work when SIM card is not prepared
+ if (safeStrCmp(pitem->name, KeyStr_Network) == 0) {
+ int err = 0;
+ int value;
+ setting_get_int_slp_key(INT_SLP_SETTING_SIM_SLOT, &value, &err);
+ if (VCONFKEY_TELEPHONY_SIM_INSERTED != value)
+ {
+ setting_create_simple_popup(NULL, ad->win_main, NULL,
+ "IDS_ST_POP_INSERT_SIM_CARD_TO_ACCESS_NETWORK_SERVICES");
+ SETTING_TRACE_ERROR("*** [ERR] Invalid SIM. sim_slot_type=%d ***",value);
+ return;
}
}
-
- // draw UI with AUL code
-#ifdef PLUGIN
- downloaded_apps_num = get_downloadapp_list(NULL);
- SETTING_TRACE("Exit %s with return[%d]",__FUNCTION__, downloaded_apps_num);
-#endif
-
- SETTING_TRACE("Exit %s with return[%d]",__FUNCTION__, downloaded_apps_num);
- return downloaded_apps_num;
-}
-
-
-static void __load_downloaded_apps_menu_list(void *data,
- Cfg_Item_Position inputPos)
-{
- SETTING_TRACE_BEGIN;
- SETTING_TRACE_DEBUG("pos :%d", inputPos);
- setting_main_appdata *ad = data;
-
- // if the number of download apps is zero, display a bottom seperator
- if (0 == __get_downloaded_apps_num(inputPos)) {
- Elm_Object_Item *item = NULL;
- item = elm_genlist_item_append(ad->main_genlist, &itc_bottom_seperator, NULL, NULL,
- ELM_GENLIST_ITEM_NONE, NULL, NULL);
- elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
- return;
- }
-
- //group title
- setting_create_Gendial_field_group_titleItem(ad->main_genlist,
- &(ad->itc[GENDIAL_Type_group_item]),
- NULL,
- ELM_GENLIST_ITEM_NONE,
- KeyStr_DownloadedAPPs,
- NULL);
- get_downloadapp_list(ad);
- //SETTING_TRACE("Exit %s with return[%d]",__FUNCTION__, downloaded_apps_num);
- SETTING_TRACE_END;
-}
-
-static void __load_downloaded_apps_level0_list(void *data)
-{
- setting_main_appdata *ad = data;
- __load_downloaded_apps_menu_list(ad, Cfg_Item_Pos_Level0);
-}
-
-static void __load_downloaded_apps_level_all_list(void *data)
-{
- SETTING_TRACE_BEGIN;
- setting_main_appdata *ad = data;
- __load_downloaded_apps_menu_list(ad, Cfg_Item_Pos_Level_All);
-}
-
-static void __check_all_view_clear(void *data)
-{
- SETTING_TRACE_BEGIN;
- ret_if(!data);
- setting_main_appdata *ad = data;
- if (ad->item_check_list) {
- eina_list_free(ad->item_check_list);
- ad->item_check_list = NULL;
- }
-
- ad->gl_sel_all = NULL;
- ad->edit_preferred_genlist = NULL;
- //ad->controllbar_all_check = NULL;
- ad->check_all_item =NULL;
-}
-
-static void __prefered_buttons_cb(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- ret_if(!data);
- setting_main_appdata *ad = (setting_main_appdata *) data;
- const char *key = NULL;
-
- key = elm_object_text_get(obj);
- setting_retm_if(data == NULL
- || key == NULL, "data == NULL || key == NULL");
-
- SETTING_TRACE_DEBUG("press button: %s", key);
-
- // "Done"
- if (!safeStrCmp(key, dgettext("sys_string", "IDS_COM_SK_DONE"))) {
-
- if (ad->profile_type == MAIN_PROFILE_ALL) {
- SETTING_TRACE_DEBUG("Cancel to hide current view.");
- setting_try_save_check_list(ad); /* need to save too */
- __check_all_view_clear(ad);
- elm_naviframe_item_pop(ad->navibar_main); // pop(preferred) --> main
+ //2.powersaving cannot work when Flightmode on
+ if (safeStrCmp(pitem->name, KeyStr_Powersaving) == 0) {
+ int status = 0;
+ vconf_get_bool(VCONFKEY_TELEPHONY_FLIGHT_MODE, &status);
+ if (status)
+ {
+ setting_create_simple_popup(NULL, ad->win_main,
+ NULL, "IDS_IM_POP_THIS_FEATURE_IS_NOT_AVAILABLE_WHILE_FLIGHT_MODE_IS_ON");
return;
}
-
- // MAIN_PROFILE_PREFERRED and Etc
- // redraw setting-main
- setting_try_save_check_list(ad);
- elm_naviframe_item_pop(ad->navibar_main); // pop (preferred) -> main
-
- //After the view is popuped, all the object handlers should be reset NULL.
- __check_all_view_clear(ad);
- ad->load_fns[Func_Type_Connectivity] = __load_connectivity_level0_list;
- ad->load_fns[Func_Type_System] = __load_system_level0_list;
- ad->load_fns[Func_Type_Apps] = __load_applications_level0_list;
- ad->load_fns[Func_Type_DownApp] = __load_downloaded_apps_level0_list;
- int ret = setting_main_refresh(ad);
- ret_if(ret != SETTING_RETURN_SUCCESS);
- return;
- }
-
- // "Cancel"
- if (!safeStrCmp(key, setting_gettext("IDS_COM_SK_CANCEL"))
- || !safeStrCmp(key, dgettext("sys_string", "IDS_COM_BODY_BACK"))) {
- SETTING_TRACE_DEBUG("Cancel to hide current view.");
- elm_naviframe_item_pop(ad->navibar_main);
- //After the view is popuped, all the object handlers should be reset NULL.
- __check_all_view_clear(ad);
- return;
- }
-}
-
-
-static void __btnback_clicked_cb(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- ret_if(!data);
- setting_main_appdata *ad = (setting_main_appdata *) data;
- elm_win_lower(ad->win_main);
-}
-
-static Eina_Bool __refresh_on_idle(void *data)
-{
- SETTING_TRACE_BEGIN;
- retv_if(!data, FALSE);
- setting_main_appdata *ad = data;
- if (MAIN_PROFILE_ALL == ad->profile_type)
- {
- ad->load_fns[Func_Type_Connectivity] = __load_connectivity_level_all_list;
- ad->load_fns[Func_Type_System] = __load_system_level_all_list;
- ad->load_fns[Func_Type_Apps] = __load_applications_level_all_list;
- ad->load_fns[Func_Type_DownApp] = __load_downloaded_apps_level_all_list;
- setting_main_refresh(ad);
- }
- else if (MAIN_PROFILE_PREFERRED == ad->profile_type)
- {
- ad->load_fns[Func_Type_Connectivity] = __load_connectivity_level0_list;
- ad->load_fns[Func_Type_System] = __load_system_level0_list;
- ad->load_fns[Func_Type_Apps] = __load_applications_level0_list;
- ad->load_fns[Func_Type_DownApp] = __load_downloaded_apps_level0_list;
- setting_main_refresh(ad);
- }
- ad->refresh_idler = NULL;
- return FALSE;
-}
-
-static void __allFrequent_btn_cb(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- ret_if(!data || !obj);
- setting_main_appdata *ad = (setting_main_appdata *) data;
- //if already has the task,cancel the old task with ecore_idler_del,then add new idler task.
- if (ad->refresh_idler) {
- ecore_idler_del(ad->refresh_idler);
- ad->refresh_idler = NULL;
- }
-
- //Elm_Object_Item *item = elm_toolbar_first_item_get(obj);
- //ret_if(!item);
- if (MAIN_PROFILE_ALL == ad->profile_type)
- {
- SETTING_TRACE("Change to Preferred view");
- elm_object_text_set(obj, _(ALL_STR));
- ad->profile_type = MAIN_PROFILE_PREFERRED;
- }
- else if (MAIN_PROFILE_PREFERRED == ad->profile_type)
- {
- SETTING_TRACE("Change to ALL view");
- elm_object_text_set(obj, _(PREFERRED_STR));
- ad->profile_type = MAIN_PROFILE_ALL;
- }
- else
- {
- return;
- }
- ad->refresh_idler = ecore_idler_add((Ecore_Task_Cb) __refresh_on_idle, ad);
-}
-
-static void __setting_show_title_toolbar(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- //elm_object_item_signal_emit(data, "elm,state,sip,shown", "");
- setting_main_appdata *ad = (setting_main_appdata *) data;
-
- Evas_Object *navi_bar = NULL;
-
- if (ad->isInUGMode && ad->ug) {
- Evas_Object *layout = (Evas_Object *)ug_get_layout(ad->ug);
- if (layout)
- navi_bar = elm_object_part_content_get(layout, "elm.swallow.content");
- } else {
- navi_bar = ad->navibar_main;
- }
-
- const char *support = evas_object_data_get(navi_bar, "sip.naviframe.title_obj");
- SETTING_TRACE("support:%s", support);
- Elm_Object_Item *top_item = elm_naviframe_top_item_get(navi_bar);
- if (0 == safeStrCmp("SEARCH", support))
- {
- /* if (top_item)
- elm_object_item_signal_emit(top_item, "elm,state,toolbar,instant_open", ""); */
- } else if (support)
- {
- if (top_item)
- elm_object_item_signal_emit(top_item, "elm,state,sip,shown", "");
- }
-
-}
-
-static void __setting_hide_title_toolbar(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- //elm_object_item_signal_emit(data, "elm,state,sip,hidden", "");
- setting_main_appdata *ad = (setting_main_appdata *) data;
-
- Evas_Object *navi_bar = NULL;
-
- if (ad->isInUGMode && ad->ug) {
- Evas_Object *layout = (Evas_Object *)ug_get_layout(ad->ug);
- if (layout)
- navi_bar = elm_object_part_content_get(layout, "elm.swallow.content");
- } else {
- navi_bar = ad->navibar_main;
- }
-
- const char *support = evas_object_data_get(navi_bar, "sip.naviframe.title_obj");
-
- SETTING_TRACE("support:%s", support);
- Elm_Object_Item *top_item = elm_naviframe_top_item_get(navi_bar);
- if (0 == safeStrCmp("SEARCH", support))
- {
- /* if (top_item)
- elm_object_item_signal_emit(top_item, "elm,state,toolbar,instant_close", ""); */
- }
- else if (support)
- {
- if (top_item)
- elm_object_item_signal_emit(top_item, "elm,state,sip,hidden", "");
- }
-
-}
-
-static bool __setting_create_main_view(void *data)
-{
- SETTING_TRACE_BEGIN;
- /* error check */
- setting_retvm_if(data == NULL, FALSE, "data == NULL");
- setting_main_appdata *ad = (setting_main_appdata *) data;
-
- Evas_Object *conform = elm_conformant_add(ad->win_main);
- ad->ly_main = setting_create_win_layout(ad->win_main, ad->win_main);
- evas_object_size_hint_weight_set(conform, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- evas_object_size_hint_align_set(conform, EVAS_HINT_FILL, EVAS_HINT_FILL);
- elm_win_resize_object_add(ad->win_main, conform);
- elm_object_content_set(conform, ad->ly_main);
- evas_object_show(conform);
-
- evas_object_smart_callback_add(conform, "virtualkeypad,state,on", __setting_show_title_toolbar, ad);
- evas_object_smart_callback_add(conform, "virtualkeypad,state,off", __setting_hide_title_toolbar, ad);
-
- elm_win_conformant_set(ad->win_main, EINA_TRUE);
-
- ad->conform = conform;
-
- ad->navibar_main = setting_create_navi_bar(ad->ly_main);
-
- ad->main_genlist = elm_genlist_add(ad->navibar_main);
- elm_object_style_set(ad->main_genlist, "dialogue");
- retvm_if(ad->main_genlist == NULL, FALSE,
- "Cannot set scroller object as contento of layout");
-
- //elm_genlist_homogeneous_set(ad->main_genlist, EINA_TRUE);
- elm_genlist_clear(ad->main_genlist); /* first to clear list */
- evas_object_smart_callback_add(ad->main_genlist, "realized", __gl_realized, ad);
-
- setting_create_navi_bar_buttons(_("IDS_COM_BODY_SETTINGS"),
- _("IDS_COM_BODY_BACK"), NULL, _("IDS_ST_OPT_ALL"),
- __btnback_clicked_cb, NULL,
- __allFrequent_btn_cb, ad, ad->main_genlist,
- ad->navibar_main, NULL);
-
- ad->profile_type = MAIN_PROFILE_PREFERRED;
- ad->load_fns[Func_Type_Connectivity] = __load_connectivity_level0_list;
- ad->load_fns[Func_Type_System] = __load_system_level0_list;
- ad->load_fns[Func_Type_Apps] = __load_applications_level_all_list;
- ad->load_fns[Func_Type_DownApp] = __load_downloaded_apps_level_all_list;
- setting_main_refresh(ad);
- return TRUE;
-}
-
-static bool __setting_create_prefered_view(void *data)
-{
- SETTING_TRACE_BEGIN;
- /* error check */
- setting_retvm_if(data == NULL, FALSE, "data == NULL");
- setting_main_appdata *ad = (setting_main_appdata *) data;
-
- /* the genlist will be destroyed with its parent view, when using elm_naviframe_item_pop() to destroy the view. */
- ad->edit_preferred_genlist = elm_genlist_add(ad->win_main);
- elm_object_style_set(ad->edit_preferred_genlist, "dialogue");
- elm_genlist_clear(ad->edit_preferred_genlist); /* first to clear list */
-
- /* [UI] edit preffered view */
- Evas_Object *sub_layout = elm_layout_add(ad->win_main);
- elm_object_style_set(sub_layout, "dialogue");
- elm_layout_file_set(sub_layout, SETTING_THEME_EDJ_NAME, "search_layout");
- evas_object_size_hint_weight_set(sub_layout, EVAS_HINT_EXPAND, 0.0);
- evas_object_show(sub_layout);
-
- ad->gl_sel_all = elm_genlist_add(ad->win_main);
- elm_genlist_clear(ad->gl_sel_all); /* first to clear list */
- elm_genlist_bounce_set(ad->gl_sel_all, 0, 0);
-
- elm_object_part_content_set(sub_layout, "search_bar", ad->gl_sel_all); /* add 'Select all' */
- elm_object_part_content_set(sub_layout, "search_list", ad->edit_preferred_genlist); /* add Genlist */
-
- /* push, not create */
- setting_push_layout_navi_bar(_(EDIT_PREFERRED_STR),
- _("IDS_COM_SK_CANCEL"),
- _("IDS_COM_SK_DONE"), NULL,
- __prefered_buttons_cb, __prefered_buttons_cb, NULL, ad,
- sub_layout, ad->navibar_main,
- NULL);
- SETTING_TRACE_END;
- return TRUE;
-}
-
-static void setting_main_tapi_event_cb(TapiHandle *handle, int result, void *data, void *user_data)
-{
- SETTING_TRACE_BEGIN;
- ret_if(!user_data);
- setting_main_appdata *ad = user_data;
- ad->b_fm_requesting = FALSE;
- SETTING_TRACE("result:%d", result);
-
- int err = 0;
- switch (result) {
- case TAPI_POWER_FLIGHT_MODE_RESP_ON:
-
- setting_set_bool_slp_key(BOOL_SLP_SETTING_FLIGHT_MODE,
- SETTING_ON_OFF_BTN_ON, &err);
-
- //If Setting has validate operation (fm_waiting_op == FM_LEAVE) to process, process it.
- //Otherwise, do nothing
- if (FM_LEAVE == ad->fm_waiting_op)
- {
- //Send the latest operation
- ad->fm_waiting_op = FM_INVALID;
- err = tel_set_flight_mode(ad->handle, TAPI_POWER_FLIGHT_MODE_LEAVE,setting_main_tapi_event_cb,ad);
- setting_retm_if(err != TAPI_API_SUCCESS,
- "*** [ERR] tel_set_flight_mode(TAPI_POWER_FLIGHT_MODE_LEAVE) ***");
-
- //sucessfully sent,
- ad->b_fm_requesting = TRUE;
-
- }
- break;
-
- case TAPI_POWER_FLIGHT_MODE_RESP_OFF:
-
- setting_set_bool_slp_key(BOOL_SLP_SETTING_FLIGHT_MODE,
- SETTING_ON_OFF_BTN_OFF, &err);
-
- //If Setting has validate operation (here, fm_waiting_op == FM_ENTER) to process,process it.
- //Otherwise, do nothing
- if (FM_ENTER == ad->fm_waiting_op)
- {
- //Send the latest operation
- ad->fm_waiting_op = FM_INVALID;
- err = tel_set_flight_mode(ad->handle, TAPI_POWER_FLIGHT_MODE_ENTER,setting_main_tapi_event_cb,ad);
- setting_retm_if(err != TAPI_API_SUCCESS,
- "*** [ERR] tel_set_flight_mode(TAPI_POWER_FLIGHT_MODE_ENTER) ***");
-
- //sucessfully sent,
- ad->b_fm_requesting = TRUE;
- }
-
- break;
-
- case TAPI_POWER_FLIGHT_MODE_RESP_FAIL:
- //Setting has a validate operation to process, Send the operation request
- if (FM_ENTER == ad->fm_waiting_op)
- {
- ad->fm_waiting_op = FM_INVALID;
- err = tel_set_flight_mode(ad->handle, TAPI_POWER_FLIGHT_MODE_ENTER,setting_main_tapi_event_cb,ad);
-
- setting_retm_if(err != TAPI_API_SUCCESS,
- "*** [ERR] tel_set_flight_mode(TAPI_POWER_FLIGHT_MODE_ENTER) ***");
- ad->b_fm_requesting = TRUE;
- }
- else if (FM_LEAVE == ad->fm_waiting_op)
- {
- ad->fm_waiting_op = FM_INVALID;
- err = tel_set_flight_mode(ad->handle, TAPI_POWER_FLIGHT_MODE_LEAVE,setting_main_tapi_event_cb,ad);
-
- setting_retm_if(err != TAPI_API_SUCCESS,
- "*** [ERR] tel_set_flight_mode(TAPI_POWER_FLIGHT_MODE_LEAVE) ***");
- ad->b_fm_requesting = TRUE;
- }
- else //Current requset is the last one, Setting needs to notify user
- {
- setting_create_popup_without_btn(ad, ad->win_main,
- _("IDS_COM_POP_ERROR"),
- _("IDS_ST_POP_UNABLE_TO_TURN_ON_FLIGHT_MODE_VODA"),
- NULL, POPUP_INTERVAL,
- FALSE, FALSE);
-
- //It is need to rollback the status,
- if (ad->data_flight) {
- ad->data_flight->chk_status = !ad->data_flight->chk_status;
- elm_check_state_set(ad->data_flight->eo_check, ad->data_flight->chk_status);
- }
- return;
- }
-
- //sucessfully sent,
- ad->b_fm_requesting = TRUE;
-
- break;
-
- case TAPI_POWER_FLIGHT_MODE_RESP_MAX:
- setting_create_popup_without_btn(ad, ad->win_main,
- _("IDS_COM_POP_ERROR"),
- _("IDS_COM_POP_UNEXPECTED_ERROR"),
- NULL, POPUP_INTERVAL, FALSE, FALSE);
-
- //It is need to rollback the status,
- if (ad->data_flight) {
- ad->data_flight->chk_status = !ad->data_flight->chk_status;
- elm_check_state_set(ad->data_flight->eo_check, ad->data_flight->chk_status);
- }
- 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;
-}
-
-static int setting_main_refresh(void *data)
-{
- SETTING_TRACE_BEGIN;
- setting_main_appdata *ad = (setting_main_appdata *) data;
- elm_genlist_clear(ad->main_genlist); /* first to clear list */
-
-#if 0
- if (is_ug_installed_by_ug_args("rcs-config"))
- {
- Elm_Object_Item *item = elm_genlist_item_append(ad->main_genlist, &itc_seperator, NULL, NULL,
- ELM_GENLIST_ITEM_NONE, NULL, NULL);
- elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
- setting_create_Gendial_field_groupitem(ad->main_genlist,
- &(ad->itc[GENDIAL_Type_1text_1icon_2]),
- NULL,
- setting_main_click_list_ex_ug_cb,
- "rcs-config",
- SWALLOW_Type_INVALID,
- IMG_Joyn, NULL,
- 0, KeyStr_Joyn, NULL,
- NULL);
- }
-#endif
-
- int i;
- for(i = Func_Type_Connectivity; i < Func_Type_MAX; i++)
- (ad->load_fns[i]) (ad);
-
- memset(ad->load_fns, 0, Func_Type_MAX *sizeof(menu_list_load_fn));
- SETTING_TRACE_END;
- return SETTING_RETURN_SUCCESS;
-}
-
-static int setting_main_create(void *cb)
-{
- retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
-
- setting_main_appdata *ad = (setting_main_appdata *) cb;
- g_main_ad = ad;
- //pass NULL to let TAPI access default module
- ad->handle = tel_init(NULL);
- if (!ad->handle) {
- SETTING_TRACE_ERROR("*** [ERR] tel_init failed ***");
- } else {
- SETTING_TRACE("tel_init ok[handle:%p]", ad->handle);
- }
- setting_create_Gendial_itc("dialogue/1text.1icon.2",
- &(ad->itc[GENDIAL_Type_1text_1icon_2]));
- setting_create_Gendial_itc("dialogue/1text.2icon",
- &(ad->itc[GENDIAL_Type_1text_2icon]));
- setting_create_Gendial_itc("dialogue/2text.1icon.3",
- &(ad->itc[GENDIAL_Type_1icon_2text]));
- setting_create_Gendial_itc("dialogue/1text.1icon.2",
- &(ad->itc[GENDIAL_Type_1text_2icon_2]));
- setting_create_Gendial_itc("dialogue/2text.2icon.3",
- &(ad->itc[GENDIAL_Type_2text_2icon_3]));
- setting_create_Gendial_itc("dialogue/title",
- &(ad->itc[GENDIAL_Type_group_item]));
- setting_create_Gendial_itc("select_all",
- &(ad->itc[GENDIAL_Type_sel_all]));
-
- setting_create_Gendial_itc("dialogue/2text.3", &(ad->itc[GENDIAL_Type_2text_3]));
-
- ad->view_type = SETTING_VIEW_MAIN;
- __setting_create_main_view(ad);
-
- setting_view_main.is_create = 1;
-
- setting_drawer_list_init();
- return SETTING_RETURN_SUCCESS;
-}
-
-static int setting_main_destroy(void *cb)
-{
- SETTING_TRACE_BEGIN;
- /* error check */
- retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
-
- setting_main_appdata *ad = (setting_main_appdata *) cb;
- if (0 == setting_view_main.is_create)
- {
- //already not exsit
- return SETTING_RETURN_SUCCESS;
- }
-
- evas_object_smart_callback_del(ad->conform, "virtualkeypad,state,on", __setting_show_title_toolbar);
- evas_object_smart_callback_del(ad->conform, "virtualkeypad,state,off", __setting_hide_title_toolbar);
-
- if (ad->refresh_idler) {
- ecore_idler_del(ad->refresh_idler);
- ad->refresh_idler = NULL;
- }
-
- if (ad->handle) {
- int tapi_ret = tel_deinit(ad->handle);
- if (tapi_ret != TAPI_API_SUCCESS) {
- SETTING_TRACE_DEBUG("*** [ERR] tel_deinit. [%d] ***", tapi_ret);
- } else {
- SETTING_TRACE("*** tel_deinit OK ");
- }
- ad->handle = NULL;
- }
-
- /* then destroy the UI object. */
- if (ad->item_check_list) {
- eina_list_free(ad->item_check_list);
- ad->item_check_list = NULL;
- } else {
- SETTING_TRACE("*** ad->item_check_list is NULL - abnormal state ");
- }
-
- if (ad->ly_main) {
- evas_object_del(ad->ly_main);
- ad->ly_main = NULL;
- }
-
- if (ad->flight_popup) {
- evas_object_del(ad->flight_popup);
- ad->flight_popup = NULL;
- }
-
- evas_object_smart_callback_del(ad->main_genlist, "realized", __gl_realized);
-
- setting_dbus_handler_fini();
- setting_drawer_list_fini();
-
- setting_view_main.is_create = 0;
- SETTING_TRACE_END;
- return SETTING_RETURN_SUCCESS;
-}
-
-static int setting_main_update(void *cb)
-{
- SETTING_TRACE_BEGIN;
-
- /* error check */
- retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
-
- setting_main_appdata *ad = (setting_main_appdata *) cb;
-
- if (ad->ly_main != NULL) {
- //evas_object_show(ad->ly_main);
- }
-
- return SETTING_RETURN_SUCCESS;
-}
-
-static int setting_main_cleanup(void *cb)
-{
- SETTING_TRACE_BEGIN;
- /* error check */
- retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
-
- setting_main_appdata *ad = (setting_main_appdata *) cb;
-
- if (ad->ly_main != NULL) {
- //evas_object_hide(ad->ly_main);
- }
-
- return SETTING_RETURN_SUCCESS;
-}
-
-/* ***************************************************
- *
- *general func
- *
- ***************************************************/
-
-void setting_update_gl_item(void* data)
-{
- SETTING_TRACE_BEGIN;
- setting_main_appdata *ad = data;
- retm_if(!data, "Invalid argument: data is NULL");
-
- int nDx = 0;
- Eina_Bool bGlUpdate = EINA_FALSE;
- Setting_GenGroupItem_Data *item_to_update = NULL;
-
- for(;nDx<GL_ITEM_MAX; nDx++) {
- if(EINA_TRUE == ad->updateItems[nDx]) {
- switch (nDx)
- {
- case GL_ITEM_WIFI:
- item_to_update = ad->data_wifi;
- bGlUpdate = EINA_TRUE;
- break;
- case GL_ITEM_BT:
- item_to_update = ad->data_bt;
- bGlUpdate = EINA_TRUE;
- break;
- case GL_ITEM_NFC:
- item_to_update = ad->data_nfc;
- bGlUpdate = EINA_TRUE;
- break;
- case GL_ITEM_FLIGHT:
- item_to_update = ad->data_flight;
- bGlUpdate = EINA_FALSE;
- break;
-
-
-
-
- default: // other case
- continue;
- }
-
- 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);
- elm_genlist_item_update(item_to_update->item);
- } else {
- SETTING_TRACE("chk update:%d", nDx);
- elm_check_state_set(item_to_update->eo_check, item_to_update->chk_status);
- }
- }
-
- ad->updateItems[nDx] = EINA_FALSE;
- } // if(EINA_TRUE == ad->updateItems[nDx])
-
- }
-
- SETTING_TRACE_END;
- return;
-}
-
-void setting_main_destroy_ug_cb(ui_gadget_h ug, void *priv)
-{
- setting_main_appdata *ad = (setting_main_appdata *) priv;
- if (!ad)
- return; /* do nothing if ad is NULL */
-
- if (ug) {
- ug_destroy(ug);
- ad->ug = NULL;
- }
-
- setting_main_click_list_item_reset_data(ad, NULL);
-
- // update main genlist in unloading UG
- SETTING_TRACE("update main genlist in unloading UG");
- setting_update_gl_item(ad);
-
- SETTING_TRACE_END;
-}
-
-void setting_main_result_ug_cb(ui_gadget_h ug, service_h service,
- void *priv)
-{
- if (!priv) return;
-
- // set default local automatically
- set_defaultLangICU();
-}
-
-void setting_main_layout_ug_cb(ui_gadget_h ug, enum ug_mode mode,
- void *priv)
-{
- setting_main_appdata *ad = (setting_main_appdata *) priv;
- Evas_Object *base;
-
- if (!priv)
- return;
- SETTING_TRACE_BEGIN;
-
- base = (Evas_Object *) ug_get_layout(ug);
- if (!base)
- return;
-
- switch (mode) {
- case UG_MODE_FULLVIEW:
- evas_object_size_hint_weight_set(base, EVAS_HINT_EXPAND,
- EVAS_HINT_EXPAND);
- evas_object_show(base);
- break;
- default:
- break;
- }
-
- SETTING_TRACE_END;
-}
-
-/* ***************************************************
- *
- *call back func
- *
- ***************************************************/
-
-void setting_main_click_list_item_reset_data(void *data,
- Evas_Object *obj)
-{
- SETTING_TRACE_BEGIN;
- setting_main_appdata *ad = (setting_main_appdata *) data;
-
- ad->isInUGMode = FALSE;
-
- SETTING_TRACE_END;
-}
-
-void /* obj is the layout clicked */
-setting_main_click_list_item_ug_cb(void *data, Evas_Object *obj,
- char *ug_to_load, service_h svc,
- struct ug_cbs *cbs)
-{
- SETTING_TRACE_BEGIN;
- setting_main_appdata *ad = (setting_main_appdata *) data;
- if (!ug_to_load) {
- setting_create_simple_popup(ad, ad->win_main, NULL, NO_UG_FOUND_MSG);
- return;
- }
-#if DISABLED_CODE
- char ug_file[PATH_MAX];
- if (snprintf
- (ug_file, PATH_MAX, "%s/libug-%s.so", SETTING_UG_PATH,
- ug_to_load) < 0)
- return;
- SETTING_TRACE("ug_file:%s", ug_file);
- if (!ecore_file_exists(ug_file)) {
- setting_create_simple_popup(ad, ad->win_main, NULL, NO_UG_FOUND_MSG);
- return;
- }
-#endif
- SETTING_TRACE("to create libug-%s.so", ug_to_load);
- ad->ug = ug_create(NULL, ug_to_load, UG_MODE_FULLVIEW, svc, cbs);
- if (ad->ug) {
- ad->isInUGMode = TRUE;
- memset(ad->cur_loaded_ug, 0x00, MAX_DISPLAY_NAME_LEN_ON_UI);
- safeCopyStr(ad->cur_loaded_ug, ug_to_load, MAX_DISPLAY_NAME_LEN_ON_UI);
- } else {
-
- evas_object_show(ad->ly_main);
-
- SETTING_TRACE_ERROR("errno:%d", errno);
- setting_create_simple_popup(ad, ad->win_main, NULL, NO_UG_FOUND_MSG);
- }
- SETTING_TRACE_END;
-}
-
-void
-setting_main_click_list_default_ug_cb(void *data, Evas_Object *obj,
- void *event_info)
-{
- setting_main_appdata *ad = data;
- setting_create_simple_popup(ad, ad->win_main, NULL,
- NO_UG_FOUND_MSG);
-}
-
-void
-setting_main_click_list_usb_cb(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- retm_if(event_info == NULL, "Invalid argument: event info is NULL");
-
- int err;
- int value = -1;
- char *str_text = USB_NEED_OFF;
-
- Elm_Object_Item *item = (Elm_Object_Item *) event_info;
-#if 0
- setting_get_int_slp_key(INT_SLP_SETTING_MOBILE_AP_STATUS, &value, &err);
- if (err != 0)
- {
- SETTING_TRACE_ERROR("FAIL: VCONFKEY_MOBILE_HOTSPOT_MODE may not exist\n");
- setting_main_click_list_ex_ug_cb(data, obj, item);
- return;
- }
-#endif
- /* If mobile hotspot is on, going USB utilties is blocked by a popup*/
- if (value & VCONFKEY_MOBILE_HOTSPOT_MODE_USB)
- {
- elm_genlist_item_selected_set(item, EINA_FALSE);
- setting_create_simple_popup(g_main_ad, g_main_ad->win_main, NULL, (str_text));
- }
- else
- {
- setting_main_click_list_ex_ug_cb(data, obj, item);
- }
-
- SETTING_TRACE_END;
-}
-
-void setting_main_click_list_more_cb(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- 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);
- retm_if(data == NULL, "Invalid argument: data is NULL");
- setting_main_appdata *ad = data;
- Setting_GenGroupItem_Data *selected_item_data =
- (Setting_GenGroupItem_Data *) elm_object_item_data_get(item);
- SETTING_TRACE("selected_item_data->keyStr:%s", selected_item_data->keyStr);
- if (0 == safeStrCmp(selected_item_data->keyStr, KeyStr_MoreConnect))
- {
- ad->view_load = SETTING_VIEW_CONNECTIVE_MORE;
- }
- else if (0 == safeStrCmp(selected_item_data->keyStr, KeyStr_MoreSystem))
- {
- ad->view_load = SETTING_VIEW_SYSTEM_MORE;
- }
- else
- {
- return;
- }
- setting_view_change(&setting_view_main, &setting_view_more_menu, ad);
-}
-
-
-void
-setting_main_click_list_ex_ug_cb(void *data, Evas_Object *obj,
- void *event_info)
-{
- SETTING_TRACE_BEGIN;
- 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);
-
- if (g_main_ad->ug) {
- SETTING_TRACE
- ("[ad->ug non-NULL]skip genlist click event!!");
-
- SETTING_TRACE_END;
- return;
- }
-
- if (NULL == data) { /* pass NULL to ug_args when create setting.cfg. */
- setting_create_simple_popup(g_main_ad,
- g_main_ad->win_main,
- NULL, NO_UG_FOUND_MSG);
- SETTING_TRACE_END;
- return;
}
- setting_main_appdata *ad = g_main_ad;
-
- /* if UG is created by Setting app, setting_main_click_list_ex_ug_cb is diabled. */
- if (ad->isInUGMode) {
- SETTING_TRACE("isInUGMode : TRUE - another UG is running now.");
- ad->isInUGMode = FALSE;
- SETTING_TRACE_END;
- return;
- } else {
- SETTING_TRACE
- ("isInUGMode : FALSE - another UG is NOT running now.")
+ //3.Quick command cannot work when TTS on
+ int tts_state = 0;
+ vconf_get_bool(VCONFKEY_SETAPPL_ACCESSIBILITY_TTS, &tts_state);
+ if (tts_state)
+ {
+ if (!safeStrCmp(pitem->name, KeyStr_QUICK_CMD))
+ {
+ char noti_str[MAX_SPECIALIZITION_LEN + 1] = { 0, };
+ snprintf(noti_str, sizeof(noti_str), _(FEATURE_UNAVALIABLE_WHILE_TTS_ON), _(KeyStr_QUICK_CMD));
+ setting_create_popup_without_btn(NULL, ad->win_main, NULL, _(noti_str),
+ NULL, 0.0, TRUE, FALSE);
+ return;
+ }
}
- Setting_GenGroupItem_Data *selected_item_data =
- (Setting_GenGroupItem_Data *) elm_object_item_data_get(item);
- setting_main_click_list_item_reset_data(ad, obj);
- const char *item_name = _(selected_item_data->keyStr);
- ret_if(!item_name);
-
+ // initialize UG module
struct ug_cbs *cbs = (struct ug_cbs *)calloc(1, sizeof(struct ug_cbs));
setting_retm_if(!cbs, "calloc failed");
cbs->layout_cb = setting_main_layout_ug_cb;
cbs->destroy_cb = setting_main_destroy_ug_cb;
cbs->priv = (void *)ad;
- char *path = get_ug_path_from_ug_args(data);
- service_h svc = get_bundle_from_ug_args(data);
- setting_main_click_list_item_ug_cb(ad, obj, path, svc, cbs);
- if (path)
- FREE(path);
- if (cbs)
- FREE(cbs);
- path = NULL;
- cbs = NULL;
- service_destroy(svc);
+ char *path = get_ug_path_from_ug_args((void *)(pitem->ug_name)); // void* -> char*
+ app_control_h svc = get_bundle_from_ug_args((void *)(pitem->ug_name)); // void* -> char*
+ setting_main_click_grid_item_ug_cb(ad, obj, path, svc, cbs);
+
+ FREE(path);
+ FREE(cbs);
+ app_control_destroy(svc);
+
+ int click_times = setting_cfg_get_click_times((char *)(pitem->name));
+ setting_cfg_set_click_times((char *)(pitem->name), ++click_times);
+ setting_cfg_file_update();
}
-void
-setting_main_click_list_plugin_cb(void *data, Evas_Object *obj,
- void *event_info)
+
+static Eina_Bool _navibar_back_pop_cb(void *data, Elm_Object_Item *it)
{
SETTING_TRACE_BEGIN;
- 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_GenGroupItem_Data *selected_item = (Setting_GenGroupItem_Data *) elm_object_item_data_get(item);
+ retv_if(!data, EINA_FALSE);
+ setting_main_appdata *ad = (setting_main_appdata *) data;
+
+ if (ad && ad->win_main)
+ {
+ elm_win_lower(ad->win_main);
+ }
+
+ SETTING_TRACE_END;
+ return EINA_FALSE;
+}
- setting_main_appdata *ad = data;
- ad->plugin_path = strdup(selected_item->sub_desc);
- SETTING_TRACE(" >> SELECTED plugin name : %s \n", ad->plugin_path);
+void _setting_genlist_itc_init(void *cb)
+{
+ setting_main_appdata *ad = (setting_main_appdata *) cb;
- 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
+ // [UI] create structures for genlist style
+ setting_create_Gendial_itc("1line", &(ad->itc[GENDIAL_Type_1text_1icon_2]));
+ setting_create_Gendial_itc("1line", &(ad->itc[GENDIAL_Type_1text_2icon]));
+ setting_create_Gendial_itc("1line", &(ad->itc[GENDIAL_Type_1icon_2text]));
+ setting_create_Gendial_itc("dialogue/1text.1icon.2", &(ad->itc[GENDIAL_Type_1text_2icon_2]));
+ setting_create_Gendial_itc("dialogue/2text.2icon.3", &(ad->itc[GENDIAL_Type_2text_2icon_3]));
+ setting_create_Gendial_itc("groupindex", &(ad->itc[GENDIAL_Type_group_item]));
+ setting_create_Gendial_itc("searchbar", &(ad->itc[GENDIAL_Type_sel_all]));
+ setting_create_Gendial_itc("setting.1text.2icon", &(ad->itc[GENDIAL_Type_1text_2icon_9]));
+ setting_create_Gendial_itc("setting.1text.2icon.1", &(ad->itc[GENDIAL_Type_1text_2icon_10]));
+ setting_create_Gendial_itc("dialogue/2text", &(ad->itc[GENDIAL_Type_2text_3]));
- setting_drawer_list_init();
- setting_dbus_handler_init( ad->plugin_node );
+ setting_create_Gendial_itc("1line", &(ad->itc[GENDIAL_Type_1text_2icon_divider]));
+ setting_create_Gendial_itc("groupindex", &(ad->itc[GENDIAL_Type_expandable_proc]));
- setting_plugin_load(plugin_node, (const char *)plugin_node->plugin_path);
+ ad->itc_expand_grid.func.del = NULL; /* _gl_Gendial_del; */
}
-/**
- * @see [caller] setting_main_list_mouse_up_cb
- * @see [caller] setting_main_sel_list_mouse_up_cb
- */
-static void __rotate_lock_handler(int chk_status, setting_main_appdata *ad )
+static void _setting_tapi_init(void *cb)
{
- SETTING_TRACE_BEGIN;
- if( chk_status == 1)
- {
- // toggle : 0 --> 1
- int angle = elm_win_rotation_get(ad->win_main);
- elm_win_rotation_with_resize_set(ad->win_main, angle);
+ setting_main_appdata *ad = (setting_main_appdata *) cb;
+ //pass NULL to let TAPI access default module
+ ad->handle = tel_init(NULL);
+ if (!ad->handle) {
+ SETTING_TRACE_ERROR("*** [ERR] tel_init failed ***");
} else {
- elm_win_rotation_with_resize_set(ad->win_main, 0);
+ SETTING_TRACE("tel_init ok[handle:%p]", ad->handle);
}
- vconf_set_bool(VCONFKEY_SETAPPL_AUTO_ROTATE_SCREEN_BOOL, chk_status);
}
-/**
- * toggle cb
- */
-void setting_main_list_mouse_up_cb(void *data, Evas_Object *eo,
- void *event_info)
+static void _setting_tapi_deinit(void *cb)
{
- SETTING_TRACE_BEGIN;
- retm_if(data == NULL, "Data parameter is NULL");
- Setting_GenGroupItem_Data *list_item =
- (Setting_GenGroupItem_Data *) data;
- SETTING_TRACE("process item [%s]", list_item->keyStr);
- list_item->chk_status = elm_check_state_get(eo); /* for update new state */
-
- SETTING_TRACE("change radio[%s], status is:%d", _(list_item->keyStr),
- list_item->chk_status);
- setting_main_appdata *ad = g_main_ad;
+ setting_main_appdata *ad = (setting_main_appdata *) cb;
- if (!safeStrCmp(KeyStr_UsePacketData, list_item->keyStr)) {
- int err;
- if (elm_check_state_get(eo)) {
- setting_set_bool_slp_key
- (BOOL_SLP_SETTING_USE_PACKET_DATA,
- SETTING_ON_OFF_BTN_ON, &err);
+ if (ad->handle) {
+ int tapi_ret = tel_deinit(ad->handle);
+ if (tapi_ret != TAPI_API_SUCCESS) {
+ SETTING_TRACE_DEBUG("*** [ERR] tel_deinit. [%d] ***", tapi_ret);
} else {
- setting_set_bool_slp_key
- (BOOL_SLP_SETTING_USE_PACKET_DATA,
- SETTING_ON_OFF_BTN_OFF, &err);
+ SETTING_TRACE("*** tel_deinit OK ");
}
-
- } else if (!safeStrCmp(KeyStr_Landscape, list_item->keyStr)) {
- __rotate_lock_handler(list_item->chk_status, ad);
+ ad->handle = NULL;
}
-
- return;
}
-/**
- * genlist touch cb
- */
-void setting_main_sel_list_mouse_up_cb(void *data, Evas_Object *eo,
- void *event_info)
+// "virtualkeypad,state,on"
+static void ___title_toolbar_show(void *data, Evas_Object *obj, void *event_info)
{
SETTING_TRACE_BEGIN;
- setting_retm_if(data == NULL, "Data parameter is NULL");
+ setting_main_appdata *ad = (setting_main_appdata *) data;
- 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, 0);
- Setting_GenGroupItem_Data *list_item =
- (Setting_GenGroupItem_Data *) elm_object_item_data_get(item);
+ Evas_Object *navi_bar = NULL;
- list_item->chk_status = elm_check_state_get(list_item->eo_check);
+ if (ad->isInUGMode && ad->ug) {
+ Evas_Object *layout = (Evas_Object *)ug_get_layout(ad->ug);
+ if (layout)
+ {
+ navi_bar = elm_object_part_content_get(layout, "elm.swallow.content");
+ }
+ } else {
+ navi_bar = ad->navibar_main;
+ }
- /* new status */
- list_item->chk_status = !list_item->chk_status;
- elm_check_state_set(list_item->eo_check, list_item->chk_status);
+ const char *support = evas_object_data_get(navi_bar, "sip.naviframe.title_obj");
+ SETTING_TRACE("support:%s", support);
+ Elm_Object_Item *top_item = elm_naviframe_top_item_get(navi_bar);
+ if (0 == safeStrCmp("SEARCH", support))
+ {
+ // do nothing
+ } else if (support)
+ {
+ if (top_item)
+ {
+ elm_object_item_signal_emit(top_item, "elm,state,sip,shown", "");
+ }
+ }
+}
+// "virtualkeypad,state,off"
+static void ___title_toolbar_hide(void *data, Evas_Object *obj, void *event_info)
+{
+ SETTING_TRACE_BEGIN;
setting_main_appdata *ad = (setting_main_appdata *) data;
- if (!safeStrCmp(KeyStr_UsePacketData, list_item->keyStr)) {
- /* setting_reset_slp_key_by_status(eo, BOOL_SLP_SETTING_USE_PACKET_DATA); */
- int err;
- setting_set_bool_slp_key(BOOL_SLP_SETTING_USE_PACKET_DATA,
- list_item->chk_status, &err);
- } else if (!safeStrCmp(KeyStr_Landscape, list_item->keyStr)) {
- __rotate_lock_handler(list_item->chk_status, ad);
+ Evas_Object *navi_bar = NULL;
+
+ if (ad->isInUGMode && ad->ug) {
+ Evas_Object *layout = (Evas_Object *)ug_get_layout(ad->ug);
+ if (layout)
+ {
+ navi_bar = elm_object_part_content_get(layout, "elm.swallow.content");
+ }
+ } else {
+ navi_bar = ad->navibar_main;
}
- return;
+ const char *support = evas_object_data_get(navi_bar, "sip.naviframe.title_obj");
+
+ SETTING_TRACE("support:%s", support);
+ Elm_Object_Item *top_item = elm_naviframe_top_item_get(navi_bar);
+ if (0 == safeStrCmp("SEARCH", support))
+ {
+ // do nothing
+ }
+ else if (support)
+ {
+ if (top_item)
+ {
+ elm_object_item_signal_emit(top_item, "elm,state,sip,hidden", "");
+ }
+ }
}
-void __alternate_flight_mode(Evas_Object *check)
+Evas_Object *setting_main_layout_conform_create(Evas_Object *win_layout, Evas_Object *win_obj, void* data)
{
SETTING_TRACE_BEGIN;
- int ret;
- Eina_Bool status = elm_check_state_get(check);
- SETTING_TRACE("flight mode status : %d", status);
- setting_main_appdata *ad = g_main_ad;
+ LAUNCH_SETTING_IN();
+ Evas_Object *layout = NULL;
- //Check whether some requestion is processing by TAPI
- if (ad->b_fm_requesting)
+ Evas_Object *conform = NULL;
+ //conform = elm_conformant_add(win_obj);
+ conform = (Evas_Object*) app_get_preinitialized_conformant();
+ if (!conform)
+ conform = elm_conformant_add(win_obj);
+
+ setting_main_appdata *ad = (setting_main_appdata *) data;
+ if(!conform)
{
- //Do nothing, just mark the lastest operation..
- SETTING_TRACE("Some requestion is processing by TAPI, wait to process");
- ad->fm_waiting_op = status ? FM_ENTER : FM_LEAVE;
- return;
+ return NULL;
}
- //otherwise, invalid waiting operation and send requsetion to TAPI:
- ad->fm_waiting_op = FM_INVALID;
- if (status) {
- ret = tel_set_flight_mode(ad->handle, TAPI_POWER_FLIGHT_MODE_ENTER,setting_main_tapi_event_cb,ad);
- setting_retm_if(ret != TAPI_API_SUCCESS,
- "*** [ERR] tel_set_flight_mode(TAPI_POWER_FLIGHT_MODE_ENTER) ***");
- } else {
- ret = tel_set_flight_mode(ad->handle, TAPI_POWER_FLIGHT_MODE_LEAVE,setting_main_tapi_event_cb,ad);
- setting_retm_if(ret != TAPI_API_SUCCESS,
- "*** [ERR] tel_set_flight_mode(TAPI_POWER_FLIGHT_MODE_LEAVE) ***");
- }
+ SETTING_TRACE_DEBUG("Add conformant!!!!!");
- //sucessfully sent,
- ad->b_fm_requesting = TRUE;
- SETTING_TRACE_END;
-}
+ /* Base Layout */
+ layout = elm_layout_add(conform);
+ setting_retvm_if(layout == NULL, FALSE, "layout == NULL");
-static void __tethering_disabled_cb(tethering_error_e error, tethering_type_e type, tethering_disabled_cause_e code, void *data)
-{
- int ret;
+ elm_layout_theme_set(layout, "layout", "application", "default");
+ evas_object_size_hint_weight_set(conform, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(conform, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ //elm_win_resize_object_add(win_obj, layout);
+ elm_win_resize_object_add(win_obj, conform);
+ elm_object_content_set(conform, layout);
- if (data) {
- tethering_h th = (tethering_h)data;
- tethering_destroy(th);
- }
+ Evas_Object *bg = setting_create_bg(layout, win_obj, "group_list");
+ elm_object_part_content_set(layout, "elm.swallow.bg", bg);
+ evas_object_show(layout);
- ret = wifi_initialize();
- setting_retm_if(ret < 0, "*** [ERR] wifi_initialize() ***");
+ evas_object_smart_callback_add(conform, "virtualkeypad,state,on", ___title_toolbar_show, ad);
+ evas_object_smart_callback_add(conform, "virtualkeypad,state,off", ___title_toolbar_hide, ad);
- ret = wifi_activate(NULL, NULL);
- if (ret < 0) {
- wifi_deinitialize();
- }
- setting_retm_if(ret < 0, "*** [ERR] wifi_activate() ***");
+ elm_win_conformant_set(ad->win_main, EINA_TRUE);
+ evas_object_show(conform);
- ret = wifi_deinitialize();
- setting_retm_if(ret < 0, "*** [ERR] wifi_deinitialize() ***");
+ /* Indicator bg */
+ Evas_Object *indicator_bg = elm_bg_add(conform);
+ elm_object_style_set(indicator_bg, "indicator/headerbg");
+ elm_object_part_content_set(conform, "elm.swallow.indicator_bg", indicator_bg);
+ evas_object_show(indicator_bg);
+
+ ad->conform = conform;
+ evas_object_data_set(win_obj, "conformant", conform);
+ LAUNCH_SETTING_OUT();
+ return layout;
}
-static void __tethering_turn_off_resp_cb(void *data, Evas_Object *obj, void *event_info)
+/**
+* @brief create all view layout
+*
+* win_main
+* conformant
+* ly_main
+* navibar <- view_layout <- "elm.swallow.bg" : bg
+* <- "elm.swallow.content" : all_list
+* <- "elm.swallow.left" : left_panel
+*/
+static int setting_main_create(void *cb)
{
- setting_retm_if(NULL == obj, "NULL == obj");
- int response_type = btn_type(obj);
- Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *)data;
+ SETTING_TRACE_BEGIN;
+ LAUNCH_SETTING_IN();
+ retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
+ setting_main_appdata *ad = (setting_main_appdata *) cb;
- if (g_main_ad)
- {
- evas_object_del(g_main_ad->popup);
- g_main_ad->popup = NULL;
- }
+ _setting_tapi_init(ad);
+ _setting_genlist_itc_init(ad);
+ settinig_drawer_hash_init(ad);
- 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);
- }
+ // create a layout conformant
+ ad->ly_main = setting_main_layout_conform_create(ad->win_main, ad->win_main, ad);
+ setting_retvm_if(ad->ly_main == NULL, FALSE, "ly_main == NULL");
- 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);
+ // create a navibar
+ ad->navibar_main = setting_create_navi_bar(ad->ly_main);
+ setting_retvm_if(ad->navibar_main == NULL, FALSE, "navibar_main == NULL");
+ setting_conformant_keypad_state(ad->win_main, TRUE);
- 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);
- }
-}
+ // LAYOUT
+ Evas_Object* view_layout = elm_layout_add(ad->navibar_main);
+ setting_retvm_if(view_layout == NULL, FALSE, "view_layout == NULL");
+ elm_layout_theme_set(view_layout, "layout", "application", "default");
+ evas_object_show(view_layout);
+ ad->view_layout = view_layout;
-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() ***");
- }
+ // push a view to the naviframe
+ Elm_Object_Item *navi_it = elm_naviframe_item_push(ad->navibar_main, "IDS_ST_OPT_SETTINGS", NULL, NULL, view_layout, NULL);
+ elm_naviframe_item_title_enabled_set(navi_it, EINA_TRUE, EINA_TRUE);
+ ad->main_navi_it = navi_it;
+ elm_object_item_domain_text_translatable_set(navi_it, SETTING_PACKAGE, EINA_TRUE);
+ elm_naviframe_item_pop_cb_set(navi_it, _navibar_back_pop_cb, ad);
- 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() ***");
+ if ( ! is_searchmode_app(ad->is_searchmode)) {
+ ad->list_type = SETTING_LIST_VIEW;
+ ad->view_type = SETTING_TAB_VIEW_QUICK_SETTINGS;
+ (void)preference_get_int(PREFKEY_VIEW_TYPE, &ad->list_type);
+ (void)preference_get_int(PREFKEY_TAB_VIEW_TAB, &ad->view_type);
+ SETTING_TRACE("ad->list_type:%d", ad->list_type);
+ SETTING_TRACE("ad->view_type:%d", ad->view_type);
+
+ Evas_Object *all_list = NULL;
- 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);
+ all_list = _view_list_geter(ad);
+
+ setting_retvm_if(all_list == NULL, FALSE, "all_list == NULL");
+ elm_object_part_content_set(view_layout, "elm.swallow.content", all_list);
}
+
+ setting_view_main.is_create = 1;
+ LAUNCH_SETTING_OUT();
SETTING_TRACE_END;
+ return SETTING_RETURN_SUCCESS;
}
-void __alternate_bt_mode(Setting_GenGroupItem_Data *list_item, Evas_Object *check)
+static int setting_main_destroy(void *cb)
{
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() ***");
-
+ /* error check */
+ retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
- if (status) {
- ret = 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();
- 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() ***");
+ setting_main_appdata *ad = (setting_main_appdata *) cb;
+ if (0 == setting_view_main.is_create)
+ {
+ //already not exsit
+ return SETTING_RETURN_SUCCESS;
}
+ evas_object_smart_callback_del(ad->conform, "virtualkeypad,state,on", ___title_toolbar_show);
+ evas_object_smart_callback_del(ad->conform, "virtualkeypad,state,off", ___title_toolbar_hide);
+ evas_object_data_set(ad->win_main, "conformant", NULL);
+ _setting_tapi_deinit(ad);
- 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);
+ if(ad->event_freeze_timer)
+ {
+ ecore_timer_del(ad->event_freeze_timer);
+ ad->event_freeze_timer = NULL;
+ }
+ evas_object_smart_callback_del(ad->main_genlist, "realized", __gl_realized_cb);
+ if (ad->save_idler) {
+ ecore_timer_del(ad->save_idler);
+ ad->save_idler = NULL;
}
- 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;
-}
+ if (ad->update_idler) {
+ ecore_timer_del(ad->update_idler);
+ ad->update_idler = NULL;
+ }
-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);
+ if (ad->bt_timer) {
+ ecore_timer_del(ad->bt_timer);
+ ad->bt_timer = NULL;
}
- setting_retm_if(ret < 0, "*** [ERR] nfc_manager_initialize() ***");
-
- ret = nfc_manager_set_activation(status, 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);
- nfc_manager_deinitialize();
+ if (ad->wifi_timer) {
+ ecore_timer_del(ad->wifi_timer);
+ ad->wifi_timer = NULL;
}
- 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);
+ if (ad->nfc_timer) {
+ ecore_timer_del(ad->nfc_timer);
+ ad->nfc_timer = NULL;
}
- 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;
-}
+ if(ad->update_font_idler){
+ ecore_idler_del(ad->update_font_idler);
+ ad->update_font_idler = NULL;
+ }
-void __alternate_sbeam_mode(Evas_Object *check)
-{
- SETTING_TRACE_BEGIN;
- int ret;
- Eina_Bool status = elm_check_state_get(check);
- SETTING_TRACE("wifi mode status : %d", status);
+ if (ad->driving_mode_popup) {
+ evas_object_del(ad->driving_mode_popup);
+ ad->driving_mode_popup = NULL;
+ }
- vconf_set_bool(VCONFKEY_NFC_SBEAM, status);
+ elm_object_part_content_unset(ad->view_layout, "elm.swallow.content");
+ elm_object_item_part_content_unset(ad->main_navi_it, "tabbar");
+ if (ad->sc_gl[SC_All_List])
+ {
+ evas_object_del(ad->sc_gl[SC_All_List]);
+ ad->sc_gl[SC_All_List] = NULL;
+ }
+ if (ad->sc_gl[SC_All_Grid])
+ {
+ evas_object_del(ad->sc_gl[SC_All_Grid]);
+ ad->sc_gl[SC_All_Grid] = NULL;
+ }
- SETTING_TRACE_END;
-}
+ if(ad->ctrl_bar)
+ {
+ evas_object_del(ad->ctrl_bar);
+ ad->ctrl_bar = NULL;
+ }
+ int i = SETTING_TAB_VIEW_QUICK_SETTINGS;
+ for(; i < SETTING_TAB_VIEW_MAX; i++)
+ {
+ if (ad->sub_view[i]) {
+ evas_object_del(ad->sub_view[i]);
+ ad->sub_view[i] = NULL;
+ }
+ }
-void
-setting_main_click_list_network_ug_cb(void *data, Evas_Object *obj,
- void *event_info)
-{
- SETTING_TRACE_BEGIN;
- retm_if(event_info == NULL, "Invalid argument: event info is NULL");
- Elm_Object_Item *item = (Elm_Object_Item *) event_info;
+ if (ad->save_idler) {
+ ecore_timer_del(ad->save_idler);
+ ad->save_idler = NULL;
+ }
- elm_genlist_item_selected_set(item, EINA_FALSE);
+ if (ad->update_idler) {
+ ecore_timer_del(ad->update_idler);
+ ad->update_idler = NULL;
+ }
- if (g_main_ad->ug) {
- SETTING_TRACE
- ("[ad->ug non-NULL]skip genlist click event!!");
+ if (ad->bt_timer) {
+ ecore_timer_del(ad->bt_timer);
+ ad->bt_timer = NULL;
+ }
+ if (ad->wifi_timer) {
+ ecore_timer_del(ad->wifi_timer);
+ ad->wifi_timer = NULL;
+ }
+ if (ad->nfc_timer) {
+ ecore_timer_del(ad->nfc_timer);
+ ad->nfc_timer = NULL;
+ }
- SETTING_TRACE_END;
- return;
+ if(ad->update_font_idler){
+ ecore_idler_del(ad->update_font_idler);
+ ad->update_font_idler = NULL;
}
- setting_main_appdata *ad = g_main_ad;
- setting_main_click_list_item_reset_data(ad, obj);
-
- int err = 0;
- int value;
- setting_get_int_slp_key(INT_SLP_SETTING_SIM_SLOT, &value, &err);
- SETTING_TRACE("value:%d", value);
- switch (value) {
- case VCONFKEY_TELEPHONY_SIM_INSERTED:
- {
- struct ug_cbs *cbs =
- (struct ug_cbs *)calloc(1, sizeof(struct ug_cbs));
- setting_retm_if(!cbs, "calloc failed");
- cbs->layout_cb = setting_main_layout_ug_cb;
- cbs->result_cb = setting_main_result_ug_cb;
- cbs->destroy_cb = setting_main_destroy_ug_cb;
- cbs->priv = (void *)ad;
- setting_main_click_list_item_ug_cb(data, obj,
- "setting-network-efl",
- NULL, cbs);
- FREE(cbs);
- break;
- }
- case VCONFKEY_TELEPHONY_SIM_NOT_PRESENT:
- setting_create_simple_popup(NULL, ad->win_main,
- NULL, _("IDS_ST_HEADER_INSERT_SIM_CARD_ABB"));
- SETTING_TRACE("%s*** [ERR] No SIM. sim_slot_type=%d ***%s",
- SETTING_FONT_RED, value, SETTING_FONT_BLACK);
- return;
- break;
- case VCONFKEY_TELEPHONY_SIM_CARD_ERROR:
- case VCONFKEY_TELEPHONY_SIM_UNKNOWN:
- setting_create_simple_popup(NULL, ad->win_main,
- NULL,_("IDS_COM_BODY_INVALID_SIM_CARD"));
- SETTING_TRACE("%s*** [ERR] Invalid SIM. sim_slot_type=%d ***%s",
- SETTING_FONT_RED, value, SETTING_FONT_BLACK);
- return;
- break;
- default:
- break;
+ // sound
+ effect_playsound_close();
+
+ /* then destroy the UI object. */
+ if (ad->ly_main) {
+ evas_object_del(ad->ly_main);
+ ad->ly_main = NULL;
}
-}
-/**
- * genlist touch cb
- */
-static void
-setting_main_click_Gendial_list_flight_mode_cb(void *data, Evas_Object *obj,
- void *event_info)
-{
- /* error check */
- setting_retm_if(data == NULL, "Data parameter is NULL");
-
- 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, 0);
- Setting_GenGroupItem_Data *list_item =
- (Setting_GenGroupItem_Data *) elm_object_item_data_get(item);
- int old_status = elm_check_state_get(list_item->eo_check);
- /* new status */
- list_item->chk_status = !old_status;
- elm_check_state_set(list_item->eo_check, list_item->chk_status);
-
- __alternate_flight_mode(list_item->eo_check);
- SETTING_TRACE_END;
-}
+ /*
+ int ret = vconf_ignore_key_changed(VCONFKEY_TELEPHONY_FLIGHT_MODE, __vconf_change_cb);
+ if (ret != 0) {
+ SETTING_TRACE_ERROR("call vconf_ignore_key_changed failed");
+ }
+ */
-/**
- * toggle cb
- */
-void
-setting_main_click_list_flight_mode_cb(void *data, Evas_Object *obj,
- void *event_info)
-{
- SETTING_TRACE_BEGIN;
- retm_if(data == NULL, "Data parameter is NULL");
- Setting_GenGroupItem_Data *list_item =
- (Setting_GenGroupItem_Data *) data;
- list_item->chk_status = elm_check_state_get(obj); /* for update new state */
- SETTING_TRACE("process item [%s], status:%d", _(list_item->keyStr),
- list_item->chk_status);
-
- __alternate_flight_mode(obj);
+ setting_view_main.is_create = 0;
SETTING_TRACE_END;
+ return SETTING_RETURN_SUCCESS;
}
-/**
- * toggle cb
- */
-void
-setting_main_click_list_wifi_mode_cb(void *data, Evas_Object *obj,
- void *event_info)
+static int setting_main_update(void *cb)
{
SETTING_TRACE_BEGIN;
- retm_if(data == NULL, "Data parameter is NULL");
- Setting_GenGroupItem_Data *list_item =
- (Setting_GenGroupItem_Data *) data;
- list_item->chk_status = elm_check_state_get(obj); /* for update new state */
- SETTING_TRACE("process item [%s], status:%d", _(list_item->keyStr),
- list_item->chk_status);
-
- __alternate_wifi_mode(list_item, obj);
- SETTING_TRACE_END;
-}
-/**
- * toggle cb
- */
-void
-setting_main_click_list_bt_mode_cb(void *data, Evas_Object *obj,
- void *event_info)
-{
- SETTING_TRACE_BEGIN;
- retm_if(data == NULL, "Data parameter is NULL");
- Setting_GenGroupItem_Data *list_item =
- (Setting_GenGroupItem_Data *) data;
- list_item->chk_status = elm_check_state_get(obj); /* for update new state */
- SETTING_TRACE("process item [%s], status:%d", _(list_item->keyStr),
- list_item->chk_status);
-
- __alternate_bt_mode(list_item, obj);
- SETTING_TRACE_END;
-}
+ /* error check */
+ retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
-/**
- * toggle cb
- */
-void
-setting_main_click_list_nfc_mode_cb(void *data, Evas_Object *obj,
- void *event_info)
-{
- SETTING_TRACE_BEGIN;
- retm_if(data == NULL, "Data parameter is NULL");
- Setting_GenGroupItem_Data *list_item =
- (Setting_GenGroupItem_Data *) data;
- list_item->chk_status = elm_check_state_get(obj); /* for update new state */
- SETTING_TRACE("process item [%s], status:%d", _(list_item->keyStr),
- list_item->chk_status);
-
- __alternate_nfc_mode(list_item, obj);
- SETTING_TRACE_END;
-}
+ setting_main_appdata *ad = (setting_main_appdata *) cb;
-/**
- * toggle cb
- */
-void
-setting_main_click_list_sbeam_mode_cb(void *data, Evas_Object *obj,
- void *event_info)
-{
- SETTING_TRACE_BEGIN;
- retm_if(data == NULL, "Data parameter is NULL");
- Setting_GenGroupItem_Data *list_item =
- (Setting_GenGroupItem_Data *) data;
- list_item->chk_status = elm_check_state_get(obj); /* for update new state */
- SETTING_TRACE("process item [%s], status:%d", _(list_item->keyStr),
- list_item->chk_status);
-
- __alternate_sbeam_mode(obj);
- SETTING_TRACE_END;
+ if (ad->ly_main != NULL) {
+ //evas_object_show(ad->ly_main);
+ }
+
+ return SETTING_RETURN_SUCCESS;
}
-/**
- * store current selection in setting.cfg
- */
-void setting_try_save_check_list(void *data)
+
+
+static int setting_main_cleanup(void *cb)
{
SETTING_TRACE_BEGIN;
- setting_main_appdata *ad = (setting_main_appdata *) data;
-
- Eina_List *check_list = ad->item_check_list;
- Setting_GenGroupItem_Data *list_item = NULL;
- int update_count = 0;
+ /* error check */
+ retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
- while (check_list) {
- list_item = (Setting_GenGroupItem_Data *) eina_list_data_get(check_list);
- if (NULL == list_item) continue;
+ setting_main_appdata *ad = (setting_main_appdata *) cb;
- update_count++;
- if (list_item->chk_status) {
- /* to update config file */
- setting_cfg_set_pos(list_item->keyStr, Cfg_Item_Pos_Level0);
- } else {
- /* to update config file */
- setting_cfg_set_pos(list_item->keyStr, Cfg_Item_Pos_Level1);
- }
- check_list = eina_list_next(check_list);
+ if (ad->ly_main != NULL) {
+ //evas_object_hide(ad->ly_main);
}
- if (update_count == 0) {
- /* to popup tips notify */
- } else {
- setting_cfg_file_update();
- }
- SETTING_TRACE_END;
+ return SETTING_RETURN_SUCCESS;
}
-void
-setting_main_click_edit_preferred_cb(void *data, Evas_Object *obj, void *event_info)
-{
- SETTING_TRACE_BEGIN;
- setting_main_appdata *ad = (setting_main_appdata *) data;
- ad->view_type = SETTING_VIEW_ALL_CHECK;
- __setting_create_prefered_view(ad);
- __load_check_list(ad, &(ad->edit_preferred_genlist), NULL);
+/* ***************************************************
+ *
+ *general func
+ *
+ ***************************************************/
+/////////////////////////////////////////////////////////////////////////////////////
+
- SETTING_TRACE_END;
-}