fix a bugs on changing favourites, send email, ctxpopup on retation mode
authordavid8.kim <david8.kim@samsung.com>
Thu, 28 Feb 2013 04:51:25 +0000 (13:51 +0900)
committerdavid8.kim <david8.kim@samsung.com>
Thu, 28 Feb 2013 04:51:25 +0000 (13:51 +0900)
mailbox/include/email-mailbox-noti-mgr.h
mailbox/src/email-mailbox-list.c
mailbox/src/email-mailbox-noti-mgr.c
packaging/org.tizen.email.spec

index cea2da3..8641de7 100755 (executable)
@@ -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);
index f3bf197..d436012 100755 (executable)
@@ -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 {
index ea27f8a..118baed 100755 (executable)
@@ -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;
index da6f244..0ce1f42 100755 (executable)
@@ -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