#include <fontconfig/fontconfig.h>
+#include <alarm.h>
+
#include <pkgmgr-info.h>
#include <system_settings.h>
bool dl_is_supported_image_type_load(char *path)
{
- void *handle;
+ void *handle = NULL;
char *error;
bool ret = false;
bool (*image_type_check)(char *path);
image_type_check = dlsym(handle, "__is_supported_image_type_load");
if ((error = dlerror()) != NULL) {
SETTING_TRACE("ERROR!! canNOT find __is_supported_image_type_load function at libsystem-settings-util.so.0.1.0");
+ if (handle)
+ dlclose(handle);
return false;
}
ret = image_type_check(path);
- dlclose(handle);
+ if (handle)
+ dlclose(handle);
return ret;
}
int dl_is_available_font(char *str)
{
- void *handle;
+ void *handle = NULL;
char *error;
int ret = false;
int (*check_available_font)(char *font_name);
return false;
}
- check_available_font = dlsym(handle, "_is_available_font");
+ check_available_font = dlsym(handle, "__is_available_font");
if ((error = dlerror()) != NULL) {
- SETTING_TRACE("ERROR!! canNOT find font_config_set function at libsystem-settings-util.so.0.1.0");
+ SETTING_TRACE("ERROR!! canNOT find __is_available_font function at libsystem-settings-util.so.0.1.0");
+ if (handle)
+ dlclose(handle);
return false;
}
ret = check_available_font(str);
- dlclose(handle);
+ if (handle)
+ dlclose(handle);
return ret;
}
void dl_font_size_set()
{
- void *handle;
+ void *handle = NULL;
char *error;
void (*set_font_size)();
set_font_size = dlsym(handle, "__font_size_set");
if ((error = dlerror()) != NULL) {
- SETTING_TRACE("ERROR!! canNOT find font_config_set function at libsystem-settings-util.so.0.1.0");
+ SETTING_TRACE("ERROR!! canNOT find __font_size_set function at libsystem-settings-util.so.0.1.0");
+ if (handle)
+ dlclose(handle);
return;
}
set_font_size();
- dlclose(handle);
+ if (handle)
+ dlclose(handle);
return;
}
void dl_font_config_set_notification()
{
- void *handle;
+ void *handle = NULL;
char *error;
void (*set_font_nodification)();
set_font_nodification = dlsym(handle, "font_config_set_notification");
if ((error = dlerror()) != NULL) {
- SETTING_TRACE("ERROR!! canNOT find font_config_set function at libsystem-settings-util.so.0.1.0");
+ SETTING_TRACE("ERROR!! canNOT find font_config_set_notification function at libsystem-settings-util.so.0.1.0");
+ if (handle)
+ dlclose(handle);
return;
}
set_font_nodification();
- dlclose(handle);
+ if (handle)
+ dlclose(handle);
return;
}
bool dl_font_config_set(char *font_name)
{
- void *handle;
+ void *handle = NULL;
char *error;
bool ret = false;
bool (*check_font_type)(char *font_name);
check_font_type = dlsym(handle, "font_config_set");
if ((error = dlerror()) != NULL) {
SETTING_TRACE("ERROR!! canNOT find font_config_set function at libsystem-settings-util.so.0.1.0");
+ if (handle)
+ dlclose(handle);
return false;
}
ret = check_font_type(font_name);
- dlclose(handle);
+ if (handle)
+ dlclose(handle);
return ret;
}
char *dl_get_font_info(char *str)
{
- void *handle;
+ void *handle = NULL;
char *error;
char *ret = NULL;
char *(*get_font_info)();
if ((error = dlerror()) != NULL) {
SETTING_TRACE("ERROR!! canNOT find %s function at libsystem-settings-util.so.0.1.0", str);
+ if (handle)
+ dlclose(handle);
return false;
}
ret = get_font_info();
- dlclose(handle);
+ if (handle)
+ dlclose(handle);
return ret;
}
continue;
if (system_setting_get_extended_wallpaper_num(dirp->d_name, &temp_image_num)
- != SYSTEM_SETTINGS_ERROR_NONE) {
+ != SYSTEM_SETTINGS_ERROR_NONE) {
return SYSTEM_SETTINGS_ERROR_IO_ERROR;
}
continue;
if (system_setting_get_extended_wallpaper_num(dirp->d_name, &temp_image_num)
- != SYSTEM_SETTINGS_ERROR_NONE) {
+ != SYSTEM_SETTINGS_ERROR_NONE) {
if (dp)
closedir(dp);
return SYSTEM_SETTINGS_ERROR_IO_ERROR;
/* Numbering rule: Gear is odd number */
max_image_num = (max_image_num % 2 == 0) ? max_image_num + 1
- : max_image_num + 2;
+ : max_image_num + 2;
char file_name_buffer[512];
snprintf(file_name_buffer, sizeof(file_name_buffer) - 1,
- _TZ_SYS_DATA"/setting/wallpaper/extended_wallpaper_%d.jpg", max_image_num);
+ _TZ_SYS_DATA"/setting/wallpaper/extended_wallpaper_%d.jpg", max_image_num);
/* Copy image to _TZ_SYS_DATA/setting/wallpaper/ */
if (system_setting_copy_extended_wallpaper(file_name_buffer, vconf_value)
- != SYSTEM_SETTINGS_ERROR_NONE) {
+ != SYSTEM_SETTINGS_ERROR_NONE) {
return SYSTEM_SETTINGS_ERROR_IO_ERROR;
}
/* remove oldest wallpaper */
if (image_count >= WALLPAPER_MAX_COUNT) {
if (system_setting_remove_oldest_extended_wallpaper()
- != SYSTEM_SETTINGS_ERROR_NONE) {
+ != SYSTEM_SETTINGS_ERROR_NONE) {
remove(file_name_buffer);
return SYSTEM_SETTINGS_ERROR_IO_ERROR;
}
}
if (system_setting_vconf_set_value_int(VCONFKEY_SETAPPL_WALLPAPER_CHANGED_NOTI_INT,
- VCONFKEY_WALLPAPER_CHANGED_NOTI_GEAR)) {
+ VCONFKEY_WALLPAPER_CHANGED_NOTI_GEAR)) {
return SYSTEM_SETTINGS_ERROR_IO_ERROR;
}
} else {
int system_setting_get_locale_timezone(system_settings_key_e key, system_setting_data_type_e data_type, void **value)
{
SETTING_TRACE_BEGIN;
-#if 0
- char tzpath[256];
- ssize_t len = readlink(SETTING_TZONE_SYMLINK_PATH, tzpath, sizeof(tzpath) - 1);
- if (len != -1) {
- tzpath[len] = '\0';
- } else {
- SETTING_TRACE("parse error for SETTING_TZONE_SYMLINK_PATH");
- return SYSTEM_SETTINGS_ERROR_IO_ERROR;
- }
- /* "/usr/share/zoneinfo/Asia/Seoul" */
- SETTING_TRACE("tzpath : %s ", &tzpath[20]);
- *value = strdup(&tzpath[20]);
-#else
*value = vconf_get_str(VCONFKEY_SETAPPL_TIMEZONE_ID);
-#endif
return SYSTEM_SETTINGS_ERROR_NONE;
}
+int system_setting_set_locale_timezone(system_settings_key_e key, system_setting_data_type_e data_type, void *value)
+{
+ SETTING_TRACE_BEGIN;
+ char *vconf_value = NULL;
+ vconf_value = (char *)value;
+
+ char tz_path[1024];
+ snprintf(tz_path, 1024, "/usr/share/zoneinfo/%s", vconf_value);
+
+ int is_load = _is_file_accessible(tz_path);
+ if (is_load == 0) {
+ alarmmgr_set_timezone(tz_path);
+
+ if (system_setting_vconf_set_value_string(VCONFKEY_SETAPPL_TIMEZONE_ID, vconf_value)) {
+ return SYSTEM_SETTINGS_ERROR_IO_ERROR;
+ }
+ return SYSTEM_SETTINGS_ERROR_NONE;
+ }
+ return SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER;
+}
+
+
+
+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);
+}
+
+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);
+}
+
int system_setting_set_changed_callback_locale_timezone_changed(system_settings_key_e key, system_settings_changed_cb callback, void *user_data)
{
SETTING_TRACE_BEGIN;