if (!strcmp(ev->keyname, KEY_ENTER) ||
!strcmp(ev->keyname, KEY_ENTER_REMOTE)) {
+ viewmgr_update_view(VIEW_USER_EDIT, 0, NULL);
datamgr_select_item(priv->dm, priv->foc->di);
} else if (!strcmp(ev->keyname, KEY_BACK) ||
!strcmp(ev->keyname, KEY_BACK_REMOTE)) {
viewmgr_pop_view();
+ } else if (!strcmp(ev->keyname, KEY_DOWN)) {
+ if (priv->foc->di->action == ITEM_SELECT_ACTION_PUSH)
+ return;
+
+ viewmgr_update_view(VIEW_USER_EDIT, 0, priv->foc->di);
+ viewmgr_push_view(VIEW_USER_EDIT);
}
}
if (!ic)
goto err;
- focus_ic = utils_add_icon(eo, di->focus_icon, PART_BAR_ITEM_ICON_FOCUS);
+ focus_ic = utils_add_icon(eo,
+ utils_get_focus_icon_from_icon(di->focus_icon),
+ PART_BAR_ITEM_ICON_FOCUS);
if (!focus_ic)
goto err;
Evas_Object *popup;
struct datamgr *dm;
+ struct datamgr_item *di;
};
+static void _get_profile(struct _priv *priv, const char **name,
+ const char **photo, const char **pin)
+{
+ *name = elm_entry_entry_get(priv->name);
+ *pin = elm_entry_entry_get(priv->pin);
+ elm_image_file_get(priv->icon, photo, NULL);
+ *photo = utils_get_icon_from_photo(*photo);
+}
+
static void _done_key_down(int id, void *data, Evas *e, Evas_Object *obj,
Evas_Event_Key_Down *ev)
{
+ struct _priv *priv;
+ const char *name, *pin, *photo;
+
+ if (!data) {
+ _ERR("Invalid argument");
+ return;
+ }
+
+ priv = data;
+
if (!strcmp(ev->keyname, KEY_ENTER)) {
- /* check state of user edit */
+ _get_profile(priv, &name, &photo, &pin);
+ if (priv->di) {
+ priv->di->action = ITEM_SELECT_ACTION_UPDATE;
+ priv->di->title = strdup(name ? name : "");
+ priv->di->icon = strdup(photo ? photo :
+ IMAGE_USER_DEFAULT);
+ priv->di->parameter = strdup(pin ? pin : "");
+ datamgr_select_item(priv->dm, priv->di);
+ } else
+ datamgr_add_item(priv->dm, name, photo, pin);
+ priv->di = NULL;
viewmgr_pop_view();
}
}
_ERR("failed to add done btn");
return false;
}
- inputmgr_add_callback(done, 0, &done_handler, NULL);
+ inputmgr_add_callback(done, 0, &done_handler, priv);
cancel = utils_add_button(priv->base, MESSAGE_BTN_CANCEL,
PART_USER_EDIT_BTN_CANCEL);
priv->ctxpopup = NULL;
file = evas_object_data_get(obj, KEY_ICON);
- focus_file = evas_object_data_get(obj, KEY_FOCUS_ICON);
+ focus_file = utils_get_focus_photo_from_photo(file);
if (!strcmp(file, ICON_ADD) || !strcmp(focus_file, ICON_ADD))
viewmgr_push_view(VIEW_PHOTO);
return NULL;
}
evas_object_data_set(eo, KEY_ICON, _icon_info->photo_file);
- evas_object_data_set(eo, KEY_FOCUS_ICON, _icon_info->focus_photo_file);
return eo;
}
!strcmp(ev->keyname, KEY_ENTER_REMOTE)) {
evas_object_del(priv->popup);
priv->popup = NULL;
- /* TODO: datamgr_select_item for deleting user */
+ priv->di->action = ITEM_SELECT_ACTION_DELETE;
+ datamgr_select_item(priv->dm, priv->di);
+ viewmgr_pop_view();
} else if (!strcmp(ev->keyname, KEY_BACK) ||
!strcmp(ev->keyname, KEY_BACK_REMOTE)) {
evas_object_del(priv->popup);
evas_object_show(popup);
priv->popup = popup;
- /* TODO: put the user name */
snprintf(buf, sizeof(buf), "%s %s?<br> %s", MESSAGE_DELETE,
- "", MESSAGE_DELETE_CONTENTS);
+ priv->di->title, MESSAGE_DELETE_CONTENTS);
elm_object_text_set(popup, buf);
delete_btn = utils_add_button(popup, MESSAGE_DELETE,
static void _show(void *data)
{
struct _priv *priv;
+ const char *photo, *focus_photo;
if (!data) {
_ERR("Invalid argument");
priv = data;
+ if (priv->di) {
+ elm_object_part_text_set(priv->base, PART_USER_EDIT_TITLE,
+ MESSAGE_EDIT_USER);
+ elm_entry_entry_set(priv->name, priv->di->title);
+ elm_entry_entry_set(priv->pin, "");
+ photo = utils_get_photo_from_icon(priv->di->icon);
+ focus_photo = utils_get_focus_photo_from_photo(photo);
+ _load_user_icon(priv, photo, focus_photo);
+ _load_del_btn(priv);
+ } else {
+ elm_object_part_text_set(priv->base, PART_USER_EDIT_TITLE,
+ MESSAGE_ADD_USER);
+ elm_entry_entry_set(priv->name, MESSAGE_ENTRY_NAME);
+ elm_entry_entry_set(priv->pin, MESSAGE_ENTRY_PIN);
+ _load_user_icon(priv, IMAGE_USER_CURRENT_DEFAULT,
+ IMAGE_USER_CURRENT_DEFAULT_FOCUS);
+ }
+
evas_object_show(priv->base);
- elm_object_part_text_set(priv->base, PART_USER_EDIT_TITLE,
- MESSAGE_ADD_USER);
- _load_user_icon(priv, IMAGE_USER_CURRENT_DEFAULT,
- IMAGE_USER_CURRENT_DEFAULT_FOCUS);
- _load_del_btn(priv);
}
static void _hide(void *data)
free(priv);
}
+static void _update(void *view_data, int update_type, void *data)
+{
+ struct _priv *priv;
+
+ if (!view_data) {
+ _ERR("Invalid argument");
+ return;
+ }
+
+ priv = view_data;
+ priv->di = data;
+}
+
static view_class vclass = {
.view_id = VIEW_USER_EDIT,
.create = _create,
.show = _show,
.hide = _hide,
- .destroy = _destroy
+ .destroy = _destroy,
+ .update = _update
};
view_class *view_user_edit_get_vclass(void)