move install path of langlist.xml
[apps/core/preloaded/settings.git] / src / setting.c
index e9aaf9f..3236d60 100755 (executable)
@@ -1,22 +1,18 @@
 /*
  * setting
+ * Copyright (c) 2012 Samsung Electronics Co., Ltd.
  *
- * 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");
+ * Licensed under the Flora License, Version 1.0 (the License);
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
- * http://www.apache.org/licenses/LICENSE-2.0
+ *     http://floralicense.org/license/
  *
  * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
+ * distributed under the License is distributed on an AS IS BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
- *
  */
 #include <setting.h>
 #include <app.h>
 #include <Ecore_X.h>
 #include <sensor.h>
 #include <aul.h>
-#include "setting-plugin.h"
+#include "setting-common-plugin.h"
 #include "setting-main.h"
 #include <elm_object.h>
 #include <appsvc.h>
 #include <EWebKit2.h>
 #include <nfc.h>
+#include <signal.h>
 
 extern void setting_update_gl_item(void* data);
 
@@ -38,7 +35,14 @@ extern void setting_update_gl_item(void* data);
 #define SUPPORT_UG_MESSAGE
 
 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");
+
+       elm_exit();
+}
 
 static void __main_motion_sensor_cb( unsigned long long timestamp, void *data)
 {
@@ -228,8 +232,7 @@ static void setting_main_rotate(app_device_orientation_e m, void *data)
        //}
 
        int value = 0;
-       vconf_get_bool (VCONFKEY_SETAPPL_ROTATE_LOCK_BOOL, &value);
-       value = !value;
+       vconf_get_bool (VCONFKEY_SETAPPL_AUTO_ROTATE_SCREEN_BOOL, &value);
 
        if (value == 0)
                m = 0;
@@ -457,14 +460,14 @@ static void setting_other_vconf_change_cb(keynode_t *key, void *data)
                        }
                }
                return;
-       } else if (!safeStrCmp(vconf_name, VCONFKEY_SETAPPL_ROTATE_LOCK_BOOL)) {
+       } 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");
 
                int status = 0;
-               vconf_get_bool(VCONFKEY_SETAPPL_ROTATE_LOCK_BOOL, &status);
+               vconf_get_bool(VCONFKEY_SETAPPL_AUTO_ROTATE_SCREEN_BOOL, &status);
 
-               item_to_update->chk_status = !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);
@@ -485,13 +488,14 @@ static void setting_other_vconf_change_cb(keynode_t *key, void *data)
                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);
 
-               item_to_update->sub_desc = (char *)g_strdup(get_NFC_on_off_str());
-               SETTING_TRACE_DEBUG("%s", item_to_update->sub_desc);
+               //item_to_update->sub_desc = (char *)g_strdup(get_NFC_on_off_str());
+               //SETTING_TRACE_DEBUG("%s", item_to_update->sub_desc);
 
                if (ad->bAppPause || ad->ug) {
                        ad->updateItems[GL_ITEM_NFC] = EINA_TRUE;
@@ -515,10 +519,8 @@ static void setting_int_vconf_change_cb(keynode_t *key, void *data)
        char *vconf_name = vconf_keynode_get_name(key);
        SETTING_TRACE("Enter %s(%s=%d)", __FUNCTION__, vconf_name, status);
 
-       char *pa_wifi_device = NULL;
        Setting_GenGroupItem_Data* item_to_update = NULL;
 
-
        if (!safeStrCmp(vconf_name, VCONFKEY_WIFI_STATE)) {
        // do handling in case of VCONFKEY_WIFI_STATE
                item_to_update = ad->data_wifi;
@@ -526,7 +528,7 @@ static void setting_int_vconf_change_cb(keynode_t *key, void *data)
 
                switch (status) {
                case VCONFKEY_WIFI_OFF:
-                       item_to_update->sub_desc = (char *)g_strdup(_("IDS_COM_BODY_OFF_M_STATUS"));
+                       //item_to_update->sub_desc = (char *)g_strdup(_("IDS_COM_BODY_OFF_M_STATUS"));
 
                        item_to_update->chk_status = EINA_FALSE;
                        break;
@@ -534,13 +536,13 @@ static void setting_int_vconf_change_cb(keynode_t *key, void *data)
                case VCONFKEY_WIFI_UNCONNECTED:
                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);
+                       //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;
                        break;
@@ -549,6 +551,7 @@ static void setting_int_vconf_change_cb(keynode_t *key, void *data)
                        return;
                }
 
+               item_to_update->swallow_type = SWALLOW_Type_1ICON_1RADIO;
                elm_check_state_set(item_to_update->eo_check, item_to_update->chk_status);
 
                if (ad->bAppPause || ad->ug) {
@@ -560,36 +563,35 @@ static void setting_int_vconf_change_cb(keynode_t *key, void *data)
        }
        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
+               // In call situation : Wi-fi / Tethering / Network menu dimmed
+               // --                                   Only Wi-fi should be dimmed (2013.04.04) --
                if (VCONFKEY_CALL_OFF != 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);
                }
                else
                {
                        if (ad->data_network)
                                setting_enable_genlist_item(ad->data_network->item);
-                       if (ad->data_wifi)
-                               setting_enable_genlist_item(ad->data_wifi->item);
                }
 
        } 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->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"));
