4 * Copyright (c) 2014 Samsung Electronics Co., Ltd. All rights reserved.
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
10 * http://www.apache.org/licenses/LICENSE-2.0
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
20 * @file: datausage-vconf-callbacks.c
22 * @desc Add datausage callback functions to vconf
28 #include "daemon-options.h"
29 #include "datausage-vconf-callbacks.h"
30 #include "datausage-quota-processing.h"
31 #include "datausage-quota.h"
34 #include "resourced.h"
41 static void wifi_change_cb(keynode_t *key, void *data)
43 int val = vconf_keynode_get_bool(key);
44 _SD("key = %s, value = %d(int)\n",
45 vconf_keynode_get_name(key), val);
46 set_wifi_allowance(val ?
47 RESOURCED_OPTION_ENABLE : RESOURCED_OPTION_DISABLE);
50 static void datacall_change_cb(keynode_t *key, void *data)
52 int val = vconf_keynode_get_bool(key);
54 _SD("key = %s, value = %d(int)\n",
55 vconf_keynode_get_name(key), val);
56 set_datacall_allowance(val ? RESOURCED_OPTION_ENABLE :
57 RESOURCED_OPTION_DISABLE);
60 static void datacall_logging_change_cb(keynode_t *key, void *data)
62 struct daemon_opts *options = (struct daemon_opts *)data;
63 int val = vconf_keynode_get_bool(key);
66 _E("Please provide valid argument!");
69 _SD("key = %s, value = %d(int)\n",
70 vconf_keynode_get_name(key), val);
71 options->datacall_logging = val ? RESOURCED_OPTION_ENABLE :
72 RESOURCED_OPTION_DISABLE;
75 static void datausage_timer_change_cb(keynode_t *key, void *data)
77 struct daemon_opts *options = (struct daemon_opts *)data;
78 int val = vconf_keynode_get_int(key);
81 _E("Please provide valid argument!");
84 _SD("key = %s, value = %d(int)\n",
85 vconf_keynode_get_name(key), val);
87 options->update_period = val;
90 void resourced_add_vconf_datausage_cb(struct counter_arg *carg)
92 _D("Add vconf datausage callbacks\n");
93 ret_msg_if(!carg || !carg->opts,
94 "Please provide valid argument!");
95 vconf_notify_key_changed(RESOURCED_WIFI_STATISTICS_PATH, wifi_change_cb,
97 vconf_notify_key_changed(RESOURCED_DATACALL_PATH, datacall_change_cb,
99 vconf_notify_key_changed(RESOURCED_DATAUSAGE_TIMER_PATH,
100 datausage_timer_change_cb, (void *)carg->opts);
101 vconf_notify_key_changed(RESOURCED_DATACALL_LOGGING_PATH,
102 datacall_logging_change_cb,
106 void resourced_remove_vconf_datausage_cb(void)
108 _D("Remove vconf datausage callbacks\n");
109 vconf_ignore_key_changed(RESOURCED_WIFI_STATISTICS_PATH,
111 vconf_ignore_key_changed(RESOURCED_DATACALL_PATH, datacall_change_cb);
112 vconf_ignore_key_changed(RESOURCED_DATAUSAGE_TIMER_PATH,
113 datausage_timer_change_cb);
114 vconf_ignore_key_changed(RESOURCED_DATACALL_LOGGING_PATH,
115 datacall_logging_change_cb);