struct datamgr *wirelessmgr;
Elm_Object_Item *selected_wireless_item;
Elm_Object_Item *focused_wireless_item;
+ Elm_Object_Item *connecting_wireless_item;
Evas_Object *passcode_popup;
Evas_Object *passcode_entry;
enum network_type cur_type;
static void _retry_wired_network(struct _priv *priv);
static void _retry_wireless_network(struct _priv *priv);
static void _wireless_selected_cb(Elm_Object_Item *it, void *data);
+static bool _draw_wifi_passcode_popup(struct _priv *priv, char *wifi_name,
+ bool isReconnect);
static void _mouse_move_cb(int id, void *data, Evas *e, Evas_Object *obj,
Evas_Event_Mouse_Move *ev)
return;
}
- if (it != priv->selected_wireless_item)
+ if (it != priv->connecting_wireless_item)
elm_object_item_signal_emit(it, SIG_LOADING_STOP, SRC_ELM);
}
break;
case EVENT_DATA_SELECT_DONE:
- elm_object_item_signal_emit(priv->selected_wireless_item,
+ elm_object_item_signal_emit(priv->connecting_wireless_item,
SIG_LOADING_STOP, SRC_ELM);
if (!listmgr_update_grid(priv->listmgr, LIST_WIRELESS))
case EVENT_DATA_SELECT_FAIL:
_DBG("Failed to connect");
- elm_object_item_signal_emit(priv->selected_wireless_item,
+ listmgr_foreach_list(priv->listmgr, LIST_WIRELESS,
+ _grid_remove_connecting_state, priv);
+ elm_object_item_signal_emit(priv->connecting_wireless_item,
SIG_LOADING_STOP, SRC_ELM);
- elm_object_item_signal_emit(priv->selected_wireless_item,
+ elm_object_item_signal_emit(priv->connecting_wireless_item,
SIG_CONNECTION_FAIL, SRC_ELM);
/* Update connection state for all items.
_ERR("Listmgr update list failed.");
break;
+ case EVENT_DATA_INVALID_PWD_WIRELESS: {
+ char *wifi_name;
+ struct wifi_ap_info *ap_info;
+ ap_info = elm_object_item_data_get(priv->connecting_wireless_item);
+ if (!ap_info) {
+ _ERR("Get data failed.");
+ break;
+ }
+ wifi_name = ap_info->essid;
+
+ _DBG("Invalid password");
+ /* Remove connection state from other items */
+ listmgr_foreach_list(priv->listmgr, LIST_WIRELESS,
+ _grid_remove_connecting_state, priv);
+ elm_object_item_signal_emit(priv->connecting_wireless_item,
+ SIG_LOADING_STOP, SRC_ELM);
+ elm_object_item_signal_emit(priv->connecting_wireless_item,
+ SIG_CONNECTION_FAIL, SRC_ELM);
+
+ /* Update connection state for all items.
+ * When profile is switched to ethernet,
+ * 'Connected' check icon still remains.. */
+ if (!listmgr_update_grid(priv->listmgr, LIST_WIRELESS))
+ _ERR("Listmgr update list failed.");
+
+ _draw_wifi_passcode_popup(priv, wifi_name, true);
+ break;
+ }
+
case EVENT_DATA_UPDATE_WIRED:
SETTING_TRACE("Updated wired network");
/* Wired network setting is changed */
return;
}
- if (!datamgr_select(priv->wirelessmgr, priv->selected_wireless_item,
+ priv->connecting_wireless_item = priv->selected_wireless_item;
+ if (!datamgr_select(priv->wirelessmgr, priv->connecting_wireless_item,
passcode)) {
_ERR("Unavailable status for selecting wifi.");
return;
}
- elm_object_item_signal_emit(priv->selected_wireless_item,
+ elm_object_item_signal_emit(priv->connecting_wireless_item,
SIG_LOADING_START, SRC_ELM);
/* Remove connection state from other items */
case EO_BTN_OK:
_connect_wifi_with_passcode(priv);
+
+ /* Update status for all items */
+ if (!listmgr_update_grid(priv->listmgr, LIST_WIRELESS))
+ _ERR("Listmgr update list failed.");
break;
default:
priv->passcode_popup = NULL;
}
-static bool _draw_wifi_passcode_popup(struct _priv *priv, char *wifi_name)
+static bool _draw_wifi_passcode_popup(struct _priv *priv, char *wifi_name,
+ bool isReconnect)
{
Evas_Object *popup, *ly, *entry, *btn1, *btn2;
Evas_Object *scroller;
/* Set focus into entry */
elm_object_focus_set(priv->popup_btn1, EINA_TRUE);
+ if (isReconnect)
+ elm_object_part_text_set(ly, PART_WIFI_POPUP_ERROR_MSG, STR_WIRELESS_WRONG_PWD);
+
evas_object_show(popup);
return true;
}
required = settings_wireless_passharase_required(ap_info->ap);
- _DBG("Passphrase required : %s", (required) ? "True" : "False");
+ _DBG("[%s] required : %s", ap_info->essid, (required) ? "True" : "False");
if (required) {
wifi_name = ap_info->essid;
if (!wifi_name)
return;
- if (!_draw_wifi_passcode_popup(priv, wifi_name)) {
+ if (!_draw_wifi_passcode_popup(priv, wifi_name, false)) {
_ERR("Draw passcode popup failed.");
return;
}
return;
}
- elm_object_item_signal_emit(priv->selected_wireless_item,
+ priv->connecting_wireless_item = priv->selected_wireless_item;
+ elm_object_item_signal_emit(priv->connecting_wireless_item,
SIG_LOADING_START, SRC_ELM);
/* Remove connection state from other items */