Remove #if 0
[platform/core/api/system-settings.git] / src / system_setting_platform.c
index 4219bbb..4fa9f82 100644 (file)
 #include <dlfcn.h>
 
 #include <string.h>
+#include <libgen.h>
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <fcntl.h>
-#include <aul.h>
-
 #include <regex.h>
 
+#include <aul.h>
 #include <dlog.h>
 #include <vconf.h>
 
 #include <fontconfig/fontconfig.h>
 
 #include <pkgmgr-info.h>
+#include <package_manager.h>
+#include <app_manager.h>
 
 #include <system_settings.h>
 #include <system_settings_private.h>
 #include <system_settings_ringtones.h>
 #include <system_settings_json.h>
 
+#include <system-setting-config.h>
 
 #include <tzplatform_config.h>
 #include <alarm.h>
 
-#ifdef USE_EFL_ASSIST
-#include <efl_assist.h>
-#endif
-
-
+#include <system_info.h>
 
 #define SETTING_FONT_CONF_FILE _TZ_SYS_ETC"/fonts/conf.avail/99-tizen.conf"
 #define SETTING_DEFAULT_FONT_CONF_FILE _TZ_SYS_ETC"/fonts/conf.avail/99-tizen.conf"
        } while (0);
 #define FREE(arg) __FREE(free, arg)
 
+#ifdef SETTING_ARCH_64
+#define SETTING_UTILS_SO_FILE_PATH "/usr/lib64/libsystem-settings-util.so.0.1.0"
+#else
+#define SETTING_UTILS_SO_FILE_PATH "/usr/lib/libsystem-settings-util.so.0.1.0"
+#endif
 
 int _is_file_accessible(const char *path);
 
 static bool dl_is_supported_image_type_load(char *path);
 static bool dl_font_config_set(char *font_name);
-static char *dl_get_font_info(char *str);
+static char *dl_get_default_font_info();
 static int dl_is_available_font(char *str);
 static void dl_font_size_set();
 static void dl_font_config_set_notification();
 
-
 /**
  * VCONFKEY_SETAPPL_CALL_RINGTONE_PATH_STR has a path of the ringtone file which user choose
  * @return the ringtone file path specified by user in normal case
  *                if it's not accessable, return the default ringtone path
  */
