Fixed mail move issue
authorKim Jinho <jinho912.kim@samsung.com>
Fri, 25 Jan 2013 08:25:45 +0000 (17:25 +0900)
committerKim Jinho <jinho912.kim@samsung.com>
Fri, 25 Jan 2013 08:25:45 +0000 (17:25 +0900)
mailbox/src/email-mailbox-controlbar.c
mailbox/src/email-mailbox-item.c
mailbox/src/email-mailbox-list.c

index 40808a3..57fbecb 100755 (executable)
@@ -389,39 +389,41 @@ static void _more_toolbar_clicked_cb(void *data, Evas_Object *obj, void *event_i
                        }
                }
 
-               if(mailbox_ugd->mode != EMAIL_MAILBOX_MODE_MAILBOX) {
-                       for (i = 1; i < checked_count; i++) {
-                               Eina_List *nth_list = eina_list_nth_list(list, i);
-                               list_data *ld = eina_list_data_get(nth_list);
-
-                               if (first_account_type != GET_ACCOUNT_SERVER_TYPE(ld->account_id)) {
-                                       use_flag_opt = false;
-                                       break;
+               if(mailbox_ugd->mailbox_type != EMAIL_MAILBOX_TYPE_OUTBOX) {
+                       if(mailbox_ugd->mode != EMAIL_MAILBOX_MODE_MAILBOX) {
+                               for (i = 1; i < checked_count; i++) {
+                                       Eina_List *nth_list = eina_list_nth_list(list, i);
+                                       list_data *ld = eina_list_data_get(nth_list);
+
+                                       if (first_account_type != GET_ACCOUNT_SERVER_TYPE(ld->account_id)) {
+                                               use_flag_opt = false;
+                                               break;
+                                       }
                                }
                        }
-               }
 
-               if(use_flag_opt) {
-                       use_popup = false;
-                       for (i = 1; i < checked_count; i++) {
-                               Eina_List *nth_list = eina_list_nth_list(list, i);
-                               list_data *ld = eina_list_data_get(nth_list);
+                       if(use_flag_opt) {
+                               use_popup = false;
+                               for (i = 1; i < checked_count; i++) {
+                                       Eina_List *nth_list = eina_list_nth_list(list, i);
+                                       list_data *ld = eina_list_data_get(nth_list);
 
-                               if (ld->imp_sel != first_favourite_status) {
-                                       use_popup = true;
-                                       break;
+                                       if (ld->imp_sel != first_favourite_status) {
+                                               use_popup = true;
+                                               break;
+                                       }
                                }
-                       }
 
-                       icon = elm_icon_add(mailbox_ugd->ctxpopup);
-                       elm_image_file_set(icon, MAILBOX_MORE_OPTION_SET_FAVOURITE, NULL);
-                       if(use_popup) {
-                               elm_ctxpopup_item_append(mailbox_ugd->ctxpopup, N_("Set all as"), icon, _create_favourite_status_popup_cb, mailbox_ugd);
-                       } else {
-                               if (first_favourite_status) {
-                                       elm_ctxpopup_item_append(mailbox_ugd->ctxpopup, N_("Set as unfavourites"), icon, _set_as_unfavourite_mail_cb, mailbox_ugd);
+                               icon = elm_icon_add(mailbox_ugd->ctxpopup);
+                               elm_image_file_set(icon, MAILBOX_MORE_OPTION_SET_FAVOURITE, NULL);
+                               if(use_popup) {
+                                       elm_ctxpopup_item_append(mailbox_ugd->ctxpopup, N_("Set all as"), icon, _create_favourite_status_popup_cb, mailbox_ugd);
                                } else {
-                                       elm_ctxpopup_item_append(mailbox_ugd->ctxpopup, N_("Set as favourites"), icon, _set_as_favourite_mail_cb, mailbox_ugd);
+                                       if (first_favourite_status) {
+                                               elm_ctxpopup_item_append(mailbox_ugd->ctxpopup, N_("Set as unfavourites"), icon, _set_as_unfavourite_mail_cb, mailbox_ugd);
+                                       } else {
+                                               elm_ctxpopup_item_append(mailbox_ugd->ctxpopup, N_("Set as favourites"), icon, _set_as_favourite_mail_cb, mailbox_ugd);
+                                       }
                                }
                        }
                }
@@ -778,9 +780,13 @@ static Evas_Object *create_edit_control_option_for_split_view(EmailMailboxUGD *m
        elm_object_item_part_content_set(mailbox_ugd->split_navi_it, "toolbar_button1", delete_btn);
        mailbox_ugd->split_lbtn = delete_btn;
 
-       move_btn = _create_toolbar_btn(mailbox_ugd->navi_bar, dgettext("sys_string", "IDS_COM_BODY_MOVE"), _move_mail_cb, mailbox_ugd);
-       elm_object_item_part_content_set(mailbox_ugd->split_navi_it, "toolbar_button2", move_btn);
-       mailbox_ugd->split_rbtn = move_btn;
+       if(mailbox_ugd->mailbox_type != EMAIL_MAILBOX_TYPE_OUTBOX
+                       && mailbox_ugd->mailbox_type != EMAIL_MAILBOX_TYPE_DRAFT
+                       && mailbox_ugd->mailbox_type != EMAIL_MAILBOX_TYPE_SENTBOX) {
+               move_btn = _create_toolbar_btn(mailbox_ugd->navi_bar, dgettext("sys_string", "IDS_COM_BODY_MOVE"), _move_mail_cb, mailbox_ugd);
+               elm_object_item_part_content_set(mailbox_ugd->split_navi_it, "toolbar_button2", move_btn);
+               mailbox_ugd->split_rbtn = move_btn;
+       }
 
        return NULL;
 
@@ -998,7 +1004,9 @@ static Evas_Object *create_edit_control_option(EmailMailboxUGD *mailbox_ugd)
        elm_object_item_part_content_set(mailbox_ugd->navibar_item[mailbox_ugd->previous_view], "toolbar_button1", delete_btn);
        mailbox_ugd->controlbar_lbtn = delete_btn;
 
-       if (!mailbox_ugd->isRotate) {
+       if(mailbox_ugd->mailbox_type != EMAIL_MAILBOX_TYPE_OUTBOX
+                       && mailbox_ugd->mailbox_type != EMAIL_MAILBOX_TYPE_DRAFT
+                       && mailbox_ugd->mailbox_type != EMAIL_MAILBOX_TYPE_SENTBOX) {
                move_btn = _create_toolbar_btn(mailbox_ugd->navi_bar, dgettext("sys_string", "IDS_COM_BODY_MOVE"), _move_mail_cb, mailbox_ugd);
                elm_object_item_part_content_set(mailbox_ugd->navibar_item[mailbox_ugd->previous_view], "toolbar_button2", move_btn);
                mailbox_ugd->controlbar_rbtn = move_btn;
index 97fa363..91575ec 100755 (executable)
@@ -54,22 +54,9 @@ void mailbox_process_move_mail(EmailMailboxUGD *mailbox_ugd)
                        mailbox_ugd->move_src_mailbox_id = ld->mailbox_id;
                }
 
-               debug_log("Thread... previous_view[%d]", mailbox_ugd->previous_view);
-               /* Get thread mail list */
-               email_mail_list_item_t *mailbox_data = NULL;
-               int mail_list = 0;
-               int err = email_get_mail_list(ld->account_id, 0, ld->thread_id,
-                                                       -1, /* start_index */
-                                                       -1, /* limit_count */
-                                                       _mailbox_conv_sort_type(mailbox_ugd->sort_type), &mailbox_data, &mail_list);
-               if( err != EMAIL_ERROR_NONE ) {
-                       debug_warning("email_get_mail_list_ex - err(%d)", err);
-               }
-               int k = 0;
-               for( ; k<mail_list ; k++ )
-                       mailbox_ugd->selected_list = g_list_prepend(mailbox_ugd->selected_list,
-                                                                                                       GINT_TO_POINTER(mailbox_data[k].mail_id));
-               FREE(mailbox_data);
+               debug_log("not Thread... previous_view[%d]", mailbox_ugd->previous_view);
+               int mail_id = ld->mail_id;
+               mailbox_ugd->selected_list = g_list_prepend(mailbox_ugd->selected_list, GINT_TO_POINTER(mail_id));
        }
 
 
index d6cefe4..15c8d28 100755 (executable)
@@ -3166,46 +3166,21 @@ void _worker_get_move_mail_list_cb(void* data, Ecore_Thread *thd)
        {
                if(vt != EMAIL_VIEW_EDIT && vt != EMAIL_VIEW_SEARCH)
                {
-                       switch (folder_type)
-                       {
-                               case EMAIL_MAILBOX_TYPE_TRASH:
-                               case EMAIL_MAILBOX_TYPE_SPAMBOX:
-                                       debug_log("size of mail_list : %d", g_list_length(mail_list));
-                                       G_LIST_FOREACH(mail_list, cur, idx) {
-                                               debug_log("idx: [%d]", *idx);
-                                               ld = _find_mailinfo_by_mailid(*idx, mailbox_ugd->list_data[vt]);
-                                               if(ld) {
-                                                       delete_ret_t *ret = MEM_ALLOC(ret, 1);
-                                                       if(!ret) return;
-                                                       *ret = (delete_ret_t) {ld, *idx};
-                                                       CHECK_THREAD_BUSY();
-                                                       ecore_thread_feedback(thd, ret);
-                                               }
-                                       }
-                               break;
-
-                               case EMAIL_MAILBOX_TYPE_SENTBOX:
-                                       G_LIST_FOREACH(mail_list, cur, idx) {
-                                               debug_log("idx: [%d]", *idx);
-                                               ld = _find_mailinfo_by_mailid(*idx, mailbox_ugd->list_data[vt]);
-                                               if(ld) {
-                                                       ld->mail_status = EMAIL_MAIL_STATUS_SENT;
-                                                       delete_ret_t *ret = MEM_ALLOC(ret, 1);
-                                                       if(!ret) return;
-                                                       *ret = (delete_ret_t) {ld, *idx};
-                                                       CHECK_THREAD_BUSY();
-                                                       ecore_thread_feedback(thd, ret);
-                                               }
-                                       }
-                               break;
-                               default :
-                                       /* Do Nothing */
-                                       goto CLEANUP;
+                       G_LIST_FOREACH(mail_list, cur, idx) {
+                               ld = _find_mailinfo_by_mailid(*idx, mailbox_ugd->list_data[vt]);
+                               if(ld) {
+                                       //mailbox_delete_mail_item_from_list(mailbox_ugd, ld);
+                                       delete_ret_t *ret = MEM_ALLOC(ret, 1);
+                                       if(!ret) return;
+                                       *ret = (delete_ret_t) {ld, *idx};
+                                       CHECK_THREAD_BUSY();
+                                       ecore_thread_feedback(thd, ret);
+                                       debug_log("Mail(%d) found in this view(%d)", *idx, vt);
+                               }
                        }
-
                }
                else {
-                       /* Do Nothing */
+                       debug_log("Nothing to move: mode(%d), view(%d), acc(%d)", mailbox_ugd->mode, vt, mailbox_ugd->account_id);
                        goto CLEANUP;
                }
        }