#define VCONFKEY_STC_BACKGROUND_STATE "db/stc/background_state"
#endif
+#ifndef VCONFKEY_SETAPPL_DATA_LIMIT_INT
+#define VCONFKEY_SETAPPL_DATA_LIMIT_INT "db/setting/data_limit"
+#endif
+
+#ifndef VCONFKEY_SETAPPL_SET_DATA_USAGE_LIMIT_BOOL
+#define VCONFKEY_SETAPPL_SET_DATA_USAGE_LIMIT_BOOL "db/setting/set_data_usage_limit"
+#endif
+
#ifndef VCONFKEY_SETAPPL_DATA_RESTRICTION_INT
#define VCONFKEY_SETAPPL_DATA_RESTRICTION_INT "db/setting/data_restriction"
#endif
static stc_system_s *g_system = NULL;
//LCOV_EXCL_START
+static int __vconf_get_bool(const char *key, int *value)
+{
+ int ret = 0;
+
+ ret = vconf_get_bool(key, value);
+ if (ret != VCONF_OK) {
+ STC_LOGE("Failed to get vconfkey [%s] value", key); //LCOV_EXCL_LINE
+ return -1; //LCOV_EXCL_LINE
+ }
+
+ return 0;
+}
+
static int __vconf_get_int(const char *key, int *value)
{
int ret = 0;
stc_plugin_fill_exception_list();
}
+static void __init_data_usage_limit(void)
+{
+ int limit_state = FALSE;
+
+ if (__vconf_get_bool(VCONFKEY_SETAPPL_SET_DATA_USAGE_LIMIT_BOOL, &limit_state))
+ return;
+
+ STC_LOGI("Data usage limit state [%d]", limit_state);
+
+ if (limit_state == TRUE) {
+ int limit_value = 0;
+ if (__vconf_get_int(VCONFKEY_SETAPPL_DATA_LIMIT_INT, &limit_value))
+ return;
+
+ STC_LOGI("Data uage limit value [%d]", limit_value);
+
+ if (limit_value) {
+ table_restrictions_info rule;
+
+ memset(&rule, 0, sizeof(table_restrictions_info));
+ rule.app_id = STC_TOTAL_DATACALL;
+ rule.rst_state = STC_RESTRICTION_REMOVED;
+ rule.data_limit = limit_value;
+ rule.data_warn_limit = limit_value;
+ rule.roaming = STC_ROAMING_DISABLE;
+ rule.subscriber_id = NULL;
+
+ table_restrictions_update(&rule);
+ stc_monitor_rstns_tree_add(&rule);
+ }
+ }
+}
+
stc_error_e stc_monitor_init(void)
{
stc_system_s *system = MALLOC0(stc_system_s, 1);
__vconf_get_int(VCONFKEY_STC_BACKGROUND_STATE,
(int *)&g_system->background_state);
+ __init_data_usage_limit();
+
__fill_exceptions_list();
__fill_restritions_list();