/*
* setting
- * Copyright (c) 2012 Samsung Electronics Co., Ltd.
+ * * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd.
*
- * Licensed under the Flora License, Version 1.1 (the License);
+ * 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.
+ *
*/
#include <setting.h>
#include <app.h>
+#include <sound_manager.h>
#include <appcore-common.h>
#include <Ecore_X.h>
#include <sensor.h>
#include <aul.h>
-#include "setting-common-plugin.h"
#include "setting-main.h"
+
+
+#include <setting-cfg.h>
+
+#include <setting-common-search.h>
#include <elm_object.h>
#include <appsvc.h>
-#include <EWebKit2.h>
-#include <nfc.h>
+//#include <nfc.h>
#include <signal.h>
-
-extern void setting_update_gl_item(void* data);
+#include <system_settings.h>
#define KEY_END "XF86Stop"
-#define SUPPORT_UG_MESSAGE
+//#define SUPPORT_UG_MESSAGE
+
+
+#define SETTING_SOUND_VOL_MAX 15
+#define SETTING_DEFAULT_RINGTONE_VOL_INT 11
+#define SETTING_DEFAULT_NOTI_VOL_INT 11
+#define SETTING_DEFAULT_MEDIA_VOL_INT 9
+
+const char *fixed_grid_pref_key[] = {
+ "PREFKEY_GRID0",
+ "PREFKEY_GRID1",
+ "PREFKEY_GRID2",
+ "PREFKEY_GRID3",
+ "PREFKEY_GRID4",
+ "PREFKEY_GRID5",
+ "PREFKEY_GRID6",
+ "PREFKEY_GRID7",
+ "PREFKEY_GRID8",
+ "PREFKEY_GRID9",
+ "PREFKEY_GRID10",
+ "PREFKEY_GRID11",
+};
int g_geometry_x, g_geometry_y, g_geometry_w, g_geometry_h;
+extern int aul_listen_app_dead_signal(int (*func)(int signal, void *data), void *data);
-void termination_handler(int signum)
-{
- SETTING_TRACE_BEGIN;
- SETTING_TRACE(">>>>>>>>>>> SIGTERM >>>>>>>>>>>>>>> SETTING");
+/* This API is defined in <app_service_private.h>. But, cannot include and it is not a managed API.
+ The way to resolve : 1. Add extern.
+ 2. Use bundle pointer originally
+ At first, choose No.1 */
+extern int app_control_create_request(bundle *data, app_control_h *service);
- elm_exit();
-}
-static void __main_motion_sensor_cb( unsigned long long timestamp, void *data)
-{
- /* The code 'return ;' will be deleted after the defect of elm_genlist_item_top_show() is fixed */
+setting_main_appdata *g_main_ad;
+const char *menu_group[] = {KeyStr_Connectivity,
+ KeyStr_ShareAndTransfer,
+ KeyStr_SoundDisplay,
+ KeyStr_Personal,
+ KeyStr_MotionControl,
+ KeyStr_BackupOption,
+ KeyStr_System,
+ KeyStr_DownloadedAPPs,
+};
- setting_retm_if(NULL == data, "NULL == data");
- setting_main_appdata *ad = (setting_main_appdata *) data;
+static Cfg_Item_Type setting_main_sfinder_handler(app_control_h service, void* data, int (*func)(void* d1));
- SETTING_TRACE(">>>>>>>Double tap event detected");
- //If it is in UG mode, Setting just send the event to the loaded UG
-
- if (ad->isInUGMode && ad->ug) {
- #ifdef SUPPORT_UG_MESSAGE
- SETTING_TRACE(">>>>>>>Send event to UG");
+static Ea_Theme_Color_Table *_changeable_colors_set()
+{
+ Ea_Theme_Color_Table *table;
- service_h svc;
- if(service_create(&svc))
- return;
+ table = ea_theme_color_table_new("/usr/apps/org.tizen.setting/shared/res/tables/org.tizen.setting.xml");
+ ea_theme_colors_set(table, EA_THEME_STYLE_LIGHT);
- service_add_extra_data(svc, "Detected", "Double_tap_event");
- if (ug_send_message(ad->ug, svc) != 0) {
- SETTING_TRACE_ERROR("call ug_send_message fail");
- }
+ return table;
+}
- service_destroy(svc);
- #else
- //Methord: instead of send message to UG and its sub-UGs,
- //1.To get the layout of UG ,and then
- //2.To get the naviframe of the layout, and then,
- //3.To get the toppest item of naviframe, and then
- //4.To get the content of naviframe toppest item,that is content
- //5.content ia mainly a genlist,but it is not fixed,it maybe a conformant or another layout
- // if it is a genlist,directly show its top item
- // if it is a conformant or another layout,to get all of its sub-objects,then ask turnly
- // whether it is a genlist,if it is(some sub-object), topply show it.
- //That's all
- Evas_Object *layout = (Evas_Object *)ug_get_layout(ad->ug);
- if (layout) {
- Evas_Object *genlist = NULL;
- Evas_Object *navi_bar = elm_object_part_content_get(layout, "elm.swallow.content");
- Elm_Object_Item *item = elm_naviframe_top_item_get(navi_bar);
- Evas_Object *content = elm_object_item_content_get(item);
- //SETTING_TRACE("content:%p", content);
-
- const char *type = elm_object_widget_type_get(content);
- //SETTING_TRACE("content type:%s", type);
- if (0 == safeStrCmp(type, "genlist")) {
- genlist = content;
- } else if (NULL != type) {//type="layout","conformant" etc..
- //layout
- //genlist = elm_object_part_content_get(content, "elm.swallow.contents");
- const Eina_List *subobjs = elm_widget_sub_object_list_get(content);
- ret_if(!subobjs);
- Evas_Object *subobj;
- const Eina_List *l;
-
- //just only search the first objects level
- EINA_LIST_FOREACH(subobjs, l, subobj) {
- if (!subobj) continue;
- type = elm_object_widget_type_get(subobj);
- if (0 == safeStrCmp(type, "genlist")) {
- genlist = subobj;
- Elm_Object_Item *first_item = elm_genlist_first_item_get(genlist);
- if (first_item) {
- elm_genlist_item_show(first_item, ELM_GENLIST_ITEM_SCROLLTO_TOP);
- }
- }
- }
- return;//to return,because for this case,we need special process.
- } else {
- //keep genlist to be NULL.
- }
- if (genlist && 0 == safeStrCmp(elm_object_widget_type_get(genlist), "genlist")) {
- SETTING_TRACE("Get the genlist:%p", genlist);
- Elm_Object_Item *first_item = elm_genlist_first_item_get(genlist);
- if (first_item) {
- elm_genlist_item_show(first_item, ELM_GENLIST_ITEM_SCROLLTO_TOP);
- }
- }
- }
- #endif
- } else {
- setting_go_to_navibar_list_top(ad->navibar_main);
- }
+static void _changeable_colors_free(Ea_Theme_Color_Table *table)
+{
+ // when the process is killed, you don’t need to call this
+ ea_theme_colors_unset(table, EA_THEME_STYLE_LIGHT);
+ ea_theme_color_table_free(table);
}
-/**
-* The event process when hard key is pressed.
-*/
-#if DISABLED_CODE
-static int setting_main_keydown_cb(void *data, int type, void *event)
+
+
+void termination_handler(int signum)
{
SETTING_TRACE_BEGIN;
+ // do something for signal handling
+ //SETTING_TRACE_DEBUG(">>>>>>>>>>>>>>>>> SIGTERM >>>>>>>>>>>>>>> SETTING ");
- static int s_count = 0;
- Ecore_Event_Key *ev = event;
-#if APPLIED_BACK_KEY_UG
- if (!safeStrCmp(ev->keyname, KEY_END)) {
- Evas_Object *popup = get_toppest_popup_window(ad->evas);
- if (popup) {
- /* "progressbar"ÀàÐ͵Äpopup, ²»×÷´¦Àí */
- Evas_Object *content = elm_object_content_get(popup);
- const char *type = elm_widget_type_get(content);
- if (type && !safeStrCmp(type, "progressbar")) {
- SETTING_TRACE_DEBUG ("Found popup[%p], but it respresent a progress bar, so skip it.", popup);
- } else {
- evas_object_smart_callback_call(popup, "timeout", NULL);
- }
- }
- return;
- }
-
- if (ad->isInUGMode) { /* have some ug being loaded, it was reset to be FALSE in setting_main_destroy_ug_cb() */
- SETTING_TRACE("Send UG_KEY_EVENT_END to ug");
- ug_send_key_event(UG_KEY_EVENT_END);
- } else {
- if (elm_naviframe_top_item_get(ad->navibar_main)
- == elm_naviframe_bottom_item_get(ad->navibar_main)) {
- SETTING_TRACE("To exit Setting App");
- elm_exit();
- } else {
- SETTING_TRACE("To pre-view of Setting App");
- elm_naviframe_item_pop(ad->navibar_main);
- }
- }
+ elm_exit();
}
-#else
- if (ev && !safeStrCmp(ev->keyname, KEY_END)) {
- /* do nothing except exit */
- SETTING_TRACE("before --- elm_exit ");
- elm_exit();
- s_count = s_count + 1;
- SETTING_TRACE("after --- elm_exit = %d ", s_count);
- }
-#endif
- SETTING_TRACE_END;
- return 1;
-}
-#endif
#if LOW_BATTERY_DO_NOTHING
setting_main_appdata *ad = data;
if (ad->ug)
+ {
ug_send_event(UG_EVENT_LOW_BATTERY);
+ }
}
#endif
-#if SUPPORT_APP_ROATION
-
-/**
-* To active rotation effect in Setting App
-*/
-static void setting_main_rotate(app_device_orientation_e m, void *data)
-{
- SETTING_TRACE_BEGIN;
- setting_main_appdata *ad = data;
- if (ad == NULL || ad->win_main == NULL)
- return;
-
-#if 0
- int value = 0;
- vconf_get_bool
- (VCONFKEY_SETAPPL_ROTATE_LOCK_BOOL, &value);
- // true : aoto rotation OFF
- // false : auto rotation ON
- value = !value;
-#else
- //int hold_flag = 0;
- //vconf_get_bool (VCONFKEY_SETAPPL_ROTATE_HOLD_BOOL, &hold_flag);
- //SETTING_TRACE("hold_flag:%d", hold_flag);
- //if (hold_flag)
- //{
- //do nothing..
- // return;
- //}
-
- int value = 0;
- vconf_get_bool (VCONFKEY_SETAPPL_AUTO_ROTATE_SCREEN_BOOL, &value);
-
- if (value == 0)
- m = 0;
-
- elm_win_rotation_with_resize_set(ad->win_main, m);
-
- /////Send the rotation event to UGs..
- enum ug_event event = UG_EVENT_ROTATE_PORTRAIT;
- switch (m) {
- case APP_DEVICE_ORIENTATION_0:
- event = UG_EVENT_ROTATE_PORTRAIT;
- break;
- case APP_DEVICE_ORIENTATION_180:
- event = UG_EVENT_ROTATE_PORTRAIT_UPSIDEDOWN;
- break;
- case APP_DEVICE_ORIENTATION_90:
- event = UG_EVENT_ROTATE_LANDSCAPE;
- break;
- case APP_DEVICE_ORIENTATION_270:
- event = UG_EVENT_ROTATE_LANDSCAPE_UPSIDEDOWN;
- break;
- default:
- return;
- }
- ug_send_event(event);
- //elm_win_rotation_get
-#endif
-
-}
+#if SUPPORT_APP_ROATION
static void _rot_changed_cb(void *data, Evas_Object *obj, void *event_info)
{
SETTING_TRACE_BEGIN;
setting_main_appdata *ad = (setting_main_appdata *)data;
if (ad == NULL || ad->win_main == NULL )
+ {
return;
+ }
int change_ang = elm_win_rotation_get(ad->win_main);
- SETTING_TRACE("....change_ang:%d",change_ang);
- SETTING_TRACE("current_rotation:%d",ad->current_rotation);
+ SETTING_TRACE_DEBUG("....change_ang:%d",change_ang);
+ SETTING_TRACE_DEBUG("current_rotation:%d",ad->current_rotation);
//Send the rotation event to UGs..
enum ug_event event = UG_EVENT_ROTATE_PORTRAIT;
switch (change_ang) {
default:
return;
}
- SETTING_TRACE("diff:%d",elm_win_rotation_get(ad->win_main) - ad->current_rotation);
+ SETTING_TRACE_DEBUG("diff:%d",elm_win_rotation_get(ad->win_main) - ad->current_rotation);
if (change_ang != ad->current_rotation)
{
+ int diff = change_ang - ad->current_rotation;
+ if (diff < 0 )
+ {
+ diff = -diff;
+ }
+ /**
+ * @todo if app didn't launch UG, is the call required to invoke?
+ */
ug_send_event(event);
+ if (diff == 180)
+ {
+ // do nothing
+ }
+ else
+ {
+ if (ad->list_type == SETTING_GRID_VIEW)
+ {
+ Elm_Object_Item *it;
+ Evas_Object *genlist = NULL;
+
+ genlist = ad->sc_gl[SC_All_Grid];
+ if(genlist) {
+ //elm_genlist_realized_items_update(ad->sc_gl[SC_All_Grid]);
+ //list = elm_genlist_realized_items_get(ad->sc_gl[SC_All_Grid]);
+ it = elm_genlist_first_item_get(genlist);
+ while (it) {
+ elm_genlist_item_update(it);
+ it = elm_genlist_item_next_get(it);
+ }
+ }
+
+ genlist = ad->edit_genlist;
+ if (ad->edit_genlist)
+ {
+ //elm_genlist_realized_items_update(ad->edit_genlist);
+ it = elm_genlist_first_item_get(genlist);
+ while (it) {
+ elm_genlist_item_update(it);
+ it = elm_genlist_item_next_get(it);
+ }
+ }
+ }
+ }
ad->current_rotation = change_ang;
}
}
#endif
+
/**
* The event process when region is changes.
*/
setting_main_appdata *ad = data;
if (ad->ug)
+ {
ug_send_event(UG_EVENT_REGION_CHANGE);
+ }
}
/**
const char *profile = elm_config_profile_get();
if (strcmp(profile, "desktop") == 0)
+ {
elm_win_indicator_mode_set (obj, ELM_WIN_INDICATOR_HIDE);
+ }
else
+ {
elm_win_indicator_mode_set (obj, ELM_WIN_INDICATOR_SHOW);
+ }
}
/**
static Evas_Object *setting_main_create_win(const char *name)
{
SETTING_TRACE_BEGIN;
+ LAUNCH_SETTING_IN();
Evas_Object *eo;
int w, h;
- //eo = elm_win_add(NULL, name, ELM_WIN_BASIC);
- eo = elm_win_util_standard_add(name, name);
+ eo = (Evas_Object*) app_get_preinitialized_window(name);
+ if (!eo)
+ eo = elm_win_util_standard_add(name, name);
+ else {
+ // elm_win_util_standard_add creates bg inside
+ Evas_Object *bg;
+
+ //bg = elm_bg_add(eo);
+ bg = app_get_preinitialized_background();
+ if (!bg)
+ bg = elm_bg_add(eo);
+
+
+ if (!bg)
+ {
+ evas_object_del(eo);
+ return NULL;
+ }
+ evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ elm_win_resize_object_add(eo, bg);
+ evas_object_show(bg);
+ }
if (eo) {
elm_win_title_set(eo, name);
evas_object_smart_callback_add(eo, "delete,request", setting_main_del_win, NULL);
&w, &h);
evas_object_resize(eo, w, h);
}
-
+ LAUNCH_SETTING_OUT();
return eo;
}
+
/**
* exceptional process, reset the env vars by Setting vconf VCONFKEY_LANGSET
*/
static void setting_main_lang_changed_cb(void *data)
{
SETTING_TRACE_BEGIN;
- setting_main_appdata *ad = data;
+ retm_if(!data, "Invalid argument: data is NULL");
+ //FIX the crash when switch from Portrait mode to landscape mode,
+ //It is so strange the data is no longer correct
+ //and ....why it is invoked
+ //setting_main_appdata *ad = data;
+ setting_main_appdata *ad = g_main_ad;
+
+ char *tab_str[] = {
+ Keystr_Connection,
+ KeyStr_Device,
+ KeyStr_MotionControl,
+ "IDS_ST_BODY_GENERAL",
+ KeyStr_DownloadedAPPs
+ };
+ int i = 0;
- char* str = NULL;
- if (ad->data_wifi) {
- str = (char *)get_pa_Wi_Fi_on_off_str();
- if ( ! str) str = g_strdup("err");
- ad->data_wifi->sub_desc = str;
+ for (;i < SETTING_TAB_VIEW_MAX; i++)
+ {
+ //SETTING_TRACE("_(tab_str[%d]):%s", i, _(tab_str[i]));
+ if (ad->ctrl_item[i])
+ elm_object_item_text_set(ad->ctrl_item[i], _(tab_str[i]));
}
- if (ad->data_bt) {
- str = (char *)g_strdup(get_BT_on_off_str());
- if ( ! str) str = g_strdup("err");
- ad->data_bt->sub_desc = str;
+
+ char *tmp = NULL;
+ if (ad->data_bright) {
+ tmp = ad->data_bright->sub_desc;
+ ad->data_bright->sub_desc= (char*)g_strdup(get_brightness_mode_str());
+ FREE(tmp)
}
- if (ad->data_nfc) {
- str = (char *)g_strdup(get_NFC_on_off_str());
- if ( ! str) str = g_strdup("err");
- ad->data_nfc->sub_desc = str;
+ if (ad->data_backlight) {
+ tmp = ad->data_backlight->sub_desc;
+ ad->data_backlight->sub_desc= get_pa_backlight_time_str();
+ FREE(tmp)
}
- if (ad->data_bright) {
- str = (char*)g_strdup(get_brightness_mode_str());
- if ( ! str) str = g_strdup("err");
- ad->data_bright->sub_desc = str;
+ if (ad->data_screenmode) {
+ tmp = ad->data_screenmode->sub_desc;
+ ad->data_screenmode->sub_desc= get_pa_screen_mode_str();
+ FREE(tmp)
}
- if (ad->data_moreConnect) {
- char sub_text[MAX_COMMON_BUFFER_LEN] = {0, };
- int idx = 0;
- while (idx < MAX_MORE_MENU_NUM && ad->more_connective_menus[idx])
- {
- if (idx != 0)
+ Eina_List *list, *l;
+ Elm_Object_Item *it;
+ i = SETTING_TAB_VIEW_INVALID;
+ for (i = SETTING_TAB_VIEW_QUICK_SETTINGS; i < SETTING_TAB_VIEW_MAX; i++)
+ {
+ if(ad->sub_view[i]) {
+ list = elm_genlist_realized_items_get(ad->sub_view[i]);
+ EINA_LIST_FOREACH(list, l, it)
{
- safeStrNCat(sub_text, ", ", MAX_COMMON_BUFFER_LEN);
+ __add_gl_tts_feature(it);
+ elm_genlist_item_update(it);
}
- safeStrNCat(sub_text, _(ad->more_connective_menus[idx]), MAX_COMMON_BUFFER_LEN);
- idx++;
}
- ad->data_moreConnect->sub_desc = g_strdup(sub_text);
}
- if (ad->data_moreSystem) {
- 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)
+
+ // update all tabs
+ for (i = SC_All_List; i < SC_Max; i++)
+ {
+ //if (ad->sc_gl[i]) elm_genlist_realized_items_update(ad->sc_gl[i]);
+ if(ad->sc_gl[i]) {
+ list = elm_genlist_realized_items_get(ad->sc_gl[i]);
+ EINA_LIST_FOREACH(list, l, it)
{
- safeStrNCat(sub_text, ", ", MAX_COMMON_BUFFER_LEN);
+ __add_gl_tts_feature(it);
+ elm_genlist_item_update(it);
}
- safeStrNCat(sub_text, _(ad->more_system_menus[idx]), MAX_COMMON_BUFFER_LEN);
- idx++;
}
- ad->data_moreSystem->sub_desc = g_strdup(sub_text);
}
+ // For UGs
- if (ad->main_genlist) elm_genlist_realized_items_update(ad->main_genlist);
- if (ad->genlist_load) elm_genlist_realized_items_update(ad->genlist_load);
-
- Elm_Object_Item *navi_it = NULL;
-#if SUPPORT_MORE_ITEM_FUNCTION
- navi_it = elm_naviframe_top_item_get(ad->navibar_main);
- if (navi_it) elm_object_item_text_set(navi_it, _(KeyStr_MoreSystem));
-#endif
-
- navi_it = elm_naviframe_bottom_item_get(ad->navibar_main);
- if (navi_it)
- elm_object_item_text_set(navi_it, _("IDS_COM_BODY_SETTINGS"));
+ elm_object_item_part_text_set(ad->main_navi_it, "elm.text.title", _("IDS_ST_OPT_SETTINGS"));
+ setting_navi_items_update(ad->navibar_main);
- if (ad->edit_item)
+ if (ad->isInUGMode && ad->ug)
{
-#if SUPPORT_BOTTOM_BTNS
- elm_object_item_text_set(ad->edit_item, _(EDIT_PREFERRED_STR));
-#else
- Evas_Object *eo_btn = elm_object_item_part_content_get(ad->edit_item, "object");
- setting_retm_if(eo_btn == NULL, "get eo_lbtn failed");
- elm_object_text_set(eo_btn, _(EDIT_PREFERRED_STR));
-#endif
- }
-
- if (ad->segment_all)
- elm_object_item_text_set(ad->segment_all, _(ALL_STR));
- if (ad->segment_preferred)
- elm_object_item_text_set(ad->segment_preferred, _(PREFERRED_STR));
-
- // set toolbar text
- char tmp_text[MAX_DISPLAY_NAME_LEN_ON_UI + 1] = {0,};
- if (MAIN_PROFILE_ALL == ad->profile_type) {
- snprintf(tmp_text, MAX_DISPLAY_NAME_LEN_ON_UI, "%s", _(PREFERRED_STR));
- } else if (MAIN_PROFILE_PREFERRED == ad->profile_type) {
- snprintf(tmp_text, MAX_DISPLAY_NAME_LEN_ON_UI, "%s", _(ALL_STR));
- } else {
- /* do nothing */
+ Evas_Object *layout = (Evas_Object *)ug_get_layout(ad->ug);
+ if (layout)
+ {
+ Evas_Object *navi_bar = NULL;
+ navi_bar = elm_object_part_content_get(layout, "elm.swallow.content");
+ setting_navi_items_update(navi_bar);
+ }
+ ug_send_event(UG_EVENT_LANG_CHANGE);
}
- Evas_Object *btn = elm_object_item_part_content_get(navi_it, "toolbar_button1");
- elm_object_text_set(btn, tmp_text);
+}
- if (ad->ug)
- ug_send_event(UG_EVENT_LANG_CHANGE);
+static Eina_Bool __update_gengrid_delayer(void *data)
+{
+ SETTING_TRACE_BEGIN;
+ setting_main_appdata *ad = data;
+ retvm_if(!data, ECORE_CALLBACK_CANCEL, "Invalid argument: data is NULL");
+ if (ad->gengrid)
+ {
+ elm_gengrid_realized_items_update(ad->gengrid);
+ }
+ //After return False, the idler will be deleted directly,so here set ad->set_idler as NULL directly.
+ ad->update_idler = NULL;
+ return ECORE_CALLBACK_CANCEL;
}
/**
Setting_GenGroupItem_Data* item_to_update = NULL;
char *vconf_name = vconf_keynode_get_name(key);
- //SETTING_TRACE("the value of [ %s ] just changed", vconf_name);
-
- if (!safeStrCmp(vconf_name, VCONFKEY_SETAPPL_WIDGET_THEME_STR)) {
- return;
- } else if (!safeStrCmp(vconf_name, VCONFKEY_TELEPHONY_FLIGHT_MODE)) {
- item_to_update = ad->data_flight;
- retm_if(!item_to_update, "ad->data_flight is NULL");
-
- int status = 0;
- vconf_get_bool(VCONFKEY_TELEPHONY_FLIGHT_MODE, &status);
- item_to_update->chk_status = status;
- //do not need delay for checks
- elm_check_state_set(item_to_update->eo_check, item_to_update->chk_status);
+ SETTING_TRACE("the value of [ %s ] just changed", vconf_name);
+ int i = 0;
+ if (!safeStrCmp(vconf_name, VCONFKEY_TELEPHONY_FLIGHT_MODE)) {
+ int flightmode = 0;
+ vconf_get_bool(VCONFKEY_TELEPHONY_FLIGHT_MODE, &flightmode);
//Flight mode is ON : Network menu dimmed
- if (ad->data_network)
+ SETTING_TRACE("vconf flight [%d]", flightmode);
+ for (i = VIEW_All_List; i < VIEW_Max; i++)
{
- if (status)
+ setting_genlist_item_disabled_set(ad->gl_data_item[i][GL_Network], flightmode);
+ setting_genlist_item_disabled_set(ad->gl_data_item[i][GL_PM], flightmode);
+ item_to_update = ad->gl_data_item[i][GL_FlightMode];
+ if (item_to_update)
{
- setting_disable_genlist_item(ad->data_network->item);
- }
- else
- {
- setting_enable_genlist_item(ad->data_network->item);
+ item_to_update->chk_status = flightmode;
+ const char *tmp = item_to_update->l_swallow_path;
+ SETTING_TRACE("status:%d", flightmode);
+ if (!flightmode)
+ {
+ item_to_update->l_swallow_path = (char *)g_strdup(SETTING_ICON_PATH_CFG"settings_flightoff1.png");
+ }
+ else
+ {
+ item_to_update->l_swallow_path = (char *)g_strdup(SETTING_ICON_PATH_CFG"A01-1_icon_Flight_Mode.png");
+ }
+ G_FREE(tmp);
+
+ elm_genlist_item_fields_update(item_to_update->item, "*", ELM_GENLIST_ITEM_FIELD_CONTENT);
}
+
}
+
+ SETTING_TRACE_END;
return;
- } else if (!safeStrCmp(vconf_name, VCONFKEY_SETAPPL_AUTO_ROTATE_SCREEN_BOOL)) {
- item_to_update = ad->data_rotationMode;
- retm_if(!item_to_update, "ad->data_rotationMode is NULL");
+#if SUPPORT_NETWORK_RESTRICTION
+ } else if (!safeStrCmp(vconf_name, VCONFKEY_SETAPPL_NETWORK_RESTRICT_MODE)) {
+ int status = 0;
+ vconf_get_bool( VCONFKEY_SETAPPL_NETWORK_RESTRICT_MODE, &status );
+
+ // Update network restriction mode UI
+ for (i = VIEW_All_List; i < VIEW_Max; i++)
+ {
+ setting_genlist_item_disabled_set(ad->gl_data_item[i][GL_MobileApp], status);
+ setting_genlist_item_disabled_set(ad->gl_data_item[i][GL_WiFi], status);
+ setting_force_update_gl_item_chk_status(ad->gl_data_item[i][GL_NetRestriction], status );
+ }
+ return;
+#endif
+ } else if (!safeStrCmp(vconf_name, VCONFKEY_SETAPPL_AUTO_ROTATE_SCREEN_BOOL)) {
+ SETTING_TRACE_DEBUG("%s updated", vconf_name);
int status = 0;
vconf_get_bool(VCONFKEY_SETAPPL_AUTO_ROTATE_SCREEN_BOOL, &status);
+ for (i = VIEW_All_List; i < VIEW_Max; i++)
+ {
+ setting_force_update_gl_item_chk_status(ad->gl_data_item[i][GL_Landscape], status);
+ }
- item_to_update->chk_status = status;
- //do not need delay for checks
- elm_check_state_set(item_to_update->eo_check, item_to_update->chk_status);
- SETTING_TRACE("item_to_update->chk_status:%d", item_to_update->chk_status);
- if (item_to_update->chk_status) //rotation function is not blocked
+ if(status)
{
- SETTING_TRACE("Rotation function is on, it is necessary to adjust the device orientation");
- //int mode = APP_DEVICE_ORIENTATION_0;
- //mode = app_get_device_orientation();
- //elm_win_rotation_with_resize_set(ad->win_main, mode);
+ int angle = elm_win_rotation_get(ad->win_main);
+ elm_win_rotation_with_resize_set(ad->win_main, angle);
}
+ else
+ {
+ elm_win_rotation_with_resize_set(ad->win_main, 0);
+ }
+ return;
+ } else if (!safeStrCmp(vconf_name, VCONFKEY_SETAPPL_WALLPAPER_APPLY_COLORTHEME_BOOL)) {
+ #if 0
+ SETTING_TRACE_DEBUG("%s updated", vconf_name);
+ int status = 0;
+ vconf_get_bool(VCONFKEY_SETAPPL_WALLPAPER_APPLY_COLORTHEME_BOOL, &status);
+
+ // only work if status = 1, else it skip the procedure
+ if (status == 0)
+ return;
+ char *homescreen_path = NULL;
+ int ret = system_settings_get_value_string(SYSTEM_SETTINGS_KEY_WALLPAPER_HOME_SCREEN, &homescreen_path);
+ SETTING_TRACE("current homescreen_path : (%s) ", homescreen_path);
+
+ //-----------------------------------------------------------------------------------------------
+ // homescreen_path
+ int i;
+ int theme_index = 0; // default = 0
+
+ int* pcolor = mp_collect_color_set_image(homescreen_path, 1);
+ SETTING_TRACE("******************************************************");
+ SETTING_TRACE(" (homescreen: %s) -- mp_collect_color_set_image: (%d) ", homescreen_path, *pcolor);
+ int *rgb = mp_collect_color_get_RGB(pcolor, 1);
+ SETTING_TRACE("r=%d, g=%d, b=%d", rgb[0], rgb[1], rgb[2]);
+ FREE(pcolor);
+ theme_index = ea_theme_suitable_theme_get(rgb[0], rgb[1], rgb[2]);
+ SETTING_TRACE(" (theme index: %d) - ea_theme_suitable_theme_get", theme_index);
+ SETTING_TRACE("******************************************************");
+
+ //-----------------------------------------------------------------------------------------------
+ // function call with the index & vconf set
+ vconf_set_int(VCONFKEY_SETAPPL_CHANGE_UI_THEME_INT, theme_index);
+ // LOGIC HERE
+ Eina_Bool result = ea_theme_input_colors_set(theme_index);
+ if( result == EINA_TRUE ) {
+ ea_theme_system_colors_apply();
+ }
+ #endif
return;
+
} else if (!safeStrCmp(vconf_name, VCONFKEY_NFC_STATE)) {
SETTING_TRACE_DEBUG("%s updated", vconf_name);
- item_to_update = ad->data_nfc;
- retm_if(!item_to_update, "ad->data_nfc is NULL");
+ if (ad->nfc_timer) {
+ ecore_timer_del(ad->nfc_timer);
+ ad->nfc_timer = NULL;
+ }
int status = 0;
vconf_get_bool(VCONFKEY_NFC_STATE, &status);
- item_to_update->swallow_type = SWALLOW_Type_1ICON_1RADIO;
- item_to_update->chk_status = status;
- //do not need delay for checks
- elm_check_state_set(item_to_update->eo_check, item_to_update->chk_status);
- SETTING_TRACE("item_to_update->chk_status:%d", item_to_update->chk_status);
+ for (i = VIEW_All_List; i < VIEW_Max; i++)
+ {
+ item_to_update = ad->gl_data_item[i][GL_NFC];
+ if (item_to_update)
+ {
+ item_to_update->swallow_type = SWALLOW_Type_1ICON_1RADIO;
+ item_to_update->chk_status = status;
+ elm_object_item_data_set(item_to_update->item, item_to_update);
+ elm_genlist_item_fields_update(item_to_update->item, "elm.icon.2", ELM_GENLIST_ITEM_FIELD_CONTENT);
+ }
+ }
+
+ if (!status) {
+ int sbeam_status = 0;
+ vconf_get_bool(VCONFKEY_NFC_SBEAM, &sbeam_status);
+ if (sbeam_status) {
+ vconf_set_bool(VCONFKEY_NFC_SBEAM, !sbeam_status);
+ }
+ }
+ } else if (!safeStrCmp(vconf_name, VCONFKEY_NFC_SBEAM)) {
+ SETTING_TRACE_DEBUG("%s updated", vconf_name);
+
+ int status = 0;
+ vconf_get_bool(VCONFKEY_NFC_SBEAM, &status);
+ for (i = VIEW_All_List; i < VIEW_Max; i++)
+ {
+ item_to_update = ad->gl_data_item[i][GL_SBeam];
+ if (item_to_update)
+ {
+ item_to_update->chk_status = status;
+ elm_genlist_item_fields_update(item_to_update->item, "elm.icon.2", ELM_GENLIST_ITEM_FIELD_CONTENT);
+ }
+ }
+
+ } else if (!safeStrCmp(vconf_name, VCONFKEY_SETAPPL_DM_DRIVING_MODE)) {
+ SETTING_TRACE_DEBUG("%s updated", vconf_name);
+ /* cfg set_item_state has do the work, need to del it, or it will be a issue */
+
+ int status = 0;
+ vconf_get_bool(VCONFKEY_SETAPPL_DM_DRIVING_MODE, &status);
+ for (i = VIEW_All_List; i < VIEW_Max; i++)
+ {
+ item_to_update = ad->gl_data_item[i][GL_DM];
+ setting_force_update_gl_item_chk_status(item_to_update, status);
+ }
+#if SUPPORT_POWERSAVING
+ } else if (!safeStrCmp(vconf_name, VCONFKEY_SETAPPL_PWRSV_SYSMODE_STATUS)) {
+ SETTING_TRACE_DEBUG("%s updated", vconf_name);
+ int status = 0;
+ vconf_get_bool(VCONFKEY_SETAPPL_PWRSV_SYSMODE_STATUS, &status);
+ for (i = VIEW_All_List; i < VIEW_Max; i++)
+ {
+ item_to_update = ad->gl_data_item[i][GL_PM];
+ setting_force_update_gl_item_chk_status(item_to_update, status);
+ }
+#endif
+#if SUPPORT_BLOCKINGMODE
+ } else if (!safeStrCmp(vconf_name, VCONFKEY_SETAPPL_BLOCKINGMODE_BLOCKINGMODE)) {
+ SETTING_TRACE_DEBUG("%s updated", vconf_name);
+ int status = 0;
+ vconf_get_bool(VCONFKEY_SETAPPL_BLOCKINGMODE_BLOCKINGMODE, &status);
+ for (i = VIEW_All_List; i < VIEW_Max; i++)
+ {
+ item_to_update = ad->gl_data_item[i][GL_BM];
+ setting_force_update_gl_item_chk_status(item_to_update, status);
+ }
+#endif
+#if SUPPORT_PERSONALPAGE
+ } else if(!safeStrCmp(vconf_name, VCONFKEY_SETAPPL_PERSONAL_MODE_STATUS_BOOL)) {
+ SETTING_TRACE_DEBUG("%s updated", vconf_name);
+
+ int status = 0;
+ vconf_get_bool(VCONFKEY_SETAPPL_PERSONAL_MODE_STATUS_BOOL, &status);
+
+ for (i = VIEW_All_List; i < VIEW_Max; i++)
+ {
+ item_to_update = ad->gl_data_item[i][GL_PersonalPage];
+ setting_force_update_gl_item_chk_status(item_to_update, status);
+ }
+#endif
+#if SUPPORT_GUESTMODE
+ } else if (!safeStrCmp(vconf_name, VCONFKEY_SETAPPL_GM_GUEST_MODE)) {
+ SETTING_TRACE_DEBUG("%s updated", vconf_name);
+ int status = 0;
+ vconf_get_bool(VCONFKEY_SETAPPL_GM_GUEST_MODE, &status);
+
+ for (i = VIEW_All_List; i < VIEW_Max; i++)
+ {
+ item_to_update = ad->gl_data_item[i][GL_GuestMode];
+ setting_force_update_gl_item_chk_status(item_to_update, status);
+ }
+#endif
+ } else if (!safeStrCmp(vconf_name, VCONFKEY_SETAPPL_ACCESSIBILITY_TTS)) {
+ SETTING_TRACE_DEBUG("%s updated", vconf_name);
+ SETTING_TRACE_DEBUG(" TTS update genlist -------------- portrait ");
+ SETTING_TRACE_DEBUG(" TTS update genlist -------------- landscape ");
+ //ad->isTopUpdate = true;
+ SETTING_TRACE("...........");
+ //elm_gengrid_realized_items_update(ad->gengrid);
+
+ if (ad->update_idler) {
+ ecore_timer_del(ad->update_idler);
+ ad->update_idler = NULL;
+ }
+ ad->update_idler = ecore_timer_add(0.5, (Ecore_Task_Cb) __update_gengrid_delayer, ad);
+
+ } else if (!safeStrCmp(vconf_name, VCONFKEY_SETAPPL_SOUND_STATUS_BOOL)
+ || !safeStrCmp(vconf_name, VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL)) {
+ } else if (!safeStrCmp(vconf_name, VCONFKEY_QUICKSETTING_MULTIWINDOW_ENABLED)){
+ int status = -1;
+ vconf_get_bool(VCONFKEY_QUICKSETTING_MULTIWINDOW_ENABLED, &status);
+
+ for (i = VIEW_All_List; i < VIEW_Max; i++)
+ {
+ item_to_update = ad->gl_data_item[i][GL_MultiWin];
+ setting_force_update_gl_item_chk_status(item_to_update, status);
+ }
+ } else if(!safeStrCmp(vconf_name, VCONFKEY_SETAPPL_DEVELOPER_OPTION_STATE)){
+ //int dev_op_state = 0;
+ #ifndef BINARY_RELEASE_TYPE_ENG
+ /*for user binary: need to check develop_option_state vconf value*/
+ if (ad->sub_view[SETTING_TAB_VIEW_GENERAL]) {
+ SETTING_TRACE("redraw Gernel Tab");
+ evas_object_del(ad->sub_view[SETTING_TAB_VIEW_GENERAL]);
+ ad->sub_view[SETTING_TAB_VIEW_GENERAL] = NULL;
+ }
+
+ setting_search_genlist_update(ad);
+ #endif
- //item_to_update->sub_desc = (char *)g_strdup(get_NFC_on_off_str());
- //SETTING_TRACE_DEBUG("%s", item_to_update->sub_desc);
+ } else if(!safeStrCmp(vconf_name, VCONFKEY_SETAPPL_ENHANCED_TOUCH)){
+ int status = 0;
+ vconf_get_bool(VCONFKEY_SETAPPL_ENHANCED_TOUCH, &status);
- if (ad->bAppPause || ad->ug) {
- ad->updateItems[GL_ITEM_NFC] = EINA_TRUE;
- } else { // app is not in pause without ug
- elm_object_item_data_set(item_to_update->item, item_to_update);
- elm_genlist_item_update(item_to_update->item);
+ for (i = VIEW_All_List; i < VIEW_Max; i++)
+ {
+ SETTING_TRACE("ad->gl_data_item[%d][GL_TouchSens]:%p", i,ad->gl_data_item[i][GL_TouchSens]);
+ item_to_update = ad->gl_data_item[i][GL_TouchSens];
+ setting_force_update_gl_item_chk_status(item_to_update, status);
}
}
}
SETTING_TRACE("Enter %s(%s=%d)", __FUNCTION__, vconf_name, status);
Setting_GenGroupItem_Data* item_to_update = NULL;
-
+ int i = 0;
if (!safeStrCmp(vconf_name, VCONFKEY_WIFI_STATE)) {
// do handling in case of VCONFKEY_WIFI_STATE
- item_to_update = ad->data_wifi;
- retm_if(!item_to_update, "ad->data_wifi is NULL");
-
+ SETTING_TRACE_DEBUG("%s updated", vconf_name);
+ SETTING_TRACE("status:%d", status);
+ int on_off_state = EINA_FALSE;
switch (status) {
case VCONFKEY_WIFI_OFF:
- //item_to_update->sub_desc = (char *)g_strdup(_("IDS_COM_BODY_OFF_M_STATUS"));
-
- item_to_update->chk_status = EINA_FALSE;
+ on_off_state = EINA_FALSE;
break;
case VCONFKEY_WIFI_UNCONNECTED:
+ {
+ //item_to_update->chk_status = EINA_FALSE;
+ //item_to_update->swallow_type = SWALLOW_Type_1ICON_1PROCESS;
+ //elm_object_item_data_set(item_to_update->item, item_to_update);
+ //elm_genlist_item_update(item_to_update->item);
+ //return;
+ bool last_state = FALSE;
+ int r = preference_get_boolean(WIFI_LAST_ON_OFF_STATE, &last_state);
+ if (0 != r)
+ {
+ SETTING_TRACE("ERROR, r:%d", r);
+ }
+ char *ap_name = vconf_get_str(VCONFKEY_WIFI_CONNECTED_AP_NAME);
+ SETTING_TRACE("Connect AP:%s", ap_name);
+ if (last_state)
+ {
+ //on -> off
+ SETTING_TRACE("on -> off");
+ if (isEmptyStr(ap_name))
+ {
+ if (OP_WIFI_TURNING_ON == ad->wifi_op
+ || OP_WIFI_TURNING_OFF == ad->wifi_op)
+ {
+ SETTING_TRACE("Operating in Setting(ad->wifi_op:%d)", ad->wifi_op);
+ //ad->wifi_op = OP_WIFI_TURNING_INVALID;
+ //on_off_state = EINA_FALSE;
+ return;
+ }
+ else
+ {
+ SETTING_TRACE("Operating in Other App");
+ return;
+ }
+ }
+ else
+ {
+ on_off_state = EINA_FALSE;
+ }
+ }
+ else
+ {
+ //off -> on
+ SETTING_TRACE("off -> on");
+ on_off_state = EINA_TRUE;
+ }
+ break;
+ }
case VCONFKEY_WIFI_CONNECTED:
case VCONFKEY_WIFI_TRANSFER:
- //pa_wifi_device = vconf_get_str(VCONFKEY_WIFI_CONNECTED_AP_NAME);
- //if (NULL != pa_wifi_device && '\0' != pa_wifi_device[0]) {
- // item_to_update->sub_desc = (char *)g_strdup(pa_wifi_device);
- //} else {
- // item_to_update->sub_desc = (char *)g_strdup(_("IDS_COM_BODY_ON_M_STATUS"));
- //}
- //FREE(pa_wifi_device);
-
- item_to_update->chk_status = EINA_TRUE;
+
+ on_off_state = EINA_TRUE;
break;
default:
SETTING_TRACE_ERROR("Invalid wifi status!");
return;
}
+ ad->wifi_op = OP_WIFI_TURNING_INVALID;
+ if (ad->wifi_timer) {
+ ecore_timer_del(ad->wifi_timer);
+ ad->wifi_timer = NULL;
+ }
- item_to_update->swallow_type = SWALLOW_Type_1ICON_1RADIO;
- elm_check_state_set(item_to_update->eo_check, item_to_update->chk_status);
+ for (i = VIEW_All_List; i < VIEW_Max; i++)
+ {
+ item_to_update = ad->gl_data_item[i][GL_WiFi];
+ if (item_to_update)
+ {
- if (ad->bAppPause || ad->ug) {
- ad->updateItems[GL_ITEM_WIFI] = EINA_TRUE;
- } else { // app is not in pause without ug
- elm_object_item_data_set(item_to_update->item, item_to_update);
- elm_genlist_item_update(item_to_update->item);
+ item_to_update->chk_status = on_off_state;
+ item_to_update->swallow_type = SWALLOW_Type_1ICON_1RADIO;
+ elm_object_item_data_set(item_to_update->item, item_to_update);
+ elm_genlist_item_update(item_to_update->item);
+ }
}
+ preference_set_boolean(WIFI_LAST_ON_OFF_STATE, on_off_state);
}
else if (!safeStrCmp(vconf_name, VCONFKEY_CALL_STATE)) {
// do handling in case of VCONFKEY_CALL_STATE
- // In call situation : Wi-fi / Tethering / Network menu dimmed
- // -- Only Wi-fi should be dimmed (2013.04.04) --
- if (VCONFKEY_CALL_OFF != status)
+ //In call situation : Wi-fi / Tethering / Network menu dimmed
+ for (i = VIEW_All_List; i < VIEW_Max; i++)
{
- if (ad->data_network)
- setting_disable_genlist_item(ad->data_network->item);
- }
- else
- {
- if (ad->data_network)
- setting_enable_genlist_item(ad->data_network->item);
+ status = (VCONFKEY_CALL_OFF != status);
+ setting_genlist_item_disabled_set(ad->gl_data_item[i][GL_WiFi], status);
+ setting_genlist_item_disabled_set(ad->gl_data_item[i][GL_MobileApp], status);
}
} else if (!safeStrCmp(vconf_name, VCONFKEY_BT_STATUS)) {
// do handling in case of VCONFKEY_BT_STATUS
- item_to_update = ad->data_bt;
- retm_if(!item_to_update, "ad->data_bt is NULL");
-/*
- if (FALSE == status) {
- // item_to_update->sub_desc = (char *)g_strdup(_("IDS_COM_BODY_OFF_M_STATUS"));
-
- item_to_update->chk_status = EINA_FALSE;
- } else {
- //item_to_update->sub_desc = (char *)g_strdup(_("IDS_COM_BODY_ON_M_STATUS"));
+ SETTING_TRACE_DEBUG("%s updated", vconf_name);
+ if (ad->bt_timer) {
+ ecore_timer_del(ad->bt_timer);
+ ad->bt_timer = NULL;
+ }
- item_to_update->chk_status = EINA_TRUE;
+ for (i = VIEW_All_List; i < VIEW_Max; i++)
+ {
+ item_to_update = ad->gl_data_item[i][GL_BT];
+ if (item_to_update)
+ {
+ item_to_update->swallow_type = SWALLOW_Type_1ICON_1RADIO;
+ item_to_update->chk_status = status;
+ elm_object_item_data_set(item_to_update->item, item_to_update);
+ elm_genlist_item_fields_update(item_to_update->item, "elm.icon.2", ELM_GENLIST_ITEM_FIELD_CONTENT);
+ }
}
-*/
- item_to_update->swallow_type = SWALLOW_Type_1ICON_1RADIO;
- item_to_update->chk_status = status;
- elm_check_state_set(item_to_update->eo_check, item_to_update->chk_status);
-
- if (ad->bAppPause || ad->ug) {
- ad->updateItems[GL_ITEM_BT] = EINA_TRUE;
- } else { // app is not in pause without ug
- elm_object_item_data_set(item_to_update->item, item_to_update);
- elm_genlist_item_update(item_to_update->item);
+
+ } else if (!safeStrCmp(vconf_name, VCONFKEY_ALLSHARE_STATUS)) {
+ // do handling in case of VCONFKEY_BT_STATUS
+ SETTING_TRACE_DEBUG("%s updated", vconf_name);
+
+ for (i = VIEW_All_List; i < VIEW_Max; i++)
+ {
+ item_to_update = ad->gl_data_item[i][GL_NearByDev];
+ if (item_to_update)
+ {
+ item_to_update->swallow_type = SWALLOW_Type_1ICON_1RADIO;
+ item_to_update->chk_status = status;
+ elm_object_item_data_set(item_to_update->item, item_to_update);
+ elm_genlist_item_fields_update(item_to_update->item, "elm.icon.2", ELM_GENLIST_ITEM_FIELD_CONTENT);
+ }
}
+
+ } else if (!safeStrCmp(vconf_name, VCONFKEY_MOBILE_HOTSPOT_MODE)) {
} else if (!safeStrCmp(vconf_name, VCONFKEY_SYSMAN_BATTERY_STATUS_LOW)) {
- if (status <= VCONFKEY_SYSMAN_BAT_CRITICAL_LOW) {
- if (ad->data_bright) {
- setting_disable_genlist_item(ad->data_bright->item);
- }
- } else {
- if (ad->data_bright) {
- setting_enable_genlist_item(ad->data_bright->item);
- }
+ // do handling in case of VCONFKEY_SYSMAN_BATTERY_STATUS_LOW
+ status = (status <= VCONFKEY_SYSMAN_BAT_CRITICAL_LOW);
+ for (i = VIEW_All_List; i < VIEW_Max; i++)
+ {
+ setting_genlist_item_disabled_set(ad->gl_data_item[i][GL_Bright], status);
+ }
+ } else if (!safeStrCmp(vconf_name, VCONFKEY_SETAPPL_BRIGHTNESS_AUTOMATIC_INT)) {
+ // do handling in case of VCONFKEY_SETAPPL_BRIGHTNESS_AUTOMATIC_INT
+ //update directly
+ for (i = VIEW_All_List; i < VIEW_Max; i++)
+ {
+ item_to_update = ad->gl_data_item[i][GL_Bright];
+ if (item_to_update)
+ {
+ G_FREE(item_to_update->sub_desc);
+ item_to_update->sub_desc = (char *)g_strdup(get_brightness_mode_str());
+ elm_object_item_data_set(item_to_update->item, item_to_update);
+ elm_genlist_item_update(item_to_update->item);
+ }
}
- }else if (!safeStrCmp(vconf_name, VCONFKEY_SETAPPL_BRIGHTNESS_AUTOMATIC_INT)) {
+ } else if (!safeStrCmp(vconf_name, VCONFKEY_SETAPPL_LCD_TIMEOUT_NORMAL)) {
//update directly
- if (ad->data_bright)
+ for (i = VIEW_All_List; i < VIEW_Max; i++)
{
- ad->data_bright->sub_desc = (char *)g_strdup(get_brightness_mode_str());
- elm_object_item_data_set(ad->data_bright->item, ad->data_bright);
- elm_genlist_item_update(ad->data_bright->item);
+ item_to_update = ad->gl_data_item[i][GL_Backlight];
+ if (item_to_update)
+ {
+ char backlight_time_str[MAX_DISPLAY_NAME_LEN_ON_UI];
+ if (status == 0) {
+ snprintf(backlight_time_str, sizeof(backlight_time_str), "%s",
+ _("IDS_ST_BODY_ALWAYS_ON"));
+ } else if (status == 60) {
+ snprintf(backlight_time_str, sizeof(backlight_time_str), "%s",
+ _("IDS_COM_BODY_1_MINUTE"));
+ } else if (status > 60) {
+ snprintf(backlight_time_str, sizeof(backlight_time_str),
+ "%d %s", status / 60, (char *)(_("IDS_COM_BODY_MINUTES_LC")));
+ } else {
+ snprintf(backlight_time_str, sizeof(backlight_time_str),
+ "%d %s", status, (char *)(_("IDS_COM_BODY_SECONDS_LC")));
+ }
+ SETTING_TRACE("backlight_time_str:%s", backlight_time_str);
+ G_FREE(item_to_update->sub_desc);
+ item_to_update->sub_desc = (char *)g_strdup(backlight_time_str);
+ elm_object_item_data_set(item_to_update->item, item_to_update);
+ elm_genlist_item_update(item_to_update->item);
+ }
}
+ } else if (!safeStrCmp(vconf_name, VCONFKEY_SETAPPL_ACCESSIBILITY_FONT_SIZE)) {
+
+ // do nothing
+
+ } else if (!safeStrCmp(vconf_name, VCONFKEY_SYSMAN_BATTERY_CAPACITY)) {
} else {
SETTING_TRACE_ERROR("vconf_name is bad[%s]", vconf_name);
}
return;
}
+
/**
* the event process when string VCONFS changes
*/
static void setting_string_vconf_change_cb(keynode_t *key, void *data)
{
- SETTING_TRACE_BEGIN;
setting_main_appdata *ad = data;
retm_if(!data, "Invalid argument: data is NULL");
char *value = vconf_keynode_get_str(key);
char *vconf_name = vconf_keynode_get_name(key);
- Setting_GenGroupItem_Data* item_to_update = NULL;
+ SETTING_TRACE("Enter %s(%s=%s)", __FUNCTION__, vconf_name, value);
if (!safeStrCmp(vconf_name, VCONFKEY_WIFI_CONNECTED_AP_NAME)) {
- int status;
- item_to_update = ad->data_wifi;
- retm_if(!item_to_update, "ad->data_wifi is NULL");
+ } // vconf_name == VCONFKEY_WIFI_CONNECTED_AP_NAME
+ else if (!safeStrCmp(vconf_name, VCONFKEY_SETAPPL_MOST_RECENTLY_SETTING))
+ {
+ }
+ else if (!safeStrCmp(vconf_name, VCONFKEY_SETAPPL_SCREENMODE_SELNAME))
+ {
+ int i;
+ for (i = VIEW_All_List; i < VIEW_Max; i++)
+ {
+ Setting_GenGroupItem_Data *item_to_update = ad->gl_data_item[i][GL_Screenmode];
+ if (item_to_update)
+ {
+ char *tmp = item_to_update->sub_desc;
+ item_to_update->sub_desc = get_pa_screen_mode_str();
- if (0 != vconf_get_int(VCONFKEY_WIFI_STATE, &status)) {
- SETTING_TRACE_ERROR("vconf_get err: %s", VCONFKEY_WIFI_STATE);
- return;
+ SETTING_TRACE("item_to_update->sub_desc:%s", item_to_update->sub_desc);
+ elm_object_item_data_set(item_to_update->item, item_to_update);
+ elm_genlist_item_update(item_to_update->item);
+ G_FREE(tmp);
+ }
}
- SETTING_TRACE("status:%d", status);
- switch (status) {
- case VCONFKEY_WIFI_OFF:
- //item_to_update->sub_desc =
- // (char *)g_strdup(setting_gettext ("IDS_COM_BODY_OFF_M_STATUS"));
+ } else if (!safeStrCmp(vconf_name, VCONFKEY_BGSET)
+ || !safeStrCmp(vconf_name, VCONFKEY_IDLE_LOCK_BGSET)) {
+ }
+}
- item_to_update->chk_status = EINA_FALSE;
- item_to_update->swallow_type = SWALLOW_Type_1ICON_1RADIO;
- elm_check_state_set(item_to_update->eo_check, item_to_update->chk_status);
- break;
+bool ___account_subscribe_cb(const char* event_type, int account_id, void* user_data)
+{
+ SETTING_TRACE_BEGIN;
+ setting_main_appdata *ad = user_data;
+ if (event_type) {
+ SETTING_TRACE("event_type = %s\n", event_type);
+ }
+ SETTING_TRACE("account id = %d\n", account_id);
- case VCONFKEY_WIFI_UNCONNECTED:
- case VCONFKEY_WIFI_CONNECTED:
- case VCONFKEY_WIFI_TRANSFER:
- if (NULL != value && '\0' != value[0]) {
- SETTING_TRACE("wifi_device:%s", value);
- //item_to_update->sub_desc = (char *)g_strdup(value);
- } else {
- //item_to_update->sub_desc =
- // (char *) g_strdup(setting_gettext ("IDS_COM_BODY_ON_M_STATUS"));
- }
+ int is_insert = 0;
+ int is_delete = 0;
+
+ if (0 == safeStrCmp(event_type, ACCOUNT_NOTI_NAME_INSERT))
+ is_insert = 1;
+ if (0 == safeStrCmp(event_type, ACCOUNT_NOTI_NAME_DELETE))
+ is_delete = 1;
- item_to_update->chk_status = EINA_TRUE;
- item_to_update->swallow_type = SWALLOW_Type_1ICON_1RADIO;
- elm_check_state_set(item_to_update->eo_check, item_to_update->chk_status);
+ if ( !(is_insert|is_delete))
+ return TRUE;
+
+ bool need_disconnect = FALSE;
+ char *package_name = NULL;
+ do {
+ int ret = 0;
+ ret = account_connect();
+ if ( ret != ACCOUNT_ERROR_NONE ) break;
+ need_disconnect = TRUE;
+
+ account_h account = NULL;
+ if ( account_create(&account) != ACCOUNT_ERROR_NONE )
break;
- default:
- SETTING_TRACE_ERROR("Invalid wifi status!");
- return;
- }
- if (ad->bAppPause || ad->ug) {
- ad->updateItems[GL_ITEM_WIFI] = EINA_TRUE;
- } else { // app is not in pause without ug
- elm_object_item_data_set(item_to_update->item, item_to_update);
- elm_genlist_item_update(item_to_update->item);
+
+ if ( account_query_account_by_account_id(account_id, &account) != ACCOUNT_ERROR_NONE )
+ break;
+
+ if ( account_get_package_name(account, &package_name) == ACCOUNT_ERROR_NONE ) {
+ SETTING_TRACE("package_name : %s", package_name);
+ } else {
+ SETTING_TRACE("failed");
}
- } // vconf_name == VCONFKEY_WIFI_CONNECTED_AP_NAME
-}
+ if ( account_destroy(account) != ACCOUNT_ERROR_NONE )
+ break;
+ } while (0);
-/**
-* Do the process which cost much time
-*/
-static Eina_Bool setting_on_idle_lazy(void *data)
-{
- SETTING_TRACE_BEGIN;
- setting_main_appdata *ad = data;
+ if (need_disconnect)
+ account_disconnect();
- /* A. add system event callback */
- if (sensor_create(&ad->sf_handle) != SENSOR_ERROR_NONE) {
- SETTING_TRACE_ERROR("sensor attach fail");
+ if (0 != safeStrCmp(package_name, "ims-service")) //must from joyn service
+ {
+ //SETTING_TRACE("");
+ FREE(package_name);
+ return TRUE;
}
+ FREE(package_name);
- if (sensor_motion_doubletap_set_cb(ad->sf_handle, __main_motion_sensor_cb, ad) != SENSOR_ERROR_NONE) {
- SETTING_TRACE("sensor_motion_doubletap_set_cb fail to gather data");
- }
- if (sensor_start(ad->sf_handle, SENSOR_MOTION_DOUBLETAP) != SENSOR_ERROR_NONE) {
- SETTING_TRACE_ERROR("sensor_start fail");
- }
+ int i;
+ Setting_GenGroupItem_Data *item_to_update = NULL;
+ Setting_GenGroupItem_Data *item_parent = NULL;
+ for (i = VIEW_All_List; i < VIEW_Max; i += 3)//just for VIEW_All_List and VIEW_Common
+ {
+ item_to_update = ad->gl_data_item[i][GL_Joyn];
+ item_parent = ad->gl_data_item[i][GL_WiFi];
+ if(!item_parent) continue;
-#if SUPPORT_APP_ROATION
- evas_object_geometry_get(ad->win_main, &g_geometry_x, &g_geometry_y, &g_geometry_w, &g_geometry_h);
-#endif
+ if (!safeStrCmp(event_type, ACCOUNT_NOTI_NAME_DELETE))
+ {
+ if (item_to_update && item_to_update->item)
+ {
+ SETTING_TRACE("To remove joyn");
+ elm_object_item_del(item_to_update->item);
+ }
+ item_to_update = NULL;
+ setting_genlist_item_groupstyle_set(item_parent, SETTING_GROUP_STYLE_TOP);
+ }
+ else if (!safeStrCmp(event_type, ACCOUNT_NOTI_NAME_INSERT))
+ {
+ if (!item_to_update || !item_to_update->item)
+ {
+ SETTING_TRACE("To add joyn");
+ item_to_update = (Setting_GenGroupItem_Data *) calloc(1, sizeof(Setting_GenGroupItem_Data));
+ setting_retvm_if(item_to_update == NULL, TRUE, "calloc failed");
+ item_to_update->keyStr = (char *)g_strdup(KeyStr_Joyn);
+ item_to_update->swallow_type = SWALLOW_Type_INVALID;
+ item_to_update->userdata = ad;
+ item_to_update->l_swallow_path = (char *)g_strdup(IMG_Joyn);
+
+ item_to_update->item = elm_genlist_item_insert_before(ad->sub_view[SETTING_TAB_VIEW_CONNECTION],
+ &(ad->itc[GENDIAL_Type_1text_1icon_2]),
+ item_to_update, NULL,
+ item_parent->item, ELM_GENLIST_ITEM_NONE,
+ setting_main_click_list_ex_ug_cb,
+ "setting-joyn-efl");
+ setting_genlist_item_groupstyle_set(item_to_update, SETTING_GROUP_STYLE_TOP);
+ setting_genlist_item_groupstyle_set(item_parent, SETTING_GROUP_STYLE_CENTER);
+ }
+ //set back
+ if (0 == i)
+ {
+ ad->data_joyn = item_to_update;
+ __BACK_POINTER_SET(ad->data_joyn);
+ }
+ else if (1 == i)
+ {
+ ad->gl_data_item[VIEW_All_List][GL_Joyn] = item_to_update;
+ __BACK_POINTER_SET(ad->gl_data_item[VIEW_All_List][GL_Joyn]);
+ }
+ else
+ {
+ ad->gl_data_item[VIEW_Common][GL_Joyn] = item_to_update;
+ __BACK_POINTER_SET(ad->gl_data_item[VIEW_All_List][GL_Joyn]);
+ }
+ }
+ }
- return FALSE;
+ return TRUE;
}
-
/**
* The function is called to create Setting view widgets
*/
static bool setting_main_app_create(void *data)
{
SETTING_TRACE_BEGIN;
- //fprintf(stderr, "[TIME] 3. it taked %d msec from main to setting_main_app_create \n", appcore_measure_time());
- //SETTING_TRACE("[TIME] 3. it taked %d msec from main to setting_main_app_create ", appcore_measure_time());
- //appcore_measure_start();
- setting_main_appdata *ad = data;
+ LAUNCH_SETTING_IN();
+ SETTING_TRACE_DEBUG("[TIME] 3. it taked %d msec from main to setting_main_app_create ", appcore_measure_time());
+ appcore_measure_start();
- // registering sigterm
- if (signal(SIGTERM, termination_handler) == SIG_IGN)
- {
+ //elm_config_preferred_engine_set("opengl_x11");
+ ug_create_cb(setting_ug_create_cb, NULL);
+
+#ifdef TIZEN_BUILD_TARGET
+ SETTING_TRACE_DEBUG(" ------------------------> TIZEN_BUILD_TARGET is ON");
+#endif
+
+#ifdef TIZEN_BUILD_EMULATOR
+ SETTING_TRACE_DEBUG(" ------------------------> TIZEN_BUILD_EMULATOR is ON");
+#endif
+
+#if SUPPORT_DRI
+ setenv("EVAS_DRI_SWAPBUF", "1", 1);
+#endif
+
+ setting_main_appdata *ad = data;
+ // regitering sigterm
+ if (signal(SIGTERM, termination_handler) == SIG_IGN) {
signal(SIGTERM, SIG_IGN);
}
+ #if 1
+ bundle* b = ad->b;
+ app_control_h svc;
+ app_control_create(&svc);
+ //app_control_create_request(b, &svc);
+ //ad->is_searchmode = setting_main_sfinder_handler(svc, ad, NULL);
+ app_control_destroy(svc);
+ svc = NULL;
+ #endif
+ //---------------------------------------------------------------------------------------------
ad->data_roaming_popup = NULL;
+ elm_app_base_scale_set(2.4);
+
/* create window */
ad->win_main = setting_main_create_win(SETTING_PACKAGE);
setting_retvm_if(ad->win_main == NULL, SETTING_RETURN_FAIL, "window is null");
- evas_object_show(ad->win_main);
UG_INIT_EFL(ad->win_main, UG_OPT_INDICATOR_ENABLE);
ad->evas = evas_object_evas_get(ad->win_main);
ad->current_rotation = elm_win_rotation_get(ad->win_main);
- SETTING_TRACE("ad->current_rotation:%d",ad->current_rotation);
+ SETTING_TRACE_DEBUG("ad->current_rotation:%d",ad->current_rotation);
if (elm_win_wm_rotation_supported_get(ad->win_main))
{
int rots[4] = { 0, 90, 180, 270 }; // rotation value that app may want
- elm_win_wm_rotation_available_rotations_set(ad->win_main, &rots, 4);
+ elm_win_wm_rotation_available_rotations_set(ad->win_main, rots, 4);
}
evas_object_smart_callback_add(ad->win_main, "wm,rotation,changed", _rot_changed_cb, ad);
/* load config file */
int cfg_operation_ret = setting_cfg_init();
//PLUGIN_INIT(ad);
-
+ //if ( ! ad->is_searchmode)
+ //{
elm_theme_extension_add(NULL, SETTING_THEME_EDJ_NAME);
-#if SUPPORT_LCD_TIMEOUT_KEEPING
- /* to keep according with each other */
- int origin_backlight_value;
- if (0 !=
- vconf_get_int(VCONFKEY_SETAPPL_LCD_TIMEOUT_NORMAL,
- &origin_backlight_value)) {
- /* error handle.. */
- vconf_set_int(VCONFKEY_SETAPPL_LCD_TIMEOUT_NORMAL, 30);
- origin_backlight_value = 30;
- }
- /* to set intial value */
- vconf_set_int(VCONFKEY_LCD_TIMEOUT_NORMAL_BACKUP,
- origin_backlight_value);
-
- /* Firstly, Setting is running in foreground, LCD_TIMEOUT must be 600s(/10m) */
- vconf_set_int(VCONFKEY_SETAPPL_LCD_TIMEOUT_NORMAL, 600);
-#endif
+ elm_theme_extension_add(NULL, SETTING_NEWUX_EDJ_NAME);
+ elm_theme_extension_add(NULL, SETTING_GENLIST_EDJ_NAME);
+ elm_theme_extension_add(NULL, SETTING_NEW_GENLIST_EDJ_NAME);
+ elm_theme_extension_add(NULL, SETTING_SLIDER_EDJ_NAME);
+ //}
elm_win_indicator_mode_set(ad->win_main, ELM_WIN_INDICATOR_SHOW);
+ elm_win_indicator_opacity_set(ad->win_main, ELM_WIN_INDICATOR_OPAQUE);
+
+ evas_object_show(ad->win_main);
+ g_main_ad = ad;
setting_view_create(&setting_view_main, ad);
- setting_view_node_table_register(&setting_view_main, NULL);
- setting_view_node_table_register(&setting_view_more_menu, &setting_view_main);
/* error handling */
if (Cfg_Error_Type_Sucess != cfg_operation_ret) {
setting_create_popup_without_btn(ad, ad->win_main, NULL, (char *)notifyStr, NULL, 10, FALSE, FALSE);
return SETTING_RETURN_FAIL;
}
- //fprintf(stderr, "[TIME] 4. setting_main_app_create taked %d msec \n", appcore_measure_time());
- //SETTING_TRACE("[TIME] 4. setting_main_app_create taked %d msec ", appcore_measure_time());
- //appcore_measure_start();
- // set default local automatically
- set_defaultLangICU();
+
+ ad->theme_table = _changeable_colors_set();
+
+ SETTING_TRACE_DEBUG("[TIME] 4. setting_main_app_create taked %d msec ", appcore_measure_time());
+ appcore_measure_start();
+ LAUNCH_SETTING_OUT();
return true;
}
/**
* The function is called when Setting is terminated
*/
-static int setting_main_app_terminate(void *data)
+static void setting_main_app_terminate(void *data)
{
SETTING_TRACE_BEGIN;
setting_main_appdata *ad = data;
- //vconf_set_bool (VCONFKEY_SETAPPL_ROTATE_HOLD_BOOL, FALSE);
+ if (ad->account_subscribe_handle)
+ {
+ (void)account_unsubscribe_notification(ad->account_subscribe_handle);
+ }
+ vconf_set_bool (VCONFKEY_SETAPPL_ROTATE_HOLD_BOOL, FALSE);
+ evas_object_smart_callback_del(ad->win_main, "wm,rotation,changed", _rot_changed_cb);
+
+ (void)preference_set_int(PREFKEY_VIEW_TYPE, ad->list_type);
+ (void)preference_set_int(PREFKEY_TAB_VIEW_TAB, ad->view_type);
+
+
+ _changeable_colors_free(ad->theme_table);
+
+ //PLUGIN_FINI;
setting_cfg_exit();
clear_system_service_data();
ug_destroy_all();
ad->ug = NULL;
- SETTING_TRACE("%s*** SETTING APPLICATION CLOSED ***%s",
- SETTING_FONT_BGREEN, SETTING_FONT_BLACK);
+ ug_create_cb(NULL , NULL);
+ SETTING_TRACE_DEBUG("%s*** SETTING APPLICATION CLOSED ***%s", SETTING_FONT_BGREEN, SETTING_FONT_BLACK);
DEREGISTER_VCONFS(ad->listened_list);
- if (sensor_motion_doubletap_unset_cb(ad->sf_handle) != SENSOR_ERROR_NONE) {
- SETTING_TRACE("sensor_motion_doubletap_unset_cb fail to gather data");
- }
- sensor_stop(ad->sf_handle, SENSOR_MOTION_DOUBLETAP);
- sensor_destroy(ad->sf_handle);
#if SUPPORT_LCD_TIMEOUT_KEEPING
/* once Setting is not running, LCD_TIMEOUT must be backuped */
vconf_get_int(VCONFKEY_LCD_TIMEOUT_NORMAL_BACKUP, &back_value);
vconf_set_int(VCONFKEY_SETAPPL_LCD_TIMEOUT_NORMAL, back_value);
#endif
- setting_view_destroy(&setting_view_more_menu, ad);
setting_view_destroy(&setting_view_main, ad);
- SETTING_TRACE("!!! After setting_view_destroy");
+
+ SETTING_TRACE_DEBUG("!!! After setting_view_destroy");
if (ad->win_main) {
evas_object_del(ad->win_main);
ad->win_main = NULL;
}
+ if (ad->b)
+ {
+ bundle_free(ad->b);
+ ad->b = NULL;
+ }
+
SETTING_TRACE_END;
- return 0;
+ return;
}
/**
{
SETTING_TRACE_BEGIN;
setting_main_appdata *ad = data;
-
- ad->bAppPause = EINA_TRUE;
if (ad->ug)
+ {
ug_pause();
+ }
#if SUPPORT_LCD_TIMEOUT_KEEPING
/* once Setting is running in background, LCD_TIMEOUT must be backuped */
vconf_set_int(VCONFKEY_SETAPPL_LCD_TIMEOUT_NORMAL, back_value);
#endif
- sensor_stop(ad->sf_handle, SENSOR_MOTION_DOUBLETAP);
-
}
/**
SETTING_TRACE_BEGIN;
setting_main_appdata *ad = data;
- if (sensor_start(ad->sf_handle, SENSOR_MOTION_DOUBLETAP) != SENSOR_ERROR_NONE) {
- SETTING_TRACE_ERROR("sf_start fail");
- }
-
- if (ad->ug)
- ug_resume();
-
#if SUPPORT_LCD_TIMEOUT_KEEPING
/* once Setting is running in foreground, LCD_TIMEOUT must be reset to 600 */
vconf_set_int(VCONFKEY_SETAPPL_LCD_TIMEOUT_NORMAL, 600);
#endif
+ _rot_changed_cb(ad, ad->win_main, NULL);//to fix P131121-02103
+
+ if(ad->is_searchmode%10 == Cfg_Item_AppLauncher_Node) {
+ // app-launching exit
+ elm_exit();
+ }
- // update main genlist in resuming app.
- ad->bAppPause = EINA_FALSE;
- if(!ad->ug) { // top-level view is not on UG
+ if(!(ad->isInUGMode && ad->ug)) { // top-level view is not on UG
SETTING_TRACE("update main genlist in resuming app without UG");
- setting_update_gl_item(ad); // update genlist sub-texts
+ Eina_Bool is_freezed = evas_object_freeze_events_get(ad->navibar_main);
+ SETTING_TRACE_DEBUG("is_freezed : %d", is_freezed);
+ if(is_freezed)
+ {
+ evas_object_freeze_events_set(ad->navibar_main, EINA_FALSE);
+ }
+
+ // update personal mode toggle
+ Setting_GenGroupItem_Data *item_to_update;
+ int status = 0;
+ vconf_get_bool(VCONFKEY_SETAPPL_PERSONAL_MODE_STATUS_BOOL, &status);
+ int i;
+ for (i = VIEW_All_List; i < VIEW_Max; i++)
+ {
+ item_to_update = ad->gl_data_item[i][GL_PersonalPage];
+ setting_force_update_gl_item_chk_status(item_to_update, status);
+ }
+ } else if (ad->ug) {
+ ug_resume();
}
}
+static Cfg_Item_Type setting_main_sfinder_handler(app_control_h service, void* data, int (*func)(void* d1))
+{
+ SETTING_TRACE_BEGIN;
+ setting_main_appdata *ad = data;
+ Cfg_Item_Type ret_code = Cfg_Item_Node_Error;
+
+ // s finder code
+ if (service) {
+ char* uri = NULL;
+
+ char* type = NULL;
+ char* infostr = NULL;
+ char* viewname = NULL;
+ char* fieldname = NULL;
+ char* title = NULL;
+ char* check_value = NULL;
+
+ //int ret_action = -1;
+ int ret = app_control_get_uri (service, &uri);
+ if (APP_CONTROL_ERROR_NONE == ret && uri && !safeStrCmp(uri, S_FINDER_SETTING_STR)) {
+
+ app_control_get_extra_data(service, "type", &type);
+ app_control_get_extra_data(service, "infostr", &infostr);
+ app_control_get_extra_data(service, "viewname", &viewname);
+ app_control_get_extra_data(service, "fieldname", &fieldname);
+ app_control_get_extra_data(service, "title", &title);
+ app_control_get_extra_data(service, "s_finder_setting_check_value_set", &check_value);
+
+ SETTING_TRACE("-------------------------------------");
+ SETTING_TRACE("S-finder launched org.tizen.setting : %s", uri);
+ SETTING_TRACE("title %s", title);
+ SETTING_TRACE("type %s", type);
+ SETTING_TRACE("infostr %s", infostr);
+ SETTING_TRACE("viewname %s", viewname);
+ SETTING_TRACE("fieldname %s", fieldname);
+ SETTING_TRACE("s_finder_setting_check_value_set %s", check_value);
+ SETTING_TRACE("-------------------------------------");
+
+ ret_code = setting_search_type(type);
+
+ ListItemObject* plistitem = calloc(1, sizeof(ListItemObject));
+
+ if (title) {
+ plistitem->title = strdup(title);
+ plistitem->title2 = strdup(title);
+ }
+ if (type)
+ plistitem->type = strdup(type);
+ if (infostr)
+ plistitem->infostr = strdup(infostr);
+ if (viewname)
+ plistitem->viewname = strdup(viewname);
+ if (fieldname)
+ plistitem->fieldname = strdup(fieldname);
+ if (check_value)
+ plistitem->check_value_set = strdup(check_value);
+
+ plistitem->data = ad;
+
+ if (func) {
+ func(plistitem);
+
+ // toggle handler
+ // switch
+ int toggle_state = -1;
+ if(!safeStrCmp(check_value, "1")) {
+ toggle_state = 1;
+ } else if(!safeStrCmp(check_value, "0")) {
+ toggle_state = 0;
+ }
+ if(toggle_state >= 0)
+ {
+ Setting_Cfg_Node_T* pnode = get_cfg_node_by_keystr(_(plistitem->title2));
+ if (pnode && pnode->tfunc && pnode->tfunc->set_item_state) {
+ pnode->tfunc->set_item_state(toggle_state, plistitem, ad);
+ SETTING_TRACE("OOOOOOOOOO CALL set_item_state from tfunc");
+ } else if ( !pnode && plistitem->viewname) {
+ // if get_cfg_node_by_keystr returns NULL, search for UG's keyword
+ int ret = setting_search_set_module_item_state(plistitem->title2, plistitem->viewname, toggle_state, NULL);
+ SETTING_TRACE("---------------------------------------");
+ SETTING_TRACE(" >>> ret : %d, state : %d <<< ", ret, toggle_state);
+ SETTING_TRACE("---------------------------------------");
+ }
+ }
+ }
+ // free plistitem
+ FREE(plistitem);
+ } else {
+ // if svc == 0, return the previous status
+ ret_code = ad->is_searchmode;
+ SETTING_TRACE(" HERE !!!! >>>> previous ad->is_searchmode = %d ", ad->is_searchmode);
+ }
+ FREE(title);
+ FREE(type);
+ FREE(infostr);
+ FREE(viewname);
+ FREE(fieldname);
+ FREE(uri);
+ } else {
+ // if svc == 0, return the previous status
+ ret_code = ad->is_searchmode;
+ SETTING_TRACE(" >>>> previous ad->is_searchmode = %d ", ad->is_searchmode);
+ }
+
+ return ret_code;
+}
+
/**
* The function is called by app-fwk after app_create. It always do the process which cost much time.
*/
-static void setting_main_app_reset(service_h service, void *data)
+static void setting_main_app_reset(app_control_h service, void *data)
{
SETTING_TRACE_BEGIN;
setting_main_appdata *ad = data;
- int value = 0;
- vconf_get_bool (VCONFKEY_SETAPPL_AUTO_ROTATE_SCREEN_BOOL, &value);
- SETTING_TRACE("value:%d", value);
- if (value) //rotation function is not blocked
+ if (is_searchmode_app(ad->is_searchmode))
{
- SETTING_TRACE("Rotation function is on, it is necessary to adjust the device orientation");
- //int mode = APP_DEVICE_ORIENTATION_0;
- //mode = app_get_device_orientation();
- //elm_win_rotation_with_resize_set(ad->win_main, mode);
+ evas_object_hide(ad->view_layout);
+ } else {
+ evas_object_show(ad->view_layout);
}
-
vconf_callback_fn cb = NULL;
cb = setting_int_vconf_change_cb;
REGISTER_VCONF_NODE(ad->listened_list, VCONFKEY_BT_STATUS, cb, data);
REGISTER_VCONF_NODE(ad->listened_list, VCONFKEY_WIFI_STATE, cb, ad);
- REGISTER_VCONF_NODE(ad->listened_list, VCONFKEY_CALL_STATE, cb, ad);
+ //REGISTER_VCONF_NODE(ad->listened_list, VCONFKEY_MOBILE_HOTSPOT_MODE, cb, ad);
+ //REGISTER_VCONF_NODE(ad->listened_list, VCONFKEY_CALL_STATE, cb, ad);
- //do need to disable 'Brightness' menu,just disable sub-items in 'Brightness' menu
- //REGISTER_VCONF_NODE(ad->listened_list, VCONFKEY_SYSMAN_BATTERY_STATUS_LOW, cb, ad);
REGISTER_VCONF_NODE(ad->listened_list, VCONFKEY_SETAPPL_BRIGHTNESS_AUTOMATIC_INT, cb, data);
+ REGISTER_VCONF_NODE(ad->listened_list, VCONFKEY_SETAPPL_LCD_TIMEOUT_NORMAL, cb, data);
+ REGISTER_VCONF_NODE(ad->listened_list, VCONFKEY_SETAPPL_ACCESSIBILITY_FONT_SIZE, cb, data);
+ REGISTER_VCONF_NODE(ad->listened_list, VCONFKEY_SYSMAN_BATTERY_CAPACITY, cb, data);
+ //REGISTER_VCONF_NODE(ad->listened_list, VCONFKEY_ALLSHARE_STATUS, cb, data);
+
cb = setting_string_vconf_change_cb;
REGISTER_VCONF_NODE(ad->listened_list, VCONFKEY_WIFI_CONNECTED_AP_NAME, cb, ad);
+ REGISTER_VCONF_NODE(ad->listened_list, VCONFKEY_SETAPPL_MOST_RECENTLY_SETTING, cb, ad);
+ REGISTER_VCONF_NODE(ad->listened_list, VCONFKEY_SETAPPL_SCREENMODE_SELNAME, cb, ad);
+ REGISTER_VCONF_NODE(ad->listened_list, VCONFKEY_BGSET, cb, ad);
+ REGISTER_VCONF_NODE(ad->listened_list, VCONFKEY_IDLE_LOCK_BGSET, cb, ad);
cb = setting_other_vconf_change_cb;
REGISTER_VCONF_NODE(ad->listened_list, VCONFKEY_SETAPPL_USB_MODE_INT, cb, ad);
- REGISTER_VCONF_NODE(ad->listened_list, VCONFKEY_SETAPPL_WIDGET_THEME_STR, cb, ad);
-
- REGISTER_VCONF_NODE(ad->listened_list, VCONFKEY_TELEPHONY_FLIGHT_MODE, cb, ad);
REGISTER_VCONF_NODE(ad->listened_list, VCONFKEY_SETAPPL_AUTO_ROTATE_SCREEN_BOOL, cb, ad);
- REGISTER_VCONF_NODE(ad->listened_list, VCONFKEY_NFC_STATE, cb, ad);
+ REGISTER_VCONF_NODE(ad->listened_list, VCONFKEY_TELEPHONY_FLIGHT_MODE, cb, ad);
+#if SUPPORT_NETWORK_RESTRICTION
+ REGISTER_VCONF_NODE(ad->listened_list, VCONFKEY_SETAPPL_NETWORK_RESTRICT_MODE, cb, ad);
+#endif
+ //REGISTER_VCONF_NODE(ad->listened_list, VCONFKEY_NFC_STATE, cb, ad);
+ //REGISTER_VCONF_NODE(ad->listened_list, VCONFKEY_NFC_SBEAM, cb, ad);
+ //REGISTER_VCONF_NODE(ad->listened_list, VCONFKEY_SETAPPL_DM_DRIVING_MODE, cb, ad);
+#if SUPPORT_POWERSAVING
+ REGISTER_VCONF_NODE(ad->listened_list, VCONFKEY_SETAPPL_PWRSV_SYSMODE_STATUS, cb, ad);
+#endif
+ //REGISTER_VCONF_NODE(ad->listened_list, VCONFKEY_QUICKSETTING_MULTIWINDOW_ENABLED, cb, ad);
- if (ad->win_main)
- elm_win_activate(ad->win_main);
+ REGISTER_VCONF_NODE(ad->listened_list, VCONFKEY_SETAPPL_WALLPAPER_APPLY_COLORTHEME_BOOL, cb, ad);
+
+#if SUPPORT_BLOCKINGMODE
+ REGISTER_VCONF_NODE(ad->listened_list, VCONFKEY_SETAPPL_BLOCKINGMODE_BLOCKINGMODE, cb, ad);
+#endif
+#if SUPPORT_GUESTMODE
+ REGISTER_VCONF_NODE(ad->listened_list, VCONFKEY_SETAPPL_GM_GUEST_MODE, cb, ad);
+#endif
- ecore_idler_add(setting_on_idle_lazy, ad);
+ REGISTER_VCONF_NODE(ad->listened_list, VCONFKEY_SETAPPL_SOUND_STATUS_BOOL, cb, ad);
+ REGISTER_VCONF_NODE(ad->listened_list, VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL, cb, ad);
+#if SUPPORT_PERSONALPAGE
+ REGISTER_VCONF_NODE(ad->listened_list, VCONFKEY_SETAPPL_PERSONAL_MODE_STATUS_BOOL, cb, ad);
+ REGISTER_VCONF_NODE(ad->listened_list, VCONFKEY_SETAPPL_PERSONAL_MODE_UNLOCK_METHOD_INT, cb, ad);
+#endif
+ REGISTER_VCONF_NODE(ad->listened_list, VCONFKEY_SETAPPL_ACCESSIBILITY_TTS, cb, ad);
+#ifndef BINARY_RELEASE_TYPE_ENG
+ REGISTER_VCONF_NODE(ad->listened_list, VCONFKEY_SETAPPL_DEVELOPER_OPTION_STATE, cb, ad);
+#endif
+ REGISTER_VCONF_NODE(ad->listened_list, VCONFKEY_SETAPPL_ENHANCED_TOUCH, cb, ad);
+ //----------------------------------------------------------------------------------
+ //----------------------------------------------------------------------------------
+
+ if (ad->win_main) {
+ elm_win_activate(ad->win_main);
+ }
int flight_mode = 0;
vconf_get_bool(VCONFKEY_TELEPHONY_FLIGHT_MODE, &flight_mode);
if (flight_mode)
{
if (ad->data_network) setting_disable_genlist_item(ad->data_network->item);
+ if (ad->data_powersaving) setting_disable_genlist_item(ad->data_powersaving->item);
}
- int call_status = VCONFKEY_CALL_OFF;
- vconf_get_int(VCONFKEY_CALL_STATE, &call_status);
- if (VCONFKEY_CALL_OFF != call_status)
- {
- if (ad->data_network) setting_disable_genlist_item(ad->data_network->item);
- if (ad->data_wifi) setting_disable_genlist_item(ad->data_wifi->item);
- //if (ad->data_mobileApp) setting_disable_genlist_item(ad->data_mobileApp->item);
- }
- /* for jumping view */
- service_get_extra_data(service, "view_to_jump", &(ad->view_to_jump));
- if(ad->view_to_jump)
- {
- SETTING_TRACE_DEBUG("view to jump is %s", ad->view_to_jump);
- /* Jumping */
- if(!safeStrCmp(ad->view_to_jump, KeyStr_Sounds))
- {
+ // account - Joyn
+ //account_subscribe_h account_subscribe_handle = NULL;
- SETTING_TRACE_DEBUG("Kill launched ug.");
- if(ad->isInUGMode == TRUE && (safeStrCmp(ad->cur_loaded_ug, "setting-profile-efl") != 0))
- {
- ug_destroy_all();
- ad->ug = NULL;
- }
- if(ad->isInUGMode == TRUE && (safeStrCmp(ad->cur_loaded_ug, "setting-profile-efl") == 0))
- {
- return;
- }
+ //ad->is_searchmode = setting_main_sfinder_handler(service, ad, setting_search_move_action);
- 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_TRACE_DEBUG("call setting-profile-efl ug");
- ad->ug = ug_create(NULL, "setting-profile-efl", UG_MODE_FULLVIEW, 0, cbs);
- if (ad->ug) {
- ad->isInUGMode = TRUE;
- memset(ad->cur_loaded_ug, 0x00, MAX_DISPLAY_NAME_LEN_ON_UI);
- safeCopyStr(ad->cur_loaded_ug, "setting-profile-efl", 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);
- }
- if (cbs)
- FREE(cbs);
- cbs = NULL;
- ad->view_to_jump = NULL;
- }
- }
- else
+ if (! is_searchmode_app(ad->is_searchmode))
{
- SETTING_TRACE_DEBUG("No need to jump view. Draw main.");
+ if (ACCOUNT_ERROR_NONE == account_subscribe_create(&(ad->account_subscribe_handle))
+ && ad->account_subscribe_handle)
+ {
+ (void)account_subscribe_notification(ad->account_subscribe_handle, ___account_subscribe_cb, ad);
+ }
}
}
+EXPORT_PUBLIC
int main(int argc, char *argv[])
{
int r = 0;
setting_main_appdata ad;
- elm_init(argc, argv);
-#if SUPPORT_GL_ENGINE
- // opengl_x11 or software_x11
- elm_config_preferred_engine_set("software_x11");
-#endif
+ SETTING_TRACE_DEBUG("[TIME] 1. aul_launch -> main :: Setting main : %d msec ", appcore_measure_time_from("APP_START_TIME"));
+ appcore_measure_start();
- //fprintf(stderr, "[TIME] 1. aul_launch -> main :: Setting main : %d msec \n", appcore_measure_time_from("APP_START_TIME"));
- //SETTING_TRACE("[TIME] 1. aul_launch -> main :: Setting main : %d msec ", appcore_measure_time_from("APP_START_TIME"));
- //appcore_measure_start();
app_event_callback_s ops = {
.create = setting_main_app_create,
.terminate = setting_main_app_terminate,
.pause = setting_main_app_pause,
.resume = setting_main_app_resume,
- .service = setting_main_app_reset,
+ .app_control = setting_main_app_reset,
.low_battery = setting_main_low_battery_cb,
.language_changed = setting_main_lang_changed_cb,
.region_format_changed = setting_main_region_changed_cb,
memset(&ad, 0x00, sizeof(setting_main_appdata));
- //fprintf(stderr, "[TIME] 2. main : %d msec \n", appcore_measure_time());
- //SETTING_TRACE("[TIME] 2. main : %d msec ", appcore_measure_time());
- //appcore_measure_start();
+ bundle* b = NULL;
+ b = bundle_import_from_argv(argc, argv);
+ ad.b = b;
+
+ SETTING_TRACE_DEBUG("[TIME] 2. main : %d msec ", appcore_measure_time());
+ appcore_measure_start();
r = app_efl_main(&argc, &argv, &ops, &ad);
retv_if(r == -1, -1);