From daa498f59279d2da473099c25916d559c63a7368 Mon Sep 17 00:00:00 2001 From: "david8.kim" Date: Tue, 29 Jan 2013 12:20:21 +0900 Subject: [PATCH] support favourite folder --- mailbox/src/email-mailbox-list.c | 53 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) 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(); -- 2.7.4