static const char date_format[] = "%a, %d/%m/%Y";
-typedef enum {
- DATA_UNIT_TYPE_MB = 2,
- DATA_UNIT_TYPE_GB = 3,
-} Data_Unit_Type_E;
-
typedef enum {
DATE_MIN = 0,
DATE_MAX,
typedef struct {
Evas_Object *popup;
+ Evas_Object *unit_btn;
Evas_Object *content;
- Data_Unit_Type_E unit;
} Popup_Info;
static char *elements_cycle_initial_values[] = {
weight_x, weight_y, false, cb, callback_data);
}
-static void _entry_set_displayed_value(int64_t value, Data_Unit_Type_E unit)
+static void _entry_set_displayed_value(Evas_Object *entry, Evas_Object *button,
+ int64_t value)
{
- char buf[256] = {0};
- int to_display = value/pow(1024.0, unit);
- snprintf(buf, sizeof(buf), "%d", to_display);
- elm_object_text_set(popup_info.content, buf);
+ char int_amount_buf[256] = {0};
+ char unit_buf[256] = {0};
+ get_data_int_amount_str(value, int_amount_buf, sizeof(int_amount_buf));
+ elm_object_text_set(entry, int_amount_buf);
+ get_data_unit_str(value, unit_buf, sizeof(unit_buf));
+ elm_object_text_set(button, unit_buf);
}
static void _data_unit_type_cb(void *data, Evas_Object *obj, void *event_info)
{
- elm_object_text_set(obj, popup_info.unit == DATA_UNIT_TYPE_MB ?
- _("GB") : _("MB"));
- popup_info.unit = popup_info.unit == DATA_UNIT_TYPE_MB ?
- DATA_UNIT_TYPE_GB : DATA_UNIT_TYPE_MB;
+ const char *unit_text = elm_object_text_get(obj);
+ elm_object_text_set(obj, !strcmp(unit_text, "GB") ? "MB" : "GB");
}
static void create_toast_popup(Evas_Object *parent, char *text)
SmartMgrData *smd = (SmartMgrData *)data;
ret_if(!smd);
- const char *text = elm_object_text_get(popup_info.content);
- float value = atof(text);
- char unit_name[16] = {0};
+ const char *value_text = elm_object_text_get(popup_info.content);
+ float value = atof(value_text);
+ const char *unit_text = elm_object_text_get(popup_info.unit_btn);
- value *= pow(1024, popup_info.unit);
- strncpy(unit_name, popup_info.unit == DATA_UNIT_TYPE_MB ?
- _("MB") : _("GB"), sizeof(unit_name));
+ if (!strcmp(unit_text, "GB")) {
+ value *= pow(1024, 3);
+ } else {
+ value *= pow(1024, 2);
+ }
if (value > 0) {
- if (value <= MAX_LIMIT_IN_BYTES) {
- if (value < smd->selected_sim_limits->limit) {
+ if (value < smd->selected_sim_limits->limit) {
+ if (value <= MAX_LIMIT_IN_BYTES) {
if (set_mobile_limit_restrictions(smd->stc,
smd->selected_sim_subscriber_id,
smd->selected_sim_limits->limit,
evas_object_del(popup_info.popup);
} else {
create_toast_popup(popup_info.popup,
- _("Value must be lower than limit value"));
+ _("Maximum value allowed is 100GB. Value changed to 100GB"));
+ smd->selected_sim_limits->warning = MAX_LIMIT_IN_BYTES;
+ _entry_set_displayed_value(popup_info.content,
+ popup_info.unit_btn, smd->selected_sim_limits->warning);
}
} else {
create_toast_popup(popup_info.popup,
- _("Maximum value allowed is 100GB. Value changed to 100GB"));
- smd->selected_sim_limits->warning = MAX_LIMIT_IN_BYTES;
- _entry_set_displayed_value(smd->selected_sim_limits->warning,
- popup_info.unit);
+ _("Value must be lower than limit value"));
}
} else {
unset_mobile_limit_restrictions(smd->stc,
popup_info.content = _create_entry(box);
Evas_Object *clean = create_editfield_clear_popup_button(box, NULL, NULL,
0.02, EVAS_HINT_EXPAND, _clean_entry_cb, popup_info.content);
- popup_info.unit = DATA_UNIT_TYPE_MB;
- Evas_Object *btn = _create_popup_button(box, NULL, _("MB"),
+ popup_info.unit_btn = _create_popup_button(box, NULL, _("GB"),
0.25, EVAS_HINT_EXPAND, _data_unit_type_cb, NULL);
elm_box_pack_end(box, popup_info.content);
elm_box_pack_end(box, clean);
- elm_box_pack_end(box, btn);
+ elm_box_pack_end(box, popup_info.unit_btn);
- _entry_set_displayed_value(smd->selected_sim_limits->warning,
- popup_info.unit);
+ _entry_set_displayed_value(popup_info.content,
+ popup_info.unit_btn, smd->selected_sim_limits->warning);
_create_popup_button(popup_info.popup, "button1", _("Cancel"),
EVAS_HINT_EXPAND, EVAS_HINT_EXPAND,
SmartMgrData *smd = (SmartMgrData *)data;
ret_if(!smd);
- const char *text = elm_object_text_get(popup_info.content);
- float value = atof(text);
- char unit_name[16] = {0};
+ const char *value_text = elm_object_text_get(popup_info.content);
+ float value = atof(value_text);
+ const char *unit_text = elm_object_text_get(popup_info.unit_btn);
- value *= pow(1024, popup_info.unit);
- strncpy(unit_name, popup_info.unit == DATA_UNIT_TYPE_MB ?
- _("MB") : _("GB"), sizeof(unit_name));
+ if (!strcmp(unit_text, "GB")) {
+ value *= pow(1024, 3);
+ } else {
+ value *= pow(1024, 2);
+ }
if (value > 0) {
if (value <= MAX_LIMIT_IN_BYTES) {
} else {
create_toast_popup(popup_info.popup,
_("Maximum value allowed is 100GB. Value changed to 100GB"));
- smd->selected_sim_limits->limit = MAX_LIMIT_IN_BYTES;
- _entry_set_displayed_value(smd->selected_sim_limits->limit,
- popup_info.unit);
+ smd->selected_sim_limits->limit = MAX_LIMIT_IN_BYTES;
+ _entry_set_displayed_value(popup_info.content, popup_info.unit_btn,
+ smd->selected_sim_limits->limit);
}
} else {
unset_mobile_limit_restrictions(smd->stc,
popup_info.content = _create_entry(box);
Evas_Object *clean = create_editfield_clear_popup_button(box, NULL, NULL,
0.02, EVAS_HINT_EXPAND, _clean_entry_cb, popup_info.content);
- popup_info.unit = DATA_UNIT_TYPE_MB;
- Evas_Object *btn = _create_popup_button(box, NULL, _("MB"), 0.25,
+ popup_info.unit_btn = _create_popup_button(box, NULL, _("GB"), 0.25,
EVAS_HINT_EXPAND, _data_unit_type_cb, NULL);
elm_box_pack_end(box, popup_info.content);
elm_box_pack_end(box, clean);
- elm_box_pack_end(box, btn);
+ elm_box_pack_end(box, popup_info.unit_btn);
- _entry_set_displayed_value(smd->selected_sim_limits->limit,
- popup_info.unit);
+ _entry_set_displayed_value(popup_info.content, popup_info.unit_btn,
+ smd->selected_sim_limits->limit);
_create_popup_button(popup_info.popup, "button1", _("Cancel"),
EVAS_HINT_EXPAND, EVAS_HINT_EXPAND, _popup_cancel_cb,
const char *part)
{
char buf[256] = {0};
+ char int_amount_buf[256] = {0};
+ char unit_buf[256] = {0};
SmartMgrData *smd = (SmartMgrData *)data;
retv_if(!smd, NULL);
if (!strcmp(part, "elm.text")) {
if (smd->selected_sim_limits->warning > 0) {
- get_data_amount_str("", smd->selected_sim_limits->warning, buf,
- sizeof(buf));
+ get_data_int_amount_str(smd->selected_sim_limits->warning,
+ int_amount_buf, sizeof(int_amount_buf));
+ get_data_unit_str(smd->selected_sim_limits->warning, unit_buf,
+ sizeof(unit_buf));
+ snprintf(buf, sizeof(buf), "%s%s", int_amount_buf, unit_buf);
} else {
snprintf(buf, sizeof(buf), "%s", _("None"));
}
const char *part)
{
char buf[256] = {0};
+ char int_amount_buf[256] = {0};
+ char unit_buf[256] = {0};
SmartMgrData *smd = (SmartMgrData *)data;
retv_if(!smd, NULL);
if (!strcmp(part, "elm.text")) {
if (smd->selected_sim_limits->limit > 0) {
- get_data_amount_str("", smd->selected_sim_limits->limit, buf,
- sizeof(buf));
+ get_data_int_amount_str(smd->selected_sim_limits->limit,
+ int_amount_buf, sizeof(int_amount_buf));
+ get_data_unit_str(smd->selected_sim_limits->limit, unit_buf,
+ sizeof(unit_buf));
+ snprintf(buf, sizeof(buf), "%s%s", int_amount_buf, unit_buf);
} else {
snprintf(buf, sizeof(buf), "%s", _("None"));
}