-int system_setting_get_incoming_call_ringtone(system_settings_key_e key, system_setting_data_type_e data_type, void **value)
+int system_setting_get_incoming_call_ringtone(system_settings_key_e key, void **value)
 {
        SETTING_TRACE_BEGIN;
-       char *vconf_value;
+       char *vconf_value = NULL;
        if (system_setting_vconf_get_value_string(VCONFKEY_SETAPPL_CALL_RINGTONE_PATH_STR, &vconf_value)) {
                return SYSTEM_SETTINGS_ERROR_IO_ERROR;
        }
@@ -102,6 +105,7 @@ int system_setting_get_incoming_call_ringtone(system_settings_key_e key, system_
                *value = vconf_value;
        } else { /* not zero on errro */
                *value = vconf_get_str(VCONFKEY_SETAPPL_CALL_RINGTONE_DEFAULT_PATH_STR);
+               free(vconf_value);
        }
 
        /**value = vconf_value; */
@@ -109,10 +113,10 @@ int system_setting_get_incoming_call_ringtone(system_settings_key_e key, system_
 }
 
 
-int system_setting_get_email_alert_ringtone(system_settings_key_e key, system_setting_data_type_e data_type, void **value)
+int system_setting_get_email_alert_ringtone(system_settings_key_e key, void **value)
 {
        SETTING_TRACE_BEGIN;
-       char *vconf_value;
+       char *vconf_value = NULL;
        if (system_setting_vconf_get_value_string(VCONFKEY_SETAPPL_NOTI_MSG_RINGTONE_PATH_STR, &vconf_value)) {
                return SYSTEM_SETTINGS_ERROR_IO_ERROR;
        }
@@ -124,13 +128,14 @@ int system_setting_get_email_alert_ringtone(system_settings_key_e key, system_se
                *value = vconf_value;
        } else { /* not zero on errro */
                *value = vconf_get_str(VCONFKEY_SETAPPL_NOTI_RINGTONE_DEFAULT_PATH_STR);
+               free(vconf_value);
        }
 
        return SYSTEM_SETTINGS_ERROR_NONE;
 }
 
 
-int system_setting_get_wallpaper_home_screen(system_settings_key_e key, system_setting_data_type_e data_type, void **value)
+int system_setting_get_wallpaper_home_screen(system_settings_key_e key, void **value)
 {
        SETTING_TRACE_BEGIN;
        char *vconf_value;
@@ -142,7 +147,7 @@ int system_setting_get_wallpaper_home_screen(system_settings_key_e key, system_s
 }
 
 
-int system_setting_get_wallpaper_lock_screen(system_settings_key_e key, system_setting_data_type_e data_type, void **value)
+int system_setting_get_wallpaper_lock_screen(system_settings_key_e key, void **value)
 {
        SETTING_TRACE_BEGIN;
        char *vconf_value;
@@ -157,24 +162,25 @@ int system_setting_get_wallpaper_lock_screen(system_settings_key_e key, system_s
 
 
 /* [int] vconf GET */
-int system_setting_get_font_size(system_settings_key_e key, system_setting_data_type_e data_type, void **value)
+int system_setting_get_font_size(system_settings_key_e key, void **value)
 {
        SETTING_TRACE_BEGIN;
        int vconf_value;
+       int ** val = (int**)value;
 
        if (system_setting_vconf_get_value_int(VCONFKEY_SETAPPL_ACCESSIBILITY_FONT_SIZE, &vconf_value)) {
                return SYSTEM_SETTINGS_ERROR_IO_ERROR;
        }
-       *value = (void *)vconf_value;
+       **val = vconf_value;
 
        return SYSTEM_SETTINGS_ERROR_NONE;
 }
 
 
-int system_setting_get_default_font_type(system_settings_key_e key, system_setting_data_type_e data_type, void **value)
+int system_setting_get_default_font_type(system_settings_key_e key, void **value)
 {
        SETTING_TRACE_BEGIN;
-       char *font_name = dl_get_font_info("default");
+       char *font_name = dl_get_default_font_info();
        if (font_name) {
                *value = (void *)font_name;
                return SYSTEM_SETTINGS_ERROR_NONE;
@@ -184,17 +190,21 @@ int system_setting_get_default_font_type(system_settings_key_e key, system_setti
 }
 
 /* [int] vconf GET */
-int system_setting_get_font_type(system_settings_key_e key, system_setting_data_type_e data_type, void **value)
+int system_setting_get_font_type(system_settings_key_e key, void **value)
 {
        SETTING_TRACE_BEGIN;
-       char *font_name = dl_get_font_info("cur");
-       *value = (void *)font_name;
+       char *font_name = NULL;
+
+       if (system_setting_vconf_get_value_string(VCONFKEY_SETAPPL_ACCESSIBILITY_FONT_NAME, &font_name)) {
+               return SYSTEM_SETTINGS_ERROR_IO_ERROR;
+       }
 
+       *value = font_name;
        return SYSTEM_SETTINGS_ERROR_NONE;
 }
 
 
-int system_setting_get_motion_activation(system_settings_key_e key, system_setting_data_type_e data_type, void **value)
+int system_setting_get_motion_activation(system_settings_key_e key, void **value)
 {
        SETTING_TRACE_BEGIN;
        bool vconf_value;
@@ -207,7 +217,7 @@ int system_setting_get_motion_activation(system_settings_key_e key, system_setti
        return SYSTEM_SETTINGS_ERROR_NONE;
 }
 
-int system_setting_get_usb_debugging_option(system_settings_key_e key, system_setting_data_type_e data_type, void **value)
+int system_setting_get_usb_debugging_option(system_settings_key_e key, void **value)
 {
        SETTING_TRACE_BEGIN;
        bool vconf_value;
@@ -220,7 +230,7 @@ int system_setting_get_usb_debugging_option(system_settings_key_e key, system_se
        return SYSTEM_SETTINGS_ERROR_NONE;
 }
 
-int system_setting_get_3g_data_network(system_settings_key_e key, system_setting_data_type_e data_type, void **value)
+int system_setting_get_3g_data_network(system_settings_key_e key, void **value)
 {
        SETTING_TRACE_BEGIN;
        bool vconf_value;
@@ -240,18 +250,21 @@ int system_setting_get_3g_data_network(system_settings_key_e key, system_setting
  *
  * @return SYSTEM_SETTINGS_ERROR_LOCKSCREEN_APP_PASSWORD_MODE raise exception if current lock type is 'password'
  */
-int system_setting_get_lockscreen_app(system_settings_key_e key, system_setting_data_type_e data_type, void **value)
+int system_setting_get_lockscreen_app(system_settings_key_e key, void **value)
 {
        SETTING_TRACE_BEGIN;
        char *pkg_name = NULL;
        int locktype = -1;
-       system_setting_vconf_get_value_int(VCONFKEY_SETAPPL_SCREEN_LOCK_TYPE_INT, &locktype);
+       if (system_setting_vconf_get_value_int(VCONFKEY_SETAPPL_SCREEN_LOCK_TYPE_INT, &locktype)) {
+               return SYSTEM_SETTINGS_ERROR_IO_ERROR;
+       }
 
        if (system_setting_vconf_get_value_string(VCONFKEY_SETAPPL_3RD_LOCK_PKG_NAME_STR, &pkg_name)) {
                return SYSTEM_SETTINGS_ERROR_IO_ERROR;
        }
 
        if (pkg_name && strcmp(pkg_name, "com.samsung.lockscreen") == 0 && locktype == SETTING_SCREEN_LOCK_TYPE_PASSWORD) {
+               free(pkg_name);
                return SYSTEM_SETTINGS_ERROR_LOCKSCREEN_APP_PASSWORD_MODE;
        }
 
@@ -280,22 +293,17 @@ int _is_file_accessible(const char *path)
 
 /*////////////////////////////////////////////////////////////////////////////////////////////////// */
 // @todo move to CMake
-#define DEF_RINGTONE_FILE_PATH "/opt/share/settings/Ringtones"
+#define DEF_RINGTONE_FILE_PATH SETTING_DEF_RES"/Ringtones"
+
 #define USR_RINGTONE_FILE_PATH "/home/owner/content/Sounds/Ringtones"
 #define JSONFILE "/opt/home/owner/apps_rw/org.tizen.setting/data/.user-ringtones.json"
 
-#if 0
-static char* _get_json_file_path()
-{
-       // for testing
-       return JSONFILE;
-}
-#endif
-
-int system_setting_add_incoming_call_ringtone(system_settings_key_e key, system_setting_data_type_e data_type, void *value)
+int system_setting_add_incoming_call_ringtone(system_settings_key_e key, void *value)
 {
        SETTING_TRACE_BEGIN;
        char* pathval = (char*)value;
+       char* dnameval = NULL;
+       char* baseval = NULL;
 
 #ifdef USE_JSONFILE
        // NOT IN USE
@@ -310,18 +318,23 @@ int system_setting_add_incoming_call_ringtone(system_settings_key_e key, system_
        // basename
        int ret = SYSTEM_SETTINGS_ERROR_NONE;
        if (false == ss_json_ringtone_contain(root, pathval)) {
-               SETTING_TRACE("---> dirname is : %s ", dirname(strdup(pathval)));
-               SETTING_TRACE("---> basename is : %s ", basename(strdup(pathval)));
                // @todo : MAKE SURE THE ACTUAL FILE IS THERE ON PATHVAL(SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER)
                ss_json_ringtone_add(root, JSONFILE, pathval, pathval);
                SETTING_TRACE("pathval is : %s -- OK", pathval);
        } else {
                SETTING_TRACE("pathval is duplicated : %s", pathval);
-               SETTING_TRACE("---> dirname is : %s ", dirname(strdup(pathval)));
-               SETTING_TRACE("---> basename is : %s ", basename(strdup(pathval)));
                ret = SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER;
        }
 
+       dnameval = strdup(pathval);
+       baseval = strdup(pathval);
+       if (dnameval && baseval) {
+               SETTING_TRACE("---> dirname is : %s ", dirname(dnameval));
+               SETTING_TRACE("---> basename is : %s ", basename(baseval));
+       }
+       FREE(dnameval);
+       FREE(baseval);
+
        if (parser) {
                g_object_unref(parser);
                parser = NULL;
@@ -330,7 +343,7 @@ int system_setting_add_incoming_call_ringtone(system_settings_key_e key, system_
        return ret;
 }
 
-int system_setting_del_incoming_call_ringtone(system_settings_key_e key, system_setting_data_type_e data_type, void *value)
+int system_setting_del_incoming_call_ringtone(system_settings_key_e key, void *value)
 {
        SETTING_TRACE_BEGIN;
        char* pathval = (char*)value;
@@ -355,23 +368,25 @@ int system_setting_del_incoming_call_ringtone(system_settings_key_e key, system_
 }
 
 
-static int _compare_cb(const void *d1, const void *d2)
+/*  LCOV_EXCL_START */
+gint _compare_cb(gconstpointer d1, gconstpointer d2)
 {
        fileNodeInfo *pNode1 = (fileNodeInfo *)d1;
        fileNodeInfo *pNode2 = (fileNodeInfo *)d2;
 
        return strcmp(pNode1->media_name, pNode2->media_name);
 }
+/*  LCOV_EXCL_STOP */
 
 /*
  * get the RINGTONE list
  */
-static void _get_default_ringtones(system_settings_key_e key, system_setting_data_type_e data_type,  system_settings_iter_cb callback, void *data)
+static void _get_default_ringtones(system_settings_key_e key, system_settings_iter_cb callback, void *data)
 {
        SETTING_TRACE_BEGIN;
        /*Get file list */
-       Eina_List *filelist = NULL;
-       Eina_List *l = NULL;
+       GList *filelist = NULL;
+       GList *iter;
        fileNodeInfo *node = NULL;
        int idx = 0;
 
@@ -382,10 +397,11 @@ static void _get_default_ringtones(system_settings_key_e key, system_setting_dat
        if (ret != 0) {
                SETTING_TRACE("Failed to get filelist, ret = %d %s", ret, DEF_RINGTONE_FILE_PATH);
        }
-       filelist = eina_list_sort(filelist, eina_list_count(filelist), _compare_cb);
 
-       EINA_LIST_FOREACH(filelist, l, node)
-       {
+       filelist = g_list_sort(filelist, _compare_cb);
+
+       for (iter = filelist; iter != NULL; iter = g_list_next(iter)) {
+               node = (fileNodeInfo *)iter->data;
                SETTING_TRACE("file path = (%d) : name:%s path:%s [%s]", ret, node->name, node->path, node->media_name);
                // @todo assert NULL check
                if (callback) {
@@ -407,21 +423,19 @@ static void _get_default_ringtones(system_settings_key_e key, system_setting_dat
                }
        }
 
-       l = NULL;
-       node = NULL;
-       EINA_LIST_FOREACH(filelist, l, node)
-       {
+       for (iter = filelist; iter != NULL; iter = g_list_next(iter)) {
+               node = (fileNodeInfo *)iter->data;
                FREE(node->path);
                FREE(node->name);
                FREE(node->media_name);
                FREE(node);
        }
-       eina_list_free(filelist);
+       g_list_free(filelist);
        filelist = NULL;
 
 }
 
-static void _get_user_ringtones(system_settings_key_e key, system_setting_data_type_e data_type, system_settings_iter_cb callback, void *data)
+static void _get_user_ringtones(system_settings_key_e key, system_settings_iter_cb callback, void *data)
 {
        SETTING_TRACE_BEGIN;
 
@@ -441,35 +455,38 @@ static void _get_user_ringtones(system_settings_key_e key, system_setting_data_t
                char *nameval = (char *)json_object_get_string_member(ringtone, "name");
                char *pathval = (char *)json_object_get_string_member(ringtone, "path");
                SETTING_TRACE("(%s) --- (%s) \n", nameval, pathval);
-               if (callback) {
+               if (callback && pathval) {
                        char* path = strdup(pathval);
                        bool ret = callback(i, (void *)(path), data);
                        if (ret == false) {
                                SETTING_TRACE("quit the iteration by return value == false : %d", ret);
                                break;
                        }
+                       FREE(path);
                } else {
                        SETTING_TRACE("--> callback is NULL");
                }
        }
+
+       g_object_unref(parser);
 }
 
-int system_setting_list_incoming_call_ringtone(system_settings_key_e key, system_setting_data_type_e data_type, system_settings_iter_cb callback, void *data)
+int system_setting_list_incoming_call_ringtone(system_settings_key_e key, system_settings_iter_cb callback, void *data)
 {
        SETTING_TRACE_BEGIN;
 
-       _get_default_ringtones(key, data_type, callback, data);
+       _get_default_ringtones(key, callback, data);
        //-----------------------------------------------------------------------------------------------------------------
        // 2. get the USER ringtone list
        //-----------------------------------------------------------------------------------------------------------------
-       _get_user_ringtones(key, data_type, callback, data);
+       _get_user_ringtones(key, callback, data);
 
        return SYSTEM_SETTINGS_ERROR_NONE;
 }
 
 
 /*  LCOV_EXCL_START */
-int system_setting_set_incoming_call_ringtone(system_settings_key_e key, system_setting_data_type_e data_type, void *value)
+int system_setting_set_incoming_call_ringtone(system_settings_key_e key, void *value)
 {
        SETTING_TRACE_BEGIN;
        char *vconf_value;
@@ -491,7 +508,7 @@ int system_setting_set_incoming_call_ringtone(system_settings_key_e key, system_
 
 
 /*  LCOV_EXCL_START */
-int system_setting_set_email_alert_ringtone(system_settings_key_e key, system_setting_data_type_e data_type, void *value)
+int system_setting_set_email_alert_ringtone(system_settings_key_e key, void *value)
 {
        SETTING_TRACE_BEGIN;
        char *vconf_value;
@@ -520,7 +537,7 @@ static bool dl_is_supported_image_type_load(char *path)
        bool ret = false;
        bool (*image_type_check)(char *path);
 
-       handle = dlopen("/usr/lib/libsystem-settings-util.so.0.1.0",  RTLD_LAZY);
+       handle = dlopen(SETTING_UTILS_SO_FILE_PATH,  RTLD_LAZY);
        if (!handle) {
                SETTING_TRACE("ERROR!! canNOT find libsystem-settings-util.so.0.1.0");
                return false;
@@ -548,7 +565,7 @@ static int dl_is_available_font(char *str)
        int ret = false;
        int (*check_available_font)(char *font_name);
 
-       handle = dlopen("/usr/lib/libsystem-settings-util.so.0.1.0",  RTLD_LAZY);
+       handle = dlopen(SETTING_UTILS_SO_FILE_PATH,  RTLD_LAZY);
        if (!handle) {
                SETTING_TRACE("ERROR!! canNOT find libsystem-settings-util.so.0.1.0");
                return false;
@@ -575,7 +592,7 @@ static void dl_font_size_set()
        char *error;
        void (*set_font_size)();
 
-       handle = dlopen("/usr/lib/libsystem-settings-util.so.0.1.0",  RTLD_LAZY);
+       handle = dlopen(SETTING_UTILS_SO_FILE_PATH,  RTLD_LAZY);
        if (!handle) {
                SETTING_TRACE("ERROR!! canNOT find libsystem-settings-util.so.0.1.0");
                return;
@@ -602,7 +619,7 @@ static void dl_font_config_set_notification()
        char *error;
        void (*set_font_nodification)();
 
-       handle = dlopen("/usr/lib/libsystem-settings-util.so.0.1.0",  RTLD_LAZY);
+       handle = dlopen(SETTING_UTILS_SO_FILE_PATH,  RTLD_LAZY);
        if (!handle) {
                SETTING_TRACE("ERROR!! canNOT find libsystem-settings-util.so.0.1.0");
                return;
@@ -630,7 +647,7 @@ static bool dl_font_config_set(char *font_name)
        bool ret = false;
        bool (*check_font_type)(char *font_name);
 
-       handle = dlopen("/usr/lib/libsystem-settings-util.so.0.1.0",  RTLD_LAZY);
+       handle = dlopen(SETTING_UTILS_SO_FILE_PATH,  RTLD_LAZY);
        if (!handle) {
                SETTING_TRACE("ERROR!! canNOT find libsystem-settings-util.so.0.1.0");
                return false;
@@ -651,26 +668,23 @@ static bool dl_font_config_set(char *font_name)
 /*  LCOV_EXCL_STOP */
 
 /*  LCOV_EXCL_START */
-static char *dl_get_font_info(char *str)
+static char *dl_get_default_font_info()
 {
        void *handle = NULL;
        char *error;
        char *ret = NULL;
        char *(*get_font_info)();
 
-       handle = dlopen("/usr/lib/libsystem-settings-util.so.0.1.0",  RTLD_LAZY);
+       handle = dlopen(SETTING_UTILS_SO_FILE_PATH,  RTLD_LAZY);
        if (!handle) {
                SETTING_TRACE("ERROR!! canNOT find libsystem-settings-util.so.0.1.0");
                return false;
        }
 
-       if (strcmp(str, "cur") == 0)
-               get_font_info = dlsym(handle, "_get_cur_font");
-       else
-               get_font_info = dlsym(handle, "_get_default_font");
+       get_font_info = dlsym(handle, "_get_default_font");
 
        if ((error = dlerror()) != NULL) {
-               SETTING_TRACE("ERROR!! canNOT find %s function at libsystem-settings-util.so.0.1.0", str);
+               SETTING_TRACE("ERROR!! canNOT find _get_default_font function at libsystem-settings-util.so.0.1.0");
                if (handle)
                        dlclose(handle);
                return false;
@@ -682,33 +696,6 @@ static char *dl_get_font_info(char *str)
 }
 /*  LCOV_EXCL_STOP */
 
-/*  LCOV_EXCL_START */
-#define PATH_EXT_CHECK_REG ".(jpe?g|jpg|png|gif)$"
-bool __is_supported_image_type_by_ext(char *file_path)
-{
-       SETTING_TRACE_BEGIN;
-       regex_t fsm;
-       regmatch_t str[2048 + 1];
-
-       if (!file_path) return false;
-
-       int ret = false;
-       if ((ret = regcomp(&fsm, PATH_EXT_CHECK_REG, REG_ICASE | REG_EXTENDED))) {
-               SETTING_TRACE("regular expresstion fail");
-               return 1;
-       }
-
-       /* code */
-       if (regexec(&fsm, file_path, strlen(file_path) + 1, str, 0) == REG_NOMATCH) {
-               /*SETTING_TRACE("FAILED - %s", file_path[i]); */
-               ret = 0;
-       } else {
-               /*SETTING_TRACE("MATCHED - %s", file_path[i]); */
-               ret = 1;
-       }
-       return ret;
-}
-/*  LCOV_EXCL_STOP */
 #ifdef TIZEN_WEARABLE
 /*  LCOV_EXCL_START */
 static int system_setting_get_extended_wallpaper_num(const char *file_path, unsigned int *num)
@@ -836,7 +823,7 @@ static int system_setting_check_extended_wallpaper(const char *file_path)
 #define WALLPAPER_MAX_COUNT            10
 #endif
 /*  LCOV_EXCL_START */
-int system_setting_set_wallpaper_home_screen(system_settings_key_e key, system_setting_data_type_e data_type, void *value)
+int system_setting_set_wallpaper_home_screen(system_settings_key_e key, void *value)
 {
        SETTING_TRACE_BEGIN;
        char *vconf_value;
@@ -937,7 +924,7 @@ int system_setting_set_wallpaper_home_screen(system_settings_key_e key, system_s
 /*  LCOV_EXCL_STOP */
 
 /*  LCOV_EXCL_START */
-int system_setting_set_wallpaper_lock_screen(system_settings_key_e key, system_setting_data_type_e data_type, void *value)
+int system_setting_set_wallpaper_lock_screen(system_settings_key_e key, void *value)
 {
        SETTING_TRACE_BEGIN;
        char *vconf_value;
@@ -965,11 +952,11 @@ int system_setting_set_wallpaper_lock_screen(system_settings_key_e key, system_s
 /*  LCOV_EXCL_STOP */
 
 /*  LCOV_EXCL_START */
-int system_setting_set_font_size(system_settings_key_e key, system_setting_data_type_e data_type, void *value)
+int system_setting_set_font_size(system_settings_key_e key, void *value)
 {
        SETTING_TRACE_BEGIN;
        int *vconf_value;
-       vconf_value = (int *)value;
+       vconf_value = *(int **)value;
 
        if (*vconf_value < 0 || *vconf_value > SYSTEM_SETTINGS_FONT_SIZE_GIANT) {
                return SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER;
@@ -1085,7 +1072,7 @@ void *font_conf_doc_parse(char *doc_name, char *font_name)
 /*  LCOV_EXCL_STOP */
 
 /*  LCOV_EXCL_START */
-int system_setting_set_font_type(system_settings_key_e key, system_setting_data_type_e data_type, void *value)
+int system_setting_set_font_type(system_settings_key_e key, void *value)
 {
        SETTING_TRACE_BEGIN;
        char *font_name = NULL;
@@ -1094,7 +1081,7 @@ int system_setting_set_font_type(system_settings_key_e key, system_setting_data_
        /* get current font list */
        int is_found = dl_is_available_font(font_name);
 
-       if (is_found) {
+       if (is_found == 1) {
                SETTING_TRACE("found font : %s ", font_name);
        } else {
                SETTING_TRACE(" NOT found font : %s ", font_name);
@@ -1130,7 +1117,7 @@ int system_setting_set_font_type(system_settings_key_e key, system_setting_data_
 /*  LCOV_EXCL_STOP */
 
 /*  LCOV_EXCL_START */
-int system_setting_set_motion_activation(system_settings_key_e key, system_setting_data_type_e data_type, void *value)
+int system_setting_set_motion_activation(system_settings_key_e key, void *value)
 {
        SETTING_TRACE_BEGIN;
        bool *vconf_value;
@@ -1143,7 +1130,7 @@ int system_setting_set_motion_activation(system_settings_key_e key, system_setti
 /*  LCOV_EXCL_STOP */
 
 /*  LCOV_EXCL_START */
-int system_setting_set_usb_debugging_option(system_settings_key_e key, system_setting_data_type_e data_type, void *value)
+int system_setting_set_usb_debugging_option(system_settings_key_e key, void *value)
 {
        SETTING_TRACE_BEGIN;
        bool *vconf_value;
@@ -1157,7 +1144,7 @@ int system_setting_set_usb_debugging_option(system_settings_key_e key, system_se
 /*  LCOV_EXCL_STOP */
 
 /*  LCOV_EXCL_START */
-int system_setting_set_3g_data_network(system_settings_key_e key, system_setting_data_type_e data_type, void *value)
+int system_setting_set_3g_data_network(system_settings_key_e key, void *value)
 {
        SETTING_TRACE_BEGIN;
        bool *vconf_value;
@@ -1194,7 +1181,7 @@ static int category_func(const char *name, void *user_data)
  */
 
 /*  LCOV_EXCL_START */
-int system_setting_set_lockscreen_app(system_settings_key_e key, system_setting_data_type_e data_type, void *value)
+int system_setting_set_lockscreen_app(system_settings_key_e key, void *value)
 {
        SETTING_TRACE_BEGIN;
        char *vconf_value;
@@ -1207,7 +1194,7 @@ int system_setting_set_lockscreen_app(system_settings_key_e key, system_setting_
                SETTING_TRACE("*** pkginfo failed ");
                return SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER;
        } else {
-               SETTING_TRACE("%x", handle);
+               SETTING_TRACE("%p", handle);
        }
 
        int ret = pkgmgrinfo_appinfo_foreach_category(handle, category_func, (void *)"lock-screen");
@@ -1245,97 +1232,97 @@ int system_setting_set_lockscreen_app(system_settings_key_e key, system_setting_
 int system_setting_set_changed_callback_incoming_call_ringtone(system_settings_key_e key, system_settings_changed_cb callback, void *user_data)
 {
        SETTING_TRACE_BEGIN;
-       return system_setting_vconf_set_changed_cb(VCONFKEY_SETAPPL_CALL_RINGTONE_PATH_STR, SYSTEM_SETTINGS_KEY_INCOMING_CALL_RINGTONE, 0, user_data);
+       return system_setting_vconf_set_changed_cb(VCONFKEY_SETAPPL_CALL_RINGTONE_PATH_STR, SYSTEM_SETTINGS_KEY_INCOMING_CALL_RINGTONE, SYSTEM_SETTING_CALLBACK_SLOT_0, user_data);
 }
 
 int system_setting_unset_changed_callback_incoming_call_ringtone(system_settings_key_e key)
 {
        SETTING_TRACE_BEGIN;
-       return system_setting_vconf_unset_changed_cb(VCONFKEY_SETAPPL_CALL_RINGTONE_PATH_STR, 0);
+       return system_setting_vconf_unset_changed_cb(VCONFKEY_SETAPPL_CALL_RINGTONE_PATH_STR, SYSTEM_SETTING_CALLBACK_SLOT_0);
 }
 
 int system_setting_set_changed_callback_email_alert_ringtone(system_settings_key_e key, system_settings_changed_cb callback, void *user_data)
 {
        SETTING_TRACE_BEGIN;
-       return system_setting_vconf_set_changed_cb(VCONFKEY_SETAPPL_NOTI_MSG_RINGTONE_PATH_STR, SYSTEM_SETTINGS_KEY_EMAIL_ALERT_RINGTONE, 0, user_data);
+       return system_setting_vconf_set_changed_cb(VCONFKEY_SETAPPL_NOTI_MSG_RINGTONE_PATH_STR, SYSTEM_SETTINGS_KEY_EMAIL_ALERT_RINGTONE, SYSTEM_SETTING_CALLBACK_SLOT_0, user_data);
 }
 
 int system_setting_unset_changed_callback_email_alert_ringtone(system_settings_key_e key)
 {
        SETTING_TRACE_BEGIN;
-       return system_setting_vconf_unset_changed_cb(VCONFKEY_SETAPPL_NOTI_MSG_RINGTONE_PATH_STR, 0);
+       return system_setting_vconf_unset_changed_cb(VCONFKEY_SETAPPL_NOTI_MSG_RINGTONE_PATH_STR, SYSTEM_SETTING_CALLBACK_SLOT_0);
 }
 
 int system_setting_set_changed_callback_wallpaper_home_screen(system_settings_key_e key, system_settings_changed_cb callback, void *user_data)
 {
        SETTING_TRACE_BEGIN;
-       return system_setting_vconf_set_changed_cb(VCONFKEY_BGSET, SYSTEM_SETTINGS_KEY_WALLPAPER_HOME_SCREEN, 0, user_data);
+       return system_setting_vconf_set_changed_cb(VCONFKEY_BGSET, SYSTEM_SETTINGS_KEY_WALLPAPER_HOME_SCREEN, SYSTEM_SETTING_CALLBACK_SLOT_0, user_data);
 }
 
 int system_setting_unset_changed_callback_wallpaper_home_screen(system_settings_key_e key)
 {
        SETTING_TRACE_BEGIN;
-       return system_setting_vconf_unset_changed_cb(VCONFKEY_BGSET, 0);
+       return system_setting_vconf_unset_changed_cb(VCONFKEY_BGSET, SYSTEM_SETTING_CALLBACK_SLOT_0);
 }
 
 int system_setting_set_changed_callback_wallpaper_lock_screen(system_settings_key_e key, system_settings_changed_cb callback, void *user_data)
 {
        SETTING_TRACE_BEGIN;
-       return system_setting_vconf_set_changed_cb(VCONFKEY_IDLE_LOCK_BGSET, SYSTEM_SETTINGS_KEY_WALLPAPER_LOCK_SCREEN, 0, user_data);
+       return system_setting_vconf_set_changed_cb(VCONFKEY_IDLE_LOCK_BGSET, SYSTEM_SETTINGS_KEY_WALLPAPER_LOCK_SCREEN, SYSTEM_SETTING_CALLBACK_SLOT_0, user_data);
 }
 
 int system_setting_unset_changed_callback_wallpaper_lock_screen(system_settings_key_e key)
 {
        SETTING_TRACE_BEGIN;
-       return system_setting_vconf_unset_changed_cb(VCONFKEY_IDLE_LOCK_BGSET, 0);
+       return system_setting_vconf_unset_changed_cb(VCONFKEY_IDLE_LOCK_BGSET, SYSTEM_SETTING_CALLBACK_SLOT_0);
 }
 
 int system_setting_set_changed_callback_font_size(system_settings_key_e key, system_settings_changed_cb callback, void *user_data)
 {
        SETTING_TRACE_BEGIN;
-       return system_setting_vconf_set_changed_cb(VCONFKEY_SETAPPL_ACCESSIBILITY_FONT_SIZE, SYSTEM_SETTINGS_KEY_FONT_SIZE, 1, user_data);
+       return system_setting_vconf_set_changed_cb(VCONFKEY_SETAPPL_ACCESSIBILITY_FONT_SIZE, SYSTEM_SETTINGS_KEY_FONT_SIZE, SYSTEM_SETTING_CALLBACK_SLOT_1, user_data);
 }
 
 int system_setting_unset_changed_callback_font_size(system_settings_key_e key)
 {
        SETTING_TRACE_BEGIN;
-       return system_setting_vconf_unset_changed_cb(VCONFKEY_SETAPPL_ACCESSIBILITY_FONT_SIZE, 1);
+       return system_setting_vconf_unset_changed_cb(VCONFKEY_SETAPPL_ACCESSIBILITY_FONT_SIZE, SYSTEM_SETTING_CALLBACK_SLOT_1);
 }
 
 int system_setting_set_changed_callback_usb_debugging_option(system_settings_key_e key, system_settings_changed_cb callback, void *user_data)
 {
        SETTING_TRACE_BEGIN;
-       return system_setting_vconf_set_changed_cb(VCONFKEY_SETAPPL_USB_DEBUG_MODE_BOOL, SYSTEM_SETTINGS_KEY_USB_DEBUGGING_ENABLED, 1, user_data);
+       return system_setting_vconf_set_changed_cb(VCONFKEY_SETAPPL_USB_DEBUG_MODE_BOOL, SYSTEM_SETTINGS_KEY_USB_DEBUGGING_ENABLED, SYSTEM_SETTING_CALLBACK_SLOT_1, user_data);
 }
 
 int system_setting_unset_changed_callback_usb_debugging_option(system_settings_key_e key)
 {
        SETTING_TRACE_BEGIN;
-       return system_setting_vconf_unset_changed_cb(VCONFKEY_SETAPPL_USB_DEBUG_MODE_BOOL, 1);
+       return system_setting_vconf_unset_changed_cb(VCONFKEY_SETAPPL_USB_DEBUG_MODE_BOOL, SYSTEM_SETTING_CALLBACK_SLOT_1);
 }
 
 int system_setting_set_changed_callback_3g_data_network(system_settings_key_e key, system_settings_changed_cb callback, void *user_data)
 {
        SETTING_TRACE_BEGIN;
-       return system_setting_vconf_set_changed_cb(VCONFKEY_3G_ENABLE, SYSTEM_SETTINGS_KEY_3G_DATA_NETWORK_ENABLED, 1, user_data);
+       return system_setting_vconf_set_changed_cb(VCONFKEY_3G_ENABLE, SYSTEM_SETTINGS_KEY_3G_DATA_NETWORK_ENABLED, SYSTEM_SETTING_CALLBACK_SLOT_1, user_data);
 }
 
 int system_setting_unset_changed_callback_3g_data_network(system_settings_key_e key)
 {
        SETTING_TRACE_BEGIN;
-       return system_setting_vconf_unset_changed_cb(VCONFKEY_3G_ENABLE, 1);
+       return system_setting_vconf_unset_changed_cb(VCONFKEY_3G_ENABLE, SYSTEM_SETTING_CALLBACK_SLOT_1);
 }
 
 int system_setting_set_changed_callback_lockscreen_app(system_settings_key_e key, system_settings_changed_cb callback, void *user_data)
 {
        SETTING_TRACE_BEGIN;
-       return system_setting_vconf_set_changed_cb(VCONFKEY_SETAPPL_3RD_LOCK_PKG_NAME_STR, SYSTEM_SETTINGS_KEY_LOCKSCREEN_APP, 1, user_data);
+       return system_setting_vconf_set_changed_cb(VCONFKEY_SETAPPL_3RD_LOCK_PKG_NAME_STR, SYSTEM_SETTINGS_KEY_LOCKSCREEN_APP, SYSTEM_SETTING_CALLBACK_SLOT_1, user_data);
 }
 
 int system_setting_unset_changed_callback_lockscreen_app(system_settings_key_e key)
 {
        SETTING_TRACE_BEGIN;
-       return system_setting_vconf_unset_changed_cb(VCONFKEY_SETAPPL_3RD_LOCK_PKG_NAME_STR, 1);
+       return system_setting_vconf_unset_changed_cb(VCONFKEY_SETAPPL_3RD_LOCK_PKG_NAME_STR, SYSTEM_SETTING_CALLBACK_SLOT_1);
 }
 
 
@@ -1345,31 +1332,31 @@ int system_setting_unset_changed_callback_lockscreen_app(system_settings_key_e k
 int system_setting_set_changed_callback_font_type(system_settings_key_e key, system_settings_changed_cb callback, void *user_data)
 {
        SETTING_TRACE_BEGIN;
-       return system_setting_vconf_set_changed_cb(VCONFKEY_SETAPPL_ACCESSIBILITY_FONT_NAME, SYSTEM_SETTINGS_KEY_FONT_TYPE, 2, user_data);
+       return system_setting_vconf_set_changed_cb(VCONFKEY_SETAPPL_ACCESSIBILITY_FONT_NAME, SYSTEM_SETTINGS_KEY_FONT_TYPE, SYSTEM_SETTING_CALLBACK_SLOT_2, user_data);
 }
 
 int system_setting_unset_changed_callback_font_type(system_settings_key_e key)
 {
        SETTING_TRACE_BEGIN;
-       return system_setting_vconf_unset_changed_cb(VCONFKEY_SETAPPL_ACCESSIBILITY_FONT_NAME, 2);
+       return system_setting_vconf_unset_changed_cb(VCONFKEY_SETAPPL_ACCESSIBILITY_FONT_NAME, SYSTEM_SETTING_CALLBACK_SLOT_2);
 }
 
 /* TODO : 2th argument, callback, is not in use. */
 int system_setting_set_changed_callback_motion_activation(system_settings_key_e key, system_settings_changed_cb callback, void *user_data)
 {
        SETTING_TRACE_BEGIN;
-       return system_setting_vconf_set_changed_cb(VCONFKEY_SETAPPL_MOTION_ACTIVATION, SYSTEM_SETTINGS_KEY_MOTION_ACTIVATION, 3, user_data);
+       return system_setting_vconf_set_changed_cb(VCONFKEY_SETAPPL_MOTION_ACTIVATION, SYSTEM_SETTINGS_KEY_MOTION_ACTIVATION, SYSTEM_SETTING_CALLBACK_SLOT_3, user_data);
 }
 
 int system_setting_unset_changed_callback_motion_activation(system_settings_key_e key)
 {
        SETTING_TRACE_BEGIN;
-       return system_setting_vconf_unset_changed_cb(VCONFKEY_SETAPPL_MOTION_ACTIVATION, 3);
+       return system_setting_vconf_unset_changed_cb(VCONFKEY_SETAPPL_MOTION_ACTIVATION, SYSTEM_SETTING_CALLBACK_SLOT_3);
 }
 
 /*//////////////////////////////////////////////////////////////////////////////////////// */
 /*--------------------------------------- */
-int system_setting_get_locale_country(system_settings_key_e key, system_setting_data_type_e data_type, void **value)
+int system_setting_get_locale_country(system_settings_key_e key, void **value)
 {
        SETTING_TRACE_BEGIN;
        char *vconf_value = NULL;
@@ -1379,9 +1366,15 @@ int system_setting_get_locale_country(system_settings_key_e key, system_setting_
 
        /* parsing validation */
        /* en_US.UTF-8 */
-       char arr[20];
+       char arr[21] = {0,};
        snprintf(arr, 20, "%s", vconf_value);
-       arr[5] = '\0';
+       for (int i = 0; i < strlen(arr); i++) {
+               if ('.' == arr[i]) {
+                       arr[i] = 0;
+                       SETTING_TRACE("replace . to NULL : %d", i);
+                       break;
+               }
+       }
        *value = strdup(arr);
        free(vconf_value);
        vconf_value = NULL;
@@ -1390,7 +1383,7 @@ int system_setting_get_locale_country(system_settings_key_e key, system_setting_
 }
 
 /*  LCOV_EXCL_START */
-int system_setting_set_locale_country(system_settings_key_e key, system_setting_data_type_e data_type, void *value)
+int system_setting_set_locale_country(system_settings_key_e key, void *value)
 {
        SETTING_TRACE_BEGIN;
        char *vconf_value = NULL;
@@ -1411,18 +1404,18 @@ int system_setting_set_locale_country(system_settings_key_e key, system_setting_
 int system_setting_set_changed_callback_locale_country(system_settings_key_e key, system_settings_changed_cb callback, void *user_data)
 {
        SETTING_TRACE_BEGIN;
-       return system_setting_vconf_set_changed_cb(VCONFKEY_REGIONFORMAT, SYSTEM_SETTINGS_KEY_LOCALE_COUNTRY, 3, user_data);
+       return system_setting_vconf_set_changed_cb(VCONFKEY_REGIONFORMAT, SYSTEM_SETTINGS_KEY_LOCALE_COUNTRY, SYSTEM_SETTING_CALLBACK_SLOT_3, user_data);
 }
 
 int system_setting_unset_changed_callback_locale_country(system_settings_key_e key)
 {
        SETTING_TRACE_BEGIN;
-       return system_setting_vconf_unset_changed_cb(VCONFKEY_REGIONFORMAT, 3);
+       return system_setting_vconf_unset_changed_cb(VCONFKEY_REGIONFORMAT, SYSTEM_SETTING_CALLBACK_SLOT_3);
 }
 
 
 /*--------------------------------------- */
-int system_setting_get_locale_language(system_settings_key_e key, system_setting_data_type_e data_type, void **value)
+int system_setting_get_locale_language(system_settings_key_e key, void **value)
 {
        SETTING_TRACE_BEGIN;
        char *vconf_value = NULL;
@@ -1432,9 +1425,15 @@ int system_setting_get_locale_language(system_settings_key_e key, system_setting
 
        /* parsing validation */
        /* en_US.UTF-8 */
-       char arr[20];
+       char arr[21] = {0,};
        snprintf(arr, 20, "%s", vconf_value);
-       arr[5] = '\0';
+       for (int i = 0; i < strlen(arr); i++) {
+               if ('.' == arr[i]) {
+                       arr[i] = 0;
+                       SETTING_TRACE("replace . to NULL : %d", i);
+                       break;
+               }
+       }
        *value = strdup(arr);
        free(vconf_value);
        vconf_value = NULL;
@@ -1442,7 +1441,7 @@ int system_setting_get_locale_language(system_settings_key_e key, system_setting
 }
 
 /*  LCOV_EXCL_START */
-int system_setting_set_locale_language(system_settings_key_e key, system_setting_data_type_e data_type, void *value)
+int system_setting_set_locale_language(system_settings_key_e key, void *value)
 {
        SETTING_TRACE_BEGIN;
        char *vconf_value = NULL;
@@ -1464,18 +1463,18 @@ int system_setting_set_changed_callback_locale_language(system_settings_key_e ke
 {
        SETTING_TRACE_BEGIN;
        /*return system_setting_vconf_set_changed_cb(VCONFKEY_LANGSET, SYSTEM_SETTINGS_KEY_LOCALE_LANGUAGE, 3, user_data ); */
-       return system_setting_vconf_set_changed_cb(VCONFKEY_LANGSET, SYSTEM_SETTINGS_KEY_LOCALE_LANGUAGE, 100, user_data);
+       return system_setting_vconf_set_changed_cb(VCONFKEY_LANGSET, SYSTEM_SETTINGS_KEY_LOCALE_LANGUAGE, SYSTEM_SETTING_CALLBACK_SLOT_5, user_data);
 }
 
 int system_setting_unset_changed_callback_locale_language(system_settings_key_e key)
 {
        SETTING_TRACE_BEGIN;
-       return system_setting_vconf_unset_changed_cb(VCONFKEY_LANGSET, 100);
+       return system_setting_vconf_unset_changed_cb(VCONFKEY_LANGSET, SYSTEM_SETTING_CALLBACK_SLOT_5);
 }
 
 /*--------------------------------------- */
 /*  LCOV_EXCL_START */
-int system_setting_get_locale_timeformat_24hour(system_settings_key_e key, system_setting_data_type_e data_type, void **value)
+int system_setting_get_locale_timeformat_24hour(system_settings_key_e key, void **value)
 {
        SETTING_TRACE_BEGIN;
        int vconf_value;
@@ -1496,7 +1495,7 @@ int system_setting_get_locale_timeformat_24hour(system_settings_key_e key, syste
 }
 /*  LCOV_EXCL_STOP */
 
-int system_setting_set_locale_timeformat_24hour(system_settings_key_e key, system_setting_data_type_e data_type, void *value)
+int system_setting_set_locale_timeformat_24hour(system_settings_key_e key, void *value)
 {
        SETTING_TRACE_BEGIN;
        bool *vconf_value;
@@ -1521,16 +1520,16 @@ int system_setting_set_locale_timeformat_24hour(system_settings_key_e key, syste
 int system_setting_set_changed_callback_locale_timeformat_24hour(system_settings_key_e key, system_settings_changed_cb callback, void *user_data)
 {
        SETTING_TRACE_BEGIN;
-       return system_setting_vconf_set_changed_cb(VCONFKEY_REGIONFORMAT_TIME1224, SYSTEM_SETTINGS_KEY_LOCALE_TIMEFORMAT_24HOUR, 3, user_data);
+       return system_setting_vconf_set_changed_cb(VCONFKEY_REGIONFORMAT_TIME1224, SYSTEM_SETTINGS_KEY_LOCALE_TIMEFORMAT_24HOUR, SYSTEM_SETTING_CALLBACK_SLOT_3, user_data);
 }
 
 int system_setting_unset_changed_callback_locale_timeformat_24hour(system_settings_key_e key)
 {
        SETTING_TRACE_BEGIN;
-       return system_setting_vconf_unset_changed_cb(VCONFKEY_REGIONFORMAT_TIME1224, 3);
+       return system_setting_vconf_unset_changed_cb(VCONFKEY_REGIONFORMAT_TIME1224, SYSTEM_SETTING_CALLBACK_SLOT_3);
 }
 
-int system_setting_get_locale_timezone(system_settings_key_e key, system_setting_data_type_e data_type, void **value)
+int system_setting_get_locale_timezone(system_settings_key_e key, void **value)
 {
        char tzpath[256];
        ssize_t len = readlink(SETTING_TZONE_SYMLINK_PATH, tzpath, sizeof(tzpath)-1);
@@ -1547,7 +1546,7 @@ int system_setting_get_locale_timezone(system_settings_key_e key, system_setting
 }
 
 /*  LCOV_EXCL_START */
-int system_setting_set_locale_timezone(system_settings_key_e key, system_setting_data_type_e data_type, void *value)
+int system_setting_set_locale_timezone(system_settings_key_e key, void *value)
 {
        SETTING_TRACE_BEGIN;
        char *timezone_value = NULL;
@@ -1574,14 +1573,14 @@ int system_setting_set_locale_timezone(system_settings_key_e key, system_setting
 /*  LCOV_EXCL_START */
 int system_setting_set_changed_callback_locale_timezone(system_settings_key_e key, system_settings_changed_cb callback, void *user_data)
 {
-       return system_setting_vconf_set_changed_cb(VCONFKEY_SETAPPL_TIMEZONE_ID, SYSTEM_SETTINGS_KEY_LOCALE_TIMEZONE, 4, user_data);
+       return system_setting_vconf_set_changed_cb(VCONFKEY_SETAPPL_TIMEZONE_ID, SYSTEM_SETTINGS_KEY_LOCALE_TIMEZONE, SYSTEM_SETTING_CALLBACK_SLOT_4, user_data);
 }
 /*  LCOV_EXCL_STOP */
 
 /*  LCOV_EXCL_START */
 int system_setting_unset_changed_callback_locale_timezone(system_settings_key_e key)
 {
-       return system_setting_vconf_unset_changed_cb(VCONFKEY_SETAPPL_TIMEZONE_ID, 4);
+       return system_setting_vconf_unset_changed_cb(VCONFKEY_SETAPPL_TIMEZONE_ID, SYSTEM_SETTING_CALLBACK_SLOT_4);
 }
 /*  LCOV_EXCL_STOP */
 
@@ -1603,12 +1602,13 @@ int system_setting_unset_changed_callback_locale_timezone_changed(system_setting
 
 
 /*  LCOV_EXCL_START */
-int system_setting_get_time_changed(system_settings_key_e key, system_setting_data_type_e data_type, void **value)
+int system_setting_get_time_changed(system_settings_key_e key, void **value)
 {
        SETTING_TRACE_BEGIN;
        time_t cur_tick;
+       int ** val = (int**)value;
        cur_tick = time(NULL);
-       *value = (void *)cur_tick;
+       **val = cur_tick;
        /* struct tm * localtime = time (cur_tick); */
        /* printf("%s\n", ctime(&cur_tick); */
        return SYSTEM_SETTINGS_ERROR_NONE;
@@ -1619,19 +1619,17 @@ int system_setting_get_time_changed(system_settings_key_e key, system_setting_da
 int system_setting_set_changed_callback_time_changed(system_settings_key_e key, system_settings_changed_cb callback, void *user_data)
 {
        SETTING_TRACE_BEGIN;
-       return system_setting_vconf_set_changed_cb(VCONFKEY_SYSTEM_TIME_CHANGED, SYSTEM_SETTINGS_KEY_TIME_CHANGED, 3, user_data);
+       return system_setting_vconf_set_changed_cb(VCONFKEY_SYSTEM_TIME_CHANGED, SYSTEM_SETTINGS_KEY_TIME_CHANGED, SYSTEM_SETTING_CALLBACK_SLOT_3, user_data);
 }
 
 int system_setting_unset_changed_callback_time_changed(system_settings_key_e key)
 {
        SETTING_TRACE_BEGIN;
-       return system_setting_vconf_unset_changed_cb(VCONFKEY_SYSTEM_TIME_CHANGED, 3);
+       return system_setting_vconf_unset_changed_cb(VCONFKEY_SYSTEM_TIME_CHANGED, SYSTEM_SETTING_CALLBACK_SLOT_3);
 }
 
-
-
 /* SYSTEM_SETTINGS_KEY_SOUND_LOCK */
-int system_setting_get_sound_lock(system_settings_key_e key, system_setting_data_type_e data_type, void **value)
+int system_setting_get_sound_lock(system_settings_key_e key, void **value)
 {
        SETTING_TRACE_BEGIN;
        bool vconf_value;
@@ -1647,13 +1645,13 @@ int system_setting_get_sound_lock(system_settings_key_e key, system_setting_data
 int system_setting_set_changed_callback_sound_lock(system_settings_key_e key, system_settings_changed_cb callback, void *user_data)
 {
        SETTING_TRACE_BEGIN;
-       return system_setting_vconf_set_changed_cb(VCONFKEY_SETAPPL_SOUND_LOCK_BOOL, SYSTEM_SETTINGS_KEY_SOUND_LOCK, 3, user_data);
+       return system_setting_vconf_set_changed_cb(VCONFKEY_SETAPPL_SOUND_LOCK_BOOL, SYSTEM_SETTINGS_KEY_SOUND_LOCK, SYSTEM_SETTING_CALLBACK_SLOT_3, user_data);
 }
 
 int system_setting_unset_changed_callback_sound_lock(system_settings_key_e key)
 {
        SETTING_TRACE_BEGIN;
-       return system_setting_vconf_unset_changed_cb(VCONFKEY_SETAPPL_SOUND_LOCK_BOOL, 3);
+       return system_setting_vconf_unset_changed_cb(VCONFKEY_SETAPPL_SOUND_LOCK_BOOL, SYSTEM_SETTING_CALLBACK_SLOT_3);
 }
 
 /**
@@ -1664,7 +1662,7 @@ int system_setting_unset_changed_callback_sound_lock(system_settings_key_e key)
  * a == false, b == true --> vibration mode
  */
 /*  LCOV_EXCL_START */
-int system_setting_get_sound_silent_mode(system_settings_key_e key, system_setting_data_type_e data_type, void **value)
+int system_setting_get_sound_silent_mode(system_settings_key_e key, void **value)
 {
        SETTING_TRACE_BEGIN;
        bool sound_cond;
@@ -1696,7 +1694,7 @@ int system_setting_get_sound_silent_mode(system_settings_key_e key, system_setti
  * a == false, b == false --> silent mode
  * a == true, b == false --> sound mode
  */
-int system_setting_set_sound_silent_mode(system_settings_key_e key, system_setting_data_type_e data_type, void *value)
+int system_setting_set_sound_silent_mode(system_settings_key_e key, void *value)
 {
        SETTING_TRACE_BEGIN;
        bool *vconf_value;
@@ -1730,18 +1728,18 @@ int system_setting_set_sound_silent_mode(system_settings_key_e key, system_setti
 int system_setting_set_changed_callback_sound_silent_mode(system_settings_key_e key, system_settings_changed_cb callback, void *user_data)
 {
        SETTING_TRACE_BEGIN;
-       return system_setting_vconf_set_changed_cb(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL, SYSTEM_SETTINGS_KEY_SOUND_SILENT_MODE, 3, user_data);
+       return system_setting_vconf_set_changed_cb(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL, SYSTEM_SETTINGS_KEY_SOUND_SILENT_MODE, SYSTEM_SETTING_CALLBACK_SLOT_3, user_data);
 }
 
 /* TODO */
 int system_setting_unset_changed_callback_sound_silent_mode(system_settings_key_e key)
 {
        SETTING_TRACE_BEGIN;
-       return system_setting_vconf_unset_changed_cb(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL, 3);
+       return system_setting_vconf_unset_changed_cb(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL, SYSTEM_SETTING_CALLBACK_SLOT_3);
 }
 
 /* SYSTEM_SETTINGS_KEY_SOUND_TOUCH */
-int system_setting_get_sound_touch(system_settings_key_e key, system_setting_data_type_e data_type, void **value)
+int system_setting_get_sound_touch(system_settings_key_e key, void **value)
 {
        SETTING_TRACE_BEGIN;
        bool vconf_value;
@@ -1754,34 +1752,26 @@ int system_setting_get_sound_touch(system_settings_key_e key, system_setting_dat
        return ret;
 }
 
-int system_setting_set_changed_callback_sound_touch(system_settings_key_e key, system_settings_changed_cb callback, void *user_data)
+int system_setting_set_sound_touch(system_settings_key_e key, void *value)
 {
        SETTING_TRACE_BEGIN;
-       return system_setting_vconf_set_changed_cb(VCONFKEY_SETAPPL_TOUCH_SOUNDS_BOOL, SYSTEM_SETTINGS_KEY_SOUND_TOUCH, 2, user_data);
+       return system_setting_vconf_set_value_bool(VCONFKEY_SETAPPL_TOUCH_SOUNDS_BOOL, *(bool *)value);
 }
 
-int system_setting_unset_changed_callback_sound_touch(system_settings_key_e key)
+
+int system_setting_set_changed_callback_sound_touch(system_settings_key_e key, system_settings_changed_cb callback, void *user_data)
 {
        SETTING_TRACE_BEGIN;
-       return system_setting_vconf_unset_changed_cb(VCONFKEY_SETAPPL_TOUCH_SOUNDS_BOOL, 2);
+       return system_setting_vconf_set_changed_cb(VCONFKEY_SETAPPL_TOUCH_SOUNDS_BOOL, SYSTEM_SETTINGS_KEY_SOUND_TOUCH, SYSTEM_SETTING_CALLBACK_SLOT_2, user_data);
 }
 
-#if 0
-/* SYSTEM_SETTINGS_KEY_SOUND_LOCK */
-int system_setting_get_sound_lock(system_settings_key_e key, system_setting_data_type_e data_type, void **value)
+int system_setting_unset_changed_callback_sound_touch(system_settings_key_e key)
 {
-       bool vconf_value;
-
-       if (system_setting_vconf_get_value_bool(VCONFKEY_SETAPPL_SOUND_LOCK_BOOL, &vconf_value)) {
-               return SYSTEM_SETTINGS_ERROR_IO_ERROR;
-       }
-       *value = (void *)vconf_value;
-
-       return SYSTEM_SETTINGS_ERROR_NONE;
+       SETTING_TRACE_BEGIN;
+       return system_setting_vconf_unset_changed_cb(VCONFKEY_SETAPPL_TOUCH_SOUNDS_BOOL, SYSTEM_SETTING_CALLBACK_SLOT_2);
 }
-#endif
 
-int system_setting_get_auto_rotation_mode(system_settings_key_e key, system_setting_data_type_e data_type, void **value)
+int system_setting_get_auto_rotation_mode(system_settings_key_e key, void **value)
 {
        SETTING_TRACE_BEGIN;
        bool vconf_value;
@@ -1795,7 +1785,7 @@ int system_setting_get_auto_rotation_mode(system_settings_key_e key, system_sett
 }
 
 /*  LCOV_EXCL_START */
-int system_setting_set_auto_rotation_mode(system_settings_key_e key, system_setting_data_type_e data_type, void *value)
+int system_setting_set_auto_rotation_mode(system_settings_key_e key, void *value)
 {
        SETTING_TRACE_BEGIN;
        bool *vconf_value;
@@ -1811,37 +1801,38 @@ int system_setting_set_auto_rotation_mode(system_settings_key_e key, system_sett
 int system_setting_set_changed_callback_auto_rotation_mode(system_settings_key_e key, system_settings_changed_cb callback, void *user_data)
 {
        SETTING_TRACE_BEGIN;
-       return system_setting_vconf_set_changed_cb(VCONFKEY_SETAPPL_AUTO_ROTATE_SCREEN_BOOL, SYSTEM_SETTINGS_KEY_DISPLAY_SCREEN_ROTATION_AUTO, 2, user_data);
+       return system_setting_vconf_set_changed_cb(VCONFKEY_SETAPPL_AUTO_ROTATE_SCREEN_BOOL, SYSTEM_SETTINGS_KEY_DISPLAY_SCREEN_ROTATION_AUTO, SYSTEM_SETTING_CALLBACK_SLOT_2, user_data);
 }
 
 int system_setting_unset_changed_callback_auto_rotation_mode(system_settings_key_e key)
 {
        SETTING_TRACE_BEGIN;
-       return system_setting_vconf_unset_changed_cb(VCONFKEY_SETAPPL_AUTO_ROTATE_SCREEN_BOOL, 2);
+       return system_setting_vconf_unset_changed_cb(VCONFKEY_SETAPPL_AUTO_ROTATE_SCREEN_BOOL, SYSTEM_SETTING_CALLBACK_SLOT_2);
 }
 
-int system_setting_get_screen_backlight_time(system_settings_key_e key, system_setting_data_type_e data_type, void **value)
+int system_setting_get_screen_backlight_time(system_settings_key_e key, void **value)
 {
        SETTING_TRACE_BEGIN;
        int vconf_value;
+       int ** val = (int**)value;
 
        if (system_setting_vconf_get_value_int(VCONFKEY_SETAPPL_LCD_TIMEOUT_NORMAL, &vconf_value)) {
                return SYSTEM_SETTINGS_ERROR_IO_ERROR;
        }
-       *value = (void *)vconf_value;
+       **val = vconf_value;
 
        return SYSTEM_SETTINGS_ERROR_NONE;
 }
 
 
 /*  LCOV_EXCL_START */
-int system_setting_set_screen_backlight_time(system_settings_key_e key, system_setting_data_type_e data_type, void *value)
+int system_setting_set_screen_backlight_time(system_settings_key_e key, void *value)
 {
        SETTING_TRACE_BEGIN;
        int *vconf_value;
-       vconf_value = (int *)value;
+       vconf_value = *(int **)value;
 
-       if (!(*vconf_value > 0 && *vconf_value < 600)) {
+       if (!(*vconf_value > 0 && *vconf_value <= 600)) {
                SETTING_TRACE(" ERR Betweeny here  0 ~ 600");
                return SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER;
        }
@@ -1857,16 +1848,16 @@ int system_setting_set_screen_backlight_time(system_settings_key_e key, system_s
 int system_setting_set_changed_callback_screen_backlight_time(system_settings_key_e key, system_settings_changed_cb callback, void *user_data)
 {
        SETTING_TRACE_BEGIN;
-       return system_setting_vconf_set_changed_cb(VCONFKEY_SETAPPL_LCD_TIMEOUT_NORMAL, SYSTEM_SETTINGS_KEY_DISPLAY_SCREEN_ROTATION_AUTO, 2, user_data);
+       return system_setting_vconf_set_changed_cb(VCONFKEY_SETAPPL_LCD_TIMEOUT_NORMAL, SYSTEM_SETTINGS_KEY_SCREEN_BACKLIGHT_TIME, SYSTEM_SETTING_CALLBACK_SLOT_2, user_data);
 }
 
 int system_setting_unset_changed_callback_screen_backlight_time(system_settings_key_e key)
 {
        SETTING_TRACE_BEGIN;
-       return system_setting_vconf_unset_changed_cb(VCONFKEY_SETAPPL_LCD_TIMEOUT_NORMAL, 2);
+       return system_setting_vconf_unset_changed_cb(VCONFKEY_SETAPPL_LCD_TIMEOUT_NORMAL, SYSTEM_SETTING_CALLBACK_SLOT_2);
 }
 
-int system_setting_get_sound_notification(system_settings_key_e key, system_setting_data_type_e data_type, void **value)
+int system_setting_get_sound_notification(system_settings_key_e key, void **value)
 {
        SETTING_TRACE_BEGIN;
        char *vconf_value = NULL;
@@ -1879,7 +1870,7 @@ int system_setting_get_sound_notification(system_settings_key_e key, system_sett
 }
 
 /*  LCOV_EXCL_START */
-int system_setting_set_sound_notification(system_settings_key_e key, system_setting_data_type_e data_type, void *value)
+int system_setting_set_sound_notification(system_settings_key_e key, void *value)
 {
        SETTING_TRACE_BEGIN;
        char *vconf_value = NULL;
@@ -1887,10 +1878,13 @@ int system_setting_set_sound_notification(system_settings_key_e key, system_sett
 
        int is_load = _is_file_accessible(vconf_value);
        if (is_load == 0) {
+               //SETTING_TRACE(" system_setting_vconf_set_value_string(VCONFKEY_SETAPPL_NOTI_MSG_RINGTONE_PATH_STR, %s) TRY", vconf_value);
                if (system_setting_vconf_set_value_string(VCONFKEY_SETAPPL_NOTI_MSG_RINGTONE_PATH_STR, vconf_value)) {
+                       //SETTING_TRACE(" system_setting_vconf_set_value_string(VCONFKEY_SETAPPL_NOTI_MSG_RINGTONE_PATH_STR, %s) FAIL", vconf_value);
                        return SYSTEM_SETTINGS_ERROR_IO_ERROR;
                }
        } else {
+               //SETTING_TRACE(" is_file_accessibile FAILED - system_setting_vconf_set_value_string(VCONFKEY_SETAPPL_NOTI_MSG_RINGTONE_PATH_STR, %s) FAIL", vconf_value);
                return SYSTEM_SETTINGS_ERROR_IO_ERROR;
        }
 
@@ -1901,34 +1895,35 @@ int system_setting_set_sound_notification(system_settings_key_e key, system_sett
 int system_setting_set_changed_callback_sound_notification(system_settings_key_e key, system_settings_changed_cb callback, void *user_data)
 {
        SETTING_TRACE_BEGIN;
-       return system_setting_vconf_set_changed_cb(VCONFKEY_SETAPPL_NOTI_MSG_RINGTONE_PATH_STR, SYSTEM_SETTINGS_KEY_INCOMING_CALL_RINGTONE, 0, user_data);
+       return system_setting_vconf_set_changed_cb(VCONFKEY_SETAPPL_NOTI_MSG_RINGTONE_PATH_STR, SYSTEM_SETTINGS_KEY_SOUND_NOTIFICATION, SYSTEM_SETTING_CALLBACK_SLOT_0, user_data);
 }
 
 int system_setting_unset_changed_callback_sound_notification(system_settings_key_e key)
 {
        SETTING_TRACE_BEGIN;
-       return system_setting_vconf_unset_changed_cb(VCONFKEY_SETAPPL_NOTI_MSG_RINGTONE_PATH_STR, 0);
+       return system_setting_vconf_unset_changed_cb(VCONFKEY_SETAPPL_NOTI_MSG_RINGTONE_PATH_STR, SYSTEM_SETTING_CALLBACK_SLOT_0);
 }
 
-int system_setting_get_notification_repetition_period(system_settings_key_e key, system_setting_data_type_e data_type, void **value)
+int system_setting_get_notification_repetition_period(system_settings_key_e key, void **value)
 {
        SETTING_TRACE_BEGIN;
+       int ** val = (int**)value;
        int vconf_value;
 
        if (system_setting_vconf_get_value_int(VCONFKEY_SETAPPL_NOTI_MSG_ALERT_REP_TYPE_INT, &vconf_value)) {
                return SYSTEM_SETTINGS_ERROR_IO_ERROR;
        }
-       *value = (void *)vconf_value;
+       **val = vconf_value;
 
        return SYSTEM_SETTINGS_ERROR_NONE;
 }
 
 /*  LCOV_EXCL_START */
-int system_setting_set_notification_repetition_period(system_settings_key_e key, system_setting_data_type_e data_type, void *value)
+int system_setting_set_notification_repetition_period(system_settings_key_e key, void *value)
 {
        SETTING_TRACE_BEGIN;
        int *vconf_value;
-       vconf_value = (int *)value;
+       vconf_value = *(int **)value;
 
        if (system_setting_vconf_set_value_int(VCONFKEY_SETAPPL_NOTI_MSG_ALERT_REP_TYPE_INT, *vconf_value)) {
                return SYSTEM_SETTINGS_ERROR_IO_ERROR;
@@ -1941,16 +1936,16 @@ int system_setting_set_notification_repetition_period(system_settings_key_e key,
 int system_setting_set_changed_callback_notification_repetition_period(system_settings_key_e key, system_settings_changed_cb callback, void *user_data)
 {
        SETTING_TRACE_BEGIN;
-       return system_setting_vconf_set_changed_cb(VCONFKEY_SETAPPL_NOTI_MSG_ALERT_REP_TYPE_INT, SYSTEM_SETTINGS_KEY_SOUND_NOTIFICATION_REPETITION_PERIOD, 1, user_data);
+       return system_setting_vconf_set_changed_cb(VCONFKEY_SETAPPL_NOTI_MSG_ALERT_REP_TYPE_INT, SYSTEM_SETTINGS_KEY_SOUND_NOTIFICATION_REPETITION_PERIOD, SYSTEM_SETTING_CALLBACK_SLOT_1, user_data);
 }
 
 int system_setting_unset_changed_callback_notification_repetition_period(system_settings_key_e key)
 {
        SETTING_TRACE_BEGIN;
-       return system_setting_vconf_unset_changed_cb(VCONFKEY_SETAPPL_NOTI_MSG_ALERT_REP_TYPE_INT, 1);
+       return system_setting_vconf_unset_changed_cb(VCONFKEY_SETAPPL_NOTI_MSG_ALERT_REP_TYPE_INT, SYSTEM_SETTING_CALLBACK_SLOT_1);
 }
 
-int system_setting_get_device_name(system_settings_key_e key, system_setting_data_type_e data_type, void **value)
+int system_setting_get_device_name(system_settings_key_e key, void **value)
 {
        SETTING_TRACE_BEGIN;
        char *vconf_value = NULL;
@@ -1963,7 +1958,7 @@ int system_setting_get_device_name(system_settings_key_e key, system_setting_dat
 }
 
 /*  LCOV_EXCL_START */
-int system_setting_set_device_name(system_settings_key_e key, system_setting_data_type_e data_type, void *value)
+int system_setting_set_device_name(system_settings_key_e key, void *value)
 {
        SETTING_TRACE_BEGIN;
        char *vconf_value = NULL;
@@ -1980,17 +1975,17 @@ int system_setting_set_device_name(system_settings_key_e key, system_setting_dat
 int system_setting_set_changed_callback_device_name(system_settings_key_e key, system_settings_changed_cb callback, void *user_data)
 {
        SETTING_TRACE_BEGIN;
-       return system_setting_vconf_set_changed_cb(VCONFKEY_SETAPPL_DEVICE_NAME_STR, SYSTEM_SETTINGS_KEY_DEVICE_NAME, 0, user_data);
+       return system_setting_vconf_set_changed_cb(VCONFKEY_SETAPPL_DEVICE_NAME_STR, SYSTEM_SETTINGS_KEY_DEVICE_NAME, SYSTEM_SETTING_CALLBACK_SLOT_0, user_data);
 }
 
 int system_setting_unset_changed_callback_device_name(system_settings_key_e key)
 {
        SETTING_TRACE_BEGIN;
-       return system_setting_vconf_unset_changed_cb(VCONFKEY_SETAPPL_DEVICE_NAME_STR, 0);
+       return system_setting_vconf_unset_changed_cb(VCONFKEY_SETAPPL_DEVICE_NAME_STR, SYSTEM_SETTING_CALLBACK_SLOT_0);
 }
 
 /*---------------------------------------------- */
-int system_setting_get_network_flight_mode(system_settings_key_e key, system_setting_data_type_e data_type, void **value)
+int system_setting_get_network_flight_mode(system_settings_key_e key, void **value)
 {
        SETTING_TRACE_BEGIN;
        bool vconf_value;
@@ -2005,16 +2000,16 @@ int system_setting_get_network_flight_mode(system_settings_key_e key, system_set
 int system_setting_set_changed_callback_network_flight_mode(system_settings_key_e key, system_settings_changed_cb callback, void *user_data)
 {
        SETTING_TRACE_BEGIN;
-       return system_setting_vconf_set_changed_cb(VCONFKEY_TELEPHONY_FLIGHT_MODE, SYSTEM_SETTINGS_KEY_NETWORK_FLIGHT_MODE, 3, user_data);
+       return system_setting_vconf_set_changed_cb(VCONFKEY_TELEPHONY_FLIGHT_MODE, SYSTEM_SETTINGS_KEY_NETWORK_FLIGHT_MODE, SYSTEM_SETTING_CALLBACK_SLOT_3, user_data);
 }
 
 int system_setting_unset_changed_callback_network_flight_mode(system_settings_key_e key)
 {
        SETTING_TRACE_BEGIN;
-       return system_setting_vconf_unset_changed_cb(VCONFKEY_TELEPHONY_FLIGHT_MODE, 3);
+       return system_setting_vconf_unset_changed_cb(VCONFKEY_TELEPHONY_FLIGHT_MODE, SYSTEM_SETTING_CALLBACK_SLOT_3);
 }
 
-int system_setting_get_network_wifi_notification(system_settings_key_e key, system_setting_data_type_e data_type, void **value)
+int system_setting_get_network_wifi_notification(system_settings_key_e key, void **value)
 {
        SETTING_TRACE_BEGIN;
        int vconf_value;
@@ -2031,35 +2026,36 @@ int system_setting_get_network_wifi_notification(system_settings_key_e key, syst
 int system_setting_set_changed_callback_network_wifi_notification(system_settings_key_e key, system_settings_changed_cb callback, void *user_data)
 {
        SETTING_TRACE_BEGIN;
-       return system_setting_vconf_set_changed_cb(VCONFKEY_WIFI_ENABLE_QS, SYSTEM_SETTINGS_KEY_NETWORK_WIFI_NOTIFICATION, 4, user_data);
+       return system_setting_vconf_set_changed_cb(VCONFKEY_WIFI_ENABLE_QS, SYSTEM_SETTINGS_KEY_NETWORK_WIFI_NOTIFICATION, SYSTEM_SETTING_CALLBACK_SLOT_4, user_data);
 }
 
 int system_setting_unset_changed_callback_network_wifi_notification(system_settings_key_e key)
 {
        SETTING_TRACE_BEGIN;
-       return system_setting_vconf_unset_changed_cb(VCONFKEY_WIFI_ENABLE_QS, 4);
+       return system_setting_vconf_unset_changed_cb(VCONFKEY_WIFI_ENABLE_QS, SYSTEM_SETTING_CALLBACK_SLOT_4);
 }
 
 /*  LCOV_EXCL_START */
-int system_setting_get_lock_state(system_settings_key_e key, system_setting_data_type_e data_type, void **value)
+int system_setting_get_lock_state(system_settings_key_e key, void **value)
 {
        int vconf_value;
+       int ** val = (int**)value;
 
        if (system_setting_vconf_get_value_int(VCONFKEY_IDLE_LOCK_STATE_READ_ONLY, &vconf_value)) {
                return SYSTEM_SETTINGS_ERROR_IO_ERROR;
        }
-       *value = (void *)vconf_value;
+       **val = vconf_value;
 
        return SYSTEM_SETTINGS_ERROR_NONE;
 }
 /*  LCOV_EXCL_STOP */
 
 /*  LCOV_EXCL_START */
-int system_setting_set_lock_state(system_settings_key_e key, system_setting_data_type_e data_type, void *value)
+int system_setting_set_lock_state(system_settings_key_e key, void *value)
 {
        SETTING_TRACE_BEGIN;
        int *vconf_value;
-       vconf_value = (int *)value;
+       vconf_value = *(int **)value;
 
        if (system_setting_vconf_set_value_int(VCONFKEY_IDLE_LOCK_STATE_READ_ONLY, *vconf_value)) {
                return SYSTEM_SETTINGS_ERROR_IO_ERROR;
@@ -2072,14 +2068,14 @@ int system_setting_set_lock_state(system_settings_key_e key, system_setting_data
 /*  LCOV_EXCL_START */
 int system_setting_set_changed_callback_lock_state(system_settings_key_e key, system_settings_changed_cb callback, void *user_data)
 {
-       return system_setting_vconf_set_changed_cb(VCONFKEY_IDLE_LOCK_STATE_READ_ONLY, SYSTEM_SETTINGS_KEY_LOCK_STATE, 4, user_data);
+       return system_setting_vconf_set_changed_cb(VCONFKEY_IDLE_LOCK_STATE_READ_ONLY, SYSTEM_SETTINGS_KEY_LOCK_STATE, SYSTEM_SETTING_CALLBACK_SLOT_4, user_data);
 }
 /*  LCOV_EXCL_STOP */
 
 /*  LCOV_EXCL_START */
 int system_setting_unset_changed_callback_lock_state(system_settings_key_e key)
 {
-       return system_setting_vconf_unset_changed_cb(VCONFKEY_IDLE_LOCK_STATE_READ_ONLY, 4);
+       return system_setting_vconf_unset_changed_cb(VCONFKEY_IDLE_LOCK_STATE_READ_ONLY, SYSTEM_SETTING_CALLBACK_SLOT_4);
 }
 /*  LCOV_EXCL_STOP */
 
@@ -2087,7 +2083,7 @@ int system_setting_unset_changed_callback_lock_state(system_settings_key_e key)
 
 #define DEFAULT_ADS_ID "00000000-0000-0000-0000-000000000000"
 
-int system_setting_get_ads_id(system_settings_key_e key, system_setting_data_type_e data_type, void **value)
+int system_setting_get_ads_id(system_settings_key_e key, void **value)
 {
        SETTING_TRACE_BEGIN;
        int optout_value = 0;
@@ -2110,7 +2106,7 @@ int system_setting_get_ads_id(system_settings_key_e key, system_setting_data_typ
 }
 
 
-#if 0
+#if DEBUG_DUMP_CONTEXT
 void make_ad_id(void)
 {
        uuid_t uuid_value;
@@ -2120,8 +2116,7 @@ void make_ad_id(void)
        system_setting_set_ad_id(key, uuid_unparsed); //example of setting the value
 }
 #endif
-/*  LCOV_EXCL_START */
-int system_setting_set_ads_id(system_settings_key_e key, system_setting_data_type_e data_type, void *value)
+int system_setting_set_ads_id(system_settings_key_e key, void *value)
 {
        SETTING_TRACE_BEGIN;
        char *vconf_value = NULL;
@@ -2134,18 +2129,556 @@ int system_setting_set_ads_id(system_settings_key_e key, system_setting_data_typ
 
        return SYSTEM_SETTINGS_ERROR_NONE;
 }
-/*  LCOV_EXCL_STOP */
 
 int system_setting_set_changed_callback_ads_id(system_settings_key_e key, system_settings_changed_cb callback, void *user_data)
 {
        SETTING_TRACE_BEGIN;
-       return system_setting_vconf_set_changed_cb(VCONFKEY_SETAPPL_AD_ID, SYSTEM_SETTINGS_KEY_ADS_ID, 0, user_data);
+       return system_setting_vconf_set_changed_cb(VCONFKEY_SETAPPL_AD_ID, SYSTEM_SETTINGS_KEY_ADS_ID, SYSTEM_SETTING_CALLBACK_SLOT_0, user_data);
 }
 
 int system_setting_unset_changed_callback_ads_id(system_settings_key_e key)
 {
        SETTING_TRACE_BEGIN;
-       return system_setting_vconf_unset_changed_cb(VCONFKEY_SETAPPL_AD_ID, 0);
+       return system_setting_vconf_unset_changed_cb(VCONFKEY_SETAPPL_AD_ID, SYSTEM_SETTING_CALLBACK_SLOT_0);
+}
+
+int system_settings_feature_check_bool(char *path)
+{
+       bool feature_data = false;
+       int ret = system_info_get_platform_bool(path, &feature_data);
+       if (ret != SYSTEM_INFO_ERROR_NONE) {
+               SETTING_TRACE("Setting - reading feature data failed, %d", ret);
+               return SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED;
+       }
+
+       ret = (feature_data == true) ? SYSTEM_SETTINGS_ERROR_NONE : SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED;
+
+       return ret;
+
+}
+
+int system_setting_feature_check_incoming_call(void *value)
+{
+       static bool first_query = true;
+       static int ret = SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED;
+
+       if (first_query == true) {
+               ret = system_settings_feature_check_bool(SETTING_INCOMING_CALL_PATH);
+               first_query = false;
+       }
+
+       return ret;
 }
 
+int system_setting_feature_check_home_screen(void *value)
+{
+       static bool first_query = true;
+       static int ret = SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED;
+
+       if (first_query == true) {
+               ret = system_settings_feature_check_bool(SETTING_HOME_SCREEN_PATH);
+               first_query = false;
+       }
+
+       return ret;
+}
+
+int system_setting_feature_check_lock_screen(void *value)
+{
+       static bool first_query = true;
+       static int ret = SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED;
+
+       if (first_query == true) {
+               ret = system_settings_feature_check_bool(SETTING_LOCK_SCREEN_PATH);
+               first_query = false;
+       }
+
+       return ret;
+}
+
+int system_setting_feature_check_notification_email(void *value)
+{
+       static bool first_query = true;
+       static int ret = SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED;
+
+       if (first_query == true) {
+               ret = system_settings_feature_check_bool(SETTING_NOTIFICATION_EMAIL_PATH);
+               first_query = false;
+       }
+
+       return ret;
+}
+
+int system_setting_feature_check_wifi(void *value)
+{
+       static bool first_query = true;
+       static int ret = SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED;
+
+       if (first_query == true) {
+               ret = system_settings_feature_check_bool(SETTING_WIFI_PATH);
+               first_query = false;
+       }
+
+       return ret;
+}
+
+int system_setting_feature_check_telephony(void *value)
+{
+       static bool first_query = true;
+       static int ret = SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED;
+
+       if (first_query == true) {
+               ret = system_settings_feature_check_bool(SETTING_TELEPHONY_PATH);
+               first_query = false;
+       }
+
+       return ret;
+}
+
+
+int system_setting_feature_check_font(void *value)
+{
+       static bool first_query = true;
+       static int ret = SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED;
+
+       if (first_query == true) {
+               ret = system_settings_feature_check_bool(SETTING_FONT_PATH);
+               first_query = false;
+       }
+
+       return ret;
+}
+
+int system_setting_feature_check_accessibility_grayscale(void *value)
+{
+       static bool first_query = true;
+       static int ret = SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED;
+
+       if (first_query == true) {
+               ret = system_settings_feature_check_bool(SETTING_ACCESSIBILITY_GRAYSCALE_PATH);
+               first_query = false;
+       }
+
+       return ret;
+}
+
+int system_setting_feature_check_accessibility_negative(void *value)
+{
+       static bool first_query = true;
+       static int ret = SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED;
+
+       if (first_query == true) {
+               ret = system_settings_feature_check_bool(SETTING_ACCESSIBILITY_NEGATIVE_PATH);
+               first_query = false;
+       }
+
+       return ret;
+}
+
+int system_setting_feature_check_wearable_profile(void *value)
+{
+       static bool first_query = true;
+       static int ret = SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED;
+
+       if (first_query == true) {
+               char *profile_data = NULL;
+               int rotary_feature = SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED;
+               ret = system_info_get_platform_string(SETTING_PROFILE_PATH, &profile_data);
+               if (ret != SYSTEM_INFO_ERROR_NONE) {
+                       SETTING_TRACE("Setting - reading profile string failed, %d", ret);
+                       return SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED;
+               }
+
+               rotary_feature = system_settings_feature_check_bool(SETTING_INPUT_ROTATING_BEZEL_PATH);
+
+               if ((rotary_feature == SYSTEM_SETTINGS_ERROR_NONE) && profile_data && !strcmp(profile_data, "wearable"))
+                       ret = SYSTEM_SETTINGS_ERROR_NONE;
+               else
+                       ret = SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED;
+
+               if (profile_data)
+                       free(profile_data);
+
+               first_query = false;
+       }
+
+       return ret;
+}
+
+/*  LCOV_EXCL_START */
+int system_setting_get_uds_state(system_settings_key_e key, void **value)
+{
+       int ** p_value = (int**)value;
+       int vconf_value;
+       char *vconf_string_value = NULL;
+
+       if (system_setting_vconf_get_value_int(VCONFKEY_SETAPPL_UDSM, &vconf_value)) {
+               return SYSTEM_SETTINGS_ERROR_IO_ERROR;
+       }
+
+       SETTING_TRACE("[%s] udsm: %d", __FUNCTION__, vconf_value);
+
+       if (vconf_value == SYSTEM_SETTINGS_UDS_ON) {
+               if (system_setting_vconf_get_value_string(VCONFKEY_SETAPPL_UDSM_PKGID_LIST, &vconf_string_value))
+                       return SYSTEM_SETTINGS_ERROR_IO_ERROR;
+
+               if (vconf_string_value) {
+                       if (!strcmp(vconf_string_value, "NONE")) {
+                               vconf_value = SYSTEM_SETTINGS_UDS_ON;
+                       } else {
+                               char *app_id = NULL;
+                               char *package_id = NULL;
+                               pid_t pid = getpid();
+
+                               int ret = app_manager_get_app_id(pid, &app_id);
+                               if (ret != APP_MANAGER_ERROR_NONE) {
+                                       free(vconf_string_value);
+                                       return SYSTEM_SETTINGS_ERROR_IO_ERROR;
+                               }
+
+                               if (app_id) {
+                                       int result = 0;
+                                       result = package_manager_get_package_id_by_app_id(app_id, &package_id);
+                                       if (result != PACKAGE_MANAGER_ERROR_NONE) {
+                                               SETTING_TRACE("package_manager_get_package_id_by_app_id returned error! %d", result);
+                                               free(app_id);
+                                               free(vconf_string_value);
+                                               return SYSTEM_SETTINGS_ERROR_IO_ERROR;
+                                       }
+
+                                       SETTING_TRACE("[%s] udsm_pkg_list : %s", __FUNCTION__, vconf_string_value);
+                               }
+
+                               if (package_id && strstr(vconf_string_value, package_id)) {
+                                       vconf_value = SYSTEM_SETTINGS_UDS_ON_WHITELISTED;
+                                       SETTING_TRACE("[%s] pkg id : %s", __FUNCTION__, package_id);
+                               } else {
+                                       vconf_value = SYSTEM_SETTINGS_UDS_ON;
+                               }
+
+                       }
+                       free(vconf_string_value);
+               }
+       }
+
+       **p_value = vconf_value;
+
+
+       return SYSTEM_SETTINGS_ERROR_NONE;
+}
+/*  LCOV_EXCL_STOP */
+
+/*  LCOV_EXCL_START */
+int system_setting_set_changed_callback_uds_state(system_settings_key_e key, system_settings_changed_cb callback, void *user_data)
+{
+       return system_setting_vconf_set_changed_cb(VCONFKEY_SETAPPL_UDSM, SYSTEM_SETTINGS_KEY_ULTRA_DATA_SAVE, SYSTEM_SETTING_CALLBACK_SLOT_4, user_data);
+}
+/*  LCOV_EXCL_STOP */
+
+/*  LCOV_EXCL_START */
+int system_setting_unset_changed_callback_uds_state(system_settings_key_e key)
+{
+       return system_setting_vconf_unset_changed_cb(VCONFKEY_SETAPPL_UDSM, SYSTEM_SETTING_CALLBACK_SLOT_4);
+}
+/*  LCOV_EXCL_STOP */
+
+/*  LCOV_EXCL_START */
+int system_setting_set_changed_callback_uds_pkg_list(system_settings_key_e key, system_settings_changed_cb callback, void *user_data)
+{
+       return system_setting_vconf_set_changed_cb(VCONFKEY_SETAPPL_UDSM_PKGID_LIST, SYSTEM_SETTINGS_KEY_ULTRA_DATA_SAVE_PKG_LIST, SYSTEM_SETTING_CALLBACK_SLOT_4, user_data);
+}
+/*  LCOV_EXCL_STOP */
+
+/*  LCOV_EXCL_START */
+int system_setting_unset_changed_callback_uds_pkg_list(system_settings_key_e key)
+{
+       return system_setting_vconf_unset_changed_cb(VCONFKEY_SETAPPL_UDSM_PKGID_LIST, SYSTEM_SETTING_CALLBACK_SLOT_4);
+}
+/*  LCOV_EXCL_STOP */
+
+/* SYSTEM_SETTINGS_KEY_ACCESSIBILITY_TTS */
+int system_setting_get_accessibility_tts(system_settings_key_e key, void **value)
+{
+       SETTING_TRACE_BEGIN;
+       bool vconf_value;
+
+       int ret = system_setting_vconf_get_value_bool(VCONFKEY_SETAPPL_ACCESSIBILITY_TTS, &vconf_value);
+       if (ret != SYSTEM_SETTINGS_ERROR_NONE) {
+               return ret;
+       }
+       *value = (void *)vconf_value;
+       return ret;
+}
+
+/*  LCOV_EXCL_START */
+int system_setting_set_accessibility_tts(system_settings_key_e key, void *value)
+{
+       SETTING_TRACE_BEGIN;
+       bool *vconf_value;
+       vconf_value = (bool *)value;
+       if (system_setting_vconf_set_value_bool(VCONFKEY_SETAPPL_ACCESSIBILITY_TTS, *vconf_value)) {
+               return SYSTEM_SETTINGS_ERROR_IO_ERROR;
+       }
+
+       return SYSTEM_SETTINGS_ERROR_NONE;
+}
+/*  LCOV_EXCL_STOP */
+
+int system_setting_set_changed_callback_accessibility_tts(system_settings_key_e key, system_settings_changed_cb callback, void *user_data)
+{
+       SETTING_TRACE_BEGIN;
+       return system_setting_vconf_set_changed_cb(VCONFKEY_SETAPPL_ACCESSIBILITY_TTS, SYSTEM_SETTINGS_KEY_ACCESSIBILITY_TTS, SYSTEM_SETTING_CALLBACK_SLOT_2, user_data);
+}
+
+int system_setting_unset_changed_callback_accessibility_tts(system_settings_key_e key)
+{
+       SETTING_TRACE_BEGIN;
+       return system_setting_vconf_unset_changed_cb(VCONFKEY_SETAPPL_ACCESSIBILITY_TTS, SYSTEM_SETTING_CALLBACK_SLOT_2);
+}
+
+/* SYSTEM_SETTINGS_KEY_VIBRATION */
+int system_setting_get_vibration(system_settings_key_e key, void **value)
+{
+       SETTING_TRACE_BEGIN;
+       bool vconf_value;
+
+       if (system_setting_vconf_get_value_bool(VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL, &vconf_value)) {
+               return SYSTEM_SETTINGS_ERROR_IO_ERROR;
+       }
+       *value = (void *)vconf_value;
+
+       return SYSTEM_SETTINGS_ERROR_NONE;
+}
+
+/*  LCOV_EXCL_START */
+int system_setting_set_vibration(system_settings_key_e key, void *value)
+{
+       SETTING_TRACE_BEGIN;
+       bool *vconf_value;
+       vconf_value = (bool *)value;
+       if (system_setting_vconf_set_value_bool(VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL, *vconf_value)) {
+               return SYSTEM_SETTINGS_ERROR_IO_ERROR;
+       }
+
+       return SYSTEM_SETTINGS_ERROR_NONE;
+}
+/*  LCOV_EXCL_STOP */
+
+int system_setting_set_changed_callback_vibration(system_settings_key_e key, system_settings_changed_cb callback, void *user_data)
+{
+       SETTING_TRACE_BEGIN;
+       return system_setting_vconf_set_changed_cb(VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL, SYSTEM_SETTINGS_KEY_VIBRATION, SYSTEM_SETTING_CALLBACK_SLOT_2, user_data);
+}
+
+int system_setting_unset_changed_callback_vibration(system_settings_key_e key)
+{
+       SETTING_TRACE_BEGIN;
+       return system_setting_vconf_unset_changed_cb(VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL, SYSTEM_SETTING_CALLBACK_SLOT_2);
+}
+
+/* SYSTEM_SETTINGS_KEY_AUTOMATIC_TIME_UPDATE */
+int system_setting_get_automatic_time_update(system_settings_key_e key, void **value)
+{
+       SETTING_TRACE_BEGIN;
+       bool vconf_value;
+
+       if (system_setting_vconf_get_value_bool(VCONFKEY_SETAPPL_STATE_AUTOMATIC_TIME_UPDATE_BOOL, &vconf_value)) {
+               return SYSTEM_SETTINGS_ERROR_IO_ERROR;
+       }
+       *value = (void *)vconf_value;
+
+       return SYSTEM_SETTINGS_ERROR_NONE;
+}
+
+/*  LCOV_EXCL_START */
+int system_setting_set_automatic_time_update(system_settings_key_e key, void *value)
+{
+       SETTING_TRACE_BEGIN;
+       bool *vconf_value;
+       vconf_value = (bool *)value;
+       if (system_setting_vconf_set_value_bool(VCONFKEY_SETAPPL_STATE_AUTOMATIC_TIME_UPDATE_BOOL, *vconf_value)) {
+               return SYSTEM_SETTINGS_ERROR_IO_ERROR;
+       }
+
+       return SYSTEM_SETTINGS_ERROR_NONE;
+}
+/*  LCOV_EXCL_STOP */
+
+int system_setting_set_changed_callback_automatic_time_update(system_settings_key_e key, system_settings_changed_cb callback, void *user_data)
+{
+       SETTING_TRACE_BEGIN;
+       return system_setting_vconf_set_changed_cb(VCONFKEY_SETAPPL_STATE_AUTOMATIC_TIME_UPDATE_BOOL, SYSTEM_SETTINGS_KEY_AUTOMATIC_TIME_UPDATE, SYSTEM_SETTING_CALLBACK_SLOT_2, user_data);
+}
+
+int system_setting_unset_changed_callback_automatic_time_update(system_settings_key_e key)
+{
+       SETTING_TRACE_BEGIN;
+       return system_setting_vconf_unset_changed_cb(VCONFKEY_SETAPPL_STATE_AUTOMATIC_TIME_UPDATE_BOOL, SYSTEM_SETTING_CALLBACK_SLOT_2);
+}
+
+/* SYSTEM_SETTINGS_KEY_DEVELOPER_OPTION_STATE */
+int system_setting_get_developer_option_state(system_settings_key_e key, void **value)
+{
+       SETTING_TRACE_BEGIN;
+       bool vconf_value;
+
+       if (system_setting_vconf_get_value_bool(VCONFKEY_SETAPPL_DEVELOPER_OPTION_STATE, &vconf_value)) {
+               return SYSTEM_SETTINGS_ERROR_IO_ERROR;
+       }
+       *value = (void *)vconf_value;
+
+       return SYSTEM_SETTINGS_ERROR_NONE;
+}
+
+/*  LCOV_EXCL_START */
+int system_setting_set_developer_option_state(system_settings_key_e key, void *value)
+{
+       SETTING_TRACE_BEGIN;
+       bool *vconf_value;
+       vconf_value = (bool *)value;
+       if (system_setting_vconf_set_value_bool(VCONFKEY_SETAPPL_DEVELOPER_OPTION_STATE, *vconf_value)) {
+               return SYSTEM_SETTINGS_ERROR_IO_ERROR;
+       }
+
+       return SYSTEM_SETTINGS_ERROR_NONE;
+}
+/*  LCOV_EXCL_STOP */
+
+int system_setting_set_changed_callback_developer_option_state(system_settings_key_e key, system_settings_changed_cb callback, void *user_data)
+{
+       SETTING_TRACE_BEGIN;
+       return system_setting_vconf_set_changed_cb(VCONFKEY_SETAPPL_DEVELOPER_OPTION_STATE, SYSTEM_SETTINGS_KEY_DEVELOPER_OPTION_STATE, SYSTEM_SETTING_CALLBACK_SLOT_2, user_data);
+}
+
+int system_setting_unset_changed_callback_developer_option_state(system_settings_key_e key)
+{
+       SETTING_TRACE_BEGIN;
+       return system_setting_vconf_unset_changed_cb(VCONFKEY_SETAPPL_DEVELOPER_OPTION_STATE, SYSTEM_SETTING_CALLBACK_SLOT_2);
+}
+
+/* SYSTEM_SETTINGS_KEY_ACCESSIBILITY_GRAYSCALE */
+int system_setting_get_accessibility_grayscale(system_settings_key_e key, void **value)
+{
+       SETTING_TRACE_BEGIN;
+       bool vconf_value;
+
+       if (system_setting_vconf_get_value_bool(VCONFKEY_SETAPPL_ACCESSIBILITY_GREYSCALE, &vconf_value)) {
+               return SYSTEM_SETTINGS_ERROR_IO_ERROR;
+       }
+       *value = (void *)vconf_value;
+
+       return SYSTEM_SETTINGS_ERROR_NONE;
+}
+
+/*  LCOV_EXCL_START */
+int system_setting_set_accessibility_grayscale(system_settings_key_e key, void *value)
+{
+       SETTING_TRACE_BEGIN;
+       bool *vconf_value;
+       vconf_value = (bool *)value;
+       if (system_setting_vconf_set_value_bool(VCONFKEY_SETAPPL_ACCESSIBILITY_GREYSCALE, *vconf_value)) {
+               return SYSTEM_SETTINGS_ERROR_IO_ERROR;
+       }
+
+       return SYSTEM_SETTINGS_ERROR_NONE;
+}
+/*  LCOV_EXCL_STOP */
+
+int system_setting_set_changed_callback_accessibility_grayscale(system_settings_key_e key, system_settings_changed_cb callback, void *user_data)
+{
+       SETTING_TRACE_BEGIN;
+       return system_setting_vconf_set_changed_cb(VCONFKEY_SETAPPL_ACCESSIBILITY_GREYSCALE, SYSTEM_SETTINGS_KEY_ACCESSIBILITY_GRAYSCALE, SYSTEM_SETTING_CALLBACK_SLOT_2, user_data);
+}
+
+int system_setting_unset_changed_callback_accessibility_grayscale(system_settings_key_e key)
+{
+       SETTING_TRACE_BEGIN;
+       return system_setting_vconf_unset_changed_cb(VCONFKEY_SETAPPL_ACCESSIBILITY_GREYSCALE, SYSTEM_SETTING_CALLBACK_SLOT_2);
+}
+
+/* SYSTEM_SETTINGS_KEY_ACCESSIBILITY_NEGATIVE_COLOR */
+int system_setting_get_accessibility_negative_color(system_settings_key_e key, void **value)
+{
+       SETTING_TRACE_BEGIN;
+       bool vconf_value;
+
+       if (system_setting_vconf_get_value_bool(VCONFKEY_SETAPPL_ACCESSIBILITY_HIGH_CONTRAST, &vconf_value)) {
+               return SYSTEM_SETTINGS_ERROR_IO_ERROR;
+       }
+       *value = (void *)vconf_value;
+
+       return SYSTEM_SETTINGS_ERROR_NONE;
+}
+
+/*  LCOV_EXCL_START */
+int system_setting_set_accessibility_negative_color(system_settings_key_e key, void *value)
+{
+       SETTING_TRACE_BEGIN;
+       bool *vconf_value;
+       vconf_value = (bool *)value;
+       if (system_setting_vconf_set_value_bool(VCONFKEY_SETAPPL_ACCESSIBILITY_HIGH_CONTRAST, *vconf_value)) {
+               return SYSTEM_SETTINGS_ERROR_IO_ERROR;
+       }
+
+       return SYSTEM_SETTINGS_ERROR_NONE;
+}
+/*  LCOV_EXCL_STOP */
+
+int system_setting_set_changed_callback_accessibility_negative_color(system_settings_key_e key, system_settings_changed_cb callback, void *user_data)
+{
+       SETTING_TRACE_BEGIN;
+       return system_setting_vconf_set_changed_cb(VCONFKEY_SETAPPL_ACCESSIBILITY_HIGH_CONTRAST, SYSTEM_SETTINGS_KEY_ACCESSIBILITY_NEGATIVE_COLOR, SYSTEM_SETTING_CALLBACK_SLOT_2, user_data);
+}
+
+int system_setting_unset_changed_callback_accessibility_negative_color(system_settings_key_e key)
+{
+       SETTING_TRACE_BEGIN;
+       return system_setting_vconf_unset_changed_cb(VCONFKEY_SETAPPL_ACCESSIBILITY_HIGH_CONTRAST, SYSTEM_SETTING_CALLBACK_SLOT_2);
+}
+
+/* SYSTEM_SETTINGS_KEY_ROTARY_EVENT_ENABLED */
+/*  LCOV_EXCL_START */
+int system_setting_get_rotary_event_enabled(system_settings_key_e key, void **value)
+{
+       SETTING_TRACE_BEGIN;
+       bool vconf_value;
+
+       if (system_setting_vconf_get_value_bool(VCONFKEY_SETAPPL_ROTARY_EVENT_ENABLED_BOOL, &vconf_value)) {
+               return SYSTEM_SETTINGS_ERROR_IO_ERROR;
+       }
+       *value = (void *)vconf_value;
+
+       return SYSTEM_SETTINGS_ERROR_NONE;
+}
+/*  LCOV_EXCL_STOP */
+
+/*  LCOV_EXCL_START */
+int system_setting_set_rotary_event_enabled(system_settings_key_e key, void *value)
+{
+       SETTING_TRACE_BEGIN;
+       bool *vconf_value;
+       vconf_value = (bool *)value;
+       if (system_setting_vconf_set_value_bool(VCONFKEY_SETAPPL_ROTARY_EVENT_ENABLED_BOOL, *vconf_value)) {
+               return SYSTEM_SETTINGS_ERROR_IO_ERROR;
+       }
+
+       return SYSTEM_SETTINGS_ERROR_NONE;
+}
+/*  LCOV_EXCL_STOP */
+
+/*  LCOV_EXCL_START */
+int system_setting_set_changed_callback_rotary_event_enabled(system_settings_key_e key, system_settings_changed_cb callback, void *user_data)
+{
+       SETTING_TRACE_BEGIN;
+       return system_setting_vconf_set_changed_cb(VCONFKEY_SETAPPL_ROTARY_EVENT_ENABLED_BOOL, SYSTEM_SETTINGS_KEY_ROTARY_EVENT_ENABLED, SYSTEM_SETTING_CALLBACK_SLOT_3, user_data);
+}
+/*  LCOV_EXCL_STOP */
+
+/*  LCOV_EXCL_START */
+int system_setting_unset_changed_callback_rotary_event_enabled(system_settings_key_e key)
+{
+       SETTING_TRACE_BEGIN;
+       return system_setting_vconf_unset_changed_cb(VCONFKEY_SETAPPL_ROTARY_EVENT_ENABLED_BOOL, SYSTEM_SETTING_CALLBACK_SLOT_3);
+}
+/*  LCOV_EXCL_STOP */