+                       //item_to_update->sub_desc = (char *)g_strdup(_("IDS_COM_BODY_ON_M_STATUS"));
 
                        item_to_update->chk_status = EINA_TRUE;
                }
-
+*/
+               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);
 
@@ -650,10 +652,11 @@ static void setting_string_vconf_change_cb(keynode_t *key, void *data)
                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"));
+                       //item_to_update->sub_desc =
+                       //      (char *)g_strdup(setting_gettext ("IDS_COM_BODY_OFF_M_STATUS"));
 
                        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;
 
@@ -662,13 +665,14 @@ static void setting_string_vconf_change_cb(keynode_t *key, void *data)
                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);
+                               //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"));
+                               //item_to_update->sub_desc =
+                               //      (char *) g_strdup(setting_gettext ("IDS_COM_BODY_ON_M_STATUS"));
                        }
 
                        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);
                        break;
                default:
@@ -724,6 +728,12 @@ static bool setting_main_app_create(void *data)
        //appcore_measure_start();
        setting_main_appdata *ad = data;
 
+       // registering sigterm
+       if (signal(SIGTERM, termination_handler) == SIG_IGN)
+       {
+               signal(SIGTERM, SIG_IGN);
+       }
+
        ad->data_roaming_popup = NULL;
 
        /* create window */
@@ -735,7 +745,7 @@ static bool setting_main_app_create(void *data)
 
        /* load config file */
        int cfg_operation_ret = setting_cfg_init();
-       PLUGIN_INIT(ad);
+       //PLUGIN_INIT(ad);
 
        elm_theme_extension_add(NULL, SETTING_THEME_EDJ_NAME);
 #if SUPPORT_LCD_TIMEOUT_KEEPING
@@ -825,7 +835,7 @@ static int setting_main_app_terminate(void *data)
        SETTING_TRACE_BEGIN;
        setting_main_appdata *ad = data;
        //vconf_set_bool (VCONFKEY_SETAPPL_ROTATE_HOLD_BOOL, FALSE);
-       PLUGIN_FINI;
+
        setting_cfg_exit();
        clear_system_service_data();
 
@@ -921,9 +931,9 @@ static void setting_main_app_reset(service_h service, void *data)
        setting_main_appdata *ad = data;
 
        int value = 0;
-       vconf_get_bool (VCONFKEY_SETAPPL_ROTATE_LOCK_BOOL, &value);
+       vconf_get_bool (VCONFKEY_SETAPPL_AUTO_ROTATE_SCREEN_BOOL, &value);
        SETTING_TRACE("value:%d", value);
-       if (!value) //rotation function is not blocked
+       if (value) //rotation function is not blocked
        {
                SETTING_TRACE("Rotation function is on, it is necessary to adjust the device orientation");
                int mode = APP_DEVICE_ORIENTATION_0;
@@ -950,7 +960,7 @@ static void setting_main_app_reset(service_h service, void *data)
        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_ROTATE_LOCK_BOOL, 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);
 
        if (ad->win_main)