#include "common/menumgr.h"
#include "data/system/settings_clock.h"
-#define MAX_DATETIME_LENGTH 35
+#include <vconf.h>
+#include <vconf-keys.h>
+#include <utils_i18n.h>
+
+
+#define MAX_DATETIME_LENGTH 55
Ecore_Timer *priv_timer = NULL;
return true;
}
+
+#if 0
+
+/* @TODO : Current locale(Location) setting work wrong. it sould be fixed */
+
+char *_get_str_from_icu(const char *pattern)
+{
+ char *locale_tmp = vconf_get_str(VCONFKEY_REGIONFORMAT);
+ char locale[32] = {0,};
+ char *p = NULL;
+
+ if (locale_tmp && (strlen(locale_tmp) < 32))
+ strcpy(locale, locale_tmp);
+
+ if (locale[0] != '\0') {
+ p = strstr(locale, ".UTF-8");
+ if (p) {
+ *p = 0;
+ }
+ }
+
+ char *ret_str = NULL;
+ i18n_uchar Pattern[256] = { 0, };
+ i18n_udate_format_h formatter = NULL;
+
+ i18n_uchar formatted[256] = { 0, };
+ char formattedString[256] = { 0, };
+ int32_t buf_size_needed;
+
+ i18n_ustring_copy_ua_n(Pattern, pattern, strlen(pattern));
+
+ i18n_udate date;
+ i18n_ucalendar_get_now(&date);
+ i18n_udate_create(I18N_UDATE_PATTERN, I18N_UDATE_PATTERN, locale_tmp, NULL, -1, Pattern, -1, &formatter);
+ int32_t formattedCapacity = (int32_t)(sizeof(formatted) / sizeof((formatted)[0]));
+ (void)i18n_udate_format_date(formatter, date, formatted, formattedCapacity, NULL, &buf_size_needed);
+ i18n_ustring_copy_au(formattedString, formatted);
+
+ _DBG("str from icu is %s", formattedString);
+
+ i18n_udate_destroy(formatter);
+
+ ret_str = strdup(formattedString);
+ return ret_str;
+}
+
+
+char *settings_clock_get_clock_status_str()
+{
+ bool automatic = false;
+ bool is24h = false;
+
+ if (!settings_clock_is_time_automatic(&automatic))
+ return NULL;
+
+ if (automatic) {
+ return strdup(STR_AUTO);
+ }
+
+ if (!settings_clock_is_24h_set(&is24h)) {
+ _ERR("Cannot get 24h setting");
+ }
+
+ if (is24h) {
+ _DBG("is24h is TRUE");
+ return _get_str_from_icu("dd/MM/y HH:mm");
+ }
+
+ _DBG("is24h is FALSE");
+ return _get_str_from_icu("dd/MM/y hh:mm a");
+}
+
+
+#else
char *settings_clock_get_clock_status_str()
{
bool automatic = false;
_ERR("Cannot get 24h setting");
}
+#if 0
if (is24h) {
strftime(str_buffer, MAX_DATETIME_LENGTH, "%x %H:%M", tm_info);
} else {
strftime(str_buffer, MAX_DATETIME_LENGTH, "%x %I:%M %p", tm_info);
}
+#else
+ if (is24h) {
+ _DBG("is24h is TRUE");
+ strftime(str_buffer, MAX_DATETIME_LENGTH, "%d/%m/%Y %H:%M", tm_info);
+ } else {
+ _DBG("is24h is FALSE");
+ strftime(str_buffer, MAX_DATETIME_LENGTH, "%d/%m/%Y %I:%M", tm_info);
+ strcat(str_buffer, (tm_info->tm_hour>=12)? " pm":" am");
+ }
+#endif
return strdup(str_buffer);
}
}
+#endif
+
static void _system_time_setting_changed_cb(system_settings_key_e key, void *user_data)
{
_DBG("System setting %d changed", key);