From: david8.kim Date: Thu, 28 Feb 2013 04:51:25 +0000 (+0900) Subject: fix a bugs on changing favourites, send email, ctxpopup on retation mode X-Git-Tag: 2.1b_release~3^2~13 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=88901bbe93afccfd7904505a0c7ee2d5c9c8fa9b;p=apps%2Fcore%2Fpreloaded%2Femail.git fix a bugs on changing favourites, send email, ctxpopup on retation mode --- diff --git a/mailbox/include/email-mailbox-noti-mgr.h b/mailbox/include/email-mailbox-noti-mgr.h index cea2da3..8641de7 100755 --- a/mailbox/include/email-mailbox-noti-mgr.h +++ b/mailbox/include/email-mailbox-noti-mgr.h @@ -21,6 +21,7 @@ void _dbus_receiver_setup(EmailMailboxUGD *mailbox_ugd); void _remove_dbus_receiver(EmailMailboxUGD *mailbox_ugd); void _release_noti_Q_event(EmailMailboxUGD *mailbox_ugd); +void email_maillist_insert_sorted(list_data *ld); void _move_mail_item_cb(void *data, Ecore_Thread *thd, void* msg_data); void _move_finish_cb(void* data, Ecore_Thread *thd); void _delete_mail_item_cb(void *data, Ecore_Thread *thd, void* msg_data); diff --git a/mailbox/src/email-mailbox-list.c b/mailbox/src/email-mailbox-list.c index f3bf197..d436012 100755 --- a/mailbox/src/email-mailbox-list.c +++ b/mailbox/src/email-mailbox-list.c @@ -1216,6 +1216,11 @@ void email_maillist_select_info(EmailMailboxUGD *mailbox_ugd) 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"); } @@ -1348,6 +1353,11 @@ static void _list_item_clicked(void *data, Evas_Object *obj, void *event_info) 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; } @@ -3218,6 +3228,49 @@ void _worker_get_move_mail_list_cb(void* data, Ecore_Thread *thd) 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 { @@ -3241,6 +3294,49 @@ void _worker_get_move_mail_list_cb(void* data, Ecore_Thread *thd) 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 { diff --git a/mailbox/src/email-mailbox-noti-mgr.c b/mailbox/src/email-mailbox-noti-mgr.c index ea27f8a..118baed 100755 --- a/mailbox/src/email-mailbox-noti-mgr.c +++ b/mailbox/src/email-mailbox-noti-mgr.c @@ -38,7 +38,6 @@ extern char *group_title[EMAIL_GROUP_MAX][2]; 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); @@ -116,7 +115,7 @@ void _delete_finish_cb(void* data, Ecore_Thread *thd) 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; @@ -733,8 +732,13 @@ static void _edbus_event_mailbox_receive(void *local_data, DBusMessage *message) 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; @@ -743,9 +747,14 @@ static void _edbus_event_mailbox_receive(void *local_data, DBusMessage *message) 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; diff --git a/packaging/org.tizen.email.spec b/packaging/org.tizen.email.spec index da6f244..0ce1f42 100755 --- a/packaging/org.tizen.email.spec +++ b/packaging/org.tizen.email.spec @@ -1,6 +1,6 @@ Name: org.tizen.email Summary: Native email application -Version: 0.0.30 +Version: 0.0.31 Release: 1 Group: devel License: Flora