summaryrefslogtreecommitdiff
path: root/mailbox
diff options
context:
space:
mode:
authordavid8.kim <david8.kim@samsung.com>2013-01-29 12:20:21 +0900
committerdavid8.kim <david8.kim@samsung.com>2013-01-29 12:20:21 +0900
commitdaa498f59279d2da473099c25916d559c63a7368 (patch)
treea2b326854ee5ffafafb1c0aaa95cccbc4bd47fce /mailbox
parent084807442e5cc8b3734dac23effae8d5aff7ca81 (diff)
downloademail-daa498f59279d2da473099c25916d559c63a7368.tar.gz
email-daa498f59279d2da473099c25916d559c63a7368.tar.bz2
email-daa498f59279d2da473099c25916d559c63a7368.zip
support favourite folder
Diffstat (limited to 'mailbox')
-rwxr-xr-xmailbox/src/email-mailbox-list.c53
1 files changed, 53 insertions, 0 deletions
diff --git a/mailbox/src/email-mailbox-list.c b/mailbox/src/email-mailbox-list.c
index 2186f4b..25f6dd8 100755
--- a/mailbox/src/email-mailbox-list.c
+++ b/mailbox/src/email-mailbox-list.c
@@ -113,6 +113,7 @@ extern Elm_Object_Item *g_server_search_item;
static email_mail_list_item_t *_get_mail_list_by_view(EmailMailboxUGD *mailbox_ugd, const EmailSearchData *search_data, int *mail_count);
static void _insert_mail_to_recipient_mailist(EmailMailboxUGD *mailbox_ugd, list_data* ld);
static void _insert_normal_item_to_mailist(EmailMailboxUGD *mailbox_ugd, list_data *ld, list_data *prev, list_data *next);
+email_mail_list_item_t *_mailbox_get_favourite_mail_list(int sort_type, int thread_id, EmailSearchType search_type, const EmailSearchData *search_data, int *mail_count);
//static gint _compare_date_asc(gconstpointer a, gconstpointer b);
//static gint _compare_date_desc(gconstpointer a, gconstpointer b);
static void _clear_genlist(EmailMailboxUGD *mailbox_ugd);
@@ -2474,6 +2475,58 @@ email_mail_list_item_t *_mailbox_get_mail_list_by_mailbox_type(int account_id, i
return mail_list;
}
+email_mail_list_item_t *_mailbox_get_favourite_mail_list(int sort_type, int thread_id, EmailSearchType search_type, const EmailSearchData *search_data, int *mail_count)
+{
+ debug_enter();
+ debug_log("sort_type: %d, thread_id : %d search_type: %d", sort_type, thread_id, search_type);
+
+ email_mail_list_item_t *mail_list = NULL;
+ email_list_filter_t *filter_list = NULL;
+ email_list_sorting_rule_t *sorting_rule_list = NULL;
+ int cnt_filter_list = 0;
+ int cnt_soring_rule = 0;
+ int err = 0;
+ int i = 0;
+
+ cnt_filter_list += 1;
+
+ if (search_type > EMAIL_SEARCH_NONE && search_type < EMAIL_SEARCH_MAX)
+ cnt_filter_list += _mailbox_get_filter_cnt_for_search_data(search_type, search_data);
+
+ debug_log("cnt_filter_list: %d", cnt_filter_list);
+
+ filter_list = malloc(sizeof(email_list_filter_t) * cnt_filter_list);
+ memset(filter_list, 0, sizeof(email_list_filter_t) * cnt_filter_list);
+
+ filter_list[i].list_filter_item_type = EMAIL_LIST_FILTER_ITEM_RULE;
+ filter_list[i].list_filter_item.rule.target_attribute = EMAIL_MAIL_ATTRIBUTE_FLAGS_FLAGGED_FIELD;
+ filter_list[i].list_filter_item.rule.rule_type = EMAIL_LIST_FILTER_RULE_EQUAL;
+ filter_list[i].list_filter_item.rule.key_value.integer_type_value = 1;
+ i++;
+
+ if (search_type > EMAIL_SEARCH_NONE && search_type < EMAIL_SEARCH_MAX)
+ mailbox_add_search_data_into_filter_list(search_type, search_data, filter_list, &i);
+
+ debug_log("filled filter count: %d", i);
+
+ cnt_soring_rule = 1;
+ sorting_rule_list = malloc(sizeof(email_list_sorting_rule_t) * cnt_soring_rule);
+ memset(sorting_rule_list, 0, sizeof(email_list_sorting_rule_t) * cnt_soring_rule);
+
+ _mailbox_make_sorting_rule_list(sort_type, sorting_rule_list);
+
+ err = email_get_mail_list_ex(filter_list, cnt_filter_list, sorting_rule_list, cnt_soring_rule, -1, -1, &mail_list, mail_count);
+ if (err != EMAIL_ERROR_NONE)
+ debug_warning("email_get_mail_list_ex - err (%d)", err);
+
+ FREE(sorting_rule_list);
+ email_free_list_filter(&filter_list, cnt_filter_list);
+
+ debug_warning("mail_count(%d)", *mail_count);
+
+ return mail_list;
+}
+
void _edit_back_cb(void *data, Evas_Object *obj, void *event_info)
{
debug_enter();