support favourite folder
authordavid8.kim <david8.kim@samsung.com>
Tue, 29 Jan 2013 03:20:21 +0000 (12:20 +0900)
committerdavid8.kim <david8.kim@samsung.com>
Tue, 29 Jan 2013 03:20:21 +0000 (12:20 +0900)
mailbox/src/email-mailbox-list.c

index 2186f4b..25f6dd8 100755 (executable)
@@ -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();