Unit conversion from Byte to MB and check limit cycle 12/192912/2 accepted/tizen/4.0/unified/20181113.230059 submit/tizen_4.0/20181113.040054
authorhyunuktak <hyunuk.tak@samsung.com>
Tue, 13 Nov 2018 01:00:56 +0000 (10:00 +0900)
committerhyunuktak <hyunuk.tak@samsung.com>
Tue, 13 Nov 2018 03:59:21 +0000 (12:59 +0900)
Change-Id: Idfab2a6279cab33a189ef20fe26e2e56acc2125a
Signed-off-by: hyunuktak <hyunuk.tak@samsung.com>
src/monitor/stc-monitor.c

index b504b8e..a00f626 100755 (executable)
 #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
@@ -1884,24 +1892,60 @@ static void __init_data_usage_limit(void)
 
        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);
                }
        }
 }