static void __location_service_state_changed_cb(runtime_info_key_e key, void *data);
static void __bluetooth_state_changed_cb(keynode_t *node, void *user_data);
static void __headset_state_changed_cb(keynode_t *node, void *user_data);
+static void __data_restriction_state_changed_cb(keynode_t *node, void *user_data);
static void __callforwarding_state_changed_cb(keynode_t *node, void *user_data);
static void __get_callsignal_state(bool *is_roaming, int *strength);
static void __get_network_strength_and_packet_type(int *network_type, int *packet_type);
}
}
__wifi_state_changed_cb(NULL, NULL);
+ __data_restriction_state_changed_cb(NULL, NULL);
__bluetooth_state_changed_cb(NULL, NULL);
__headset_state_changed_cb(NULL, NULL);
__flight_mode_changed_cb(NULL, NULL);
vconf_notify_key_changed(VCONFKEY_WMS_WMANAGER_CONNECTED, __bluetooth_state_changed_cb, NULL);
/* HEADSET */
vconf_notify_key_changed(VCONFKEY_BT_DEVICE, __headset_state_changed_cb, NULL);
+ /* DATA RESTRICTION */
+ vconf_notify_key_changed(VCONFKEY_SETAPPL_DATA_RESTRICTION_INT, __data_restriction_state_changed_cb, NULL);
}
static void __unregister_status_callback(void)
vconf_ignore_key_changed(VCONFKEY_BT_STATUS, __bluetooth_state_changed_cb);
vconf_ignore_key_changed(VCONFKEY_WMS_WMANAGER_CONNECTED, __bluetooth_state_changed_cb);
- vconf_ignore_key_changed(VCONFKEY_WMS_WMANAGER_CONNECTED, __headset_state_changed_cb);
+ vconf_ignore_key_changed(VCONFKEY_BT_DEVICE, __headset_state_changed_cb);
+
+ vconf_ignore_key_changed(VCONFKEY_SETAPPL_DATA_RESTRICTION_INT, __data_restriction_state_changed_cb);
}
static void __battery_state_changed_cb(device_callback_e type, void *value, void *user_data)
__callforwarding_state_changed_cb(NULL, NULL);
}
__network_enable();
+ __data_restriction_state_changed_cb(NULL, NULL);
__bluetooth_state_changed_cb(NULL, NULL);
__headset_state_changed_cb(NULL, NULL);
}
if (wifi_state == VCONFKEY_WIFI_CONNECTED) {
_D("WIFI CONNECTED");
- if (!moments_check_is_3g_device())
- moments_status_network_icon_show();
+ moments_status_network_icon_show();
__get_wifi_strength_and_packet_type(&network_type, &packet_type);
moments_status_network_update(network_type + MOMENT_STATUS_SIGNAL_WIFI_INDEX, packet_type+NETWORK_PACKET_INDEX_START);
if (moments_check_is_3g_device() && s_info.telephony_initialized) {
_D("WIFI DISCONNECTED, 3G");
__network_enable();
+ __data_restriction_state_changed_cb(NULL, NULL);
} else {
_D("WIFI DISCONNECTED, NOT 3G");
moments_status_network_icon_hide();
moments_status_update_view();
}
+static void __data_restriction_state_changed_cb(keynode_t *node, void *user_data)
+{
+ int data_restriction_state = RESTRICTION_STATE_INIT;
+ int wifi_state = 0;
+
+ _D("Data Restriction state is changed");
+ if (vconf_get_int(VCONFKEY_SETAPPL_DATA_RESTRICTION_INT, &data_restriction_state) < 0) {
+ _E("Failed to get vconfkey for data restriction state");
+ return;
+ }
+
+ switch (data_restriction_state) {
+ case RESTRICTION_STATE_INIT:
+ _D("Data Restriction State is initialized");
+ break;
+ case RESTRICTION_STATE_UNSET:
+ _D("Data Restriction State is Unset");
+ __network_enable();
+ moments_status_update_view();
+ break;
+ case RESTRICTION_STATE_SET:
+ _D("Data Restriction State is Set");
+ if (vconf_get_int(VCONFKEY_WIFI_STATE, &wifi_state) < 0) {
+ _E("Failed to get vconfkey for wifi state");
+ return;
+ }
+ if (wifi_state != VCONFKEY_WIFI_CONNECTED && moments_check_is_3g_device()) {
+ moments_status_network_icon_hide();
+ moments_status_update_view();
+ }
+ break;
+ default:
+ _E("Incorrect Data Restriction State");
+ break;
+ }
+}
+
static void __callforwarding_state_changed_cb(keynode_t *node, void *user_data)
{
_D("Callforwarding State is changed");