diff options
author | Kim Jinho <jinho912.kim@samsung.com> | 2012-12-06 19:23:44 +0900 |
---|---|---|
committer | Kim Jinho <jinho912.kim@samsung.com> | 2012-12-06 19:23:44 +0900 |
commit | 687c406b36972790005fdfb318815af0eab9b6cd (patch) | |
tree | fc1df4e48e42b81df76890f7327f97880e189658 /mailbox | |
parent | 234ecdcab2fc994d6a3ebd5fac642a1a43bcecce (diff) | |
download | email-687c406b36972790005fdfb318815af0eab9b6cd.tar.gz email-687c406b36972790005fdfb318815af0eab9b6cd.tar.bz2 email-687c406b36972790005fdfb318815af0eab9b6cd.zip |
Meged with lastest mailbox/account codes
Diffstat (limited to 'mailbox')
-rwxr-xr-x | mailbox/include/email-mailbox-list.h | 3 | ||||
-rwxr-xr-x | mailbox/include/email-mailbox.h | 46 | ||||
-rwxr-xr-x | mailbox/src/email-mailbox-controlbar.c | 318 | ||||
-rwxr-xr-x | mailbox/src/email-mailbox-item.c | 24 | ||||
-rwxr-xr-x | mailbox/src/email-mailbox-list.c | 320 | ||||
-rwxr-xr-x | mailbox/src/email-mailbox-noti-mgr.c | 39 | ||||
-rwxr-xr-x | mailbox/src/email-mailbox-search.c | 17 | ||||
-rwxr-xr-x | mailbox/src/email-mailbox-sweep.c | 53 | ||||
-rwxr-xr-x | mailbox/src/email-mailbox.c | 544 | ||||
-rwxr-xr-x | mailbox/theme/email-mailbox-theme.edc | 121 |
10 files changed, 1072 insertions, 413 deletions
diff --git a/mailbox/include/email-mailbox-list.h b/mailbox/include/email-mailbox-list.h index c489443..50ef88c 100755 --- a/mailbox/include/email-mailbox-list.h +++ b/mailbox/include/email-mailbox-list.h @@ -51,6 +51,7 @@ void _make_account_mail_list(void *data); gint _compare_sort_rule_by_viewtype(gconstpointer a, gconstpointer b); void _update_item_in_view_cb(void *data, Ecore_Thread *thd, void* msg_data); void _refresh_mailbox(EmailMailboxUGD *mailbox_ugd); +void _refresh_mailbox_fullview(EmailMailboxUGD *mailbox_ugd); void _make_mail_list(EmailMailboxUGD *mailbox_ugd, const EmailSearchData *search_data); void _delete_selection_info(EmailMailboxUGD *mailbox_ugd); void _create_mail_list(EmailMailboxUGD *mailbox_ugd); @@ -72,5 +73,7 @@ void _add_mail_list_n_data(EmailMailboxUGD *mailbox_ugd, email_mail_list_item_t* void _remove_get_more_progress_item(EmailMailboxUGD *mailbox_ugd); email_mail_list_item_t *_mailbox_get_mail_list_by_mailbox_type(int account_id, int mailbox_type, int sort_type, int thread_id, EmailSearchType search_type, const EmailSearchData *search_data, int *mail_count); email_mail_list_item_t *_mailbox_get_mail_list_by_mailbox_id(int account_id, int mailbox_id, int sort_type, int thread_id, EmailSearchType search_type, const EmailSearchData *search_data, int *mail_count); +void reset_get_more_progress_callback_status(EmailMailboxUGD *mailbox_ugd); + #endif /* __DEF_EMAIL_MAILBOX_LIST_H_ */ diff --git a/mailbox/include/email-mailbox.h b/mailbox/include/email-mailbox.h index df9cc73..bf6d2f3 100755 --- a/mailbox/include/email-mailbox.h +++ b/mailbox/include/email-mailbox.h @@ -59,8 +59,8 @@ #define ICON_MARKUNREAD IMGDIR"/M02_controlbar_icon_mark_as_unread.png" #define ICON_CANCEL IMGDIR"/M02_controlbar_icon_cancel.png" #define ICON_COMPOSE IMGDIR"/M02_controlbar_icon_compose.png" -#define ICON_UPDATE IMGDIR"/M02_controlbar_icon_update.png" -#define ICON_FOLDERS IMGDIR"/M02_email_icon_title_folders.png" +#define ICON_UPDATE IMGDIR"/00_icon_refresh.png" +#define ICON_FOLDERS IMGDIR"/00_icon_folder.png" #define ICON_SORTBY IMGDIR"/M02_controlbar_icon_sort_by.png" #define ICON_VIEWMODE IMGDIR"/M02_controlbar_icon_view_mode.png" #define ICON_MORE IMGDIR"/M02_controlbar_icon_more.png" @@ -102,7 +102,7 @@ typedef struct { int mailbox_type; gboolean is_attachment; gboolean is_seen; - email_mail_status_t is_sending_now; + email_mail_status_t mail_status; gboolean is_body_download; gint mail_id; gint account_id; @@ -236,9 +236,6 @@ struct ug_data { Evas_Object *win_main; Evas_Object *layout_main; Evas_Object *panes; - Evas_Object *gen_list_index; - Evas_Object *effect_account_ly; - Evas_Object *effect_composer_ly; EmailMailboxViewType view_type; EmailMailboxViewType previous_view; @@ -246,32 +243,28 @@ struct ug_data { Evas_Object *ly; Evas_Object *check; Evas_Object *navi_bar; - Evas_Object *controlbar_seg; - Evas_Object *controlbar_btns; - Evas_Object *prev_controlbar; + Evas_Object *controlbar_more_btn; + Evas_Object *controlbar_lbtn; + Evas_Object *controlbar_rbtn; Evas_Object *no_content; Evas_Object *no_content_sender; - Elm_Theme *theme; + Evas_Object *no_content_thread; Elm_Object_Item *navibar_item[EMAIL_VIEW_MAX]; Evas_Object *navi_title_ly; Evas_Object *sp_icon; Evas_Object *title_arrow; - Evas_Object *content_edit; Evas_Object *searchbar_en; - Elm_Object_Item *load_more_button; Elm_Object_Item *edit_button; - //Elm_Object_Item *edit_cancel_button; Evas_Object *folder_button; Evas_Object *update_button; Evas_Object *sync_progress; Elm_Object_Item *delete_all_button; Evas_Object *ctxpopup; + Evas_Object *passwd_popup; + Evas_Object *password_entry; GList *important_list; - Elm_Object_Item *date_tab; Evas_Object *selectioninfo_layout; Evas_Object *sub_layout[EMAIL_VIEW_MAX]; - Evas_Object *move_button; - Evas_Object *block_button; Evas_Object *search_layout; Evas_Object *searchbar_layout; Evas_Object *searchbar_area; @@ -294,30 +287,24 @@ struct ug_data { GList *selected_list; /* revised, used to move the mails selected in previous view */ GList *delete_mail_list; GList *noti_Q; - gboolean need_sync; gint sort_type_index; - gint from_width; gint account_id; gint thread_id; gint thread_mail_count; gint total_count; - gint date_type; gint chk_cnt; gint unread_cnt; EmailSortType sort_type; - gboolean refresh; - gboolean bhour; - gchar *search_text; guint index; + char *str_password; + gint sync_needed_mailbox_id; //password changed case + gint sync_needed_account_id; char *address; gchar *display_name; - guint add_item_id; gint mailbox_id; email_mailbox_type_e mailbox_type; gchar *folder_alias; gchar *user_email; - gint uid; - gint cur_container_type; gint initial_run; gint b_thread_list; gint main_w; @@ -331,14 +318,10 @@ struct ug_data { gboolean b_advanced_search_view; int emf_handle; E_DBus_Connection *edbus_conn; - gchar *prev_group_title; - //email_sender_list *sender_list; - //gint sender_cnt; EmailMailboxMode mode; /* index for mail list when mailbox receive email from emailservice */ gint download_idx; - Elm_Object_Item *after_item; Evas_Object *base; ui_gadget_h ug; struct ug_cbs cbs; @@ -349,9 +332,6 @@ struct ug_data { ui_gadget_h ug_setting; ui_gadget_h ug_document; int viewer_refresh; - int viewer_effect; - Evas_Object *temp_ly; - bool viewer_loading; Evas_Object *split_nocontent; GList *list_data[EMAIL_VIEW_MAX]; int create_progress_part; @@ -437,6 +417,7 @@ struct ug_data { void _update_navigationbar_title(EmailMailboxUGD *mailbox_ugd); ui_gadget_h create_composer_ug(char *ug_name, service_h service, void *data); +ui_gadget_h create_setting_ug(char *ug_name, service_h service, void *data); void layout_composer_cb(ui_gadget_h ug, enum ug_mode mode, void *priv); void result_composer_cb(ui_gadget_h ug, service_h service, void *priv); void _stop_emf_job(EmailMailboxUGD *mailbox_ugd, int handle, gboolean change_download_label_in_panel); @@ -450,5 +431,6 @@ void _open_email_body(gint uid, Elm_Object_Item *item); void _create_email_no_content_view(EmailMailboxUGD *mailbox_ugd); void _reset_refer_item_and_idx(EmailMailboxUGD *mailbox_ugd); email_sort_type_t _mailbox_conv_sort_type(EmailSortType sort_type); +void mailbox_create_password_changed_popup(void *data); #endif /* __DEF_email-mailbox_H__ */ diff --git a/mailbox/src/email-mailbox-controlbar.c b/mailbox/src/email-mailbox-controlbar.c index d253306..66f4ded 100755 --- a/mailbox/src/email-mailbox-controlbar.c +++ b/mailbox/src/email-mailbox-controlbar.c @@ -47,11 +47,12 @@ extern int ug_pushed; static Evas_Object *create_control_option(EmailMailboxUGD *ad); static Evas_Object *create_edit_control_option(EmailMailboxUGD *ad); static void _viewby_cb(void *data, Evas_Object *obj, void *event_info); +static void _more_toolbar_clicked_cb(void *data, Evas_Object *obj, void *event_info); static void _delete_all_emails_cb(void *data, Evas_Object *obj, void *event_info); -static void _document_search_cb(void *data, Evas_Object *obj, void *event_info); static void _delete_mail_cb(void *data, Evas_Object *obj, void *event_info); static void _block_mail_cb(void *data, Evas_Object *obj, void *event_info); static void _markunread_mail_cb(void *data, Evas_Object *obj, void *event_info); +static void _markread_mail_cb(void *data, Evas_Object *obj, void *event_info); static void _compose_toolbar_clicked_cb(void *data, Evas_Object *obj, void *event_info); static ui_gadget_h create_document_ug(char *ug_name, service_h service, void *data); static void _popup_response_cb(void *data, Evas_Object *obj, void *event_info); @@ -59,7 +60,10 @@ static void destroy_document_cb(ui_gadget_h ug, void *priv); static void _radio_cb(void *data, Evas_Object *obj, void *event_info); static void _move_ctxpopup(Evas_Object *ctxpopup, Evas_Object *win); static void _move_mail_cb(void *data, Evas_Object *obj, void *event_info); +static void _add_account_cb(void *data, Evas_Object *obj, void *event_info); +static Evas_Object *_create_toolbar_more_btn(Evas_Object *parent, Evas_Smart_Cb func, void *data); +static Evas_Object *_create_toolbar_btn(Evas_Object *parent, const char *text, Evas_Smart_Cb func, void *data); static void destroy_document_cb(ui_gadget_h ug, void *priv) { @@ -116,6 +120,11 @@ static void _block_mail_cb(void *data, Evas_Object *obj, void *event_info) Eina_List *list = edit_list; int checked_count = eina_list_count(list); + if (mailbox_ugd->ctxpopup) { + evas_object_del(mailbox_ugd->ctxpopup); + mailbox_ugd->ctxpopup = NULL; + } + if (checked_count <= 0) return; for (i = 0; i < checked_count; i++) { @@ -217,6 +226,11 @@ static void _markunread_mail_cb(void *data, Evas_Object *obj, void *event_info) Eina_List *list = edit_list; int checked_count = eina_list_count(list); + if (mailbox_ugd->ctxpopup) { + evas_object_del(mailbox_ugd->ctxpopup); + mailbox_ugd->ctxpopup = NULL; + } + if (checked_count <= 0) return; for (i = 0; i < checked_count; i++) { @@ -268,9 +282,80 @@ static void _markunread_mail_cb(void *data, Evas_Object *obj, void *event_info) } +static void _markread_mail_cb(void *data, Evas_Object *obj, void *event_info) +{ + debug_log(""); + + if (data == NULL) { + debug_log("data == NULL"); + return; + } + + EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data; + int i = 0, mark_count = 0; + + Eina_List *list = edit_list; + int checked_count = eina_list_count(list); + + if (mailbox_ugd->ctxpopup) { + evas_object_del(mailbox_ugd->ctxpopup); + mailbox_ugd->ctxpopup = NULL; + } + + if (checked_count <= 0) return; + + for (i = 0; i < checked_count; i++) { + Eina_List *nth_list = eina_list_nth_list(list, i); + + list_data *ld = eina_list_data_get(nth_list); + + //make it unread state in all cases + int err = email_set_flags_field(ld->account_id, &(ld->mail_id), 1, EMAIL_FLAGS_SEEN_FIELD, 1, 1); + if (err != EMAIL_ERROR_NONE) + debug_log("email_set_flags_field - err(%d)", err); + + mark_count++; + } + + /* check count */ + if (mark_count > 0) { + debug_log("mail mark unread count: %d", mark_count); + } + + mailbox_ugd->view_type = mailbox_ugd->previous_view; + + edit_list = eina_list_free(edit_list); + + //evas_object_smart_callback_add(mailbox_ugd->searchbar_en, "focused", _searchbar_entry_focus_cb, mailbox_ugd); + //evas_object_smart_callback_add(mailbox_ugd->searchbar_en, "unfocused", _searchbar_entry_unfocus_cb, mailbox_ugd); + + elm_genlist_decorate_mode_set(mailbox_ugd->gl[mailbox_ugd->view_type], EINA_FALSE); + elm_genlist_reorder_mode_set(mailbox_ugd->gl[mailbox_ugd->view_type], EINA_FALSE); + elm_genlist_select_mode_set(mailbox_ugd->gl[mailbox_ugd->view_type], ELM_OBJECT_SELECT_MODE_DEFAULT); + b_editmode = false; + elm_object_disabled_set(mailbox_ugd->folder_button, EINA_FALSE); + _update_navigationbar_title(mailbox_ugd); + + if (mailbox_ugd->isRotate == true) { + email_rotate_landscape(mailbox_ugd); + /* + if (mailbox_ugd->current_rotmode == APP_DEVICE_ORIENTATION_270) + on_event(NULL, UG_EVENT_ROTATE_LANDSCAPE, NULL, mailbox_ugd); + else + on_event(NULL, UG_EVENT_ROTATE_LANDSCAPE_UPSIDEDOWN, NULL, mailbox_ugd); + */ + } else { + elm_object_part_content_set(mailbox_ugd->search_layout, "searchbar", mailbox_ugd->searchbar_layout); + edje_object_signal_emit(_EDJ(mailbox_ugd->search_layout), "show_searchbar", "search"); + } + + _refresh_mailbox(mailbox_ugd); + +} static void _dismissed_cb(void *data, Evas_Object *obj, void *event_info) { + debug_log(""); EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data; evas_object_del(mailbox_ugd->ctxpopup); mailbox_ugd->ctxpopup = NULL; @@ -367,69 +452,56 @@ static void _popup_response_cb(void *data, Evas_Object *obj, void *event_info) } } -static void _document_search_cb(void *data, Evas_Object *obj, void *event_info) +static void _more_toolbar_clicked_cb(void *data, Evas_Object *obj, void *event_info) { debug_log(""); - EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data; - RETURN_IF_FAIL(mailbox_ugd != NULL); - if (mailbox_ugd->ctxpopup) { - evas_object_del(mailbox_ugd->ctxpopup); - mailbox_ugd->ctxpopup = NULL; - } + mailbox_ugd->ctxpopup = elm_ctxpopup_add(mailbox_ugd->navi_bar); + evas_object_smart_callback_add(mailbox_ugd->ctxpopup, "dismissed", _dismissed_cb, mailbox_ugd); - if (mailbox_ugd->ug_document) { - debug_log("Document UG is already launched"); - return; - } + if (mailbox_ugd->view_type == EMAIL_VIEW_EDIT) { + int i = 0; + bool read_mail_exist = false; + Eina_List *list = edit_list; + int checked_count = eina_list_count(list); - gint account_id = mailbox_ugd->account_id; - RETURN_IF_FAIL(account_id > 0); + if (checked_count <= 0) return; - email_account_t *account = NULL; - int err = email_get_account(account_id, EMAIL_ACC_GET_OPT_OPTIONS, &account); - if (err != EMAIL_ERROR_NONE || !account) { - debug_warning("email_get_account acct(%d) - err(%d) or acct NULL(%p)", account_id, err, account); - if(account) email_free_account(&account, 1); - return; - } + for (i = 0; i < checked_count; i++) { + Eina_List *nth_list = eina_list_nth_list(list, i); + list_data *ld = eina_list_data_get(nth_list); - int account_svc_id = account->account_svc_id; - debug_log("account id: %d, accountd_svc_id: %d", account_id, account_svc_id); - if(account) email_free_account(&account, 1); + if (ld->is_seen) + read_mail_exist = true; + } - char s_account_id[14] = { 0, }; - snprintf(s_account_id, sizeof(s_account_id), "%d", account_svc_id); + if (read_mail_exist) + elm_ctxpopup_item_append(mailbox_ugd->ctxpopup, _("IDS_EMAIL_OPT_MARK_AS_UNREAD"), NULL, _markunread_mail_cb, mailbox_ugd); + else + elm_ctxpopup_item_append(mailbox_ugd->ctxpopup, _("IDS_EMAIL_OPT_MARK_AS_READ"), NULL, _markread_mail_cb, mailbox_ugd); - service_h service; - if (SERVICE_ERROR_NONE != service_create(&service)) - { - debug_log("creating service handle failed"); - return; - } + elm_ctxpopup_item_append(mailbox_ugd->ctxpopup, _("IDS_EMAIL_SK_BLOCK"), NULL, _block_mail_cb, mailbox_ugd); - service_add_extra_data(service, EMAIL_BUNDLE_KEY_ACCOUNT_ID, s_account_id); - mailbox_ugd->ug_document = create_document_ug(UG_NAME_EMAIL_DOCUMENT, service, mailbox_ugd); + if (mailbox_ugd->isRotate) + elm_ctxpopup_item_append(mailbox_ugd->ctxpopup, dgettext("sys_string", "IDS_COM_BODY_MOVE"), NULL, _move_mail_cb, mailbox_ugd); + } else { - service_destroy(service); + elm_ctxpopup_item_append(mailbox_ugd->ctxpopup, _("IDS_EMAIL_OPT_DELETE_ALL"), NULL, _delete_all_emails_cb, mailbox_ugd); + elm_ctxpopup_item_append(mailbox_ugd->ctxpopup, _("IDS_EMAIL_HEADER_ADD_ACCOUNT"), NULL, _add_account_cb, mailbox_ugd); + } + + _move_ctxpopup(mailbox_ugd->ctxpopup, obj); + evas_object_show(mailbox_ugd->ctxpopup); } static void _move_ctxpopup(Evas_Object *ctxpopup, Evas_Object *win) { - Evas_Coord w, h; - int degree = elm_win_rotation_get(win); - evas_object_geometry_get(win, NULL, NULL, &w, &h); - - if(degree == 90) { - evas_object_move(ctxpopup, w - touch_y, touch_x); - } else if (degree == 180) { - evas_object_move(ctxpopup, w - touch_x, h - touch_y); - } else if (degree == -90) { - evas_object_move(ctxpopup, touch_y, h - touch_x); - } else { - evas_object_move(ctxpopup, touch_x, touch_y); - } + Evas_Coord x, y, w, h; + + evas_object_geometry_get(win, &x, &y, &w, &h); + evas_object_move(ctxpopup, x + (w / 2), y); + } static void _gl_viewby_popup_sel(void *data, Evas_Object *obj, void *event_info) @@ -598,6 +670,12 @@ static void _viewby_cb(void *data, Evas_Object *obj, void *event_info) EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data; Elm_Object_Item *item; Evas_Object *genlist; + + if (mailbox_ugd->ctxpopup) { + evas_object_del(mailbox_ugd->ctxpopup); + mailbox_ugd->ctxpopup = NULL; + } + mailbox_ugd->viewby_popup = elm_popup_add(mailbox_ugd->win_main); #ifdef _POPUP_WITH_LIST elm_object_style_set(mailbox_ugd->viewby_popup, "min_menustyle"); @@ -660,6 +738,27 @@ static void _viewby_cb(void *data, Evas_Object *obj, void *event_info) #endif evas_object_show(mailbox_ugd->viewby_popup); } +static void _add_account_cb(void *data, Evas_Object *obj, void *event_info) +{ + debug_log(""); + EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data; + + if (mailbox_ugd->ctxpopup) { + evas_object_del(mailbox_ugd->ctxpopup); + mailbox_ugd->ctxpopup = NULL; + } + + service_h service; + if (SERVICE_ERROR_NONE != service_create(&service)) + { + debug_log("creating service handle failed"); + return; + } + + service_add_extra_data(service, EMAIL_BUNDLE_KEY_VIEW_TYPE, EMAIL_BUNDLE_VAL_VIEW_SELECT_ACCOUNT); + mailbox_ugd->ug_setting = create_setting_ug(UG_NAME_EMAIL_SETTING, service, mailbox_ugd); + service_destroy(service); +} void _create_controlbar(EmailMailboxUGD *mailbox_ugd) { @@ -667,8 +766,6 @@ void _create_controlbar(EmailMailboxUGD *mailbox_ugd) _delete_selection_info(mailbox_ugd); - elm_object_item_part_content_unset(mailbox_ugd->navibar_item[mailbox_ugd->view_type], "controlbar"); - _delete_controlbar(mailbox_ugd); switch (mailbox_ugd->view_type) { @@ -678,10 +775,10 @@ void _create_controlbar(EmailMailboxUGD *mailbox_ugd) case EMAIL_VIEW_RECIPIENT: case EMAIL_VIEW_ATTACHMENTS: case EMAIL_VIEW_PRIORITY: - mailbox_ugd->controlbar_btns = create_control_option(mailbox_ugd); + create_control_option(mailbox_ugd); break; case EMAIL_VIEW_EDIT: - mailbox_ugd->controlbar_btns = create_edit_control_option(mailbox_ugd); + create_edit_control_option(mailbox_ugd); break; default: break; @@ -691,14 +788,23 @@ void _create_controlbar(EmailMailboxUGD *mailbox_ugd) void _delete_controlbar(EmailMailboxUGD *mailbox_ugd) { debug_log(""); - if (mailbox_ugd->controlbar_btns) { - evas_object_del(mailbox_ugd->controlbar_btns); - mailbox_ugd->controlbar_btns = NULL; - //mailbox_ugd->update_button = NULL; - //mailbox_ugd->edit_button = NULL; - //mailbox_ugd->edit_cancel_button = NULL; + + if (mailbox_ugd->controlbar_more_btn) { + elm_object_item_part_content_unset(mailbox_ugd->navibar_item[mailbox_ugd->view_type], "toolbar_more_btn"); + evas_object_del(mailbox_ugd->controlbar_more_btn); + mailbox_ugd->controlbar_more_btn = NULL; mailbox_ugd->delete_all_button = NULL; } + if (mailbox_ugd->controlbar_lbtn) { + elm_object_item_part_content_unset(mailbox_ugd->navibar_item[mailbox_ugd->view_type], "toolbar_button1"); + evas_object_del(mailbox_ugd->controlbar_lbtn); + mailbox_ugd->controlbar_lbtn = NULL; + } + if (mailbox_ugd->controlbar_rbtn) { + elm_object_item_part_content_unset(mailbox_ugd->navibar_item[mailbox_ugd->view_type], "toolbar_button2"); + evas_object_del(mailbox_ugd->controlbar_rbtn); + mailbox_ugd->controlbar_rbtn = NULL; + } } static void _compose_toolbar_clicked_cb(void *data, Evas_Object *obj, void *event_info) @@ -766,65 +872,70 @@ static void _compose_toolbar_clicked_cb(void *data, Evas_Object *obj, void *even static Evas_Object *create_control_option(EmailMailboxUGD *mailbox_ugd) { debug_log(""); - Evas_Object *control_bar; - - control_bar = elm_toolbar_add(mailbox_ugd->navi_bar); - elm_toolbar_shrink_mode_set(control_bar, ELM_TOOLBAR_SHRINK_EXPAND); - - elm_toolbar_item_append(control_bar, ICON_COMPOSE, _("IDS_EMAIL_SK_COMPOSE"), - _compose_toolbar_clicked_cb, mailbox_ugd); + Evas_Object *more_btn, *btn1, *btn2; - elm_toolbar_item_append(control_bar, ICON_SORTBY, _("IDS_EMAIL_SK_SORT_BY"), - _viewby_cb, mailbox_ugd); + more_btn = _create_toolbar_more_btn(mailbox_ugd->navi_bar, _more_toolbar_clicked_cb, mailbox_ugd); + elm_object_item_part_content_set(mailbox_ugd->navibar_item[mailbox_ugd->view_type], "toolbar_more_btn", more_btn); + mailbox_ugd->controlbar_more_btn = more_btn; - elm_toolbar_item_append(control_bar, ICON_DELETE_ALL, _("IDS_EMAIL_SK_DELETE_ALL"), - _delete_all_emails_cb, mailbox_ugd); + btn1 = _create_toolbar_btn(mailbox_ugd->navi_bar, _("IDS_EMAIL_SK_COMPOSE"), _compose_toolbar_clicked_cb, mailbox_ugd); + elm_object_item_part_content_set(mailbox_ugd->navibar_item[mailbox_ugd->view_type], "toolbar_button1", btn1); + mailbox_ugd->controlbar_lbtn = btn1; + btn2 = _create_toolbar_btn(mailbox_ugd->navi_bar, _("IDS_EMAIL_SK_SORT_BY"), _viewby_cb, mailbox_ugd); + elm_object_item_part_content_set(mailbox_ugd->navibar_item[mailbox_ugd->view_type], "toolbar_button2", btn2); + mailbox_ugd->controlbar_rbtn = btn2; - elm_object_item_part_content_set(mailbox_ugd->navibar_item[mailbox_ugd->view_type], "controlbar", control_bar); - - return control_bar; + return NULL; +} +static Evas_Object *_create_toolbar_more_btn(Evas_Object *parent, Evas_Smart_Cb func, void *data) +{ + Evas_Object *btn = elm_button_add(parent); + if (!btn) return NULL; + elm_object_style_set(btn, "naviframe/more/default"); + evas_object_smart_callback_add(btn, "clicked", func, data); + return btn; +} +static Evas_Object *_create_toolbar_btn(Evas_Object *parent, const char *text, Evas_Smart_Cb func, void *data) +{ + Evas_Object *btn = elm_button_add(parent); + if (!btn) return NULL; + elm_object_style_set(btn, "naviframe/toolbar/default"); + elm_object_text_set(btn, text); + evas_object_smart_callback_add(btn, "clicked", func, data); + return btn; } - static Evas_Object *create_edit_control_option(EmailMailboxUGD *mailbox_ugd) { debug_log(""); - Evas_Object *control_bar; - email_mailbox_type_e mbox_type = EMAIL_MAILBOX_TYPE_NONE; - mbox_type = GET_MAILBOX_TYPE(mailbox_ugd->mailbox_id); + //email_mailbox_type_e mbox_type = EMAIL_MAILBOX_TYPE_NONE; + //mbox_type = GET_MAILBOX_TYPE(mailbox_ugd->mailbox_id); - g_delete_button = NULL; - g_move_button = NULL; - g_block_button = NULL; - g_markunread_button = NULL; + Evas_Object *delete_btn, *move_btn, *more_btn; - control_bar = elm_toolbar_add(mailbox_ugd->navi_bar); - elm_toolbar_shrink_mode_set(control_bar, ELM_TOOLBAR_SHRINK_EXPAND); + more_btn = _create_toolbar_more_btn(mailbox_ugd->navi_bar, _more_toolbar_clicked_cb, mailbox_ugd); + elm_object_item_part_content_set(mailbox_ugd->navibar_item[mailbox_ugd->previous_view], "toolbar_more_btn", more_btn); + mailbox_ugd->controlbar_more_btn = more_btn; - g_delete_button = elm_toolbar_item_append(control_bar, ICON_DELETE, - dgettext("sys_string", "IDS_COM_SK_DELETE"), _delete_mail_cb, mailbox_ugd); + delete_btn = _create_toolbar_btn(mailbox_ugd->navi_bar, dgettext("sys_string", "IDS_COM_SK_DELETE"), _delete_mail_cb, 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->mode != EMAIL_MAILBOX_MODE_ALL && mbox_type != EMAIL_MAILBOX_TYPE_OUTBOX && mbox_type != EMAIL_MAILBOX_TYPE_DRAFT) - { - g_move_button = elm_toolbar_item_append(control_bar, ICON_MOVE, - dgettext("sys_string", "IDS_COM_BODY_MOVE"), _move_mail_cb, mailbox_ugd); - } - if (mbox_type != EMAIL_MAILBOX_TYPE_DRAFT && mbox_type != EMAIL_MAILBOX_TYPE_OUTBOX && - mbox_type != EMAIL_MAILBOX_TYPE_SPAMBOX && mbox_type != EMAIL_MAILBOX_TYPE_SENTBOX) - { - g_block_button = elm_toolbar_item_append(control_bar, ICON_BLOCK, - _("IDS_EMAIL_SK_BLOCK"), _block_mail_cb, mailbox_ugd); + if (!mailbox_ugd->isRotate) { + 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; } - g_markunread_button = elm_toolbar_item_append(control_bar, ICON_MARKUNREAD, - _("IDS_EMAIL_OPT_MARK_AS_UNREAD"), _markunread_mail_cb, mailbox_ugd); + return NULL; -// mailbox_ugd->edit_cancel_button = elm_toolbar_item_append(control_bar, ICON_CANCEL, -// NULL/*dgettext("sys_string", "IDS_COM_SK_CANCEL")*/, _edit_back_cb, mailbox_ugd); +} - return control_bar; +static void _timeout_cb(void *data, Evas_Object *obj, void *event_info) +{ + evas_object_del(obj); } static void _move_mail_cb(void *data, Evas_Object *obj, void *event_info) @@ -847,6 +958,15 @@ static void _move_mail_cb(void *data, Evas_Object *obj, void *event_info) EINA_LIST_FOREACH(list, cur, ld) { if (first_account_id != ld->account_id) { debug_log("first_account_id : %d, account_id : %d", first_account_id, ld->account_id); + + Evas_Object *popup = elm_popup_add(mailbox_ugd->win_main); + evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + elm_object_text_set(popup,"Unable to move emails from multiple accounts at once"); + evas_object_smart_callback_add(popup, "block,clicked", _block_clicked_cb, NULL); + elm_popup_timeout_set(popup, 3.0); + evas_object_smart_callback_add(popup, "timeout", _timeout_cb, NULL); + evas_object_show(popup); + return; } } diff --git a/mailbox/src/email-mailbox-item.c b/mailbox/src/email-mailbox-item.c index de59baf..ebdae4b 100755 --- a/mailbox/src/email-mailbox-item.c +++ b/mailbox/src/email-mailbox-item.c @@ -64,8 +64,8 @@ static Eina_Bool _create_mailbox_list_view(void *data) email_movefolder_list *move_folder = (email_movefolder_list *) calloc(mailbox_count, sizeof(email_movefolder_list)); for (i = 0; i < mailbox_count; ++i) { - - if (mailbox_list[i].mailbox_type != EMAIL_MAILBOX_TYPE_OUTBOX && + if (mailbox_list[i].mailbox_id != mailbox_ugd->mailbox_id && + mailbox_list[i].mailbox_type != EMAIL_MAILBOX_TYPE_OUTBOX && mailbox_list[i].mailbox_type != EMAIL_MAILBOX_TYPE_SENTBOX && mailbox_list[i].mailbox_type != EMAIL_MAILBOX_TYPE_DRAFT && mailbox_list[i].mailbox_type != EMAIL_MAILBOX_TYPE_TRASH && @@ -73,11 +73,22 @@ static Eina_Bool _create_mailbox_list_view(void *data) mailbox_list[i].mailbox_type != EMAIL_MAILBOX_TYPE_SEARCH_RESULT) { debug_log("mailbox_name: [%s], mailbox_alias: [%s] ", mailbox_list[i].mailbox_name, mailbox_list[i].alias); - if (g_strcmp0(mailbox_list[i].alias, "[Gmail]")) { + if (g_strcmp0(mailbox_list[i].alias, "[Gmail]") && !mailbox_list[i].no_select) { move_folder[i].mailbox_list = &mailbox_list[i]; move_folder[i].mailbox_ugd = mailbox_ugd; elm_genlist_item_append(genlist, &itc_mailbox, &move_folder[i], NULL, ELM_GENLIST_ITEM_NONE, _mailbox_list_item_clicked, NULL); + } else { + move_folder[i].mailbox_list = &mailbox_list[i]; + move_folder[i].mailbox_ugd = mailbox_ugd; + Elm_Object_Item *item = elm_genlist_item_append(genlist, &itc_mailbox, &move_folder[i], NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL); + elm_object_item_disabled_set(item, EINA_TRUE); } + + } else { + move_folder[i].mailbox_list = &mailbox_list[i]; + move_folder[i].mailbox_ugd = mailbox_ugd; + Elm_Object_Item *item = elm_genlist_item_append(genlist, &itc_mailbox, &move_folder[i], NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL); + elm_object_item_disabled_set(item, EINA_TRUE); } } mailbox_ugd->move_folder_list = move_folder; @@ -174,6 +185,13 @@ static void _mailbox_list_move_cancel_cb(void *data, Evas_Object *obj, void *eve _stop_emf_job(mailbox_ugd, mailbox_ugd->emf_handle, true); elm_naviframe_item_pop(mailbox_ugd->navi_bar); + if(mailbox_ugd->selected_list) { + g_list_free(mailbox_ugd->selected_list); + mailbox_ugd->selected_list = NULL; + } + email_free_mailbox(&(mailbox_ugd->move_folder_list->mailbox_list), mailbox_ugd->move_folder_cnt); + FREE(mailbox_ugd->move_folder_list); + if (_g_move_lock) { _g_move_lock = false; } diff --git a/mailbox/src/email-mailbox-list.c b/mailbox/src/email-mailbox-list.c index c40d527..9d364f9 100755 --- a/mailbox/src/email-mailbox-list.c +++ b/mailbox/src/email-mailbox-list.c @@ -30,6 +30,7 @@ Eina_List *edit_list = NULL; gboolean list_lock = false; char *group_title[EMAIL_GROUP_MAX][2]; static bool b_first_time_after_get_more = false; +static bool b_enable_get_more = false; static Elm_Object_Item *g_get_more_progress_item; static Elm_Genlist_Item_Class itc_get_more_progress; Elm_Object_Item *g_selected_item; @@ -303,6 +304,7 @@ static void _add_get_more_progress_item(EmailMailboxUGD *mailbox_ugd) debug_log(""); evas_object_smart_callback_del(mailbox_ugd->gl[mailbox_ugd->view_type], "edge,bottom", _get_more_clicked_cb); + b_enable_get_more = false; itc_get_more_progress.item_style = "1text.1icon.2"; itc_get_more_progress.func.text_get = _gl_get_more_btn_text_get; @@ -323,6 +325,7 @@ static void _add_get_more_progress_item(EmailMailboxUGD *mailbox_ugd) elm_genlist_item_bring_in(g_get_more_progress_item, ELM_GENLIST_ITEM_SCROLLTO_IN); evas_object_smart_callback_add(mailbox_ugd->gl[mailbox_ugd->view_type], "edge,bottom", _get_more_clicked_cb, mailbox_ugd); + b_enable_get_more = true; debug_leave(); } @@ -365,7 +368,7 @@ static Evas_Object *_create_progress_part_in_outbox(list_data *ld, Evas_Object * return NULL; } - switch(ld->is_sending_now) { + switch(ld->mail_status) { case EMAIL_MAIL_STATUS_SENDING: { /* Since mail send is in progress, add a process icon to the entry in mail list view */ @@ -416,7 +419,7 @@ static Evas_Object *_create_progress_part_in_outbox(list_data *ld, Evas_Object * } default: - debug_critical("unexpected sending status of an email in Outbox - sending_status [%d]", ld->is_sending_now); + debug_critical("unexpected sending status of an email in Outbox - sending_status [%d]", ld->mail_status); break; } @@ -434,7 +437,7 @@ static void _realized_cb(void *data, Evas_Object *obj, void *event_info) return; list_data *ld = (list_data*)elm_object_item_data_get(item); - switch(ld->is_sending_now) { + switch(ld->mail_status) { case EMAIL_MAIL_STATUS_SENDING: case EMAIL_MAIL_STATUS_SEND_WAIT: if(ld->item) @@ -450,27 +453,6 @@ static void _realized_cb(void *data, Evas_Object *obj, void *event_info) default: break; } - - if (ld->thread_count > 0 && ld->mailbox_ugd->b_thread_list) - { // Thread 1 case, should show thread_count(UX request) - if(ld->mailbox_ugd->view_type == EMAIL_VIEW_DATE - || (ld->mailbox_ugd->previous_view == EMAIL_VIEW_DATE && (ld->mailbox_ugd->view_type == EMAIL_VIEW_SEARCH - || ld->mailbox_ugd->view_type == EMAIL_VIEW_EDIT))) - elm_object_item_signal_emit(ld->item, "elm,state,num", "elm"); - } - if (ld->is_attachment == true) { - elm_object_item_signal_emit(ld->item, "elm,state,attach", "elm"); - } -#if 0 // priority icon position is the same with the lastverb icon position - if(ld->priority != EMAIL_OPTION_PRIORITY_NORMAL) { - elm_object_item_signal_emit(ld->item, "elm,state,priority", "elm"); - } -#endif - - if( ld->priority == EMAIL_OPTION_PRIORITY_HIGH || ld->reply_flag || ld->forward_flag) { - elm_object_item_signal_emit(ld->item, "elm,state,lastverb", "elm"); - } - if (ld->is_seen == true) { elm_object_item_signal_emit(ld->item, "elm,state,read", "elm"); } else { @@ -550,9 +532,10 @@ static Evas_Object *_gl_mail_item_content_get(void *data, Evas_Object *obj, cons return NULL; } + Evas_Object *icon = NULL; list_data *ld = (list_data *)data; - if (!g_strcmp0(source, "elm.icon.colorbar")) { + if (!g_strcmp0(source, "elm.swallow.colorbar")) { Evas_Object *small_rect = evas_object_rectangle_add(evas_object_evas_get(obj)); evas_object_size_hint_fill_set(small_rect, EVAS_HINT_FILL, EVAS_HINT_FILL); @@ -563,76 +546,69 @@ static Evas_Object *_gl_mail_item_content_get(void *data, Evas_Object *obj, cons evas_object_color_set(small_rect, r, g, b, a); return (void *)small_rect; - - } else if (!g_strcmp0(source, "elm.icon.important")) { - if(ld->followup_flag > EMAIL_FLAG_FLAGED) - { - ld->flag_ic = elm_icon_add(obj); - evas_object_event_callback_add(ld->flag_ic, EVAS_CALLBACK_MOUSE_DOWN, _item_followup_flag_touched_cb, data); - - switch(ld->followup_flag) - { - case EMAIL_FLAG_TASK_STATUS_CLEAR: - elm_icon_file_set(ld->flag_ic, IMGDIR "/M02_email_Flag_Clear.png", NULL); - break; - case EMAIL_FLAG_TASK_STATUS_ACTIVE: - elm_icon_file_set(ld->flag_ic, IMGDIR "/M02_email_Flag_Active.png", NULL); - break; - case EMAIL_FLAG_TASK_STATUS_COMPLETE: - elm_icon_file_set(ld->flag_ic, IMGDIR "/M02_email_Flag_Complete.png", NULL); - break; - } - elm_icon_resizable_set(ld->flag_ic, 0, 1); - evas_object_image_smooth_scale_set(ld->flag_ic, 0); - //evas_object_propagate_events_set(flag_ic, EINA_FALSE); - return ld->flag_ic; - } - else - { - ld->important = elm_check_add(obj); - elm_check_state_pointer_set(ld->important, (Eina_Bool *)&ld->imp_sel); - elm_object_style_set(ld->important, "favorite/extended"); - evas_object_smart_callback_add(ld->important, "changed", _important_status_changed_cb, data); - evas_object_propagate_events_set(ld->important, EINA_FALSE); - return ld->important; - } - - } else if (!g_strcmp0(source, "elm.icon.important.touch")) { - if(ld->followup_flag > EMAIL_FLAG_FLAGED) - { - Evas_Object *small_rect = evas_object_rectangle_add(evas_object_evas_get(obj)); - evas_object_size_hint_fill_set(small_rect, EVAS_HINT_FILL, EVAS_HINT_FILL); - evas_object_color_set(small_rect, 0, 0, 0, 0); - - evas_object_event_callback_add(small_rect, EVAS_CALLBACK_MOUSE_DOWN, _item_followup_flag_touched_cb, data); - evas_object_propagate_events_set(small_rect, EINA_FALSE); - return small_rect; - } - } - - else if (!g_strcmp0(source, "elm.icon.checkbox")) { + } else if (!g_strcmp0(source, "elm.icon.1")) { ld->check = elm_check_add(obj); elm_check_state_pointer_set(ld->check, (Eina_Bool *)&ld->chksel); evas_object_smart_callback_add(ld->check, "changed", _item_check_changed_cb, data); evas_object_propagate_events_set(ld->check, EINA_FALSE); return ld->check; - } - - else if(!g_strcmp0(source, "elm.icon.checkbox.touch")) { - Evas_Object *small_rect = evas_object_rectangle_add(evas_object_evas_get(obj)); - evas_object_size_hint_fill_set(small_rect, EVAS_HINT_FILL, EVAS_HINT_FILL); - evas_object_color_set(small_rect, 0, 0, 0, 0); - evas_object_event_callback_add(small_rect, EVAS_CALLBACK_MOUSE_DOWN, _item_check_touched_cb, data); - evas_object_propagate_events_set(small_rect, EINA_FALSE); + } else if(!g_strcmp0(source, "elm.icon.2")){ + if(ld->priority == EMAIL_OPTION_PRIORITY_HIGH) { + icon = elm_icon_add(obj); + elm_icon_file_set(icon, IMGDIR "/M02_email_icon_priority.png", NULL); + elm_icon_resizable_set(icon, 0, 0); + evas_object_image_smooth_scale_set(icon, 0); + evas_object_show(icon); + return (void *)icon; + } else if(ld->reply_flag) { + icon = elm_icon_add(obj); + elm_icon_file_set(icon, IMGDIR "/M02_email_icon_reply.png", NULL); + elm_icon_resizable_set(icon, 0, 0); + evas_object_image_smooth_scale_set(icon, 0); + evas_object_show(icon); + return (void *)icon; + } else if (ld->forward_flag) { + icon = elm_icon_add(obj); + elm_icon_file_set(icon, IMGDIR "/M02_email_icon_forward.png", NULL); + elm_icon_resizable_set(icon, 0, 0); + evas_object_image_smooth_scale_set(icon, 0); + evas_object_show(icon); + return (void *)icon; + } + } else if(!g_strcmp0(source, "elm.icon.3")) { + Evas_Object *box = elm_box_add(obj); + evas_object_size_hint_align_set(box, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + elm_box_horizontal_set(box, EINA_TRUE); + elm_box_padding_set(box, 10, 0); + + ld->important = elm_check_add(obj); + elm_check_state_pointer_set(ld->important, (Eina_Bool *)&ld->imp_sel); + elm_object_style_set(ld->important, "favorite/extended"); + evas_object_smart_callback_add(ld->important, "changed", _important_status_changed_cb, data); + evas_object_propagate_events_set(ld->important, EINA_FALSE); + evas_object_size_hint_min_set(ld->important, 80, 60); + evas_object_show(ld->important); + elm_box_pack_end(box, ld->important); - return small_rect; - } - else if(!g_strcmp0(source, "elm.icon.num")){ + if(ld->is_attachment == true) + { + icon = elm_icon_add(obj); + elm_icon_file_set(icon, IMGDIR "/M02_email_icon_attach.png", NULL); + evas_object_size_hint_min_set(icon, 35, 35); + evas_object_show(icon); + elm_box_pack_start(box, icon); + } - } + icon = evas_object_rectangle_add(evas_object_evas_get(obj)); + evas_object_color_set(icon, 0, 0, 0, 0); + evas_object_size_hint_min_set(icon, 6, 16); + evas_object_show(icon); + elm_box_pack_start(box, icon); - else if (!g_strcmp0(source, "elm.slide.swallow.1")) { + return box; + } else if (!g_strcmp0(source, "elm.slide.swallow.1")) { /* First button of Sweep Menu */ if (NULL == ld->mailbox_ugd) { debug_critical(" ld->mailbox_ugd [%p] ", ld->mailbox_ugd); @@ -663,8 +639,7 @@ static Evas_Object *_gl_mail_item_content_get(void *data, Evas_Object *obj, cons { return _create_sweep_forward_button(obj,ld); } - } - else if (!g_strcmp0(source, "elm.slide.swallow.3")) { + } else if (!g_strcmp0(source, "elm.slide.swallow.3")) { /* 3rd button of Sweep Menu */ if (NULL == ld->mailbox_ugd) { debug_critical(" ld->mailbox_ugd [%p] ", ld->mailbox_ugd); @@ -687,8 +662,7 @@ static Evas_Object *_gl_mail_item_content_get(void *data, Evas_Object *obj, cons } else { return _create_sweep_read_unread_button(obj,ld); } - } - else if (!g_strcmp0(source, "elm.slide.swallow.4")) { + } else if (!g_strcmp0(source, "elm.slide.swallow.4")) { /* 4th button of Sweep Menu */ if (NULL == ld->mailbox_ugd) { debug_critical(" ld->mailbox_ugd [%p] ", ld->mailbox_ugd); @@ -703,8 +677,7 @@ static Evas_Object *_gl_mail_item_content_get(void *data, Evas_Object *obj, cons { return _create_sweep_delete_button(obj, ld); } - } - else if (0 == g_strcmp0(source, "elm.swallow.outbox.progress")) { + } else if (!g_strcmp0(source, "elm.swallow.outbox.progress")) { Evas_Object *outbox_progress_part = NULL; @@ -717,18 +690,6 @@ static Evas_Object *_gl_mail_item_content_get(void *data, Evas_Object *obj, cons } return (void *)outbox_progress_part; } - else if(!g_strcmp0(source, "elm.icon.attach")) - { - if(ld->is_attachment == true) - { - Evas_Object *ic = elm_icon_add(obj); - elm_icon_file_set(ic, IMGDIR "/M02_email_icon_attach.png", NULL); - elm_icon_resizable_set(ic, 0, 0); - evas_object_image_smooth_scale_set(ic, 0); - evas_object_show(ic); - return (void *)ic; - } - } #if 0 // support low priority message, priority icon postion is changed else if(!g_strcmp0(source, "elm.icon.priority")) { @@ -752,44 +713,7 @@ static Evas_Object *_gl_mail_item_content_get(void *data, Evas_Object *obj, cons } } #endif - else if(!g_strcmp0(source, "elm.icon.lastverb")) - { - if(ld->priority == EMAIL_OPTION_PRIORITY_HIGH) { - Evas_Object *ic = elm_icon_add(obj); - elm_icon_file_set(ic, IMGDIR "/M02_email_icon_priority.png", NULL); - elm_icon_resizable_set(ic, 0, 0); - evas_object_image_smooth_scale_set(ic, 0); - evas_object_show(ic); - return (void *)ic; - } else if(ld->reply_flag || ld->forward_flag) { - Evas_Object *ic = elm_icon_add(obj); - if(ld->reply_flag == true) - elm_icon_file_set(ic, IMGDIR "/M02_email_icon_reply.png", NULL); - else - elm_icon_file_set(ic, IMGDIR "/M02_email_icon_forward.png", NULL); - elm_icon_resizable_set(ic, 0, 0); - evas_object_image_smooth_scale_set(ic, 0); - evas_object_show(ic); - return (void *)ic; - } - } -#if 0 - else if(!g_strcmp0(source, "elm.icon.appointment")) - { - if(ld->priority == 1) - { - if(ld->item) - edje_object_signal_emit((Evas_Object *)elm_genlist_item_object_get(ld->item), "elm,state,priority", "elm"); - Evas_Object *ic = elm_icon_add(obj); - elm_icon_file_set(ic, IMGDIR "/05_email_icon_attach_30x30.png", NULL); - elm_icon_resizable_set(ic, 0, 0); - evas_object_image_smooth_scale_set(ic, 0); - evas_object_show(ic); - return (void *)ic; - } - } -#endif return NULL; } @@ -807,13 +731,13 @@ static char *_gl_mail_item_text_get(void *data, Evas_Object *obj, const char *pa debug_warning("mailbox_ugd is NULL"); return NULL; } - if (!g_strcmp0(part, "elm.text.subject")) { + if (!g_strcmp0(part, "elm.text.1")) { char title[SUBJECT_LEN + TAG_LEN*2 + 1] = {0}; /* two tags can be inserted */ strncat(title, ld->title, SUBJECT_LEN + TAG_LEN); /* search tag may be contained */ - strcat(title, "</>"); + //strcat(title, "</>"); return g_strdup(title); - } else if (!g_strcmp0(part, "elm.text.name")) { + } else if (!g_strcmp0(part, "elm.text.2")) { /* if (ld->from == NULL) { debug_log("from is NULL"); @@ -842,7 +766,7 @@ static char *_gl_mail_item_text_get(void *data, Evas_Object *obj, const char *pa return g_strdup(ld->alias); } - } else if (!g_strcmp0(part, "elm.text.date")) { + } else if (!g_strcmp0(part, "elm.text.3")) { if (ld->timeordate == NULL) { debug_log("timeordate is NULL"); @@ -853,7 +777,7 @@ static char *_gl_mail_item_text_get(void *data, Evas_Object *obj, const char *pa return g_strdup(""); else return g_strdup(ld->timeordate); - } else if (!g_strcmp0(part, "elm.text.preview")) { + } else if (!g_strcmp0(part, "elm.text.4")) { if (ld->preview_body == NULL) { debug_log("preview text is NULL"); return NULL; @@ -863,10 +787,6 @@ static char *_gl_mail_item_text_get(void *data, Evas_Object *obj, const char *pa } else if (!g_strcmp0(part, "elm.slide.text.1")) { /* Subject is to be displayed in Sweep Menu. ld->title stores Subject of email */ return g_strdup(ld->title); - } else if(!g_strcmp0(part,"elm.text.num")) { - char thread_cnt[10] = { 0, }; - sprintf(thread_cnt, "%d", ld->thread_count); - return g_strdup(thread_cnt); } else { debug_log(""); return NULL; @@ -967,8 +887,7 @@ void mailbox_create_list_view(EmailMailboxUGD *mailbox_ugd) } /* Set genlist item class */ - mailbox_ugd->itc1.item_style = "4text.8icon"; - + mailbox_ugd->itc1.item_style = "email.list"; mailbox_ugd->itc1.func.text_get = _gl_mail_item_text_get; mailbox_ugd->itc1.func.content_get = _gl_mail_item_content_get; mailbox_ugd->itc1.func.state_get = NULL; @@ -994,7 +913,7 @@ void mailbox_create_list_view(EmailMailboxUGD *mailbox_ugd) elm_object_style_set(gl, "handler"); elm_genlist_block_count_set(gl, BLOCK_COUNT); elm_genlist_homogeneous_set(gl, EINA_TRUE); - elm_genlist_mode_set(gl, ELM_LIST_COMPRESS); + //elm_genlist_mode_set(gl, ELM_LIST_COMPRESS); //genlist is updated when rotate event is detected(Resize) elm_genlist_select_mode_set(gl, ELM_OBJECT_SELECT_MODE_ALWAYS); evas_object_size_hint_align_set(gl, EVAS_HINT_FILL, EVAS_HINT_FILL); @@ -1010,6 +929,7 @@ void mailbox_create_list_view(EmailMailboxUGD *mailbox_ugd) { evas_object_smart_callback_add(gl, "edge,bottom", _get_more_clicked_cb, mailbox_ugd); + b_enable_get_more = true; } evas_object_show(gl); @@ -1088,13 +1008,13 @@ void _item_check_changed_cb(void *data, Evas_Object *obj, void *event_info) list_data *ld = (list_data *)data; if (ld != NULL) { - if (ld->is_sending_now == EMAIL_MAIL_STATUS_SENDING || ld->is_sending_now == EMAIL_MAIL_STATUS_SEND_WAIT) { + if (ld->mail_status == EMAIL_MAIL_STATUS_SENDING || ld->mail_status == EMAIL_MAIL_STATUS_SEND_WAIT) { debug_log("email being sent selected - unselect it"); elm_check_state_set(ld->check, EINA_FALSE); return; } + _process_item_check_changed_cb(ld); } - _process_item_check_changed_cb(ld); } void _item_check_touched_cb(void *data, Evas * evas, Evas_Object *obj, void *event_info) @@ -1146,7 +1066,6 @@ static void _process_item_check_changed_cb(list_data *ld) evas_object_hide(mailbox_ugd->searchbar_layout); _create_controlbar(mailbox_ugd); - elm_object_item_part_content_set(mailbox_ugd->navibar_item[mailbox_ugd->previous_view], "controlbar", mailbox_ugd->controlbar_btns); elm_object_disabled_set(mailbox_ugd->folder_button, EINA_TRUE); } else if(cnt <= 0) @@ -1208,8 +1127,8 @@ static void _list_item_clicked(void *data, Evas_Object *obj, void *event_info) if ((mbox->mailbox_type == EMAIL_MAILBOX_TYPE_DRAFT || (mbox->mailbox_type == EMAIL_MAILBOX_TYPE_OUTBOX - && (ld->is_sending_now == EMAIL_MAIL_STATUS_SEND_CANCELED - || ld->is_sending_now == EMAIL_MAIL_STATUS_SEND_FAILURE))) + && (ld->mail_status == EMAIL_MAIL_STATUS_SEND_CANCELED + || ld->mail_status == EMAIL_MAIL_STATUS_SEND_FAILURE))) && email_engine_check_body_download(ld->mail_id)) { if (ld->mailbox_ugd->ug_composer) { @@ -1544,7 +1463,7 @@ list_data *make_list_data(email_mail_list_item_t* mail_info, const EmailSearchDa ld->is_body_download = mail_info->body_download_status; ld->account_id = mail_info->account_id; ld->imp_sel = mail_info->flags_flagged_field; - ld->is_sending_now = mail_info->save_status; + ld->mail_status = mail_info->save_status; ld->mailbox_id = mail_info->mailbox_id; ld->preview_body = STRNDUP(mail_info->preview_text, MAX_PREVIEW_TEXT_LENGTH - 1); ld->reply_flag = mail_info->flags_answered_field; @@ -1567,12 +1486,33 @@ list_data *make_list_data(email_mail_list_item_t* mail_info, const EmailSearchDa debug_log("alias: %s", ld->alias); if(mailbox_ugd->mode == EMAIL_MAILBOX_MODE_MAILBOX && - (ld->mailbox_type == EMAIL_MAILBOX_TYPE_OUTBOX || - ld->mailbox_type == EMAIL_MAILBOX_TYPE_SENTBOX || - ld->mailbox_type == EMAIL_MAILBOX_TYPE_DRAFT)) { + (mailbox_ugd->mailbox_type == EMAIL_MAILBOX_TYPE_OUTBOX || + mailbox_ugd->mailbox_type == EMAIL_MAILBOX_TYPE_SENTBOX || + mailbox_ugd->mailbox_type == EMAIL_MAILBOX_TYPE_DRAFT)) { /* recipient display name from email alais */ + email_address_info_list_t *addrs_info_list = NULL; + email_address_info_t *addrs_info = NULL; + email_get_address_info_list(ld->mail_id, &addrs_info_list); + + if(addrs_info_list) { + if(addrs_info_list->to) { + addrs_info = g_list_nth_data(addrs_info_list->to, 0); + } + + if(addrs_info) { + if (addrs_info->display_name) + ld->recipient = STRNDUP(addrs_info->display_name, RECIPIENT_LEN - 1); + else + ld->recipient = STRNDUP(addrs_info->address, RECIPIENT_LEN - 1); + } + email_free_address_info_list(&addrs_info_list); + } else { + ld->recipient = STRNDUP(dgettext("sys_string", "IDS_COM_BODY_NO_NAME"), RECIPIENT_LEN - 1); + } + /* UTF8_VALIDATE(mail_info->email_address_recipient, RECIPIENT_LEN - 1); ld->recipient = GET_NAME_FROM_ALIAS(mail_info->email_address_recipient, RECIPIENT_LEN - 1); + */ debug_log("info->recipient: %s", ld->recipient); } else { /* sender display name from email alias */ @@ -2268,7 +2208,6 @@ void _edit_back_cb(void *data, Evas_Object *obj, void *event_info) if (mailbox_ugd->view_type == EMAIL_VIEW_EDIT && mailbox_ugd->isRotate == true) { - elm_object_item_part_content_unset(mailbox_ugd->navibar_item[mailbox_ugd->view_type], "controlbar"); _delete_controlbar(mailbox_ugd); email_maillist_select_info(mailbox_ugd); } @@ -2456,6 +2395,23 @@ void _refresh_mailbox(EmailMailboxUGD *mailbox_ugd) _create_mail_list(mailbox_ugd); } +void _refresh_mailbox_fullview(EmailMailboxUGD *mailbox_ugd) +{ + debug_log(""); + _refresh_mailbox(mailbox_ugd); + _update_navigationbar_title(mailbox_ugd); + + if(mailbox_ugd->ctxpopup) { + evas_object_del(mailbox_ugd->ctxpopup); + mailbox_ugd->ctxpopup = NULL; + } + + if (mailbox_ugd->view_type == EMAIL_VIEW_EDIT) + { + email_maillist_select_info(mailbox_ugd); + } +} + void _create_mail_list(EmailMailboxUGD *mailbox_ugd) { debug_log(""); @@ -2652,17 +2608,22 @@ void _make_account_mail_list(void *data) mailbox_ugd->mailbox_type = GET_MAILBOX_TYPE(mailbox_ugd->mailbox_id); email_account_t *account; - email_get_account(mailbox_ugd->account_id, EMAIL_ACC_GET_OPT_DEFAULT, &account); - elm_icon_file_set(mailbox_ugd->sp_icon, account->logo_icon_path, NULL); + int err = 0; + err = email_get_account(mailbox_ugd->account_id, EMAIL_ACC_GET_OPT_DEFAULT, &account); + if (err == EMAIL_ERROR_NONE) { + elm_icon_file_set(mailbox_ugd->sp_icon, account->logo_icon_path, NULL); + } elm_object_part_text_set(mailbox_ugd->navi_title_ly, "txt_sub", mailbox_ugd->user_email); - if(account) email_free_account(&account, 1); + if (account) { + elm_icon_file_set(mailbox_ugd->sp_icon, account->logo_icon_path, NULL); + email_free_account(&account, 1); + } } if (mailbox_ugd->isRotate == false) { _create_controlbar(mailbox_ugd); - elm_object_item_part_content_set(mailbox_ugd->navibar_item[mailbox_ugd->view_type], "controlbar", mailbox_ugd->controlbar_btns); } _refresh_mailbox(mailbox_ugd); @@ -2939,7 +2900,7 @@ void _worker_get_move_mail_list_cb(void* data, Ecore_Thread *thd) debug_log("idx: [%d]", *idx); ld = _find_mailinfo_by_mailid(*idx, mailbox_ugd->list_data[vt]); if(ld) { - ld->is_sending_now = EMAIL_MAIL_STATUS_SENT; + ld->mail_status = EMAIL_MAIL_STATUS_SENT; delete_ret_t *ret = MEM_ALLOC(ret, 1); if(!ret) return; *ret = (delete_ret_t) {ld, *idx}; @@ -3356,4 +3317,27 @@ static void reset_busy_cb(void *data, Evas *e, Evas_Object *o, void *info) is_main_thread_busy = false; } +void reset_get_more_progress_callback_status(EmailMailboxUGD *mailbox_ugd) +{ + debug_log(""); + + if ((mailbox_ugd->view_type == EMAIL_VIEW_DATE + && mailbox_ugd->mode == EMAIL_MAILBOX_MODE_ALL) || + (mailbox_ugd->view_type == EMAIL_VIEW_DATE + && mailbox_ugd->mode == EMAIL_MAILBOX_MODE_MAILBOX + && EMAIL_SERVER_TYPE_ACTIVE_SYNC != GET_ACCOUNT_SERVER_TYPE(mailbox_ugd->account_id) + && GET_MAILBOX_TO_GETMORE(mailbox_ugd->mailbox_id) > 0)) + { + if(b_enable_get_more == false) { + evas_object_smart_callback_add(mailbox_ugd->gl[mailbox_ugd->view_type], "edge,bottom", _get_more_clicked_cb, mailbox_ugd); + b_enable_get_more = true; + } + } else { + if(b_enable_get_more) { + evas_object_smart_callback_del(mailbox_ugd->gl[mailbox_ugd->view_type], "edge,bottom", _get_more_clicked_cb); + b_enable_get_more = false; + } + } + +} diff --git a/mailbox/src/email-mailbox-noti-mgr.c b/mailbox/src/email-mailbox-noti-mgr.c index e0cb85f..c74a521 100755 --- a/mailbox/src/email-mailbox-noti-mgr.c +++ b/mailbox/src/email-mailbox-noti-mgr.c @@ -504,11 +504,17 @@ static void _edbus_event_mailbox_receive(void *local_data, DBusMessage *message) default: break; } - elm_segment_control_item_selected_set(mailbox_ugd->date_tab, EINA_TRUE); _update_navigationbar_title(mailbox_ugd); mailbox_make_date_mail_list(mailbox_ugd); _sync_all_folder(mailbox_ugd); - + Evas_Object * sync_button = elm_object_part_content_get(mailbox_ugd->navi_title_ly, "right_btn"); + if (sync_button == mailbox_ugd->update_button) + { + elm_object_part_content_unset(mailbox_ugd->navi_title_ly, "right_btn"); + evas_object_hide(mailbox_ugd->update_button); + elm_object_part_content_set(mailbox_ugd->navi_title_ly, "right_btn", mailbox_ugd->sync_progress); + evas_object_show(mailbox_ugd->sync_progress); + } } break; @@ -643,7 +649,7 @@ static void _edbus_event_mailbox_receive(void *local_data, DBusMessage *message) email_mail_list_item_t* mail_info = NULL; mail_info = get_mail_info(mailid); if(!mail_info) break; - ld->is_sending_now = mail_info->save_status; + ld->mail_status = mail_info->save_status; elm_genlist_item_update(ld->item); FREE(mail_info); } @@ -766,16 +772,41 @@ static void _edbus_event_mailbox_receive(void *local_data, DBusMessage *message) case NOTI_DOWNLOAD_FINISH: case NOTI_DOWNLOAD_FAIL: - if (email_check_account_list(data1)) { + if (email_check_account_list(data1) || data1 == 0) { + + if(data1 == 0) { + /* free list */ + debug_log("Sync finished when account_id = 0(All inbox case)"); + int *data = NULL; + EINA_LIST_FREE(g_account_list, data) { + g_free(data); + } + } _remove_get_more_progress_item(mailbox_ugd); if (mailbox_ugd->sync_progress == elm_object_part_content_get(mailbox_ugd->navi_title_ly, "right_btn")) { + debug_log("2222222222222222222222222"); elm_object_part_content_unset(mailbox_ugd->navi_title_ly, "right_btn"); evas_object_hide(mailbox_ugd->sync_progress); elm_object_part_content_set(mailbox_ugd->navi_title_ly, "right_btn", mailbox_ugd->update_button); evas_object_show(mailbox_ugd->update_button); } + + if(subtype == NOTI_DOWNLOAD_FAIL && (data4 == EMAIL_ERROR_LOGIN_FAILURE || data4 == EMAIL_ERROR_AUTHENTICATE)) { + int mailbox_id = 0; + if(data2) + mailbox_id = atoi(data2); + + debug_log("error : %d, account_id = %d, mailbox_id = %d", data4, data1, mailbox_id); + mailbox_ugd->sync_needed_mailbox_id = mailbox_id; + mailbox_ugd->sync_needed_account_id = data1; + mailbox_create_password_changed_popup(mailbox_ugd); + } + } + else + { + debug_log("1111111111111111111"); } break; diff --git a/mailbox/src/email-mailbox-search.c b/mailbox/src/email-mailbox-search.c index 1971f16..03cba67 100755 --- a/mailbox/src/email-mailbox-search.c +++ b/mailbox/src/email-mailbox-search.c @@ -300,8 +300,6 @@ static void _searchby_ctxpopup_cb(void *data, Evas_Object *obj, void *event_info { elm_icon_file_set(searchby_icon, IMGDIR"/M02_email_icon_popup_advanced_press.png", NULL); } - else - goto CLEANUP; elm_icon_resizable_set(searchby_icon, 0, 0); evas_object_image_smooth_scale_set(searchby_icon, 0); @@ -562,17 +560,17 @@ static Eina_Bool _mailbox_create_search_criteria_view(int search_type, void *dat //should be replaced with new string if ( search_type == EMAIL_SEARCH_ADVANCED ) { - navi_item = elm_naviframe_item_push(mailbox_ugd->navi_bar, N_("Advanced search"), btn_back, NULL, genlist_for_search, NULL); + navi_item = elm_naviframe_item_push(mailbox_ugd->navi_bar, _("IDS_EMAIL_OPT_ADVANCED"), btn_back, NULL, genlist_for_search, NULL); } else if ( search_type == EMAIL_SEARCH_DATE ) { navi_item = elm_naviframe_item_push(mailbox_ugd->navi_bar, N_("Date range"), btn_back, NULL, genlist_for_search, NULL); } btn_ok = elm_button_add(mailbox_ugd->navi_bar); - _mailbox_advanced_view_create_controlbar_button(btn_ok, dgettext("sys_string", "IDS_COM_SK_OK"), "naviframe/title/default", _mailbox_advanced_search_start_cb, data); + _mailbox_advanced_view_create_controlbar_button(btn_ok, dgettext("sys_string", "IDS_COM_SK_OK"), NULL, _mailbox_advanced_search_start_cb, data); elm_object_item_part_content_set(navi_item, "title_left_btn", btn_ok); btn_cancel = elm_button_add(mailbox_ugd->navi_bar); - _mailbox_advanced_view_create_controlbar_button(btn_cancel, dgettext("sys_string", "IDS_COM_SK_CANCEL"), "naviframe/title/default", _mailbox_advanced_search_cancel_cb, data); + _mailbox_advanced_view_create_controlbar_button(btn_cancel, dgettext("sys_string", "IDS_COM_SK_CANCEL"), NULL, _mailbox_advanced_search_cancel_cb, data); elm_object_item_part_content_set(navi_item, "title_right_btn", btn_cancel); elm_object_item_signal_emit(mailbox_ugd->navibar_item[mailbox_ugd->view_type], "elm,state,controlbar,close", ""); @@ -598,7 +596,7 @@ static void _mailbox_advanced_view_create_controlbar_button(Evas_Object *btn, ch { EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data; - elm_object_style_set(btn, style); + //elm_object_style_set(btn, style); evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(btn, EVAS_HINT_FILL, 0.5); elm_object_text_set(btn, label); @@ -633,9 +631,9 @@ static void _mailbox_advanced_search_start_cb(void *data, Evas_Object *obj, void struct tm tm_from; struct tm tm_to; - elm_naviframe_item_pop(mailbox_ugd->navi_bar); - if (mailbox_ugd) { + elm_naviframe_item_pop(mailbox_ugd->navi_bar); + search_info = mailbox_ugd->adv_search_info; if (search_info) @@ -709,6 +707,9 @@ static void _mailbox_create_list_view_for_advanced_search(void *data, int search ELM_GENLIST_ITEM_NONE, _gl_advanced_search_sel_cb, &item_data[i]); } else if (search_type == EMAIL_SEARCH_DATE) { item_data = (mailbox_search_list_item *)calloc(2, sizeof(mailbox_search_list_item)); + } else { + debug_log("invalid search_type parameter : %d", search_type); + return; } /* Date From*/ diff --git a/mailbox/src/email-mailbox-sweep.c b/mailbox/src/email-mailbox-sweep.c index a2d7489..d3466f5 100755 --- a/mailbox/src/email-mailbox-sweep.c +++ b/mailbox/src/email-mailbox-sweep.c @@ -32,21 +32,18 @@ static void _popup_response_sweep_delete_ok_cb(void *data, Evas_Object *obj, voi Evas_Object* _create_sweep_delete_button(Evas_Object* parent,list_data* ld) { - + debug_enter(); Evas_Object *button = elm_button_add(parent); elm_object_style_set(button, "sweep/delete"); - if(ld->thread_count > 1 && ld->mailbox_ugd->b_thread_list) { - elm_object_text_set(button, dgettext("sys_string", "IDS_COM_BODY_DELETE_ALL")); - } - else{ + if (ld) { elm_object_text_set(button, dgettext("sys_string", "IDS_COM_SK_DELETE")); - } - evas_object_smart_callback_add(button, "clicked", _sweep_delete_cb, ld); + evas_object_smart_callback_add(button, "clicked", _sweep_delete_cb, ld); - if (ld != NULL && (ld->is_sending_now == EMAIL_MAIL_STATUS_SENDING || ld->is_sending_now == EMAIL_MAIL_STATUS_SEND_WAIT)) - elm_object_disabled_set(button,EINA_TRUE); + if (ld->mail_status == EMAIL_MAIL_STATUS_SENDING || ld->mail_status == EMAIL_MAIL_STATUS_SEND_WAIT) + elm_object_disabled_set(button,EINA_TRUE); + } return button; @@ -54,20 +51,22 @@ Evas_Object* _create_sweep_delete_button(Evas_Object* parent,list_data* ld) Evas_Object* _create_sweep_read_unread_button(Evas_Object* parent,list_data* ld) { - + debug_enter(); Evas_Object *button = elm_button_add(parent); elm_object_style_set(button, "sweep/multiline"); - if (ld->is_seen == false) - elm_object_text_set(button, _("IDS_EMAIL_OPT_MARK_AS_READ")); - else - elm_object_text_set(button, _("IDS_EMAIL_OPT_MARK_AS_UNREAD")); - - evas_object_smart_callback_add(button, "clicked", _sweep_mark_as_read_unread_cb, ld); - - if ((ld != NULL && (ld->is_sending_now == EMAIL_MAIL_STATUS_SENDING || ld->is_sending_now == EMAIL_MAIL_STATUS_SEND_WAIT)) - || (ld->thread_count > 1 && ld->mailbox_ugd->b_thread_list)) - { - elm_object_disabled_set(button,EINA_TRUE); + if (ld) { + if (ld->is_seen == false) + elm_object_text_set(button, _("IDS_EMAIL_OPT_MARK_AS_READ")); + else + elm_object_text_set(button, _("IDS_EMAIL_OPT_MARK_AS_UNREAD")); + + evas_object_smart_callback_add(button, "clicked", _sweep_mark_as_read_unread_cb, ld); + + if ((ld->mail_status == EMAIL_MAIL_STATUS_SENDING || ld->mail_status == EMAIL_MAIL_STATUS_SEND_WAIT) + || (ld->thread_count > 1 && ld->mailbox_ugd->b_thread_list)) + { + elm_object_disabled_set(button,EINA_TRUE); + } } return button; @@ -75,13 +74,13 @@ Evas_Object* _create_sweep_read_unread_button(Evas_Object* parent,list_data* ld) Evas_Object* _create_sweep_move_button(Evas_Object* parent,list_data* ld) { - + debug_enter(); Evas_Object *button = elm_button_add(parent); elm_object_style_set(button, "sweep/multiline"); elm_object_text_set(button, dgettext("sys_string", "IDS_COM_BODY_MOVE")); evas_object_smart_callback_add(button, "clicked", _sweep_move_cb, ld); - if (ld != NULL && (ld->is_sending_now == EMAIL_MAIL_STATUS_SENDING || ld->is_sending_now == EMAIL_MAIL_STATUS_SEND_WAIT)) + if (ld != NULL && (ld->mail_status == EMAIL_MAIL_STATUS_SENDING || ld->mail_status == EMAIL_MAIL_STATUS_SEND_WAIT)) elm_object_disabled_set(button,EINA_TRUE); return button; @@ -89,13 +88,13 @@ Evas_Object* _create_sweep_move_button(Evas_Object* parent,list_data* ld) Evas_Object* _create_sweep_reply_button(Evas_Object* parent,list_data* ld) { - + debug_enter(); Evas_Object *button = elm_button_add(parent); elm_object_style_set(button, "sweep/multiline"); elm_object_text_set(button, dgettext("sys_string", "IDS_COM_SK_REPLY")); evas_object_smart_callback_add(button, "clicked", _sweep_reply_cb, ld); - if (ld != NULL && (ld->is_sending_now == EMAIL_MAIL_STATUS_SENDING || ld->is_sending_now == EMAIL_MAIL_STATUS_SEND_WAIT)) + if (ld != NULL && (ld->mail_status == EMAIL_MAIL_STATUS_SENDING || ld->mail_status == EMAIL_MAIL_STATUS_SEND_WAIT)) elm_object_disabled_set(button,EINA_TRUE); return button; @@ -104,13 +103,13 @@ Evas_Object* _create_sweep_reply_button(Evas_Object* parent,list_data* ld) Evas_Object* _create_sweep_forward_button(Evas_Object* parent,list_data* ld) { - + debug_enter(); Evas_Object *button = elm_button_add(parent); elm_object_style_set(button, "sweep/multiline"); elm_object_text_set(button, dgettext("sys_string", "IDS_COM_BODY_FORWARD")); evas_object_smart_callback_add(button, "clicked", _sweep_forward_cb, ld); - if (ld != NULL && (ld->is_sending_now == EMAIL_MAIL_STATUS_SENDING || ld->is_sending_now == EMAIL_MAIL_STATUS_SEND_WAIT)) + if (ld != NULL && (ld->mail_status == EMAIL_MAIL_STATUS_SENDING || ld->mail_status == EMAIL_MAIL_STATUS_SEND_WAIT)) elm_object_disabled_set(button,EINA_TRUE); return button; diff --git a/mailbox/src/email-mailbox.c b/mailbox/src/email-mailbox.c index 55049e3..3788ce8 100755 --- a/mailbox/src/email-mailbox.c +++ b/mailbox/src/email-mailbox.c @@ -49,6 +49,7 @@ static void _create_all_emails_view(Evas_Object *parent, EmailMailboxUGD *mailbo static Evas_Object *_create_navigation_layout(Evas_Object *parent); static void _account_cb(void *data, Evas_Object *obj, void *event_info); static void _folder_cb(void *data, Evas_Object *obj, void *event_info); +static void _add_account(void *data); //static void _process_mailview_back(EmailMailboxUGD *mailbox_ugd); //static char *_gl_text_get(void *data, Evas_Object *obj, const char *part); //static Evas_Object *_gl_content_get(void *data, Evas_Object *obj, const char *part); @@ -86,9 +87,12 @@ static void on_key_event(ui_gadget_h ug, enum ug_key_event event, service_h serv /* ui-gadget prototype declaration */ /* ============================================================*/ static Evas_Object *create_fullview(Evas_Object *parent, EmailMailboxUGD *mailbox_ugd); +static void layout_setting_cb(ui_gadget_h ug, enum ug_mode mode, void *priv); static void layout_account_cb(ui_gadget_h ug, enum ug_mode mode, void *priv); static void layout_viewer_cb(ui_gadget_h ug, enum ug_mode mode, void *priv); +static void result_setting_cb(ui_gadget_h ug, service_h service, void *priv); static void result_cb(ui_gadget_h ug, service_h service, void *priv); +static void destroy_setting_cb(ui_gadget_h ug, void *priv); static void destroy_viewer_cb(ui_gadget_h ug, void *priv); static void destroy_composer_cb(ui_gadget_h ug, void *priv); static ui_gadget_h create_account_ug(char *ug_name, service_h service, void *data); @@ -96,12 +100,24 @@ static ui_gadget_h create_folder_ug(char *ug_name, service_h service, void *data static ui_gadget_h create_viewer_ug(char *ug_name, service_h service, void *data); static void result_viewer_cb(ui_gadget_h ug, service_h service, void *priv); +static void _email_mailbox_timezone_change_cb(keynode_t *key, void *data); + #define THREADID_MASK 0xFFFF #define MAILID_MASK (THREADID_MASK << 16) #define MAX_UTF8_CHAR_SIZE 7 +void _sync_folder_with_new_password(int account_id, int mailbox_id, void *data); +static void _mailbox_change_password_popup_canceled_cb(void *data, Evas_Object *obj, void *event_info); +static void _mailbox_change_password_popup_ok_cb(void *data, Evas_Object *obj, void *event_info); +static void _mailbox_update_account_password(void *data); +static void _password_eraser_clicked_cb(void *data, Evas_Object *obj, const char *emission, const char *source); +static void _password_entry_unfocused_cb(void *data, Evas_Object *obj, void *event_info); +static void _password_entry_focused_cb(void *data, Evas_Object *obj, void *event_info); +static void _password_entry_changed_cb(void *data, Evas_Object *obj, void *event_info); + + #if 0 struct timeval before_time; struct timeval after_time; @@ -169,6 +185,9 @@ static Evas_Object *create_fullview(Evas_Object *parent, EmailMailboxUGD *mailbo mailbox_ugd->view_type = EMAIL_VIEW_DATE; _create_all_emails_view(parent, mailbox_ugd); } + + elm_object_signal_emit(mailbox_ugd->panes, "elm,panes,unpair", ""); + return mailbox_ugd->ly; } @@ -242,6 +261,9 @@ static void *on_create(ui_gadget_h ug, enum ug_mode mode, service_h service, voi mailbox_ugd->base = NULL; } + email_register_timezone_changed_callback(_email_mailbox_timezone_change_cb, mailbox_ugd); + + return mailbox_ugd->layout_main; } @@ -299,6 +321,8 @@ static void on_destroy(ui_gadget_h ug, service_h service, void *priv) /*elm_theme_extension_del(mailbox_ugd->theme, THEME_PATH); elm_theme_free(mailbox_ugd->theme);*/ + email_deregister_timezone_changed_callback(_email_mailbox_timezone_change_cb); + _remove_dbus_receiver(mailbox_ugd); int ret = e_dbus_shutdown(); @@ -476,6 +500,7 @@ static void on_event(ui_gadget_h ug, enum ug_event event, service_h service, voi case UG_EVENT_LOW_BATTERY: break; case UG_EVENT_LANG_CHANGE: + _refresh_mailbox_fullview(mailbox_ugd); break; case UG_EVENT_ROTATE_PORTRAIT: @@ -556,17 +581,14 @@ static void _mailbox_rotate_to_potrait(void *data, int angle) debug_log("view type = %d, previous_view = %d", mailbox_ugd->view_type, mailbox_ugd->previous_view); - elm_object_item_part_content_unset(mailbox_ugd->navibar_item[mailbox_ugd->view_type], "controlbar"); - _create_controlbar(mailbox_ugd); - if (mailbox_ugd->view_type == EMAIL_VIEW_EDIT) - { - elm_object_item_part_content_set(mailbox_ugd->navibar_item[mailbox_ugd->previous_view], "controlbar", mailbox_ugd->controlbar_btns); - } - else - { - elm_object_item_part_content_set(mailbox_ugd->navibar_item[mailbox_ugd->view_type], "controlbar", mailbox_ugd->controlbar_btns); + if(mailbox_ugd->passwd_popup) { + evas_object_del(mailbox_ugd->passwd_popup); + mailbox_ugd->passwd_popup = NULL; } + //elm_object_item_part_content_unset(mailbox_ugd->navibar_item[mailbox_ugd->view_type], "controlbar"); + _create_controlbar(mailbox_ugd); + elm_win_rotation_with_resize_set(mailbox_ugd->win_main, angle); if (!evas_object_visible_get(mailbox_ugd->navi_title_ly)) { @@ -598,6 +620,8 @@ static void _mailbox_rotate_to_potrait(void *data, int angle) { email_maillist_select_info(mailbox_ugd); } + + elm_object_signal_emit(mailbox_ugd->panes, "elm,panes,unpair", ""); } @@ -610,6 +634,11 @@ static void _mailbox_rotate_to_landscape(void *data, int angle) debug_log("view type = %d, previous_view = %d", mailbox_ugd->view_type, mailbox_ugd->previous_view); + if(mailbox_ugd->passwd_popup) { + evas_object_del(mailbox_ugd->passwd_popup); + mailbox_ugd->passwd_popup = NULL; + } + if (elm_panes_content_left_size_get(mailbox_ugd->panes) == 1.0) { if(mailbox_ugd->b_advanced_search_view) { debug_log("advanced search view exists. should be removed"); @@ -639,12 +668,10 @@ static void _mailbox_rotate_to_landscape(void *data, int angle) if (mailbox_ugd->view_type == EMAIL_VIEW_EDIT) { _create_controlbar(mailbox_ugd); - elm_object_item_part_content_set(mailbox_ugd->navibar_item[mailbox_ugd->previous_view], "controlbar", mailbox_ugd->controlbar_btns); email_maillist_select_info(mailbox_ugd); } else { - elm_object_item_part_content_unset(mailbox_ugd->navibar_item[mailbox_ugd->view_type], "controlbar"); _delete_controlbar(mailbox_ugd); } @@ -675,6 +702,8 @@ static void _mailbox_rotate_to_landscape(void *data, int angle) destroy_account_cb(mailbox_ugd->ug_account, mailbox_ugd); } + + elm_object_signal_emit(mailbox_ugd->panes, "elm,panes,pair", ""); } static void on_key_event(ui_gadget_h ug, enum ug_key_event event, service_h service, void *priv) @@ -738,6 +767,31 @@ UG_MODULE_API void UG_MODULE_EXIT(struct ug_module_ops *ops) FREE(ugd); } +static void layout_setting_cb(ui_gadget_h ug, enum ug_mode mode, void *priv) +{ + debug_log(""); + Evas_Object *base; + EmailMailboxUGD *ugd; + + if (!ug || !priv) + return; + + ugd = (EmailMailboxUGD *)priv; + + base = ug_get_layout(ug); + if (!base) + return; + + switch (mode) { + case UG_MODE_FULLVIEW: + evas_object_size_hint_weight_set(base, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_show(base); + break; + default: + break; + } +} + static void layout_account_cb(ui_gadget_h ug, enum ug_mode mode, void *priv) { debug_log(""); @@ -764,7 +818,6 @@ static void layout_account_cb(ui_gadget_h ug, enum ug_mode mode, void *priv) switch (mode) { case UG_MODE_FULLVIEW: evas_object_size_hint_weight_set(base, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - elm_win_resize_object_add(ugd->win_main, base); evas_object_show(base); break; @@ -814,7 +867,6 @@ void layout_composer_cb(ui_gadget_h ug, enum ug_mode mode, void *priv) switch (mode) { case UG_MODE_FULLVIEW: evas_object_size_hint_weight_set(base, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - elm_win_resize_object_add(ugd->win_main, base); evas_object_show(base); break; default: @@ -841,7 +893,7 @@ static void layout_viewer_cb(ui_gadget_h ug, enum ug_mode mode, void *priv) ugd->viewer_ly = base; switch (mode) { - case UG_MODE_FULLVIEW: + case UG_MODE_FRAMEVIEW: evas_object_size_hint_weight_set(base, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); ug_disable_effect(ug); evas_object_show(base); @@ -851,10 +903,35 @@ static void layout_viewer_cb(ui_gadget_h ug, enum ug_mode mode, void *priv) } } +void result_setting_cb(ui_gadget_h ug, service_h service, void *priv) +{ + EmailMailboxUGD *mailbox_ugd; + debug_log(""); + + if (NULL == ug || NULL == priv) { + return; + } + + mailbox_ugd = (EmailMailboxUGD *)priv; + + if (ug == mailbox_ugd->ug_setting) { + char *val = NULL; + service_get_extra_data(service, EMAIL_BUNDLE_KEY_REFRESH_ACCOUNT, &val); + if (STR_VALID(val)) { + if (g_strcmp0(val, EMAIL_BUNDLE_KEY_REFRESH_ACCOUNT) == 0) { + ug_destroy(mailbox_ugd->ug_setting); + mailbox_ugd->ug_setting = NULL; + } + g_free(val); + } + } +} + static void result_cb(ui_gadget_h ug, service_h service, void *priv) { debug_log(""); EmailMailboxUGD *mailbox_ugd; + int ret; if (!ug || !priv) return; @@ -868,14 +945,23 @@ static void result_cb(ui_gadget_h ug, service_h service, void *priv) ug_pushed = false; char *account_id = NULL; - char *c_is_null = NULL; + char *type = NULL; char *mailbox_type = NULL; - service_get_extra_data(service, EMAIL_BUNDLE_KEY_ACCOUNT_ID, &(account_id)); - service_get_extra_data(service, EMAIL_BUNDLE_KEY_IS_NULL, &(c_is_null)); + if (mailbox_ugd->ug_account) + destroy_account_cb(mailbox_ugd->ug_account, mailbox_ugd); + + ret = service_get_extra_data(service, EMAIL_BUNDLE_KEY_ACCOUNT_TYPE, &type); + debug_log("service_get_extra_data: %d", ret); + + if (g_strcmp0(type, EMAIL_BUNDLE_VAL_ALL_ACCOUNT) == 0) { + debug_log("EMAIL_BUNDLE_VAL_ALL_ACCOUNT"); + + ret = service_get_extra_data(service, EMAIL_BUNDLE_KEY_ACCOUNT_ID, &account_id); + debug_log("service_get_extra_data: %d", ret); + + mailbox_ugd->account_id = (gint) atoi(account_id); - mailbox_ugd->account_id = (gint) atoi(account_id); - if (atoi(c_is_null)) { if (mailbox_ugd->account_id != 0) { email_mailbox_t *mailbox = NULL; int e = email_get_mailbox_by_mailbox_type(mailbox_ugd->account_id, EMAIL_MAILBOX_TYPE_INBOX, &mailbox); @@ -883,52 +969,62 @@ static void result_cb(ui_gadget_h ug, service_h service, void *priv) if( e == EMAIL_ERROR_NONE && mailbox ) { debug_log("email_get_mailbox_by_mailbox_type : account_id(%d) type(INBOX) - err(%d) or mailbox is NULL(%p)", mailbox_ugd->account_id, e, mailbox); - service_get_extra_data(service, EMAIL_BUNDLE_KEY_USER_EMAIL, &(mailbox_ugd->user_email)); + ret = service_get_extra_data(service, EMAIL_BUNDLE_KEY_USER_EMAIL, &(mailbox_ugd->user_email)); + debug_log("service_get_extra_data: %d", ret); + mailbox_ugd->mode = EMAIL_MAILBOX_MODE_MAILBOX; mailbox_ugd->mailbox_id = mailbox->mailbox_id; mailbox_ugd->mailbox_type = EMAIL_MAILBOX_TYPE_INBOX; mailbox_ugd->folder_alias = g_strdup(mailbox->alias); - debug_log("account_id: [%d], mailbox_id: [%d], folder_alias[%s], user_email: [%s]", + debug_log("account_id(%d), mailbox_id(%d), folder_alias(%s), user_email(%s)", mailbox_ugd->account_id, mailbox_ugd->mailbox_id, mailbox_ugd->folder_alias, mailbox_ugd->user_email); email_free_mailbox(&mailbox, 1); } - } - else - { - service_get_extra_data(service, EMAIL_BUNDLE_KEY_MAILBOX_TYPE, &(mailbox_type)); + } else { + ret = service_get_extra_data(service, EMAIL_BUNDLE_KEY_MAILBOX_TYPE, &(mailbox_type)); + debug_log("service_get_extra_data: %d", ret); + mailbox_ugd->mailbox_type = (gint) atoi(mailbox_type); mailbox_ugd->mode = EMAIL_MAILBOX_MODE_ALL; - debug_log("account_id: [%d], mailbox_type: [%d]", mailbox_ugd->account_id, mailbox_ugd->mailbox_type); + debug_log("account_id(%d), mailbox_type(%d)", mailbox_ugd->account_id, mailbox_ugd->mailbox_type); } - } - else - { + + reset_get_more_progress_callback_status(mailbox_ugd); + _make_account_mail_list(mailbox_ugd); + } else if (g_strcmp0(type, EMAIL_BUNDLE_VAL_SINGLE_ACCOUNT) == 0) { + debug_log("EMAIL_BUNDLE_VAL_SINGLE_ACCOUNT"); + char *mailbox_id = NULL; - service_get_extra_data(service, EMAIL_BUNDLE_KEY_MAILBOX, &(mailbox_id)); - if (mailbox_id) - { + ret = service_get_extra_data(service, EMAIL_BUNDLE_KEY_ACCOUNT_ID, &account_id); + debug_log("service_get_extra_data: %d", ret); + ret = service_get_extra_data(service, EMAIL_BUNDLE_KEY_MAILBOX, &(mailbox_id)); + debug_log("service_get_extra_data: %d", ret); + ret = service_get_extra_data(service, EMAIL_BUNDLE_KEY_MAILBOX_ALIAS, &(mailbox_ugd->folder_alias)); + debug_log("service_get_extra_data: %d", ret); + ret = service_get_extra_data(service, EMAIL_BUNDLE_KEY_USER_EMAIL, &(mailbox_ugd->user_email)); + debug_log("service_get_extra_data: %d", ret); + + mailbox_ugd->account_id = (gint) atoi(account_id); + if (mailbox_id) { mailbox_ugd->mailbox_id = (int)atoi(mailbox_id); g_free(mailbox_id); - } - else + } else debug_critical("failure on getting mailbox_id"); - - service_get_extra_data(service, EMAIL_BUNDLE_KEY_MAILBOX_ALIAS, &(mailbox_ugd->folder_alias)); - service_get_extra_data(service, EMAIL_BUNDLE_KEY_USER_EMAIL, &(mailbox_ugd->user_email)); mailbox_ugd->mode = EMAIL_MAILBOX_MODE_MAILBOX; - debug_log("account_id: [%d], mailbox_id: [%d], folder_alias[%s], user_email: [%s]", + debug_log("account_id[%d], mailbox_id[%d], folder_alias(%s), user_email(%s)", mailbox_ugd->account_id, mailbox_ugd->mailbox_id, mailbox_ugd->folder_alias, mailbox_ugd->user_email); - } - if (mailbox_ugd->ug_account) { - destroy_account_cb(mailbox_ugd->ug_account, mailbox_ugd); - } - ug_pushed = false; - _make_account_mail_list(mailbox_ugd); + reset_get_more_progress_callback_status(mailbox_ugd); + _make_account_mail_list(mailbox_ugd); + } else if (g_strcmp0(type, EMAIL_BUNDLE_VAL_ADD_ACCOUNT) == 0) { + debug_log("EMAIL_BUNDLE_VAL_ADD_ACCOUNT"); + + _add_account(mailbox_ugd); + } + g_free(type); g_free(account_id); - g_free(c_is_null); g_free(mailbox_type); } @@ -982,6 +1078,23 @@ void result_composer_cb(ui_gadget_h ug, service_h service, void *priv) mailbox_ugd = priv; } +static void destroy_setting_cb(ui_gadget_h ug, void *priv) +{ + debug_log(""); + + if (!ug || !priv) + return; + + EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)priv; + + if (ug == mailbox_ugd->ug_setting) { + ug_destroy(mailbox_ugd->ug_setting); + mailbox_ugd->ug_setting = NULL; + } + + return; +} + void destroy_account_cb(ui_gadget_h ug, void *priv) { debug_log(""); @@ -1063,6 +1176,23 @@ static void destroy_viewer_cb(ui_gadget_h ug, void *priv) ug_destroy(ug); } +ui_gadget_h create_setting_ug(char *ug_name, service_h service, void *data) +{ + debug_log(""); + ui_gadget_h ug; + struct ug_cbs cbs = { 0, }; + EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data; + + cbs.layout_cb = layout_setting_cb; + cbs.result_cb = result_setting_cb; + cbs.destroy_cb = destroy_setting_cb; + cbs.priv = mailbox_ugd; + mailbox_ugd->cbs = cbs; + + ug = ug_create(mailbox_ugd->ug, ug_name, UG_MODE_FULLVIEW, service, &mailbox_ugd->cbs); + + return ug; +} ui_gadget_h create_composer_ug(char *ug_name, service_h service, void *data) { @@ -1137,7 +1267,7 @@ static ui_gadget_h create_viewer_ug(char *ug_name, service_h service, void *data if (mailbox_ugd->viewer_refresh == 0) { mailbox_ugd->viewer_refresh = 1; - mailbox_ugd->ug_viewer = ug_create(mailbox_ugd->ug, ug_name, UG_MODE_FULLVIEW, service, &cbs); + mailbox_ugd->ug_viewer = ug_create(mailbox_ugd->ug, ug_name, UG_MODE_FRAMEVIEW, service, &cbs); } else { ug_send_message(mailbox_ugd->ug_viewer, service); } @@ -1277,6 +1407,25 @@ void _sync_curr_folder(EmailMailboxUGD *mailbox_ugd, int mailbox_id) g_account_list = eina_list_append(g_account_list, _account_id); } +void _sync_folder_with_new_password(int account_id, int mailbox_id, void *data) +{ + debug_log(""); + EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data; + int handle = 0; + gboolean res = FALSE; + + _stop_emf_job(mailbox_ugd, mailbox_ugd->emf_handle, true); + + res = email_engine_sync_folder(account_id, mailbox_id, &handle); + debug_log("handle: %d", handle); + + mailbox_ugd->emf_handle = handle; + + int *_account_id = (int *)calloc(1, sizeof(int)); + *_account_id = account_id; + g_account_list = eina_list_append(g_account_list, _account_id); + +} void _sync_all_folder(EmailMailboxUGD *mailbox_ugd) { @@ -1367,7 +1516,8 @@ static void _create_view(EmailMailboxUGD *mailbox_ugd) elm_layout_file_set(mailbox_ugd->sub_layout[mailbox_ugd->view_type], THEME_PATH, "layout.email.mailbox.hd"); else elm_layout_file_set(mailbox_ugd->sub_layout[mailbox_ugd->view_type], THEME_PATH, "layout.email.mailbox"); - mailbox_create_searchbar(mailbox_ugd); + // TODO: remove mailbox_ugd->searchbar_layout later + //mailbox_create_searchbar(mailbox_ugd); /* create genlist */ mailbox_create_list_view(mailbox_ugd); @@ -1402,7 +1552,7 @@ static void _create_view(EmailMailboxUGD *mailbox_ugd) //Title Left Button mailbox_ugd->folder_button = elm_button_add(mailbox_ugd->navi_bar); - elm_object_style_set(mailbox_ugd->folder_button, "naviframe/title/default"); + elm_object_style_set(mailbox_ugd->folder_button, "naviframe/title_icon"); Evas_Object *folder_icon = elm_icon_add(mailbox_ugd->folder_button); elm_icon_file_set(folder_icon, ICON_FOLDERS, NULL); elm_icon_resizable_set(folder_icon, 1, 1); @@ -1413,7 +1563,7 @@ static void _create_view(EmailMailboxUGD *mailbox_ugd) //Title Right Button for update mailbox_ugd->update_button = elm_button_add(mailbox_ugd->navi_bar); - elm_object_style_set(mailbox_ugd->update_button, "naviframe/title/default"); + elm_object_style_set(mailbox_ugd->update_button, "naviframe/title_icon"); Evas_Object *update_icon = elm_icon_add(mailbox_ugd->update_button); elm_icon_file_set(update_icon, ICON_UPDATE, NULL); elm_icon_resizable_set(update_icon, 1, 1); @@ -1449,7 +1599,6 @@ static void _create_view(EmailMailboxUGD *mailbox_ugd) elm_icon_file_set(mailbox_ugd->title_arrow, ICON_CLOSE, NULL); _create_controlbar(mailbox_ugd); - elm_object_item_part_content_set(mailbox_ugd->navibar_item[mailbox_ugd->view_type], "controlbar", mailbox_ugd->controlbar_btns); evas_object_show(mailbox_ugd->ly); } @@ -1471,7 +1620,6 @@ static void _win_profile_changed_cb(void *data, Evas_Object *obj, void *event) elm_layout_theme_set(mailbox_ugd->layout_main, "layout", "application", "default"); evas_object_size_hint_weight_set(mailbox_ugd->layout_main, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - elm_win_resize_object_add(mailbox_ugd->win_main, mailbox_ugd->layout_main); evas_object_show(mailbox_ugd->layout_main); } @@ -1761,11 +1909,24 @@ static void _folder_cb(void *data, Evas_Object *obj, void *event_info) return; } +static void _add_account(void *data) +{ + debug_log(""); + int ret; + service_h service; + EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data; + if (SERVICE_ERROR_NONE != service_create(&service)) { + debug_log("creating service handle failed"); + return; + } + ret = service_add_extra_data(service, EMAIL_BUNDLE_KEY_VIEW_TYPE, EMAIL_BUNDLE_VAL_VIEW_SELECT_ACCOUNT); + debug_log("service_add_extra_data: %d", ret); - + mailbox_ugd->ug_setting = create_setting_ug(UG_NAME_EMAIL_SETTING, service, mailbox_ugd); +} static void _process_update(EmailMailboxUGD *mailbox_ugd) { @@ -1861,29 +2022,76 @@ void _update_navigationbar_title(EmailMailboxUGD *mailbox_ugd) elm_icon_file_set(mailbox_ugd->sp_icon, ICON_TITLE_ALL_ACC, NULL); + switch(mailbox_ugd->mailbox_type) + { + case EMAIL_MAILBOX_TYPE_INBOX: { elm_object_item_text_set(mailbox_ugd->navibar_item[mailbox_ugd->view_type], _("IDS_EMAIL_BODY_INBOX")); elm_object_part_text_set(mailbox_ugd->navi_title_ly, "txt_title", _("IDS_EMAIL_BODY_INBOX")); - elm_object_part_text_set(mailbox_ugd->navi_title_ly, "txt_sub", _("IDS_EMAIL_HEADER_ALL_ACCOUNTS")); + } + break; + case EMAIL_MAILBOX_TYPE_SENTBOX: + { + elm_object_item_text_set(mailbox_ugd->navibar_item[mailbox_ugd->view_type], _("IDS_EMAIL_BODY_SENTBOX")); + elm_object_part_text_set(mailbox_ugd->navi_title_ly, "txt_title", _("IDS_EMAIL_BODY_SENTBOX")); + } + break; + case EMAIL_MAILBOX_TYPE_TRASH: + { + elm_object_item_text_set(mailbox_ugd->navibar_item[mailbox_ugd->view_type], _("IDS_EMAIL_BODY_TRASH")); + elm_object_part_text_set(mailbox_ugd->navi_title_ly, "txt_title", _("IDS_EMAIL_BODY_TRASH")); + } + break; + case EMAIL_MAILBOX_TYPE_DRAFT: + { + elm_object_item_text_set(mailbox_ugd->navibar_item[mailbox_ugd->view_type], _("IDS_EMAIL_BODY_DRAFTS")); + elm_object_part_text_set(mailbox_ugd->navi_title_ly, "txt_title", _("IDS_EMAIL_BODY_DRAFTS")); + } + break; + case EMAIL_MAILBOX_TYPE_SPAMBOX: + { + elm_object_item_text_set(mailbox_ugd->navibar_item[mailbox_ugd->view_type], _("IDS_EMAIL_BODY_SPAMBOX")); + elm_object_part_text_set(mailbox_ugd->navi_title_ly, "txt_title", _("IDS_EMAIL_BODY_SPAMBOX")); + } + break; + case EMAIL_MAILBOX_TYPE_OUTBOX: + { + elm_object_item_text_set(mailbox_ugd->navibar_item[mailbox_ugd->view_type], N_("Outbox")); + elm_object_part_text_set(mailbox_ugd->navi_title_ly, "txt_title", N_("Outbox")); + } + break; + case EMAIL_MAILBOX_TYPE_FLAGGED: + { + elm_object_item_text_set(mailbox_ugd->navibar_item[mailbox_ugd->view_type], _("IDS_EMAIL_OPT_FAVOURITES")); + elm_object_part_text_set(mailbox_ugd->navi_title_ly, "txt_title", _("IDS_EMAIL_OPT_FAVOURITES")); + } + break; + default: + { + elm_object_item_text_set(mailbox_ugd->navibar_item[mailbox_ugd->view_type], _("IDS_EMAIL_BODY_INBOX")); + elm_object_part_text_set(mailbox_ugd->navi_title_ly, "txt_title", _("IDS_EMAIL_BODY_INBOX")); + } + break; + } + elm_object_part_text_set(mailbox_ugd->navi_title_ly, "txt_sub", _("IDS_EMAIL_HEADER_ALL_ACCOUNTS")); - if (mailbox_ugd->isRotate == false) { - _create_controlbar(mailbox_ugd); - elm_object_item_part_content_set(mailbox_ugd->navibar_item[mailbox_ugd->view_type], "controlbar", mailbox_ugd->controlbar_btns); - } + if (mailbox_ugd->isRotate == false) { + _create_controlbar(mailbox_ugd); } } else { - _create_controlbar(mailbox_ugd); + if (mailbox_ugd->isRotate == false) { + _create_controlbar(mailbox_ugd); + } elm_object_item_text_set(mailbox_ugd->navibar_item[mailbox_ugd->view_type], mailbox_ugd->folder_alias); elm_object_part_text_set(mailbox_ugd->navi_title_ly, "txt_title", mailbox_ugd->folder_alias); elm_object_part_text_set(mailbox_ugd->navi_title_ly, "txt_sub", mailbox_ugd->user_email); email_account_t *account; email_get_account(mailbox_ugd->account_id, 0, &account); - elm_icon_file_set(mailbox_ugd->sp_icon, account->logo_icon_path, NULL); - if(account) email_free_account(&account, 1); - - elm_object_item_part_content_set(mailbox_ugd->navibar_item[mailbox_ugd->view_type], "controlbar", mailbox_ugd->controlbar_btns); - + if (account) { + elm_icon_file_set(mailbox_ugd->sp_icon, account->logo_icon_path, NULL); + email_free_account(&account, 1); + } } } @@ -1929,3 +2137,213 @@ email_sort_type_t _mailbox_conv_sort_type(EmailSortType sort_type) return email_svc_sort_type; } + +static void _email_mailbox_timezone_change_cb(keynode_t *key, void *data) +{ + debug_log(""); + EmailMailboxUGD *mailbox_ugd; + mailbox_ugd = (EmailMailboxUGD *)data; + + _refresh_mailbox(mailbox_ugd); +} + +static void _mailbox_change_password_popup_ok_cb(void *data, Evas_Object *obj, void *event_info) +{ + debug_log(); + EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data; + + if (elm_entry_is_empty(mailbox_ugd->password_entry)) + { + debug_log("password is NULL"); + if(mailbox_ugd->passwd_popup) { + debug_log("delete popup"); + evas_object_del(mailbox_ugd->passwd_popup); + mailbox_ugd->passwd_popup = NULL; + } + return; + } + mailbox_ugd->str_password = g_strdup(elm_entry_entry_get(mailbox_ugd->password_entry)); + debug_log("str_password : %s", mailbox_ugd->str_password); + + _mailbox_update_account_password(data); + + if(mailbox_ugd->passwd_popup) { + debug_log("delete popup"); + evas_object_del(mailbox_ugd->passwd_popup); + mailbox_ugd->passwd_popup = NULL; + } + +} + +static void _mailbox_change_password_popup_canceled_cb(void *data, Evas_Object *obj, void *event_info) +{ + debug_log(); + EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data; + if(mailbox_ugd->passwd_popup) { + evas_object_del(mailbox_ugd->passwd_popup); + mailbox_ugd->passwd_popup = NULL; + } + mailbox_ugd->sync_needed_account_id = -1; + mailbox_ugd->sync_needed_mailbox_id = -1; +} + +static void _password_entry_changed_cb(void *data, Evas_Object *obj, void *event_info) +{ + debug_log(""); + if (!data || !obj) { + debug_log("data is NULL"); + return; + } + + if (elm_object_focus_get(data)) { + if (elm_entry_is_empty(obj)) + elm_object_signal_emit(data, "elm,state,eraser,hide", "elm"); + else + elm_object_signal_emit(data, "elm,state,eraser,show", "elm"); + } +} + +static void _password_entry_focused_cb(void *data, Evas_Object *obj, void *event_info) +{ + debug_log(""); + if (!data || !obj) { + debug_log("data is NULL"); + return; + } + if (!elm_entry_is_empty(obj)) + elm_object_signal_emit(data, "elm,state,eraser,show", "elm"); + elm_object_signal_emit(data, "elm,state,guidetext,hide", "elm"); +} + +static void _password_entry_unfocused_cb(void *data, Evas_Object *obj, void *event_info) +{ + debug_log(""); + if (!data || !obj) { + debug_log("data is NULL"); + return; + } + if (elm_entry_is_empty(obj)) + elm_object_signal_emit(data, "elm,state,guidetext,show", "elm"); + elm_object_signal_emit(data, "elm,state,eraser,hide", "elm"); +} + +static void _password_eraser_clicked_cb(void *data, Evas_Object *obj, const char *emission, const char *source) +{ + debug_log(""); + if (!data || !obj) { + debug_log("data is NULL"); + return; + } + + elm_entry_entry_set(data, ""); +} + +static void _mailbox_update_account_password(void *data) +{ + debug_log(""); + EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data; + int err = EMAIL_ERROR_NONE; + email_account_t *account_info = NULL; + + err = email_engine_get_account_full_data(mailbox_ugd->sync_needed_account_id, &account_info); + + if( err != EMAIL_ERROR_NONE || !account_info) { + debug_log("fail to get account info - err(%d)", err); + } + FREE(account_info->incoming_server_password); + account_info->incoming_server_password = strdup(mailbox_ugd->str_password); + + if((err = email_update_account(mailbox_ugd->sync_needed_account_id, account_info)) != EMAIL_ERROR_NONE) { + debug_log("fail to update account - err(%d)", err); + } else { + _sync_folder_with_new_password(mailbox_ugd->sync_needed_account_id, mailbox_ugd->sync_needed_mailbox_id, data); + } + + if (account_info) { + email_free_account(&account_info, 1); + } + mailbox_ugd->sync_needed_account_id = -1; + mailbox_ugd->sync_needed_mailbox_id = -1; + FREE(mailbox_ugd->str_password); +} + +void mailbox_create_password_changed_popup(void *data) +{ + debug_enter(); + Evas_Object *label; + Evas_Object *popup; + Evas_Object *entry_layout, *layout, *entry; + Evas_Object *btn1, *btn2; + EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data; + EmailAccountInfo *account_info = NULL; + + if(mailbox_ugd->passwd_popup) { + evas_object_del(mailbox_ugd->passwd_popup); + mailbox_ugd->passwd_popup = NULL; + } + + popup = elm_popup_add(mailbox_ugd->layout_main); + mailbox_ugd->passwd_popup = popup; + label = elm_label_add(popup); + elm_object_style_set(label, "popup/default"); + elm_label_line_wrap_set(label, ELM_WRAP_MIXED); + elm_object_text_set(label, N_("Server password has been changed. Input the changed password.")); + evas_object_size_hint_weight_set(label, EVAS_HINT_EXPAND, 0.0); + evas_object_size_hint_align_set(label, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_show(label); + + layout = elm_layout_add(popup); + elm_layout_file_set(layout, THEME_PATH, "email/popup/entryview"); + + entry_layout = elm_layout_add(popup); + elm_layout_theme_set(entry_layout, "layout", "editfield", "title"); + + entry = elm_entry_add(popup); + elm_entry_scrollable_set(entry, EINA_TRUE); // Make entry as scrollable single line. + elm_entry_single_line_set(entry, EINA_TRUE); + elm_entry_input_panel_return_key_disabled_set(entry, EINA_TRUE); + elm_entry_password_set(entry, 1); + elm_entry_cnp_mode_set(entry, ELM_CNP_MODE_PLAINTEXT); + mailbox_ugd->password_entry = entry; + evas_object_smart_callback_add(entry, "changed", _password_entry_changed_cb, entry_layout); + evas_object_smart_callback_add(entry, "focused", _password_entry_focused_cb, entry_layout); + evas_object_smart_callback_add(entry, "unfocused", _password_entry_unfocused_cb, entry_layout); + + + elm_object_part_content_set(entry_layout, "elm.swallow.content", entry); + debug_log("mailbox_ugd->sync_needed_account_id %d", mailbox_ugd->sync_needed_account_id); + if (email_engine_get_account_info(mailbox_ugd->sync_needed_account_id, &account_info)) { + if (account_info && account_info->email_address) { + debug_log("account_info->email_address : %s", account_info->email_address); + elm_object_part_text_set(entry_layout, "elm.text", account_info->email_address); + } + if (account_info) + email_engine_free_account_info(&account_info); + } + + elm_object_part_text_set(layout, "elm.guidetext", dgettext("sys_string", "IDS_COM_BODY_PASSWORD")); + elm_object_signal_callback_add(entry_layout, "elm,eraser,clicked", "elm", NULL, entry); + elm_object_signal_callback_add(entry_layout, "elm,eraser,clicked", "elm", _password_eraser_clicked_cb, entry); + evas_object_show(entry_layout); + + elm_object_part_content_set(layout, "elm.swallow.content", label); + elm_object_part_content_set(layout, "elm.swallow.entry", entry_layout); + + evas_object_show(layout); + elm_object_content_set(popup, layout); + + + btn1 = elm_button_add(popup); + elm_object_style_set(btn1, "popup_button/default"); + elm_object_text_set(btn1, dgettext("sys_string", "IDS_COM_SK_OK")); + elm_object_part_content_set(popup, "button1", btn1); + evas_object_smart_callback_add(btn1, "clicked", _mailbox_change_password_popup_ok_cb, data); + btn2 = elm_button_add(popup); + elm_object_style_set(btn2, "popup_button/default"); + elm_object_text_set(btn2, dgettext("sys_string", "IDS_COM_SK_CANCEL")); + elm_object_part_content_set(popup, "button2", btn2); + evas_object_smart_callback_add(btn2, "clicked", _mailbox_change_password_popup_canceled_cb, data); + + evas_object_show(popup); +} + diff --git a/mailbox/theme/email-mailbox-theme.edc b/mailbox/theme/email-mailbox-theme.edc index fcd334a..86c95fa 100755 --- a/mailbox/theme/email-mailbox-theme.edc +++ b/mailbox/theme/email-mailbox-theme.edc @@ -357,7 +357,7 @@ group { name: "horizontal_bottom_64"; description { state: "default" 0.0; - min: 0 69; + min: 0 106; fixed: 1 1; align: 0.0 0.0; visible: 1; @@ -594,7 +594,7 @@ group { name: "horizontal_bottom_64"; state: "default" 0.0; rel1 { relative: (16/440) 0.0; to: "title_area";} rel2 { relative: (424/440) (52/88); to: "title_area";} - color : 249 249 249 255; + color : 59 115 182 255; text { font: "SLP:style=Medium"; size: 40; min: 0 0; @@ -714,9 +714,9 @@ group { name: "horizontal_bottom_64"; to_x: "sub_right_icon"; to_y: "bottom_padding"; } - color : 249 249 249 255; + color : 59 115 182 255; text { font: "SLP:style=Medium"; - size: 32; + size: 24; min: 0 0; max: 1 0; align: 0.0 0.5; @@ -753,7 +753,7 @@ group { name: "horizontal_bottom_64"; part { name: "seperator1"; - type: IMAGE; + type: SWALLOW; scale: 1; description { state: "default" 0.0; @@ -771,7 +771,7 @@ group { name: "horizontal_bottom_64"; to_x: "right_btn"; to_y: "bottom_padding"; } - image.normal: "00_winset_title_line.png"; + //image.normal: "00_winset_title_line.png"; } } @@ -800,7 +800,7 @@ group { name: "horizontal_bottom_64"; part { name: "seperator2"; - type: IMAGE; + type: SWALLOW; scale: 1; description { state: "default" 0.0; @@ -818,7 +818,7 @@ group { name: "horizontal_bottom_64"; to_x: "left_btn"; to_y: "bottom_padding"; } - image.normal: "00_winset_title_line.png"; + //image.normal: "00_winset_title_line.png"; } } @@ -904,7 +904,7 @@ group { name: "horizontal_bottom_64"; type: RECT; description { state: "default" 0.0; color: 0 0 0 153; - min: 0 1127; //213; height(1280) - (indicator(50)+Navi(108)+frameview(909)+10) +5 + min: 0 1124; //213; height(1280) - (indicator(50)+Navi(111)+frameview(909)+10) +5 max: 9999 213; fixed: 1 1; visible: 1; @@ -2661,5 +2661,108 @@ group { name: "horizontal_bottom_64"; } } } + group { name: "email/popup/entryview"; + parts{ + part { name: "pad_t"; + scale : 1; + mouse_events: 0; + repeat_events: 1; + description { state: "default" 0.0; + align: 0.5 0.0; + min: 0 14; + fixed: 0 1; + rel1 { + relative: 1.0 0.0; + to_x: "pad_l"; + } + rel2 { + relative: 0.0 0.0; + to_x: "pad_r"; + } + } + } + part { name: "pad_l"; + scale: 1; + description { state: "default" 0.0; + min : 10 0; + fixed: 1 0; + rel1 { + relative: 0.0 0.0; + } + rel2 { + relative: 0.0 1.0; + } + align: 0.0 0.0; + } + } + part { name: "pad_r"; + scale: 1; + description { state: "default" 0.0; + min : 10 0; + fixed: 1 0; + rel1 { + relative: 1.0 0.0; + } + rel2 { + relative: 1.0 1.0; + } + align: 1.0 0.0; + } + } + part{ name:"elm.swallow.content"; + type: SWALLOW; + scale : 1; + description { state: "default" 0.0; + min: 600 0; + align: 0.5 0.5; + fixed: 1 0; + rel1 { + relative: 0.5 1.0; + to: "pad_t"; + } + rel2 { + relative: 0.5 0.0; + to: "pad_b"; + } + } + } + part { name: "pad_b"; + scale : 1; + mouse_events: 0; + repeat_events: 1; + description { state: "default" 0.0; + align: 0.5 1.0; + min: 0 95; + fixed: 0 1; + rel1 { + relative: 1.0 1.0; + to_x: "pad_l"; + } + rel2 { + relative: 0.0 1.0; + to_x: "pad_r"; + } + } + } + part { name: "elm.swallow.entry"; + type: SWALLOW; + scale : 1; + mouse_events: 1; + repeat_events: 1; + description { state: "default" 0.0; + align: 0.0 0.0; + fixed: 1 1; + rel1 { + relative: 0.0 0.0; + to: "pad_b"; + } + rel2 { + relative: 1.0 1.0; + to: "pad_b"; + } + } + } + } + } } |