add SYSTEM_SETTINGS_KEY_ADS_ID key
[platform/core/api/system-settings.git] / src / system_settings.c
old mode 100755 (executable)
new mode 100644 (file)
index ce14075..4130032
@@ -11,7 +11,7 @@
  * 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. 
+ * limitations under the License.
  */
 
 #include <stdio.h>
@@ -46,8 +46,9 @@ system_setting_s system_setting_table[] = {
                system_setting_set_incoming_call_ringtone,
                system_setting_set_changed_callback_incoming_call_ringtone,
                system_setting_unset_changed_callback_incoming_call_ringtone,
-               NULL
-       }, 
+               NULL,
+               NULL            /* user data */
+       },
 
        {
                SYSTEM_SETTINGS_KEY_WALLPAPER_HOME_SCREEN,
@@ -56,7 +57,8 @@ system_setting_s system_setting_table[] = {
                system_setting_set_wallpaper_home_screen,
                system_setting_set_changed_callback_wallpaper_home_screen,
                system_setting_unset_changed_callback_wallpaper_home_screen,
-               NULL
+               NULL,
+               NULL            /* user data */
        },
 
        {
@@ -66,7 +68,8 @@ system_setting_s system_setting_table[] = {
                system_setting_set_wallpaper_lock_screen,
                system_setting_set_changed_callback_wallpaper_lock_screen,
                system_setting_unset_changed_callback_wallpaper_lock_screen,
-               NULL
+               NULL,
+               NULL            /* user data */
        },
 
        {
@@ -76,7 +79,8 @@ system_setting_s system_setting_table[] = {
                system_setting_set_font_size,
                system_setting_set_changed_callback_font_size,
                system_setting_unset_changed_callback_font_size,
-               NULL
+               NULL,
+               NULL            /* user data */
        },
 
        {
@@ -86,7 +90,8 @@ system_setting_s system_setting_table[] = {
                system_setting_set_font_type,
                system_setting_set_changed_callback_font_type,
                system_setting_unset_changed_callback_font_type,
-               NULL
+               NULL,
+               NULL            /* user data */
        },
 
        {
@@ -96,165 +101,510 @@ system_setting_s system_setting_table[] = {
                system_setting_set_motion_activation,
                system_setting_set_changed_callback_motion_activation,
                system_setting_unset_changed_callback_motion_activation,
-               NULL
+               NULL,
+               NULL            /* user data */
+       },
+
+       {
+               SYSTEM_SETTINGS_KEY_EMAIL_ALERT_RINGTONE,
+               SYSTEM_SETTING_DATA_TYPE_STRING,
+               system_setting_get_email_alert_ringtone,
+               system_setting_set_email_alert_ringtone,
+               system_setting_set_changed_callback_email_alert_ringtone,
+               system_setting_unset_changed_callback_email_alert_ringtone,
+               NULL,
+               NULL            /* user data */
+       },
+       {
+               SYSTEM_SETTINGS_KEY_USB_DEBUGGING_ENABLED,
+               SYSTEM_SETTING_DATA_TYPE_BOOL,
+               system_setting_get_usb_debugging_option,
+               system_setting_set_usb_debugging_option,
+               system_setting_set_changed_callback_usb_debugging_option,
+               system_setting_unset_changed_callback_usb_debugging_option,
+               NULL,
+               NULL            /* user data */
+       },
+       {
+               SYSTEM_SETTINGS_KEY_3G_DATA_NETWORK_ENABLED,
+               SYSTEM_SETTING_DATA_TYPE_BOOL,
+               system_setting_get_3g_data_network,
+               system_setting_set_3g_data_network,
+               system_setting_set_changed_callback_3g_data_network,
+               system_setting_unset_changed_callback_3g_data_network,
+               NULL,
+               NULL            /* user data */
+       },
+       {
+               SYSTEM_SETTINGS_KEY_LOCKSCREEN_APP,
+               SYSTEM_SETTING_DATA_TYPE_STRING,
+               system_setting_get_lockscreen_app,
+               system_setting_set_lockscreen_app,
+               system_setting_set_changed_callback_lockscreen_app,
+               system_setting_unset_changed_callback_lockscreen_app,
+               NULL,
+               NULL            /* user data */
+       },
+       {
+               SYSTEM_SETTINGS_KEY_DEFAULT_FONT_TYPE,
+               SYSTEM_SETTING_DATA_TYPE_STRING,
+               system_setting_get_default_font_type,
+               NULL,
+               NULL,
+               NULL,
+               NULL,
+               NULL            /* user data */
+       },
+       {
+               SYSTEM_SETTINGS_KEY_LOCALE_COUNTRY,
+               SYSTEM_SETTING_DATA_TYPE_STRING,
+               system_setting_get_locale_country,
+               system_setting_set_locale_country,
+               system_setting_set_changed_callback_locale_country,
+               system_setting_unset_changed_callback_locale_country,
+               NULL,
+               NULL            /* user data */
+       },
+       {
+               SYSTEM_SETTINGS_KEY_LOCALE_LANGUAGE,
+               SYSTEM_SETTING_DATA_TYPE_STRING,
+               system_setting_get_locale_language,
+               system_setting_set_locale_language,
+               system_setting_set_changed_callback_locale_language,
+               system_setting_unset_changed_callback_locale_language,
+               NULL,
+               NULL            /* user data */
+       },
+       {
+               SYSTEM_SETTINGS_KEY_LOCALE_TIMEFORMAT_24HOUR,
+               SYSTEM_SETTING_DATA_TYPE_BOOL,
+               system_setting_get_locale_timeformat_24hour,
+               system_setting_set_locale_timeformat_24hour,
+               system_setting_set_changed_callback_locale_timeformat_24hour,
+               system_setting_unset_changed_callback_locale_timeformat_24hour,
+               NULL,
+               NULL            /* user data */
+       },
+       {
+               SYSTEM_SETTINGS_KEY_LOCALE_TIMEZONE,
+               SYSTEM_SETTING_DATA_TYPE_STRING,
+               system_setting_get_locale_timezone,
+               system_setting_set_locale_timezone,
+               system_setting_set_changed_callback_locale_timezone,
+               system_setting_unset_changed_callback_locale_timezone,
+               NULL,
+               NULL            /* user data */
+       },
+       {
+               SYSTEM_SETTINGS_KEY_TIME_CHANGED,
+               SYSTEM_SETTING_DATA_TYPE_INT,
+               system_setting_get_time_changed,
+               NULL,
+               system_setting_set_changed_callback_time_changed,
+               system_setting_unset_changed_callback_time_changed,
+               NULL,
+               NULL            /* user data */
+       },
+       {
+               SYSTEM_SETTINGS_KEY_SOUND_LOCK,
+               SYSTEM_SETTING_DATA_TYPE_BOOL,
+               system_setting_get_sound_lock,
+               NULL,
+               system_setting_set_changed_callback_sound_lock,
+               system_setting_unset_changed_callback_sound_lock,
+               NULL,
+               NULL            /* user data */
+       },
+       {
+               SYSTEM_SETTINGS_KEY_SOUND_SILENT_MODE,
+               SYSTEM_SETTING_DATA_TYPE_BOOL,
+               system_setting_get_sound_silent_mode,
+               system_setting_set_sound_silent_mode,
+               system_setting_set_changed_callback_sound_silent_mode,
+               system_setting_unset_changed_callback_sound_silent_mode,
+               NULL,
+               NULL            /* user data */
+       },
+       {
+               SYSTEM_SETTINGS_KEY_SOUND_TOUCH,
+               SYSTEM_SETTING_DATA_TYPE_BOOL,
+               system_setting_get_sound_touch,
+               NULL,
+               system_setting_set_changed_callback_sound_touch,
+               system_setting_unset_changed_callback_sound_touch,
+               NULL,
+               NULL            /* user data */
+       },
+       {
+               SYSTEM_SETTINGS_KEY_DISPLAY_SCREEN_ROTATION_AUTO,
+               SYSTEM_SETTING_DATA_TYPE_BOOL,
+               system_setting_get_auto_rotation_mode,
+               system_setting_set_auto_rotation_mode,
+               system_setting_set_changed_callback_auto_rotation_mode,
+               system_setting_unset_changed_callback_auto_rotation_mode,
+               NULL,
+               NULL            /* user data */
+       },
+       {
+               SYSTEM_SETTINGS_KEY_SCREEN_BACKLIGHT_TIME,
+               SYSTEM_SETTING_DATA_TYPE_INT,
+               system_setting_get_screen_backlight_time,
+               system_setting_set_screen_backlight_time,
+               system_setting_set_changed_callback_screen_backlight_time,
+               system_setting_unset_changed_callback_screen_backlight_time,
+               NULL,
+               NULL            /* user data */
+       },
+       {
+               SYSTEM_SETTINGS_KEY_SOUND_NOTIFICATION,
+               SYSTEM_SETTING_DATA_TYPE_STRING,
+               system_setting_get_sound_notification,
+               system_setting_set_sound_notification,
+               system_setting_set_changed_callback_sound_notification,
+               system_setting_unset_changed_callback_sound_notification,
+               NULL,
+               NULL            /* user data */
+       },
+       {
+               SYSTEM_SETTINGS_KEY_SOUND_NOTIFICATION_REPETITION_PERIOD,
+               SYSTEM_SETTING_DATA_TYPE_INT,
+               system_setting_get_notification_repetition_period,
+               system_setting_set_notification_repetition_period,
+               system_setting_set_changed_callback_notification_repetition_period,
+               system_setting_unset_changed_callback_notification_repetition_period,
+               NULL,
+               NULL            /* user data */
+       },
+       {
+               SYSTEM_SETTINGS_KEY_DEVICE_NAME,
+               SYSTEM_SETTING_DATA_TYPE_STRING,
+               system_setting_get_device_name,
+               NULL,
+               system_setting_set_changed_callback_device_name,
+               system_setting_unset_changed_callback_device_name,
+               NULL,
+               NULL            /* user data */
+       },
+       {
+               SYSTEM_SETTINGS_KEY_MOTION_ENABLED,
+               SYSTEM_SETTING_DATA_TYPE_BOOL,
+               system_setting_get_motion_activation,
+               NULL,
+               system_setting_set_changed_callback_motion_activation,
+               system_setting_unset_changed_callback_motion_activation,
+               NULL,
+               NULL            /* user data */
+       },
+       {
+               SYSTEM_SETTINGS_KEY_NETWORK_FLIGHT_MODE,
+               SYSTEM_SETTING_DATA_TYPE_BOOL,
+               system_setting_get_network_flight_mode,
+               NULL,
+               system_setting_set_changed_callback_network_flight_mode,
+               system_setting_unset_changed_callback_network_flight_mode,
+               NULL,
+               NULL            /* user data */
+       },
+       {
+               SYSTEM_SETTINGS_KEY_NETWORK_WIFI_NOTIFICATION,
+               SYSTEM_SETTING_DATA_TYPE_BOOL,
+               system_setting_get_network_wifi_notification,
+               NULL,
+               system_setting_set_changed_callback_network_wifi_notification,
+               system_setting_unset_changed_callback_network_wifi_notification,
+               NULL,
+               NULL            /* user data */
+       },
+       {
+               SYSTEM_SETTINGS_KEY_LOCK_STATE,
+               SYSTEM_SETTING_DATA_TYPE_INT,
+               system_setting_get_lock_state,
+               system_setting_set_lock_state,
+               system_setting_set_changed_callback_lock_state,
+               system_setting_unset_changed_callback_lock_state,
+               NULL,
+               NULL            /* user data */
        },
        {
-               SYSTEM_SETTINGS_MAX, -1, NULL, NULL, NULL, NULL, NULL
+               SYSTEM_SETTINGS_KEY_ADS_ID,
+               SYSTEM_SETTING_DATA_TYPE_STRING,
+               system_setting_get_ads_id,
+               system_setting_set_ads_id,
+               system_setting_set_changed_callback_ads_id,
+               system_setting_unset_changed_callback_ads_id,
+               NULL,
+               NULL            /* user data */
+       },
+       {
+               SYSTEM_SETTINGS_MAX, -1, NULL, NULL, NULL, NULL, NULL, NULL
        }
 };
 
-int system_settings_get_item(system_settings_key_e key, system_setting_h *item)
+#if 0
+static void _dump_context()
+{
+       int i;
+       /*int max = SYSTEM_SETTINGS_MAX; */
+       int max = sizeof(system_setting_table) / sizeof(system_setting_s) - 1 ;
+
+       for (i = 0; i < max; i++) {
+               LOGE("[%s] system_setting_table[i].key = %d", __FUNCTION__, system_setting_table[i].key);
+               LOGE("[%s] system_setting_table[i].data_type = %d", __FUNCTION__, system_setting_table[i].data_type);
+               LOGE("[%s] system_setting_table[i].get_value_cb = %x", __FUNCTION__, system_setting_table[i].get_value_cb);
+               LOGE("[%s] system_setting_table[i].set_value_cb = %x", __FUNCTION__, system_setting_table[i].set_value_cb);
+
+               LOGE("[%s] system_setting_table[i].set_changed_cb = %x <---", __FUNCTION__, system_setting_table[i].set_changed_cb);
+               LOGE("[%s] system_setting_table[i].unset_changed_cb = %x", __FUNCTION__, system_setting_table[i].unset_changed_cb);
+               LOGE("[%s] system_setting_table[i].changed_cb = %x", __FUNCTION__, system_setting_table[i].changed_cb);
+       }
+}
+#endif
+
+/*  LCOV_EXCL_START */
+static int _dump_context_node(int key)
 {
-    int index = 0;
+       int index = 0;
 
-    while (system_setting_table[index].key != SYSTEM_SETTINGS_MAX)
-    {   
-        if (system_setting_table[index].key == key)
-        {   
-            *item = &system_setting_table[index];
-            return 0;
-        }   
+       if (!(key >= 0 && SYSTEM_SETTINGS_KEY_MAX > key)) {
+               return SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER;
+       }
+
+       while (system_setting_table[index].key != SYSTEM_SETTINGS_MAX) {
+               if (system_setting_table[index].key == key) {
+                       int i = index;
+                       LOGE("[%s] system_setting_table[i].key = %d", __FUNCTION__, system_setting_table[i].key);
+                       LOGE("[%s] system_setting_table[i].data_type = %d", __FUNCTION__, system_setting_table[i].data_type);
+                       LOGE("[%s] system_setting_table[i].get_value_cb = %x", __FUNCTION__, system_setting_table[i].get_value_cb);
+                       LOGE("[%s] system_setting_table[i].set_value_cb = %x", __FUNCTION__, system_setting_table[i].set_value_cb);
+                       LOGE("[%s] system_setting_table[i].set_changed_cb = %x <---", __FUNCTION__, system_setting_table[i].set_changed_cb);
+                       LOGE("[%s] system_setting_table[i].unset_changed_cb = %x", __FUNCTION__, system_setting_table[i].unset_changed_cb);
+                       LOGE("[%s] system_setting_table[i].changed_cb = %x", __FUNCTION__, system_setting_table[i].changed_cb);
+                       return 0;
+               }
+               index++;
+       }
+
+       return -1;
+}
+/*  LCOV_EXCL_STOP */
 
-        index++;
-    }   
+int system_settings_get_item(system_settings_key_e key, system_setting_h *item)
+{
+       LOGE("Enter [%s], key=%d", __FUNCTION__, key);
+
+       if (!(key >= 0 && SYSTEM_SETTINGS_KEY_MAX > key)) {
+               LOGE("Enter [%s] catch invalid parameter error (%d) ", __FUNCTION__, key);
+               return SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER;
+       }
+#if 0
+       _dump_context();
+#endif
+       int index = 0;
+       while (system_setting_table[index].key != SYSTEM_SETTINGS_MAX) {
+               if (system_setting_table[index].key == key) {
+                       *item = &system_setting_table[index];
+                       LOGE("Enter [%s], index = %d, key = %d, type = %d", __FUNCTION__, index, key, (*item)->data_type);
+                       return SYSTEM_SETTINGS_ERROR_NONE;
+               }
+
+               index++;
+       }
 
-    return -1; 
+       return TIZEN_ERROR_INVALID_PARAMETER;
 }
 
-int system_settings_get_value(system_settings_key_e key, system_setting_data_type_e data_type, void** value)
+int system_settings_get_value(system_settings_key_e key, system_setting_data_type_e data_type, void **value)
 {
-    system_setting_h system_setting_item;
+       LOGE("Enter [%s]", __FUNCTION__);
+       if (!(key >= 0 && SYSTEM_SETTINGS_KEY_MAX > key)) {
+               return SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER;
+       }
+
+       system_setting_h system_setting_item;
        system_setting_get_value_cb     system_setting_getter;
 
-    if (system_settings_get_item(key, &system_setting_item))
-    {
-        LOGE("[%s] INVALID_PARAMETER(0x%08x) : invalid key", __FUNCTION__, SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER);
-        return SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER;
-    }
+       if (0 != system_settings_get_item(key, &system_setting_item)) {
+               _dump_context_node(key);
+               LOGE("[%s] INVALID_PARAMETER(0x%08x) : invalid key --- (%d)", __FUNCTION__, SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER, key);
+               return SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER;
+       }
 
-    if (system_setting_item->data_type != data_type)
-    {
-        LOGE("[%s] INVALID_PARAMETER(0x%08x) : invalid data type", __FUNCTION__, SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER);
-        return SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER;
-    }
+       if (system_setting_item->data_type != data_type) {
+               _dump_context_node(key);
+               LOGE("[%s] INVALID_PARAMETER(0x%08x) : invalid data type --- key : (%d), datatype:(%d)", __FUNCTION__, SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER, key, data_type);
+               return SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER;
+       }
 
-       printf("assigned getter \n");
-    system_setting_getter = system_setting_item->get_value_cb;
+       system_setting_getter = system_setting_item->get_value_cb;
 
-    if (system_setting_getter == NULL)
-    {
-        LOGE("[%s] IO_ERROR(0x%08x) : failed to call getter for the system settings", __FUNCTION__, SYSTEM_SETTINGS_ERROR_IO_ERROR);
-        return SYSTEM_SETTINGS_ERROR_IO_ERROR;
-    }
+       if (system_setting_getter == NULL) {
+               LOGE("[%s] IO_ERROR(0x%08x) : failed to call getter for the system settings", __FUNCTION__, SYSTEM_SETTINGS_ERROR_IO_ERROR);
+               return SYSTEM_SETTINGS_ERROR_IO_ERROR;
+       }
 
-    return system_setting_getter(key, system_setting_item->data_type, value);
+       return system_setting_getter(key, system_setting_item->data_type, value);
 }
 
-int system_settings_set_value(system_settings_key_e key, system_setting_data_type_e data_type, void* value)
+/*  LCOV_EXCL_START */
+int system_settings_set_value(system_settings_key_e key, system_setting_data_type_e data_type, void *value)
 {
+       LOGE("Enter [%s]", __FUNCTION__);
+       if (!(key >= 0 && SYSTEM_SETTINGS_KEY_MAX > key) || value == NULL) {
+               return SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER;
+       }
+
+
        system_setting_h system_setting_item;
        system_setting_set_value_cb     system_setting_setter;
 
-    if (system_settings_get_item(key, &system_setting_item))
-    {
-        LOGE("[%s] INVALID_PARAMETER(0x%08x) : invalid key", __FUNCTION__, SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER);
-        return SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER;
-    }
+       int ret = system_settings_get_item(key, &system_setting_item);
 
-       printf("assigned setter \n");
-    system_setting_setter = system_setting_item->set_value_cb;
+       if (0 != ret) {
+               LOGE("[%s] INVALID_PARAMETER(0x%08x) : invalid key", __FUNCTION__, SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER);
+               return SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED;
+       }
+
+       /* type check */
+       if (system_setting_item->data_type != data_type) {
+               LOGE("[%s] INVALID_PARAMETER(0x%08x) : invalid data type", __FUNCTION__, SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER);
+               return SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER;
+       }
 
-    if (system_setting_setter == NULL)
-    {
-        LOGE("[%s] IO_ERROR(0x%08x) : failed to call getter for the system settings", __FUNCTION__, SYSTEM_SETTINGS_ERROR_IO_ERROR);
-        return SYSTEM_SETTINGS_ERROR_IO_ERROR;
-    }
+       system_setting_setter = system_setting_item->set_value_cb;
 
-    return system_setting_setter(key, system_setting_item->data_type, value);
+       if (system_setting_setter == NULL) {
+               LOGE("[%s] IO_ERROR(0x%08x) : failed to call setter for the system settings", __FUNCTION__, SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED);
+               return SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED;
+       }
+
+       return system_setting_setter(key, system_setting_item->data_type, value);
 }
+/*  LCOV_EXCL_STOP */
 
-// typedef int (*system_setting_set_value_cb) (system_settings_key_e key, system_setting_data_type_e data_type, void* value);
+/*  LCOV_EXCL_START */
 int system_settings_set_value_int(system_settings_key_e key, int value)
 {
-       printf("[MOCK] system_settings_set_value_int - value = %d \n", value);
+       LOGE("Enter [%s]", __FUNCTION__);
+       if (!(key >= 0 && SYSTEM_SETTINGS_KEY_MAX > key)) {
+               return SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER;
+       }
 
-       // TODO: make sure the value is inside of enum.
-       int* ptr = &value;
-       return system_settings_set_value(key, SYSTEM_SETTING_DATA_TYPE_INT,(void*)ptr);
+       int *ptr = &value;
+       return system_settings_set_value(key, SYSTEM_SETTING_DATA_TYPE_INT, (void *)ptr);
 }
+/*  LCOV_EXCL_STOP */
 
 int system_settings_get_value_int(system_settings_key_e key, int *value)
 {
-       return system_settings_get_value(key, SYSTEM_SETTING_DATA_TYPE_INT, (void**)value);
+       LOGE("Enter [%s]", __FUNCTION__);
+       if (!(key >= 0 && SYSTEM_SETTINGS_KEY_MAX > key)) {
+               return SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER;
+       }
+
+       return system_settings_get_value(key, SYSTEM_SETTING_DATA_TYPE_INT, (void **)value);
 }
 
+/*  LCOV_EXCL_START */
 int system_settings_set_value_bool(system_settings_key_e key, bool value)
 {
-       printf("[MOCK] system_settings_set_value_bool - value = %d \n", value);
-       bool* ptr = &value;
-       return system_settings_set_value(key, SYSTEM_SETTING_DATA_TYPE_BOOL,(void*)ptr);
+       LOGE("Enter [%s]", __FUNCTION__);
+       if (!(key >= 0 && SYSTEM_SETTINGS_KEY_MAX > key)) {
+               return SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER;
+       }
+
+       bool *ptr = &value;
+       return system_settings_set_value(key, SYSTEM_SETTING_DATA_TYPE_BOOL, (void *)ptr);
 }
+/*  LCOV_EXCL_STOP */
 
 int system_settings_get_value_bool(system_settings_key_e key, bool *value)
 {
-       return system_settings_get_value(key, SYSTEM_SETTING_DATA_TYPE_BOOL, (void**)value);
-}
+       LOGE("Enter [%s]", __FUNCTION__);
+       SETTING_TRACE(" SIGNED LONG here ******************* log here *************** ");
+       signed long flag = 0;
 
-int system_settings_set_value_double(system_settings_key_e key, double value)
-{
-       printf("[MOCK] system_settings_set_value_double - value = %f \n", value);
-       double* ptr = &value;
-       return system_settings_set_value(key, SYSTEM_SETTING_DATA_TYPE_DOUBLE,(void*)ptr);
-}
+       int ret;
 
-int system_settings_get_value_double(system_settings_key_e key, double *value)
-{
-       return system_settings_get_value(key, SYSTEM_SETTING_DATA_TYPE_DOUBLE, (void**)value);
+       if (!(key >= 0 && SYSTEM_SETTINGS_KEY_MAX > key)) {
+               return SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER;
+       }
+
+       ret = system_settings_get_value(key, SYSTEM_SETTING_DATA_TYPE_BOOL, (void **)&flag);
+       SETTING_TRACE(" inf (flag) value : %d ", flag);
+       if (flag == 0) {
+               *value = false;
+               SETTING_TRACE(" flag == 0 ");
+       } else if (flag == 1) {
+               *value = true;
+               SETTING_TRACE(" flag == 1 ");
+       } else {
+               *value = false;
+               SETTING_TRACE(" exception here!!! ");
+       }
+
+       return ret;
 }
 
+/*  LCOV_EXCL_START */
 int system_settings_set_value_string(system_settings_key_e key, const char *value)
 {
-       printf("[MOCK] system_settings_set_value_string - input string : %s \n", value);
-       return system_settings_set_value(key, SYSTEM_SETTING_DATA_TYPE_STRING,(void*)value);
+       LOGE("Enter [%s]", __FUNCTION__);
+       if (!(key >= 0 && SYSTEM_SETTINGS_KEY_MAX > key)) {
+               return SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER;
+       }
+
+
+       if (key == SYSTEM_SETTINGS_KEY_DEFAULT_FONT_TYPE)
+               return SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER;
+
+       return system_settings_set_value(key, SYSTEM_SETTING_DATA_TYPE_STRING, (void *)value);
 }
+/*  LCOV_EXCL_STOP */
 
 int system_settings_get_value_string(system_settings_key_e key, char **value)
 {
-       return system_settings_get_value(key, SYSTEM_SETTING_DATA_TYPE_STRING, (void**)value);
+       LOGE("Enter [%s]", __FUNCTION__);
+       if (!(key >= 0 && SYSTEM_SETTINGS_KEY_MAX > key)) {
+               return SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER;
+       }
+
+       return system_settings_get_value(key, SYSTEM_SETTING_DATA_TYPE_STRING, (void **)value);
 }
 
 
-/*
-       - START
-               - system_settings_set_changed_cb
-                       -> int (*system_setting_set_changed_callback_cb)(key, callback, user_data)
-*/
-
 /*PUBLIC*/
 int system_settings_set_changed_cb(system_settings_key_e key, system_settings_changed_cb callback, void *user_data)
 {
-       printf("system_settings_set_changed_cb \n");
-
-    system_setting_h system_setting_item;
+       LOGE("Enter [%s]", __FUNCTION__);
+       system_setting_h system_setting_item;
        system_setting_set_changed_callback_cb system_setting_set_changed_cb;
 
-    if (system_settings_get_item(key, &system_setting_item))
-    {
-        LOGE("[%s] INVALID_PARAMETER(0x%08x) : invalid key", __FUNCTION__, SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER);
-        return SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER;
-    }
+       if (!(key >= 0 && SYSTEM_SETTINGS_KEY_MAX > key)) {
+               return SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER;
+       }
+
+       if (key == SYSTEM_SETTINGS_KEY_DEFAULT_FONT_TYPE)
+               return SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER;
+
+       if (system_settings_get_item(key, &system_setting_item)) {
+               LOGE("[%s] INVALID_PARAMETER(0x%08x) : invalid key", __FUNCTION__, SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER);
+               return SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER;
+       }
 
        system_setting_set_changed_cb = system_setting_item->set_changed_cb;
 
-       // Store the callback function from application side
+
+       /* Store the callback function from application side */
        if (callback)
                system_setting_item->changed_cb = callback;
 
-    if (system_setting_set_changed_cb == NULL)
-    {
-        LOGE("[%s] IO_ERROR(0x%08x) : failed to call getter for the system settings", __FUNCTION__, SYSTEM_SETTINGS_ERROR_IO_ERROR);
-        return SYSTEM_SETTINGS_ERROR_IO_ERROR;
-    }
+       if (user_data)
+               system_setting_item->user_data = user_data;
+
+       if (system_setting_set_changed_cb == NULL) {
+               LOGE("[%s] IO_ERROR(0x%08x) : failed to call getter for the system settings", __FUNCTION__, SYSTEM_SETTINGS_ERROR_IO_ERROR);
+               return SYSTEM_SETTINGS_ERROR_IO_ERROR;
+       }
 
        return system_setting_set_changed_cb(key, callback, user_data);
 }
@@ -262,29 +612,34 @@ int system_settings_set_changed_cb(system_settings_key_e key, system_settings_ch
 
 int system_settings_unset_changed_cb(system_settings_key_e key)
 {
-       printf("system_settings_unset_changed_cb \n");
-
-    system_setting_h system_setting_item;
+       LOGE("Enter [%s]", __FUNCTION__);
+       system_setting_h system_setting_item;
        system_setting_unset_changed_callback_cb system_setting_unset_changed_cb;
 
-    if (system_settings_get_item(key, &system_setting_item))
-    {
-        LOGE("[%s] INVALID_PARAMETER(0x%08x) : invalid key", __FUNCTION__, SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER);
-        return SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER;
-    }
+       if (!(key >= 0 && SYSTEM_SETTINGS_KEY_MAX > key)) {
+               return SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER;
+       }
+
+       if (key == SYSTEM_SETTINGS_KEY_DEFAULT_FONT_TYPE)
+               return SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER;
+
+       int ret = system_settings_get_item(key, &system_setting_item) ;
+       if (ret) {
+               LOGE("[%s] INVALID_PARAMETER(0x%08x) : invalid key", __FUNCTION__, SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER);
+               return SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER;
+       }
 
        system_setting_unset_changed_cb = system_setting_item->unset_changed_cb;
 
-       // free the callback function from application side
+       /* free the callback function from application side */
        if (system_setting_item->changed_cb)
                system_setting_item->changed_cb = NULL;
-       //-----------------------------------------------------
+       /*----------------------------------------------------- */
 
-    if (system_setting_unset_changed_cb == NULL)
-    {
-        LOGE("[%s] IO_ERROR(0x%08x) : failed to call getter for the system settings", __FUNCTION__, SYSTEM_SETTINGS_ERROR_IO_ERROR);
-        return SYSTEM_SETTINGS_ERROR_IO_ERROR;
-    }
+       if (system_setting_unset_changed_cb == NULL) {
+               LOGE("[%s] IO_ERROR(0x%08x) : failed to call getter for the system settings", __FUNCTION__, SYSTEM_SETTINGS_ERROR_IO_ERROR);
+               return SYSTEM_SETTINGS_ERROR_IO_ERROR;
+       }
 
        return system_setting_unset_changed_cb(key);
 }