static void _update_slot_ly_badge(struct slot_info *item)
{
_ENTER;
- char *str = NULL;
char badge_signal[16];
ret_if(!item);
item->badge_count = MAX_BADGE_COUNT;
}
- str = apptray_wgt_utils_get_count_str_from_icu(item->badge_count);
- elm_object_part_text_set(item->eo, "badge_txt", str);
+ elm_object_part_text_set(item->eo, "badge_txt",
+ apptray_wgt_utils_get_count_str_from_icu(item->badge_count));
if (item->badge_count <= 0) {
snprintf(badge_signal, sizeof(badge_signal), "badge,off");
snprintf(badge_signal, sizeof(badge_signal), "badge,on,3");
}
elm_object_signal_emit(item->eo, badge_signal, "slot");
-
- free(str);
}
static void _badge_changed_cb(unsigned int action, const char *appid, unsigned int count, void *data)
static void _set_main_layout_slot_count(struct info *item, int count)
{
- char tmp[BUFF_SMALL_SIZE] = { 0 };
+ char tmp[BUFF_MIDDLE_SIZE] = { 0 };
snprintf(tmp, sizeof(tmp), "%d_slots", count);
elm_object_signal_emit(item->layout, tmp, "*");
}
#include <stdio.h>
#include <stdlib.h>
#include <system_settings.h>
-#include <unicode/unum.h>
-#include <unicode/ustring.h>
+#include <utils_i18n.h>
#include "apptray_widget_log.h"
#include "apptray_widget_common_defines.h"
return res_path;
}
-char *apptray_wgt_utils_get_count_str_from_icu(int count)
+char *apptray_wgt_utils_get_count_str_from_icu(int num)
{
- char *p = NULL;
+ static char buff[BUFF_SMALL_SIZE] = { 0 };
char *locale = NULL;
- char res[LOCALE_LEN] = { 0 };
+ i18n_unumber_format_h num_format = NULL;
+ i18n_uchar u_buff[BUFF_SMALL_SIZE] = { 0 };
+ i18n_error_code_e status = I18N_ERROR_NONE;
+ int32_t len = 0;
+
+ int res = system_settings_get_value_string(SYSTEM_SETTINGS_KEY_LOCALE_LANGUAGE, &locale);
+ if (res != SYSTEM_SETTINGS_ERROR_NONE) {
+ _E("Failed to get the locale . res[%d]", res);
+ goto fail;
+ }
- UErrorCode status = U_ZERO_ERROR;
- UNumberFormat *num_fmt = NULL;;
- UChar result[LOCALE_LEN] = { 0 };
+ if (!locale) {
+ _E("Local is NULL");
+ goto fail;
+ }
- uint32_t number = count;
- int32_t len = (int32_t) (sizeof(result) / sizeof((result)[0]));
+ res = i18n_unumber_create(I18N_UNUMBER_DEFAULT, NULL, -1, locale, NULL, &num_format);
+ if (res != I18N_ERROR_NONE) {
+ _E("Failed to create unumber format. res[%d]", res);
+ goto fail;
+ }
- system_settings_get_value_string(SYSTEM_SETTINGS_KEY_LOCALE_LANGUAGE, &locale);
- retv_if(!locale, NULL);
+ len = (int32_t) (sizeof(u_buff) / sizeof(u_buff[0]));
+ i18n_unumber_format(num_format, num, u_buff, len, NULL, &status);
+ i18n_ustring_copy_au(buff, u_buff);
+ i18n_unumber_destroy(num_format);
- if (locale[0] != '\0') {
- p = strstr(locale, ".UTF-8");
- if (p) {
- *p = 0;
- }
- }
+ free(locale);
+
+ return buff;
- num_fmt = unum_open(UNUM_DEFAULT, NULL, -1, locale, NULL, &status);
- unum_format(num_fmt, number, result, len, NULL, &status);
- u_austrcpy(res, result);
- unum_close(num_fmt);
+fail:
+ snprintf(buff, sizeof(buff), "%d", num);
free(locale);
- return strdup(res);
+ return buff;
}