list = edit_list;
cnt = eina_list_count(list);
+ if (mailbox_ugd->ctxpopup) {
+ evas_object_del(mailbox_ugd->ctxpopup);
+ mailbox_ugd->ctxpopup = NULL;
+ }
+
if(mailbox_ugd->selectioninfo_layout) {
elm_object_signal_emit(mailbox_ugd->sub_layout[mailbox_ugd->previous_view], "hide_selection_info", "elm");
}
return;
}
+ if (ld->mailbox_ugd->ctxpopup) {
+ evas_object_del(ld->mailbox_ugd->ctxpopup);
+ ld->mailbox_ugd->ctxpopup = NULL;
+ }
+
if (b_editmode) {
ld->mailbox_ugd->view_type = EMAIL_VIEW_EDIT;
}
ecore_thread_feedback(thd, ret);
debug_log("Mail(%d) found in this view(%d)", *idx, vt);
}
+
+ /* add sent email in Sentbox */
+ debug_log("mailbox_type(%d), req->mailbox_type(%d)", mailbox_ugd->mailbox_type, req->mailbox_type);
+ if (mailbox_ugd->mailbox_type == req->mailbox_type) {
+ if (list_lock) {
+ debug_log("locked");
+ if (!evas_object_visible_get(mailbox_ugd->gl[mailbox_ugd->view_type]))
+ evas_object_show(mailbox_ugd->gl[mailbox_ugd->view_type]);
+
+ edje_object_signal_emit(_EDJ(mailbox_ugd->search_layout), "hide_noc", "elm");
+ edje_object_signal_emit(_EDJ(mailbox_ugd->search_layout), "show_list", "elm");
+
+ list_lock = false;
+ }
+
+ email_mail_list_item_t* mail_info = get_mail_info(*idx);
+ if (!mail_info) {
+ debug_warning("no email exits(%d)", *idx);
+ goto CLEANUP;
+ }
+ list_data *ld = make_list_data(mail_info, NULL, mailbox_ugd);
+ if(!ld) {
+ debug_warning("make_list_data() failed.");
+ goto CLEANUP;
+ }
+
+ /* The group items might be inserted before to receive any normal mail item */
+ mailbox_ugd->list_data[mailbox_ugd->view_type] =
+ g_list_insert_sorted(mailbox_ugd->list_data[mailbox_ugd->view_type], ld, _compare_sort_rule_by_viewtype);
+
+ if(mailbox_ugd->view_type != EMAIL_VIEW_DATE)
+ email_maillist_insert_sorted(ld);
+
+ if (mailbox_ugd->view_type != EMAIL_VIEW_RECIPIENT) {
+ if (!group_title[ld->group_index][0])
+ group_title[ld->group_index][0] = g_strdup(ld->group_title);
+ if (!group_title[ld->group_index][1])
+ group_title[ld->group_index][1] = g_strdup(ld->group_date);
+ debug_log("group_title: %s", group_title[ld->group_index][0]);
+ }
+
+ _insert_mail_to_mailist(mailbox_ugd, ld);
+ }
}
}
else {
ecore_thread_feedback(thd, ret);
debug_log("Mail(%d) found in this view(%d)", *idx, vt);
}
+
+ /* add sent email in Sentbox */
+ debug_log("mailbox_id(%d), dst_mailbox_id(%d)", mailbox_ugd->mailbox_id, dst_mailbox_id);
+ if (mailbox_ugd->mailbox_id == dst_mailbox_id) {
+ if (list_lock) {
+ debug_log("locked");
+ if (!evas_object_visible_get(mailbox_ugd->gl[mailbox_ugd->view_type]))
+ evas_object_show(mailbox_ugd->gl[mailbox_ugd->view_type]);
+
+ edje_object_signal_emit(_EDJ(mailbox_ugd->search_layout), "hide_noc", "elm");
+ edje_object_signal_emit(_EDJ(mailbox_ugd->search_layout), "show_list", "elm");
+
+ list_lock = false;
+ }
+
+ email_mail_list_item_t* mail_info = get_mail_info(*idx);
+ if (!mail_info) {
+ debug_warning("no email exits(%d)", *idx);
+ goto CLEANUP;
+ }
+ list_data *ld = make_list_data(mail_info, NULL, mailbox_ugd);
+ if(!ld) {
+ debug_warning("make_list_data() failed.");
+ goto CLEANUP;
+ }
+
+ /* The group items might be inserted before to receive any normal mail item */
+ mailbox_ugd->list_data[mailbox_ugd->view_type] =
+ g_list_insert_sorted(mailbox_ugd->list_data[mailbox_ugd->view_type], ld, _compare_sort_rule_by_viewtype);
+
+ if(mailbox_ugd->view_type != EMAIL_VIEW_DATE)
+ email_maillist_insert_sorted(ld);
+
+ if (mailbox_ugd->view_type != EMAIL_VIEW_RECIPIENT) {
+ if (!group_title[ld->group_index][0])
+ group_title[ld->group_index][0] = g_strdup(ld->group_title);
+ if (!group_title[ld->group_index][1])
+ group_title[ld->group_index][1] = g_strdup(ld->group_date);
+ debug_log("group_title: %s", group_title[ld->group_index][0]);
+ }
+
+ _insert_mail_to_mailist(mailbox_ugd, ld);
+ }
}
}
else {
DBusHandlerResult _on_dbus_receive(DBusConnection *connection, DBusMessage *message, void *user_data);
static void _edbus_event_mailbox_receive(void *local_data, DBusMessage *message);
static Eina_Bool email_check_account_list(int account_id);
-static void email_maillist_insert_sorted(list_data *ld);
static void add_seed_mail_cb(void *data, Ecore_Thread *thd, void* msg_data);
static gint _find_insert_position(gconstpointer a, gconstpointer b);
static gint _find_next_group_position(gconstpointer a, gconstpointer b);
debug_leave();
}
-static void email_maillist_insert_sorted(list_data *ld)
+void email_maillist_insert_sorted(list_data *ld)
{
debug_log("");
EmailMailboxUGD *mailbox_ugd = ld->mailbox_ugd;
debug_log("idx: [%d]", *idx);
list_data *ld = _find_mailinfo_by_mailid(*idx, mailbox_ugd->list_data[view_type]);
if(ld) {
- ld->is_seen = value;
- elm_genlist_item_update(ld->item);
+ if (view_type == EMAIL_VIEW_UNREAD) {
+ mailbox_delete_mail_item_from_list(mailbox_ugd, ld);
+ _mailbox_list_add_item(mailbox_ugd, *idx);
+ } else {
+ ld->is_seen = value;
+ elm_genlist_item_update(ld->item);
+ }
}
}
break;
debug_log("idx: [%d]", *idx);
list_data *ld = _find_mailinfo_by_mailid(*idx, mailbox_ugd->list_data[view_type]);
if(ld) {
- ld->followup_flag = value;
- ld->imp_sel = value;
- elm_genlist_item_update(ld->item);
+ if (view_type == EMAIL_VIEW_IMPORTANT) {
+ mailbox_delete_mail_item_from_list(mailbox_ugd, ld);
+ _mailbox_list_add_item(mailbox_ugd, *idx);
+ } else {
+ ld->followup_flag = value;
+ ld->imp_sel = value;
+ elm_genlist_item_update(ld->item);
+ }
}
}
break;