return level;
}
+static const char *wifi_error_to_string(wifi_error_e err_type)
+{
+ switch (err_type) {
+ case WIFI_ERROR_NONE:
+ return "NONE";
+ case WIFI_ERROR_INVALID_PARAMETER:
+ return "INVALID_PARAMETER";
+ case WIFI_ERROR_OUT_OF_MEMORY:
+ return "OUT_OF_MEMORY";
+ case WIFI_ERROR_INVALID_OPERATION:
+ return "INVALID_OPERATION";
+ case WIFI_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED:
+ return "ADDRESS_FAMILY_NOT_SUPPORTED";
+ case WIFI_ERROR_OPERATION_FAILED:
+ return "OPERATION_FAILED";
+ case WIFI_ERROR_NO_CONNECTION:
+ return "NO_CONNECTION";
+ case WIFI_ERROR_NOW_IN_PROGRESS:
+ return "NOW_IN_PROGRESS";
+ case WIFI_ERROR_ALREADY_EXISTS:
+ return "ALREADY_EXISTS";
+ case WIFI_ERROR_OPERATION_ABORTED:
+ return "OPERATION_ABORTED";
+ case WIFI_ERROR_DHCP_FAILED:
+ return "DHCP_FAILED";
+ case WIFI_ERROR_INVALID_KEY:
+ return "INVALID_KEY";
+ case WIFI_ERROR_NO_REPLY:
+ return "NO_REPLY";
+ case WIFI_ERROR_SECURITY_RESTRICTED:
+ return "SECURITY_RESTRICTED";
+ case WIFI_ERROR_PERMISSION_DENIED:
+ return "PERMISSION_DENIED";
+ case WIFI_ERROR_NOT_SUPPORTED:
+ return "NOT_SUPPORTED";
+ }
+
+ return "UNKNOWN";
+}
+
+static void __wireless_device_state_callback(wifi_device_state_e state, void* user_data)
+{
+ if (state == WIFI_DEVICE_STATE_ACTIVATED) {
+ _DBG("Device state changed callback state : Activated");
+ } else {
+ _DBG("Device state changed callback state : Deactivated");
+ }
+}
+
static void *_create(void (*event_cb)(enum event_type type, void *data),
void *cb_data)
{
struct _priv *priv;
+ bool state = false;
+ int rv = 0;
priv = calloc(1, sizeof(*priv));
if (!priv) {
if (wifi_initialize() != WIFI_ERROR_NONE) {
_ERR("wifi_initialize failed.");
- if (event_cb)
- event_cb(EVENT_DATA_INIT_FAIL_WIRELESS, cb_data);
+ goto FAIL;
+ }
- free(priv);
- return NULL;
+ rv = wifi_is_activated(&state);
+ if (rv != WIFI_ERROR_NONE) {
+ _ERR("Fail to get Wi-Fi device state [%s]", wifi_error_to_string(rv));
+ goto FAIL;
}
+ /* Set device state callback */
+ wifi_set_device_state_changed_cb(__wireless_device_state_callback, priv);
+
return priv;
+
+FAIL:
+ if (event_cb)
+ event_cb(EVENT_DATA_INIT_FAIL_WIRELESS, cb_data);
+
+ free(priv);
+ return NULL;
}
static void _free_wifi_list(Eina_List *list)
if (!activated) {
_ERR("wifi device is not activated.");
+ if (priv->event_cb)
+ priv->event_cb(EVENT_DATA_INIT_FAIL_WIRELESS, priv->cb_data);
return;
}
static void _wifi_activated_cb(wifi_error_e err, void *data)
{
+ struct _priv *priv;
int r;
if (!data) {
return;
}
+ priv = data;
+
if (err != WIFI_ERROR_NONE) {
_ERR("wifi activation failed.");
+ if (priv->event_cb)
+ priv->event_cb(EVENT_DATA_INIT_FAIL_WIRELESS, priv->cb_data);
return;
}
static void _retry_wireless_network(struct _priv *priv)
{
- /* If device doesn't support wireless
- * i.e. emulator */
- if (!priv->wireless_support) {
- elm_object_signal_emit(priv->ly, SIG_NO_WIRELESS, SRC_ELM);
- elm_object_signal_emit(priv->ly, SIG_LOADING_STOP, SRC_ELM);
- elm_object_part_text_set(priv->ly, PART_NO_NETWORK_TEXT, STR_NO_NETWORK);
- listmgr_hide_grid(priv->listmgr, LIST_WIRELESS,
- PART_WIRELESS_LIST);
- return;
- }
-
/* If wireless scan is already requested,
* do not update again. it would returns error. */
if (priv->wireless_update_requested) {
static void _draw_no_contents_message(struct _priv *priv)
{
elm_object_signal_emit(priv->ly, SIG_NO_WIRELESS, SRC_ELM);
- elm_object_part_text_set(priv->ly, PART_NO_NETWORK_TEXT,
- STR_NO_NETWORK);
+ elm_object_signal_emit(priv->ly, SIG_LOADING_STOP, SRC_ELM);
+ elm_object_part_text_set(priv->ly, PART_NO_NETWORK_TEXT, STR_NO_NETWORK);
+ listmgr_hide_grid(priv->listmgr, LIST_WIRELESS,
+ PART_WIRELESS_LIST);
}
static void _wireless_data_found_done(struct _priv *priv, Eina_List *list)
switch (type) {
case EVENT_DATA_INIT_FAIL_WIRELESS:
/* Failed to initialize wireless */
+ _DBG("Wireless is not activated");
priv->wireless_support = false;
+ priv->wireless_update_requested = false;
elm_object_signal_emit(priv->ly, SIG_NO_WIRELESS, SRC_ELM);
elm_object_signal_emit(priv->ly, SIG_LOADING_STOP, SRC_ELM);
{
struct _priv *priv = (struct _priv *)data;
Evas_Event_Key_Down *ev = (Evas_Event_Key_Down*)event_info;
- const char *str = NULL;
if (!priv || !ev) {
_ERR("Invalid callback data !");