#define VCONFKEY_SETAPPL_SET_DATA_USAGE_LIMIT_BOOL "db/setting/set_data_usage_limit"
#endif
+#ifndef VCONFKEY_SETAPPL_DATA_USAGE_CYCLE_INT
+#define VCONFKEY_SETAPPL_DATA_USAGE_CYCLE_INT "db/setting/data_usage_cycle"
+#endif
+
+#ifndef VCONFKEY_SETAPPL_DATA_EACH_MONTH
+#define VCONFKEY_SETAPPL_DATA_EACH_MONTH "db/setting/data_each_month"
+#endif
+
#ifndef VCONFKEY_SETAPPL_DATA_RESTRICTION_INT
#define VCONFKEY_SETAPPL_DATA_RESTRICTION_INT "db/setting/data_restriction"
#endif
if (limit_state == TRUE) {
int limit_value = 0;
+ int64_t data_limit = 0;
+ int limit_cycle = 0;
+ int each_month = 0;
+
if (__vconf_get_int(VCONFKEY_SETAPPL_DATA_LIMIT_INT, &limit_value))
return;
- STC_LOGI("Data uage limit value [%d]", limit_value);
+ data_limit = (int64_t)limit_value * 1024 * 1024;
+ STC_LOGI("Data uage limit value [%lld]", data_limit);
+
+ if (__vconf_get_int(VCONFKEY_SETAPPL_DATA_USAGE_CYCLE_INT, &limit_cycle))
+ return;
+
+ STC_LOGI("Data uage limit cycle [%d]", limit_cycle);
+
+ if (__vconf_get_int(VCONFKEY_SETAPPL_DATA_EACH_MONTH, &each_month))
+ return;
+
+ STC_LOGI("Data uage each month [%d]", each_month);
if (limit_value) {
table_restrictions_info rule;
memset(&rule, 0, sizeof(table_restrictions_info));
+
rule.app_id = STC_TOTAL_DATACALL;
+ rule.iftype = STC_IFACE_DATACALL;
+ rule.ifname = NULL;
rule.rst_state = STC_RESTRICTION_REMOVED;
- rule.data_limit = limit_value;
- rule.data_warn_limit = limit_value;
+ rule.data_limit = -1;
+ rule.data_warn_limit = -1;
+ rule.monthly_limit = -1;
+ rule.weekly_limit = -1;
+ rule.daily_limit = -1;
+ rule.month_start_date = 0;
rule.roaming = STC_ROAMING_DISABLE;
rule.subscriber_id = NULL;
+ switch (limit_cycle) {
+ case 0: /* Month */
+ rule.month_start_date = each_month;
+ rule.monthly_limit = data_limit;
+ break;
+ case 1: /* Weekly */
+ rule.weekly_limit = data_limit;
+ break;
+ case 2: /* Daily */
+ rule.daily_limit = data_limit;
+ break;
+ default:
+ break;
+ }
+
table_restrictions_update(&rule);
- stc_monitor_rstns_tree_add(&rule);
}
}
}