#define SIG_LIST_ITEM_UNFOCUS "elm,state,unfocused"
#define MAX_WIRELESS_LEN 64
+#define NW_BUF_MAX_LENGTH (255)
#define MIN_WIRELESS_LEN 8
#define PADDING_X 4
#define PADDING_Y 0
/* If popup is shown, revert focus to popup */
if (priv->passcode_popup)
- elm_object_focus_set(priv->popup_btn1, EINA_TRUE);
+ elm_object_focus_set(priv->passcode_entry, EINA_TRUE);
priv->focused_wireless_item = item;
if (!wifi_name)
return;
- if (!viewmgr_remove_view(VIEW_WIRELESS_LIST)) {
- _ERR("Remove view failed");
+ if (!viewmgr_update_view(VIEW_WIRELESS_LIST, VIEW_HIDE, priv)) {
+ _ERR("Hide view failed");
}
if (!_draw_wifi_passcode_popup(priv, wifi_name, false)) {
_remove_wifi_passcode_popup(priv);
}
+/*
static void _popup_clicked_cb(int id, void *data, Evas_Object *obj)
{
struct _priv *priv;
_popup_connecting_wireless_status(priv);
_connect_wifi_with_passcode(priv);
- /* Update status for all items */
-/* if (!listmgr_update_grid(priv->listmgr, LIST_WIRELESS))
- _ERR("Listmgr update list failed.");*/
viewmgr_update_view(VIEW_WIRELESS_LIST, GRID_UPDATE, NULL);
break;
.clicked = _popup_clicked_cb,
.key_down = _popup_key_down_cb
};
-
+*/
static void _popup_entry_key_down_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
{
struct _priv *priv = (struct _priv *)data;
return;
}
- if (!strcmp(ev->keyname, KEY_ENTER)) {
- elm_object_focus_set(priv->popup_btn2, EINA_TRUE);
- } else if (!strcmp(ev->keyname, KEY_BACK)
+ if (!strcmp(ev->keyname, KEY_ENTER) || !strcmp(ev->keyname, KEY_BACK)
|| !strcmp(ev->keyname, KEY_ESC) || !strcmp(ev->keyname, KEY_ESC_WAY)
) {
- elm_object_focus_set(priv->popup_btn1, EINA_TRUE);
+ elm_object_focus_set(priv->passcode_entry, EINA_TRUE);
}
str = elm_entry_entry_get(priv->passcode_entry);
return;
len = strlen(str);
- if (len >= MIN_WIRELESS_LEN)
- elm_object_disabled_set(priv->popup_btn2, EINA_FALSE);
- else
- elm_object_disabled_set(priv->popup_btn2, EINA_TRUE);
+ if (len >= MIN_WIRELESS_LEN) {
+ if (elm_entry_input_panel_return_key_disabled_get(priv->passcode_entry) == EINA_TRUE) {
+ elm_entry_input_panel_return_key_disabled_set(priv->passcode_entry, EINA_FALSE); }
+ } else {
+ elm_entry_input_panel_return_key_disabled_set(priv->passcode_entry, EINA_TRUE);
+ }
}
static void _imf_commit_event_cb(void *data, Ecore_IMF_Context *ctx, void *event_info)
return;
len = strlen(buf);
- if (len >= MIN_WIRELESS_LEN)
- elm_object_disabled_set(priv->popup_btn2, EINA_FALSE);
- else
- elm_object_disabled_set(priv->popup_btn2, EINA_TRUE);
+ if (len >= MAX_WIRELESS_LEN) {
+ if (elm_entry_input_panel_return_key_disabled_get(priv->passcode_entry) == EINA_TRUE) {
+ elm_entry_input_panel_return_key_disabled_set(priv->passcode_entry, EINA_FALSE);}
+ } else {
+ elm_entry_input_panel_return_key_disabled_set(priv->passcode_entry, EINA_TRUE);
+ }
}
static void _imf_delete_event_cb(void *data, Ecore_IMF_Context *ctx, void *event_info)
if (NULL == priv)
return;
- elm_object_disabled_set(priv->popup_btn2, EINA_TRUE);
+// elm_object_disabled_set(priv->popup_btn2, EINA_TRUE);
}
static void _check_passcode_input_cb(void *data, Evas_Object *entry, char **text)
return;
}
- inputmgr_remove_callback(priv->popup_btn1, &_popup_input_handler);
- inputmgr_remove_callback(priv->popup_btn2, &_popup_input_handler);
elm_entry_input_panel_enabled_set(priv->passcode_entry, EINA_FALSE);
- priv->popup_btn1 = NULL;
- priv->popup_btn2 = NULL;
evas_object_del(priv->passcode_entry);
priv->passcode_entry = NULL;
priv->passcode_popup = NULL;
}
+Eina_Bool _keyboard_down_cb(void *data, Evas_Object *obj, Evas_Object *src, Evas_Callback_Type type, void *event_info)
+{
+
+ struct _priv *priv = data;
+ if (NULL == priv)
+ return false;
+ const char *doneKey_str = "Select";
+ const char *cancelKey_str = "Cancel";
+ //const char *clearKey_str = "Clear";
+ const char *BACK_KEY_STR = "XF86Back";
+ Evas_Event_Key_Up *pInfo = (Evas_Event_Key_Up*) event_info;
+
+
+ if (!strncmp(pInfo->keyname, cancelKey_str, strlen(cancelKey_str)) ||
+ !strncmp(pInfo->keyname, BACK_KEY_STR, NW_BUF_MAX_LENGTH))
+ {
+
+ _remove_wifi_passcode_popup(priv);
+ }
+
+ else if (!strncmp(pInfo->keyname, doneKey_str, strlen(doneKey_str)))
+ {
+ _DBG("Done Key Pressed from IME");
+
+ _popup_connecting_wireless_status(priv);
+ _connect_wifi_with_passcode(priv);
+ }
+
+
+ return true;
+}
+
+
static bool _draw_wifi_passcode_popup(struct _priv *priv, char *wifi_name,
bool isReconnect)
{
- Evas_Object *popup, *ly, *entry, *btn1, *btn2;
+ Evas_Object *popup, *entry, *ly;
Evas_Object *scroller;
Ecore_IMF_Context *ctx;
return false;
}
- popup = utils_add_popup(priv->base, STYLE_POPUP, STR_ENTER_PASSCODE, NULL);
+ popup = utils_add_popup(priv->base, STYLE_POPUP, wifi_name, NULL);
if (!popup) {
_ERR("Add popup failed");
return false;
evas_object_del(popup);
return false;
}
- elm_object_part_text_set(ly, PART_WIFI_NAME, wifi_name);
+
+// elm_object_part_text_set(ly, PART_WIFI_NAME, wifi_name);
scroller = elm_scroller_add(ly);
evas_object_size_hint_weight_set(scroller, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
elm_object_content_set(popup, ly);
- btn1 = utils_add_button(ly, PART_WIFI_POPUP_BTN_CANCEL, STYLE_DISABLE_BTN, STR_CANCEL);
- if (!btn1) {
- _ERR("Add button failed.");
- evas_object_del(popup);
- return false;
- }
-
- btn2 = utils_add_button(ly, PART_WIFI_POPUP_BTN_OK, STYLE_DISABLE_BTN, STR_OK);
- if (!btn2) {
- _ERR("Add button failed.");
- evas_object_del(popup);
- return false;
- }
priv->passcode_popup = popup;
priv->passcode_entry = entry;
- priv->popup_btn1 = btn1;
- priv->popup_btn2 = btn2;
/* use this function to limit entry string */
elm_entry_markup_filter_append(entry, _check_passcode_input_cb, priv);
- inputmgr_add_callback(priv->popup_btn1, EO_BTN_CANCEL, &_popup_input_handler, priv);
- inputmgr_add_callback(priv->popup_btn2, EO_BTN_OK, &_popup_input_handler, priv);
+ elm_object_event_callback_add(entry, (Elm_Event_Cb) _keyboard_down_cb, priv); //This callback for Done Button in IME.
+ elm_entry_input_panel_return_key_disabled_set(entry, EINA_TRUE);
evas_object_event_callback_add(entry, EVAS_CALLBACK_KEY_DOWN,
_popup_entry_key_down_cb, priv);
ecore_imf_context_event_callback_add(ctx,
ECORE_IMF_CALLBACK_DELETE_SURROUNDING, _imf_delete_event_cb, priv);
- elm_object_disabled_set(priv->popup_btn2, EINA_TRUE);
/* Set focus into entry */
- elm_object_focus_set(priv->popup_btn1, EINA_TRUE);
+ elm_object_focus_set(priv->passcode_popup, EINA_TRUE);
if (isReconnect)
elm_object_part_text_set(ly, PART_WIFI_POPUP_ERROR_MSG, STR_WIRELESS_WRONG_PWD);
evas_object_show(priv->passcode_popup);
- elm_object_focus_set(entry, EINA_TRUE);
+ elm_object_focus_set(priv->passcode_entry, EINA_TRUE);
+// elm_entry_input_panel_show(priv->passcode_entry);
return true;
}