INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/common/include)\r
\r
INCLUDE(FindPkgConfig)\r
-pkg_check_modules(pkgs-account REQUIRED appcore-efl ui-gadget-1 x11 elementary email-service bundle dlog capi-appfw-application status)\r
+pkg_check_modules(pkgs-account REQUIRED appcore-efl ui-gadget-1 x11 elementary email-service bundle dlog capi-appfw-application status contacts-service2)\r
\r
FOREACH(flag ${pkgs-account_CFLAGS})\r
SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")\r
ug_data->sub_ly = elm_layout_add(ug_data->win);
elm_layout_theme_set(ug_data->sub_ly, "layout", "application", "noindicator");
evas_object_size_hint_weight_set(ug_data->sub_ly, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- /*elm_win_resize_object_add(ug_data->win, ug_data->sub_ly);*/
-
#if 0 // 2line title text
// push the content to naviframe.
ug_data->navibar_item = elm_naviframe_item_push(ug_data->navi_bar, NULL, b_btn, NULL, ug_data->sub_ly, "empty");
ug_data->bg = elm_bg_add(ug_data->win);
evas_object_size_hint_weight_set(ug_data->bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- elm_win_resize_object_add(ug_data->win, ug_data->bg);
evas_object_show(ug_data->bg);
ug_data->ly = elm_layout_add(ug_data->win);
INCLUDE(FindPkgConfig)
pkg_check_modules(pkgs-common REQUIRED ecore ecore-imf appcore-common glib-2.0 gobject-2.0 email-service
- capi-content-media-content dlog db-util elementary efreet-mime drm-client ecore-x sysman vconf evas eina edje icu-i18n ui-gadget-1)
+ contacts-service2 capi-content-media-content dlog db-util elementary efreet-mime drm-client ecore-x sysman vconf evas eina edje icu-i18n ui-gadget-1)
FOREACH(flag ${pkgs-common_CFLAGS})
SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
#define EMAIL_BUNDLE_KEY_MAILBOX "MAILBOX_ID"
#define EMAIL_BUNDLE_KEY_MAILBOX_ALIAS "MAILBOX_ALIAS"
#define EMAIL_BUNDLE_KEY_USER_EMAIL "USER_EMAIL"
+#define EMAIL_BUNDLE_KEY_UPDATE "UPDATE"
#define EMAIL_BUNDLE_KEY_SAVE_ALL "SAVE_ALL"
#define EMAIL_BUNDLE_KEY_CANCEL_ALL "CANCEL_ALL"
#define EMAIL_BUNDLE_KEY_VIEW_TYPE "VIEW_TYPE"
#define UG_NAME_EMAIL_ACCOUNT "email-account-efl"
#define UG_NAME_EMAIL_DOCUMENT "email-docsearch-efl"
#define UG_NAME_CONTACT "contacts-tabui-efl"
+#define UG_NAME_MESSAGE_COMPOSER "msg-composer-efl"
/* define bundle value */
#define EMAIL_BUNDLE_VAL_ALL_ACCOUNT "ALL_ACCOUNT"
#include <unicode/udat.h>
#include <unicode/udatpg.h>
#include <unicode/ustring.h>
+#include <contacts.h>
#define MAX_DEFAULT_DIR_PATH 256
char* email_util_strrtrim(char* s);
char* email_util_strltrim(char* s);
char* email_util_get_parent_folder(char *s);
+
+/*
+ * Contact service2
+ */
+ typedef struct _EMAIL_CONTACT_LIST_INFO_S {
+ int index;
+ char *display;
+ char *email_address;
+ char *image_path;
+ char display_name[234]; //MAX_RECIPIENT_ADDRESS_LEN
+ void *ugd;
+} EMAIL_CONTACT_LIST_INFO_S;
+
+int email_get_contacts_list(contacts_match_str_flag_e match, contacts_list_h *list, const char *search_word);
+int email_get_contacts_index(contacts_record_h record, int *index);
+int email_get_contacts_display_name(contacts_record_h record, char *display_name);
+int email_get_contacts_email_address(contacts_record_h record, char *email_addr);
+int email_get_contacts_image_thumbnail_path(contacts_record_h record, char *image_thumbnail_path);
+int email_get_contacts_first_name(contacts_record_h record, char *first_name);
+int email_get_contacts_last_name(contacts_record_h record, char *last_name);
+int email_get_contacts_list_info(contacts_list_h list, EMAIL_CONTACT_LIST_INFO_S *contact_list_info);
+int email_num_id_get_contacts_record(int num_id, contacts_record_h* out_record);
+
G_END_DECLS
#endif /* _EMAIL_UTILS_H_ */
fclose(fs);
if (remove_dest && result == FALSE) {
- remove(dest_full_path);
+ if (-1 == remove(dest_full_path)) {
+ debug_log("Failed to remove dest_full_path");
+ }
sync();
}
drm_file_info_s drm_info;
- memset(&drm_info, 0, sizeof(drm_file_info_s));
+// memset(&drm_info, 0, sizeof(drm_file_info_s));
if (drm_get_file_info(path, &drm_info)) {
debug_log("drm_info.oma_info.method (%d)", drm_info.oma_info.method);
char* email_util_strrtrim(char* s)
{
- char t[MAX_STR_LEN];
char *end;
- strcpy(t, s);
- end = t + strlen(t) - 1;
- while (end != t && isspace(*end))
+ end = s + strlen(s) - 1;
+ while (end != s && isspace(*end))
{
end--;
}
*(end + 1) = '\0';
- s = t;
debug_log("result [%s]", s);
return s;
}
return 0;
}
+
+/* Contact service2 */
+int email_get_contacts_list(contacts_match_str_flag_e match, contacts_list_h *list, const char *search_word)
+{
+ debug_log("");
+
+ int ct_ret = CONTACTS_ERROR_NONE;
+
+ contacts_query_h query = NULL;
+ contacts_filter_h filter = NULL;
+ debug_log("search_word = %s", search_word);
+
+ /* get number list first */
+ ct_ret = contacts_query_create(_contacts_contact_email._uri, &query);
+ ct_ret = contacts_filter_create(_contacts_contact_email._uri, &filter);
+ ct_ret = contacts_filter_add_str(filter, _contacts_contact_email.email, match, search_word);
+ ct_ret = contacts_query_set_filter(query, filter);
+
+ ct_ret = contacts_db_get_records_with_query(query, 0, 0, list);
+ ct_ret = contacts_filter_destroy(filter);
+ ct_ret = contacts_query_destroy(query);
+
+ if (ct_ret != CONTACTS_ERROR_NONE) {
+ debug_log("contacts_db_get_records_with_query is failed error_code = %d", ct_ret);
+ }
+ return ct_ret;
+}
+
+int email_get_contacts_index(contacts_record_h record, int *index)
+{
+ debug_log("");
+ int ct_ret = CONTACTS_ERROR_NONE;
+ ct_ret = contacts_record_get_int(record, _contacts_contact_email.contact_id, index);
+ return ct_ret;
+}
+
+int email_get_contacts_display_name(contacts_record_h record, char *display_name)
+{
+ debug_log("");
+ int ct_ret = CONTACTS_ERROR_NONE;
+ ct_ret = contacts_record_get_str_p(record, _contacts_contact_email.display_name, &display_name);
+// contacts_list_item->display = g_strdup(display_name);
+ return ct_ret;
+}
+
+int email_get_contacts_email_address(contacts_record_h record, char *email_addr)
+{
+ debug_log("");
+ int ct_ret = CONTACTS_ERROR_NONE;
+ ct_ret = contacts_record_get_str_p(record, _contacts_contact_email.email, &email_addr);
+// contacts_list_item->email_address = g_strdup(email_addr);
+ return ct_ret;
+}
+
+int email_get_contacts_image_thumbnail_path(contacts_record_h record, char *image_thumbnail_path)
+{
+ debug_log("");
+ int ct_ret = CONTACTS_ERROR_NONE;
+ ct_ret = contacts_record_get_str_p(record, _contacts_contact_email.image_thumbnail_path, &image_thumbnail_path);
+// contacts_list_item->image_path = g_strdup(image_path);
+ return ct_ret;
+}
+
+int email_get_contacts_first_name(contacts_record_h record, char *first_name)
+{
+ debug_log("");
+ int ct_ret = CONTACTS_ERROR_NONE;
+ ct_ret = contacts_record_get_str_p(record, _contacts_name.first, &first_name);
+// contacts_list_item->image_path = g_strdup(first_name);
+ return ct_ret;
+}
+
+int email_get_contacts_last_name(contacts_record_h record, char *last_name)
+{
+ debug_log("");
+ int ct_ret = CONTACTS_ERROR_NONE;
+ ct_ret = contacts_record_get_str_p(record, _contacts_name.last, &last_name);
+// contacts_list_item->image_path = g_strdup(last_name);
+ return ct_ret;
+}
+
+int email_get_contacts_list_info(contacts_list_h list, EMAIL_CONTACT_LIST_INFO_S *ct_list_info)
+{
+ debug_log("");
+ int index = 0;
+ int ct_ret = CONTACTS_ERROR_NONE;
+
+ while (CONTACTS_ERROR_NONE == ct_ret) {
+ contacts_record_h ct_value = NULL;
+ contacts_list_get_current_record_p(list, &ct_value);
+ debug_log("ct_ret = %d", ct_ret);
+ debug_log("ct_value = %d", (ct_value == NULL));
+ if (ct_value) {
+ ct_ret = contacts_record_get_int(ct_value, _contacts_contact_email.contact_id, &index);
+ if (index > 0) {
+ char *display_name = NULL;
+ char *image_path = NULL;
+ char *email_addr = NULL;
+
+ ct_list_info->index = index;
+ if ((ct_ret = contacts_record_get_str_p(ct_value, _contacts_contact_email.display_name, &display_name)) == CONTACTS_ERROR_NONE) {
+ if (display_name != NULL) {
+ ct_list_info->display = g_strdup(display_name);
+ }
+ } else {
+ debug_log("email_get_contacts_display_name is failed error_code = %d", ct_ret);
+ }
+
+ if ((ct_ret = contacts_record_get_str_p(ct_value, _contacts_contact_email.image_thumbnail_path, &image_path)) == CONTACTS_ERROR_NONE) {
+ if (image_path != NULL) {
+ ct_list_info->image_path = g_strdup(image_path);
+ }
+ } else {
+ debug_log("email_get_contacts_image_thumbnail_path is failed error_code = %d", ct_ret);
+ }
+
+ if ((ct_ret = contacts_record_get_str_p(ct_value, _contacts_contact_email.email, &email_addr)) == CONTACTS_ERROR_NONE){
+// if ((ct_ret = email_get_contacts_email_address(ct_value, &email_addr)) == CONTACTS_ERROR_NONE) {
+ if (email_addr != NULL) {
+ ct_list_info->email_address = g_strdup(email_addr);
+ }
+ } else {
+ debug_log("email_get_contacts_email_address is failed error_code = %d", ct_ret);
+ }
+
+ if (!ct_list_info->display && email_addr) {
+ strncpy(ct_list_info->display_name, email_addr, sizeof(ct_list_info->display_name) - 1);
+ //display_name = g_strdup(email_addr);
+ } else {
+ if (strlen(ct_list_info->display) > 0) {
+ snprintf(ct_list_info->display_name, sizeof(ct_list_info->display_name), "%s", ct_list_info->display);
+ }
+ }
+
+ debug_log("index(%d), display(%s), image_path(%s), email(%s), display_name(%s)",
+ index, ct_list_info->display, ct_list_info->image_path, ct_list_info->email_address, ct_list_info->display_name);
+
+ return ct_ret;
+ }
+ }
+ ct_ret = contacts_list_next(list);
+ }
+ return ct_ret;
+}
+
+int email_num_id_get_contacts_record(int num_id, contacts_record_h* out_record)
+{
+ debug_log("");
+ int ct_ret = CONTACTS_ERROR_NONE;
+
+ /* get record email */
+ ct_ret = contacts_db_get_record(_contacts_contact_email._uri, num_id, out_record);
+ if (ct_ret != CONTACTS_ERROR_NONE) {
+ debug_log("_contacts_number, db_get_record is failed : ct_ret = [%d]", ct_ret);
+ return ct_ret;
+ }
+#if 0
+ /* get number str */
+ ct_ret = contacts_record_get_str_p(out_record, _contacts_contact_email.number, &number_str);
+ if (ct_ret != CONTACTS_ERROR_NONE) {
+ D_EMSG("contacts_record_get_str_p is failed : ct_ret = [%d]", ct_ret);
+ goto ERROR_EXIT;
+ }
+#endif
+ return ct_ret;
+}
/* EOF */
INCLUDE(FindPkgConfig)
pkg_check_modules(pkgs-composer REQUIRED ecore ecore-file glib-2.0 gobject-2.0 edbus
appcore-common elementary capi-appfw-application capi-media-metadata-extractor capi-media-image-util status
- sysman dlog email-service contacts-service
+ sysman dlog email-service contacts-service2
efreet-mime ewebkit2 ui-gadget-1 bundle ethumb ecore-x)
FOREACH(flag ${pkgs-composer_CFLAGS})
void _composer_attachment_reset(EmailComposerUGD *ugd);
int _composer_get_inline_images_size(EmailComposerUGD *ugd);
void _composer_attachment_create_list_box(EmailComposerUGD *ugd, email_attachment_data_t *attachment_data);
+void _composer_attachment_update_thumbnail(EmailComposerUGD *ugd, Evas_Object *parent, char *filePath);
void _composer_attachment_add_thumbnail(EmailComposerUGD *ugd, Evas_Object *parent, char *filePath);
Evas_Object *_composer_attachment_add_delete_icon(EmailComposerUGD *ugd, Evas_Object *parent);
void _composer_attachment_add_filename(EmailComposerUGD *ugd, email_attachment_data_t * attachment_data, Evas_Object *parent);
Evas_Object *_composer_create_subject_editfield(Evas_Object *parent, char *title, EmailComposerUGD *ugd);
Evas_Object *_composer_create_body_webview(Evas_Object *parent, char *title, EmailComposerUGD *ugd);
void _composer_register_editfield_entry_callback(Evas_Object *obj, EmailComposerUGD *ugd);
-
+void _composer_webkit_set_body_script(void *data);
#endif /* __EMAIL_COMPOSER_CONTENTS_H__ */
"var imgs = document.getElementsByTagName(\"img\");" \
"var srcs = \"\";" \
"for (var i = 0; i < imgs.length; i++) {" \
- "srcs += imgs[i].src + \",\" ;" \
- "console.log(\"imgs[\" + i + \"].src : \" + imgs[i].src);" \
- "console.log(\"srcs : \" + srcs);" \
+ "srcs += \"file://\" + imgs[i].getAttribute(\"src\") + \",\" ;" \
+ "console.log(\"1.imgs[\" + i + \"].src : \" + imgs[i].src);" \
+ "console.log(\"2.imgs[\" + i + \"].getAttribute(src) : \" + imgs[i].getAttribute(\"src\"));" \
+ "console.log(\"3.srcs : \" + srcs);" \
"}" \
"return srcs;" \
"};" \
void _composer_popup_end(EmailComposerUGD *ugd, int close_sg);
void _composer_set_mail_info(EmailComposerUGD *ugd);
-int _composer_add_mailbox_folder(EmailComposerUGD *ugd, email_mailbox_type_e mailbox_type);
-int _composer_move_mailbox_folder(EmailComposerUGD *ugd, email_mailbox_type_e mailbox_type);
-int _composer_make_mail(EmailComposerUGD *ugd);
+int _composer_add_mailbox_folder(EmailComposerUGD *ugd, email_mailbox_type_e mailbox_type, Eina_Bool b_save_to_draft);
+int _composer_move_mailbox_folder(EmailComposerUGD *ugd, email_mailbox_type_e mailbox_type, Eina_Bool b_save_to_draft);
+int _composer_make_mail(EmailComposerUGD *ugd, Eina_Bool b_save_to_draft);
int _composer_send_mail(EmailComposerUGD *ugd);
int _composer_make_recipient_char_to_list(EmailComposerUGD *ugd, Evas_Object *obj, char **dest);
void _composer_make_default_thumbnail(Evas_Object *eo, char *pszImgPath, int nItemType);
Evas_Object *_composer_load_edj(Evas_Object *parent, const char *file, const char *group);
-Evas_Object *_composer_create_navigation_layout(Evas_Object *parent);
+Evas_Object *_composer_create_navigation_layout(EmailComposerUGD *ugd);
Evas_Object *_composer_create_composer_layout(Evas_Object *parent);
Evas_Object *_composer_create_outer_layout(Evas_Object *parent);
Evas_Object *_composer_create_main_scroller(Evas_Object *parent);
void _composer_resize_body_webview(EmailComposerUGD *ugd, int resize_height);
+void _composer_input_panel_resize_cb(void *data, Ecore_IMF_Context *ctx, int value);
void _composer_input_panel_state_changed_cb(void *data, Ecore_IMF_Context *ctx, int value);
void _composer_display_position(void *data);
#define COMPOSER_ICON_DIR IMGDIR
#define COMPOSER_NAVI_HEIGHT 98 //108
+#define COMPOSER_INDI_HEIGHT 76
#define COMPOSER_IME_HEIGHT_V 444
#define COMPOSER_IME_HEIGHT_H 316
+#define COMPOSER_IME_PREDICTION_H 84
#define COMPOSER_SP_H 10
#define COMPOSER_EDIT_FIELD_H 80
Elm_Object_Item *navi_item;
Evas_Object *main_scroller;
Evas_Object *c_layout;
- Evas_Object *conform;
Evas_Object *to_ly;
Evas_Object *cc_ly;
bool bcc_added;
bool me_added;
- int indicator_height;
+ Eina_Bool is_prediction;
bool is_main_scroller_scrolling;
bool is_webview_scrolling;
Ecore_IMF_Context *imf_context;
Evas_Object *account_gen_list;
-
+ bool b_launch_finished;
bool isRotated;
+ bool isHorizontal;
bool b_cc_bcc;
bool clipboard_on;
Eina_List *listOfImageUrls;
Eina_Bool b_load_finished;
+ Eina_Bool need_download;
};
-typedef struct _EMAIL_CONTACT_LIST_INFO_S {
- int index;
- char *display;
- char *email_address;
- char *image_path;
- char display_name[MAX_RECIPIENT_ADDRESS_LEN];
- EmailComposerUGD *ugd;
-} EMAIL_CONTACT_LIST_INFO_S;
-
typedef struct _EMAIL_ATTACHMENT_INFO_S {
int mail_id;
int attach_id;
#include "email-composer-recipient.h"
#include "email-composer-js.h"
+#ifdef _ATTACHMENT_UI_
+static int toggle = 0;
+static Evas_Object *_g_attach_btn;
+#endif
EmailComposerUGD *g_ugd;
static void _composer_attachment_delete_icon_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+#ifdef _ATTACHMENT_UI_
+static void _composer_attachment_contracted_item_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+#else
static void _composer_attachment_delete_all_icon_clicked_cb(void *data, Evas_Object *obj, void *event_info);
static void _composer_attachment_contracted_item_clicked_cb(void *data, Evas_Object *obj, const char *emission, const char *source);
+#endif
static void _composer_attachment_unfocus(void *data, Evas_Object *obj, const char *emission, const char *source);
static void _composer_attachment_mouse_clicked(void *data, Evas_Object *obj, const char *emission, const char *source);
if ((return_stat = stat(attachment_data->attachment_path, &file_info)) == -1) {
debug_error("stat Error(%d): %s", errno, strerror(errno));
+ attach_size += attachment_data->attachment_size;
continue;
// return COMPOSER_ERROR_INVALID_FILE;
}
eina_list_free(attachment_list);
attachment_list = NULL;
+#ifdef _ATTACHMENT_UI_
+ _composer_attachment_contract_items(ugd);
+#endif
}
void _composer_attachment_create_list_box(EmailComposerUGD *ugd, email_attachment_data_t *attachment_data)
{
- debug_log("file name: %s", attachment_data->attachment_path);
+ debug_log("file path: %s", attachment_data->attachment_path);
- if (attachment_data->attachment_path) {
+// if (attachment_data->attachment_path) {
if (attachment_data->inline_content_status == EINA_FALSE) {
g_ugd = ugd;
ugd->attachment_item_obj_list = eina_list_append(ugd->attachment_item_obj_list, attachment_base);
_composer_attachment_set_attach_data(ugd, attachment_base, attachment_data);
- edje_object_signal_callback_add(_EDJ(attachment_item), "clicked", "*", _composer_attachment_mouse_clicked, attachment_data);
+ if (attachment_data->attachment_path) {
+ edje_object_signal_callback_add(_EDJ(attachment_item), "clicked", "*", _composer_attachment_mouse_clicked, attachment_data);
+ }
edje_object_signal_callback_add(_EDJ(attachment_item), "clicked", "*", _composer_attachment_unfocus, ugd);
} else {
Evas_Object *attachment_base = elm_layout_add(ugd->attachment_item_box);
ugd->attachment_item_obj_list = eina_list_append(ugd->attachment_item_obj_list, attachment_base);
_composer_attachment_set_attach_data(ugd, attachment_base, attachment_data);
}
+// }
+}
+
+void _composer_attachment_update_thumbnail(EmailComposerUGD *ugd, Evas_Object *parent, char *filePath)
+{
+ debug_log("");
+
+ Evas_Object *thumb_nail;
+ const char *path = NULL;
+
+ thumb_nail = elm_object_part_content_get(parent, "attachment.thumbnail.icon");
+
+ if (thumb_nail != NULL) {
+ evas_object_del(thumb_nail);
+ thumb_nail = NULL;
}
- _composer_attachment_expand_items(ugd);
+ if (ugd->attachment_list_compressed) {
+ thumb_nail = elm_icon_add(parent);
+
+ path = g_strdup(COMPOSER_ICON_DIR "/05_email_icon_attach_40x40.png");
+ debug_log("path = %s", path);
+ elm_icon_file_set(thumb_nail, path, NULL);
+ } else {
+ if (!filePath) {
+ debug_log("savename = %s", filePath);
+
+ thumb_nail = elm_icon_add(parent);
+
+ path = g_strdup(MYFILE_IMGE_PATH "/myfile_icon_etc.png");
+ elm_icon_file_set(thumb_nail, path, NULL);
+ } else {
+ thumb_nail = _composer_attachment_make_thumbnail(ugd, filePath, parent);
+ }
+ }
+
+ elm_object_part_content_set(parent, "attachment.thumbnail.icon", thumb_nail);
+ evas_object_show(thumb_nail);
+
+ if (path)
+ g_free((char *)path);
}
void _composer_attachment_add_thumbnail(EmailComposerUGD *ugd, Evas_Object *parent, char *filePath)
debug_log("");
Evas_Object *delete_icon = elm_button_add(parent);
+ evas_object_show(delete_icon);
+#ifdef _ATTACHMENT_UI_
+ if (ugd->attachment_list_compressed) {
+ _g_attach_btn = delete_icon;
+ elm_object_style_set(delete_icon, "expand/closed");
+ elm_object_part_content_set(parent, "attachment.delete.icon", delete_icon);
+ toggle = 0;
+ evas_object_smart_callback_add(delete_icon, "clicked", _composer_attachment_contracted_item_clicked_cb, ugd);
+ } else {
+ elm_object_style_set(delete_icon, "minus");
+ elm_object_part_content_set(parent, "attachment.delete.icon", delete_icon);
+
+ evas_object_smart_callback_add(delete_icon, "clicked", _composer_attachment_delete_icon_clicked_cb, ugd);
+ }
+#else
elm_object_style_set(delete_icon, "minus");
// elm_object_focus_allow_set(delete_icon, EINA_TRUE);
elm_object_part_content_set(parent, "attachment.delete.icon", delete_icon);
- evas_object_show(delete_icon);
-
if (ugd->attachment_list_compressed)
evas_object_smart_callback_add(delete_icon, "clicked", _composer_attachment_delete_all_icon_clicked_cb, ugd);
else
evas_object_smart_callback_add(delete_icon, "clicked", _composer_attachment_delete_icon_clicked_cb, ugd);
-
+#endif
return delete_icon;
}
evas_object_data_set(parent, "attachment_data", attachment_data);
}
+static void _composer_attachment_delete_item_from_fw_attachment_list(EmailComposerUGD *ugd, email_attachment_data_t *attachment_data)
+{
+ debug_log("");
+ int i = 0;
+ if(ugd == NULL) {
+ debug_log("ugd == NULL");
+ return;
+ }
+ debug_log("1. %d", g_list_length(ugd->fw_attachment_list));
+
+ for (i = 0; i < g_list_length(ugd->fw_attachment_list); ++i) {
+ EMAIL_ATTACHMENT_INFO_S *info = (EMAIL_ATTACHMENT_INFO_S *) g_list_nth_data(ugd->fw_attachment_list, i);
+ debug_log("%x", info);
+ if (info) {
+ debug_log("%d , %d", info->attach_id, attachment_data->attachment_id);
+ if (info->attach_id == attachment_data->attachment_id) {
+ //info->downloaded = true;
+ //info->path = email_engine_get_attachment_path(info->attach_id);
+ ugd->fw_attachment_list = g_list_remove(ugd->fw_attachment_list, info);
+ debug_log("2. %d", g_list_length(ugd->fw_attachment_list));
+ ugd->fw_dn_cnt = g_list_length(ugd->fw_attachment_list);
+ }
+ }
+ }
+
+ if (ugd->fw_dn_cnt == 0)
+ ugd->need_download = EINA_FALSE;
+}
+
static void _composer_attachment_delete_icon_clicked_cb(void *data, Evas_Object *obj, void *event_info)
{
debug_log("");
email_attachment_data_t *attachment_data = NULL;
attachment_data = evas_object_data_get(object, "attachment_data");
- if (attachment_data) {
- debug_log("attachment_data file name = %s", attachment_data->attachment_path);
-
- email_free_attachment_data(&attachment_data, 1);
- attachment_data = NULL;
- }
+ _composer_attachment_delete_item_from_fw_attachment_list(ugd, attachment_data);
elm_box_unpack(ugd->attachment_item_box, object);
evas_object_del(object);
+#ifdef _ATTACHMENT_UI_
+ if (ugd->attachment_contracted_item) {
+ Evas_Object *contracted_item = evas_object_data_get(ugd->attachment_contracted_item, "attachment_item");
+ debug_log("contracted_item = %p", contracted_item);
+ if (eina_list_count(ugd->attachment_item_obj_list) < 2) {
+ elm_box_unpack(ugd->attachment_item_box, ugd->attachment_contracted_item);
+ evas_object_del(ugd->attachment_contracted_item);
+ ugd->attachment_contracted_item = NULL;
+ ugd->attachment_list_compressed = FALSE;
+ _composer_attachment_add_filename(ugd, attachment_data, contracted_item);
+ } else {
+ ugd->attachment_list_compressed = TRUE;
+ _composer_attachment_add_filename(ugd, attachment_data, contracted_item);
+ ugd->attachment_list_compressed = FALSE;
+ }
+ }
+#endif
if (ugd->attachment_item_obj_list == NULL) {
ugd->selected_entry = ugd->priv_selected_entry;
ugd->priv_selected_entry = NULL;
}
+
+ if (attachment_data) {
+ debug_log("attachment_data file name = %s", attachment_data->attachment_path);
+
+ email_free_attachment_data(&attachment_data, 1);
+ attachment_data = NULL;
+ }
_composer_mbe_set_focus(ugd);
+#ifdef _ATTACHMENT_UI_
+ elm_box_recalculate(ugd->attachment_item_box);
+ elm_layout_sizing_eval(ugd->main_layout);
+#endif
}
+#ifndef _ATTACHMENT_UI_
static void _composer_attachment_delete_all_icon_clicked_cb(void *data, Evas_Object *obj, void *event_info)
{
debug_log("");
_composer_mbe_set_focus(ugd);
}
}
+#endif
bool _composer_attachment_duplicate_check(EmailComposerUGD *ugd, char *pszAttachedFilePath)
{
bool bDuplicated = FALSE;
Eina_Iterator *it = NULL;
- Evas_Object *obj = NULL;
+ Evas_Object *attachment_obj = NULL;
email_attachment_data_t *attachment_data = NULL;
it = eina_list_iterator_new(ugd->attachment_item_obj_list);
- while (eina_iterator_next(it, (void **)&obj)) {
- attachment_data = evas_object_data_get(obj, "attachment_data");
- debug_log("attachment_data->attachment_path = %s", attachment_data->attachment_path);
+ while (eina_iterator_next(it, (void **)&attachment_obj)) {
+ attachment_data = evas_object_data_get(attachment_obj, "attachment_data");
- if (strcmp(pszAttachedFilePath, attachment_data->attachment_path) == 0) {
- debug_log("Attached file path is duplicated");
- bDuplicated = TRUE;
- break;
+ debug_log("attachment_data->attachment_path = %s", attachment_data->attachment_path);
+ if (attachment_data->attachment_path != NULL) {
+ if (strcmp(pszAttachedFilePath, attachment_data->attachment_path) == 0) {
+ debug_log("Attached file path is duplicated");
+ bDuplicated = TRUE;
+ break;
+ }
}
}
if (ugd->attachment_list_compressed == EINA_FALSE)
return;
-
+#ifndef _ATTACHMENT_UI_
if (ugd->attachment_contracted_item) {
elm_box_unpack(ugd->attachment_item_box, ugd->attachment_contracted_item);
evas_object_hide(ugd->attachment_contracted_item);
}
-
+#endif
Eina_List *list = NULL;
Evas_Object *attachment_item = NULL;
}
ugd->attachment_list_compressed = EINA_FALSE;
+#ifdef _ATTACHMENT_UI_
+ elm_box_recalculate(ugd->attachment_item_box);
+ elm_layout_sizing_eval(ugd->main_layout);
+#endif
}
void _composer_attachment_contract_items(EmailComposerUGD *ugd)
}
if (ugd->attachment_contracted_item) {
+#ifndef _ATTACHMENT_UI_
elm_box_pack_start(ugd->attachment_item_box, ugd->attachment_contracted_item);
evas_object_show(ugd->attachment_contracted_item);
-
+#endif
Evas_Object *contracted_item = evas_object_data_get(ugd->attachment_contracted_item, "attachment_item");
debug_log("contracted_item = %p", contracted_item);
_composer_attachment_add_filename(ugd, NULL, contracted_item);
} else {
_composer_attachment_create_contracted_box(ugd);
}
+#ifdef _ATTACHMENT_UI_
+ if (toggle == 0) {
+ char buf[PATH_MAX];
+ snprintf(buf, sizeof(buf), "expand/closed");
+ elm_object_style_set(_g_attach_btn, buf);
+ toggle = 1;
+ }
+#endif
}
+#ifdef _ATTACHMENT_UI_
+ elm_box_recalculate(ugd->attachment_item_box);
+ elm_layout_sizing_eval(ugd->main_layout);
+#endif
}
void _composer_attachment_create_contracted_box(EmailComposerUGD *ugd)
_composer_attachment_add_thumbnail(ugd, contracted_item, NULL);
_composer_attachment_add_delete_icon(ugd, contracted_item);
_composer_attachment_add_filename(ugd, NULL, contracted_item);
-
+#ifndef _ATTACHMENT_UI_
edje_object_signal_callback_add(_EDJ(contracted_item), "clicked", "*", _composer_attachment_contracted_item_clicked_cb, ugd);
-
+#endif
Evas_Object *contracted_base = elm_layout_add(ugd->attachment_item_box);
elm_layout_theme_set(contracted_base, "layout", "application", "noindicator");
evas_object_size_hint_weight_set(contracted_base, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_data_set(ugd->attachment_contracted_item, "attachment_item", contracted_item);
}
+#ifdef _ATTACHMENT_UI_
+static void _composer_attachment_contracted_item_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ debug_log("");
+
+ EmailComposerUGD *ugd = (EmailComposerUGD *)data;
+
+// int param = (int)(long)(data);
+ char buf[PATH_MAX];
+ Evas_Object *btn = obj;
+
+ if (toggle == 1) {
+ /* expand button closed style */
+ snprintf(buf, sizeof(buf), "expand/opened");
+ elm_object_style_set(btn, buf);
+
+ if (ugd->selected_entry == ugd->body_ewkview) {
+ debug_log("Webkit unfocused");
+ evas_object_focus_set(ugd->body_ewkview, EINA_FALSE);
+ email_composer_rte_set_buttons_dimmed(ugd);
+ if (ewk_view_script_execute(ugd->body_ewkview, COMPOSER_JS_SET_UNFOCUS, _composer_script_executed_cb, 0) == EINA_FALSE)
+ debug_log("COMPOSER_JS_SET_UNFOCUS failed.");
+ }
+
+ elm_object_focus_set(obj, EINA_TRUE);
+
+ _composer_attachment_expand_items(ugd);
+
+ ugd->priv_selected_entry = ugd->selected_entry;
+ ugd->selected_entry = ugd->attachment_contracted_item;
+
+ toggle = 0;
+ } else {
+ /* expand button opened style */
+ snprintf(buf, sizeof(buf), "expand/closed");
+ elm_object_style_set(btn, buf);
+
+ if (ugd->selected_entry == ugd->body_ewkview) {
+ debug_log("Webkit unfocused");
+ evas_object_focus_set(ugd->body_ewkview, EINA_FALSE);
+ email_composer_rte_set_buttons_dimmed(ugd);
+ if (ewk_view_script_execute(ugd->body_ewkview, COMPOSER_JS_SET_UNFOCUS, _composer_script_executed_cb, 0) == EINA_FALSE)
+ debug_log("COMPOSER_JS_SET_UNFOCUS failed.");
+ }
+
+ elm_object_focus_set(obj, EINA_TRUE);
+
+ _composer_attachment_contract_items(ugd);
+
+ ugd->priv_selected_entry = ugd->selected_entry;
+ ugd->selected_entry = ugd->attachment_contracted_item;
+
+ toggle = 1;
+ }
+
+// ugd->bringin_timer = ecore_timer_add(0.5f, _composer_bringin_cb, ugd);
+}
+#else
static void _composer_attachment_contracted_item_clicked_cb(void *data, Evas_Object *obj, const char *emission, const char *source)
{
debug_log("");
ugd->selected_entry = ugd->attachment_contracted_item;
// ugd->bringin_timer = ecore_timer_add(0.5f, _composer_bringin_cb, ugd);
}
+#endif // _ATTACHMENT_UI_ end
static void _composer_attachment_mouse_clicked(void *data, Evas_Object *obj, const char *emission, const char *source)
{
elm_object_item_signal_emit(ugd->navi_item, "elm,state,optionheader,open", "");
}
- if (ugd->isRotated == true) {
+ if (ugd->isHorizontal == true) {
_composer_resize_body_webview(ugd, COMPOSER_IME_HEIGHT_H);
} else {
_composer_resize_body_webview(ugd, COMPOSER_IME_HEIGHT_V);
if (ugd->to_recipients_cnt > 0)
ugd->to_recipients_cnt--;
+
+ if (addr) {
+ g_free(addr);
+ addr = NULL;
+ }
} else if (obj == ugd->cc_mbe) {
debug_log("cc_mbe");
} else {
debug_log("");
- Ecore_IMF_Context *imf_context = NULL;
-
- imf_context = elm_entry_imf_context_get(ugd->selected_entry);
-
- if (imf_context)
- ecore_imf_context_input_panel_hide(imf_context);
-
ugd->is_mbe_selected = true;
index = ri->selected_email_idx;
ugd->composer_popup = NULL;
}
+ Evas_Object * popup = elm_popup_add(ugd->win_main);
+ elm_object_style_set(popup, "min_menustyle");
+ evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ ugd->popup_list = eina_list_append(ugd->popup_list, popup);
+
debug_log("display_name:%s, index:%d", ri->display_name, index);
if (ri->display_name) {
char *email_str = g_strconcat(ri->display_name, " <", ri->email_list[index].email_addr, ">", NULL);
char *contact_str = elm_entry_utf8_to_markup(email_str);
debug_log("email_str:%s", email_str);
debug_log("contact_str:%s", contact_str);
- ugd->composer_popup = _composer_create_noti(ugd, false, contact_str, NULL, 1,
- dgettext("sys_string", "IDS_COM_POP_CLOSE"), NULL, 0.0, _composer_popup_response_cb);
+ elm_object_part_text_set(popup, "title,text", contact_str);
g_free(contact_str);
} else {
- ugd->composer_popup = _composer_create_noti(ugd, false, ri->email_list[index].email_addr, NULL, 1,
- dgettext("sys_string", "IDS_COM_POP_CLOSE"), NULL, 0.0, _composer_popup_response_cb);
+ elm_object_part_text_set(popup, "title,text", ri->email_list[index].email_addr);
}
-#ifdef _POPUP_WITH_LIST
- elm_object_style_set(ugd->composer_popup, "min_menustyle");
-#else
- elm_object_style_set(ugd->composer_popup, "menustyle");
-#endif
- elm_object_focus_allow_set(ugd->composer_popup, EINA_TRUE);
-
- pu_list = elm_list_add(ugd->composer_popup);
+ Evas_Object *btn_close = elm_button_add(popup);
+ elm_object_style_set(btn_close, "popup_button/default");
+ elm_object_text_set(btn_close, dgettext("sys_string", "IDS_COM_POP_CLOSE"));
+ elm_object_part_content_set(popup, "button1", btn_close);
+ evas_object_smart_callback_add(btn_close, "clicked", _composer_popup_response_cb, ugd);
- int item_count = 5;
+ pu_list = elm_list_add(popup);
+ elm_list_mode_set(pu_list, ELM_LIST_EXPAND);
elm_list_item_append(pu_list, dgettext("sys_string", "IDS_COM_SK_DELETE"), NULL, NULL, _composer_mbe_popup_delete_cb, ugd);
elm_list_item_append(pu_list, dgettext("sys_string", "IDS_COM_SK_EDIT"), NULL, NULL, _composer_mbe_popup_edit_cb, ugd);
elm_list_item_append(pu_list, _("IDS_EMAIL_OPT_MOVE_TO_BCC"), NULL, NULL, _composer_mbe_popup_move_to_bcc_cb, ugd);
debug_log("email_cnt = %d", ri->email_cnt);
- if (ri->is_contact_info == true) {
+/* if (ri->is_contact_info == true) {
if (ri->email_cnt > 1) {
elm_list_item_append(pu_list, _("IDS_EMAIL_OPT_CHANGE_EMAIL_ADDRESS_ABB"), NULL, NULL, _composer_mbe_popup_change_addr_cb, ugd);
- }
- }
+ } else {
+ g_ugd = ugd;
+ EMAIL_CONTACT_LIST_INFO_S *contact_list_item = NULL;
+ contact_list_item = (EMAIL_CONTACT_LIST_INFO_S *)_composer_contact_search_by_email(ugd, ri->email_list[index].email_addr);
- elm_list_go(pu_list);
+ if (contact_list_item) {
+ debug_log("Contact Item Exist: index[%d]", contact_list_item->index);
+ char ct_idx[10] = { 0, };
+ snprintf(ct_idx, sizeof(ct_idx), "%d", contact_list_item->index);
-#ifdef _POPUP_WITH_LIST
- elm_list_mode_set(pu_list, ELM_LIST_EXPAND);
- evas_object_size_hint_max_set(pu_list, -1, 114 * item_count * elm_scale_get());
-#endif
- elm_object_content_set(ugd->composer_popup, pu_list);
+ elm_list_item_append(pu_list, _("IDS_EMAIL_OPT_VIEW_CONTACT"), NULL, NULL, _composer_mbe_popup_view_contact_detail_cb, g_strdup(ct_idx));
- ugd->mbe_unfocus_timer = ecore_timer_add(0.1, _composer_unfocus_selected_mbe, ugd);
+ _composer_delete_contacts_list(contact_list_item);
+ } else {
+ debug_log("contact_list_item is NULL");
+ elm_list_item_append(pu_list, dgettext("sys_string", "IDS_COM_OPT_ADD_TO_CONTACTS"), NULL, NULL, _composer_mbe_popup_add_to_contact_cb, ugd);
+ }
+ }
+ } else {
+ elm_list_item_append(pu_list, dgettext("sys_string", "IDS_COM_OPT_ADD_TO_CONTACTS"), NULL, NULL, _composer_mbe_popup_add_to_contact_cb, ugd);
+ }
+*/
+ elm_list_go(pu_list);
+ elm_object_content_set(popup, pu_list);
+ evas_object_show(popup);
+ elm_object_focus_set(popup, EINA_TRUE);
+
+ ugd->composer_popup = popup;
debug_log("composer_popup = %x, is_mbe_selected = %d", ugd->composer_popup, ugd->is_mbe_selected);
}
}
if (COMPOSER_FOCUS_STATUS_NONE == ugd->focus_status) {
if (obj == ugd->to_mbe) {
edje_object_signal_emit(_EDJ(ugd->to_ly), "show.button", "*");
- edje_object_signal_emit(_EDJ(ugd->to_ly), "contract.recp", "*");
+// edje_object_signal_emit(_EDJ(ugd->to_ly), "contract.recp", "*");
}
else if (obj == ugd->cc_mbe) {
edje_object_signal_emit(_EDJ(ugd->cc_ly), "show.button", "*");
- edje_object_signal_emit(_EDJ(ugd->cc_ly), "contract.recp", "*");
+// edje_object_signal_emit(_EDJ(ugd->cc_ly), "contract.recp", "*");
}
else if (obj == ugd->bcc_mbe) {
edje_object_signal_emit(_EDJ(ugd->bcc_ly), "show.button", "*");
- edje_object_signal_emit(_EDJ(ugd->bcc_ly), "contract.recp", "*");
+// edje_object_signal_emit(_EDJ(ugd->bcc_ly), "contract.recp", "*");
}
_composer_attachment_contract_items(ugd);
ugd->selected_entry = elm_multibuttonentry_entry_get(obj);
// ugd->bringin_timer = ecore_timer_add(0.5f, _composer_bringin_cb, ugd);
debug_log("MBE editable:%d", elm_multibuttonentry_editable_get(obj));
+ elm_layout_sizing_eval(ugd->c_layout);
} else {
if (ugd->selected_entry == ugd->body_ewkview) {
if (EINA_TRUE == elm_object_focus_get(ugd->to_mbe))
return;
}
+ if (ugd->focus_status == COMPOSER_FOCUS_STATUS_SELECTED) {
+ elm_object_tree_focus_allow_set(ugd->c_layout, EINA_FALSE); // block the focus not to open IME.
+ ugd->focus_status = COMPOSER_FOCUS_STATUS_NONE;
+ return;
+ }
+
debug_log("obj = %x, to_mbe = %x, cc_mbe = %x, bcc_mbe = %x", obj, ugd->to_mbe, ugd->cc_mbe, ugd->bcc_mbe);
if (obj == ugd->to_mbe) {
edje_object_signal_emit(_EDJ(ugd->to_ly), "hide.button", "*");
- edje_object_signal_emit(_EDJ(ugd->to_ly), "extract.recp", "*");
+// edje_object_signal_emit(_EDJ(ugd->to_ly), "extract.recp", "*");
}
else if (obj == ugd->cc_mbe) {
edje_object_signal_emit(_EDJ(ugd->cc_ly), "hide.button", "*");
- edje_object_signal_emit(_EDJ(ugd->cc_ly), "extract.recp", "*");
+// edje_object_signal_emit(_EDJ(ugd->cc_ly), "extract.recp", "*");
}
else if (obj == ugd->bcc_mbe) {
edje_object_signal_emit(_EDJ(ugd->bcc_ly), "hide.button", "*");
- edje_object_signal_emit(_EDJ(ugd->bcc_ly), "extract.recp", "*");
+// edje_object_signal_emit(_EDJ(ugd->bcc_ly), "extract.recp", "*");
}
elm_multibuttonentry_expanded_set(obj, FALSE);
err_return:
debug_log("err-return");
- elm_entry_entry_set(elm_multibuttonentry_entry_get(obj), NULL);
+// elm_entry_entry_set(elm_multibuttonentry_entry_get(obj), NULL);
elm_entry_cursor_end_set(elm_multibuttonentry_entry_get(obj));
if (_composer_check_popup_exist(ugd))
- elm_object_focus_set(obj, EINA_FALSE);
+ elm_object_focus_set(ugd->composer_noti, EINA_TRUE);
return EINA_FALSE;
}
Elm_Object_Item *item = elm_multibuttonentry_selected_item_get(mbe);
if (item && mbe == ugd->bcc_mbe) {
- EmailRecpInfo *bcc_ri_info;
-
- bcc_ri_info = (EmailRecpInfo *) elm_object_item_data_get(item);
+ elm_object_item_data_get(item);
}
elm_object_item_del(item);
EmailComposerUGD *ugd = (EmailComposerUGD *)data;
- EmailRecpInfo *ri = NULL;
-
Evas_Object *mbe = NULL;
if (ugd->selected_entry == ugd->to_mbe_entry) {
mbe = ugd->bcc_mbe;
}
- ri = (EmailRecpInfo *) elm_object_item_data_get(ugd->selected_item);
+ elm_object_item_data_get(ugd->selected_item);
char *pszBtnText = (char *)elm_object_text_get(obj);
debug_log("selected button text = %s", pszBtnText);
int err = email_cancel_sending_mail(ugd->new_mail_info->mail_data->mail_id);
+ _composer_webkit_set_body_script(data);
+ elm_object_tree_focus_allow_set(ugd->c_layout, EINA_TRUE); // block the focus not to open IME.
+ elm_object_disabled_set(ugd->send_btn, EINA_FALSE);
+ elm_object_disabled_set(ugd->cancel_btn, EINA_FALSE);
+
if (err != EMAIL_ERROR_NONE) {
debug_warning("email_engine_cancel_send_mail failed - err(%d)", err);
} else {
ugd->change_addr_noti = _composer_create_noti(ugd, false, _("IDS_EMAIL_HEADER_SELECT_EMAIL_ADDRESS"), NULL, 1,
dgettext("sys_string", "IDS_COM_SK_CANCEL"), NULL, 0.0, _composer_mbe_change_addr_response_cb);
-#ifdef _POPUP_WITH_LIST
- elm_object_style_set(ugd->change_addr_noti, "min_menustyle");
-#else
- elm_object_style_set(ugd->change_addr_noti, "menustyle");
-#endif
- elm_object_focus_allow_set(ugd->change_addr_noti, EINA_FALSE);
Elm_Object_Item *gen_item;
Evas_Object *genlist;
debug_log("");
EmailComposerUGD *ugd = (EmailComposerUGD *)data;
+ elm_object_tree_focus_allow_set(ugd->c_layout, EINA_TRUE);
+
if (ugd->popup_list) {
debug_log("popup count = %d", eina_list_count(ugd->popup_list));
debug_log("obj: %p", obj);
return NULL;
}
- int ret = CTS_SUCCESS;
- CTSiter *iter = NULL;
-
+ int ct_ret = CONTACTS_ERROR_NONE;
EMAIL_CONTACT_LIST_INFO_S *contacts_list_item = NULL;
- contacts_svc_connect();
+ Eina_List *contacts_list = NULL;
+ contacts_list_h list = NULL;
- debug_log("search_word = %s", search_word);
+ ct_ret = email_get_contacts_list(CONTACTS_MATCH_EXACTLY, &list, search_word);
+ debug_log("email_get_contacts_record: list : %d", list);
- if (contacts_svc_get_list_with_str(CTS_LIST_EMAILINFOS_WITH_EMAIL, search_word, &iter) != CTS_SUCCESS) {
- return NULL;
+ if (!list) {
+ debug_log("list is NULL");
+ contacts_list_destroy(list, true);
+ return contacts_list;
}
- ret = contacts_svc_iter_next(iter);
-
- if (CTS_SUCCESS == ret) {
- CTSvalue *row_info = NULL;
+ contacts_list_item = (EMAIL_CONTACT_LIST_INFO_S *)calloc(1, sizeof(EMAIL_CONTACT_LIST_INFO_S));
+ contacts_list_item->ugd = ugd;
- row_info = contacts_svc_iter_get_info(iter);
- if (row_info) {
- contacts_list_item = (EMAIL_CONTACT_LIST_INFO_S *)calloc(1, sizeof(EMAIL_CONTACT_LIST_INFO_S));
-
- int index = contacts_svc_value_get_int(row_info, CTS_LIST_EMAIL_CONTACT_ID_INT);
-
- contacts_list_item->index = index;
- contacts_list_item->display = g_strdup(contacts_svc_value_get_str(row_info, CTS_LIST_EMAIL_CONTACT_DISPLAY_STR));
- contacts_list_item->image_path = g_strdup(contacts_svc_value_get_str(row_info, CTS_LIST_EMAIL_CONTACT_IMG_PATH_STR));
- contacts_list_item->email_address = g_strdup(contacts_svc_value_get_str(row_info, CTS_LIST_EMAIL_ADDR_STR));
-
- snprintf(contacts_list_item->display_name, sizeof(contacts_list_item->display_name), "%s", contacts_list_item->display);
-
- /*contacts_list = eina_list_append(contacts_list, contacts_list_item);*/
- }
-
- contacts_svc_value_free(row_info);
- row_info = NULL;
-
- /*ret = contacts_svc_iter_next(iter);*/
- contacts_svc_iter_remove(iter);
- }
+ ct_ret = email_get_contacts_list_info(list, contacts_list_item);
+ debug_log("email_get_contacts_list_info: contacts_list_item : %d", contacts_list_item);
- contacts_svc_disconnect();
+ contacts_list_destroy(list, true);
- return contacts_list_item;
+ return contacts_list;
}
static void _composer_delete_contacts_list(EMAIL_CONTACT_LIST_INFO_S *contacts_list_item)
{
debug_log("");
- Elm_Object_Item *gen_item;
int acc_index;
g_ugd = ugd;
}
ugd->composer_noti = _composer_create_noti(ugd, false, _("IDS_EMAIL_BODY_FROM"), NULL, 1, dgettext("sys_string", "IDS_COM_SK_OK"), NULL, 0.0, _composer_from_change_response_cb);
-#ifdef _POPUP_WITH_LIST
- elm_object_style_set(ugd->composer_noti, "min_menustyle");
-#else
- elm_object_style_set(ugd->composer_noti, "menustyle");
-#endif
- elm_object_focus_allow_set(ugd->composer_noti, EINA_FALSE);
-
from_itc.item_style = "email.2text.3icon.3";
from_itc.func.text_get = _composer_from_gl_text_get;
from_itc.func.content_get = _composer_from_gl_content_get;
evas_object_size_hint_align_set(ugd->account_gen_list, EVAS_HINT_FILL, EVAS_HINT_FILL);
for (acc_index = 0; acc_index < ugd->account_info->account_count; acc_index++) {
- gen_item = elm_genlist_item_append(ugd->account_gen_list, &from_itc, (void *)acc_index, NULL, ELM_GENLIST_ITEM_NONE, _composer_from_gl_sel, (void *)acc_index);
+ elm_genlist_item_append(ugd->account_gen_list, &from_itc, (void *)acc_index, NULL, ELM_GENLIST_ITEM_NONE, _composer_from_gl_sel, (void *)acc_index);
}
// elm_genlist_effect_set(ugd->account_gen_list, EINA_FALSE);
debug_log("account_type: %d", ugd->account_info->account_type);
- int ret = _composer_add_mailbox_folder(ugd, EMAIL_MAILBOX_TYPE_DRAFT);
+ int ret = _composer_add_mailbox_folder(ugd, EMAIL_MAILBOX_TYPE_DRAFT, EINA_TRUE);
if (ret < COMPOSER_ERROR_NONE) {
debug_log("Failed save in Drafts(%d)", ret);
debug_log("");
EmailComposerUGD *ugd = (EmailComposerUGD *)data;
- Elm_Object_Item *gen_item[2];
+ Elm_Object_Item *gen_item[3];
int index;
g_ugd = ugd;
ugd->b_bcc_ps_open = false;
}
-#ifdef _POPUP_WITH_LIST
- elm_object_style_set(ugd->composer_noti, "min_menustyle");
-#else
- elm_object_style_set(ugd->composer_noti, "menustyle");
-#endif
- elm_object_focus_allow_set(ugd->composer_noti, EINA_FALSE);
-
priority_itc.item_style = "1text.1icon.2";
priority_itc.func.text_get = _composer_priority_gl_text_get;
priority_itc.func.content_get = _composer_priority_gl_content_get;
ugd->b_bcc_ps_open = false;
}
-#ifdef _POPUP_WITH_LIST
- elm_object_style_set(ugd->composer_noti, "min_menustyle");
-#else
- elm_object_style_set(ugd->composer_noti, "menustyle");
-#endif
- elm_object_focus_allow_set(ugd->composer_noti, EINA_FALSE);
-
tracking_itc.item_style = "1text.1icon.2";
tracking_itc.func.text_get = _composer_tracking_gl_text_get;
tracking_itc.func.content_get = _composer_tracking_gl_content_get;
EmailComposerUGD *ugd = (EmailComposerUGD *)data;
debug_log("Send Button Clicked");
+ elm_object_tree_focus_allow_set(ugd->c_layout, EINA_FALSE); // block the focus not to open IME.
if (EINA_FALSE == ewk_view_script_execute(ugd->body_ewkview, COMPOSER_JS_DISABLE_EDITABLE, _composer_send_clicked_cb, (void *)ugd))
debug_log("COMPOSER_JS_DISABLE_EDITABLE error");
elm_object_disabled_set(ugd->send_btn, EINA_TRUE);
elm_object_disabled_set(ugd->cancel_btn, EINA_TRUE);
- ugd->bSendBtnDisabled = true;
-
- ugd->send_timer = ecore_timer_add(0.5, _composer_send_mail_cb, ugd);
+ if (ugd->need_download == EINA_TRUE) {
+ _composer_download_attachment(ugd);
+ } else {
+ ugd->bSendBtnDisabled = true;
+ ugd->send_timer = ecore_timer_add(0.5, _composer_send_mail_cb, ugd);
+ }
}
static Eina_Bool _composer_cc_mbe_set_focus(void *data)
static void _composer_webkit_scroll_up_cb(void *data, Evas_Object *obj, void *event_info);
static void _composer_webkit_scroll_down_cb(void *data, Evas_Object *obj, void *event_info);
+static void _composer_webkit_get_ime_rect_cb(void *data, Evas_Object *obj, void *event_info);
static void _composer_webkit_ime_closed_cb(void *data, Evas_Object *obj, void *event_info);
static void _composer_webkit_ime_opened_cb(void *data, Evas_Object *obj, void *event_info);
static void _composer_webkit_resized_cb(void *data, Evas_Object *obj, void *event_info);
static void _composer_webview_policy_navigation_decide_cb(void *data, Evas_Object *obj, void *event_info);
static void _composer_webview_contextmenu_customize_cb(void *data, Evas_Object *webview, void *event_info);
static void _composer_webview_contextmenu_selected_cb(void *data, Evas_Object *webview, void *event_info);
+static void _composer_webkit_get_text_status_cb(void *data, Evas_Object *obj, void *event_info);
+static int _g_pos_x;
+static int _g_pos_y;
static void _changed_cb(void *data, Evas_Object *obj, void *event_info) // This callback is for showing(hiding) X marked button.
{
elm_entry_input_panel_show(obj);
ugd->selected_entry = ugd->subject_entry;
- if (ugd->isRotated == true) {
- _composer_resize_body_webview(ugd, COMPOSER_IME_HEIGHT_H);
- } else {
- _composer_resize_body_webview(ugd, COMPOSER_IME_HEIGHT_V);
- }
elm_layout_sizing_eval(ugd->c_layout);
// ugd->bringin_timer = ecore_timer_add(0.5f, _composer_bringin_cb, ugd);
} else {
static void _unfocused_cb(void *data, Evas_Object *obj, void *event_info) // Unfocused callback will show guidetext and hide X marked button.
{
debug_log("");
+ EmailComposerUGD *ugd = (EmailComposerUGD *)data;
+
+ if (ugd->focus_status == COMPOSER_FOCUS_STATUS_SELECTED) {
+ elm_object_tree_focus_allow_set(ugd->c_layout, EINA_FALSE); // block the focus not to open IME.
+ ugd->focus_status = COMPOSER_FOCUS_STATUS_NONE;
+ 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");
+ elm_object_signal_emit(ugd->subject_editfield, "elm,state,guidetext,show", "elm");
+ elm_object_signal_emit(ugd->subject_editfield, "elm,state,eraser,hide", "elm");
elm_entry_input_panel_hide(obj);
}
evas_object_smart_callback_add(ugd->subject_entry, "changed", _changed_cb, ugd->subject_editfield);
evas_object_smart_callback_add(ugd->subject_entry, "focused", _focused_cb, ugd);
- evas_object_smart_callback_add(ugd->subject_entry, "unfocused", _unfocused_cb, ugd->subject_editfield);
+ evas_object_smart_callback_add(ugd->subject_entry, "unfocused", _unfocused_cb, ugd);
elm_object_signal_callback_add(ugd->subject_editfield, "elm,eraser,clicked", "elm", _eraser_clicked_cb, ugd->subject_entry);
elm_object_part_content_set(parent, "subject_field", ly);
entry = elm_entry_add(ef);
elm_entry_scrollable_set(entry, EINA_TRUE);
elm_entry_single_line_set(entry, EINA_TRUE);
- elm_entry_input_panel_enabled_set(entry, EINA_FALSE);
+// elm_entry_input_panel_enabled_set(entry, EINA_FALSE);
elm_entry_input_panel_layout_set(entry, ELM_INPUT_PANEL_LAYOUT_NORMAL);
elm_entry_cnp_mode_set(entry, ELM_CNP_MODE_PLAINTEXT);
evas_object_show(entry);
ugd->webkit_ly = body_ly;
}
+void _composer_register_editfield_entry_callback(Evas_Object *obj, EmailComposerUGD *ugd)
+{
+ debug_log("");
+
+ evas_object_smart_callback_add(obj, "changed", _composer_edit_field_changed_cb, ugd);
+ evas_object_smart_callback_add(obj, "preedit,changed", _composer_edit_field_changed_cb, ugd);
+ Ecore_IMF_Context *imf_context = elm_entry_imf_context_get(obj);
+ ecore_imf_context_input_panel_event_callback_add (imf_context, ECORE_IMF_INPUT_PANEL_GEOMETRY_EVENT, _composer_input_panel_resize_cb, ugd);
+ ecore_imf_context_input_panel_event_callback_add(imf_context, ECORE_IMF_INPUT_PANEL_STATE_EVENT, _composer_input_panel_state_changed_cb, ugd);
+ debug_log("ugd->is_prediction: %d", ugd->is_prediction);
+}
+
+void _composer_webkit_set_body_script(void *data)
+{
+ debug_log("");
+ EmailComposerUGD *ugd = (EmailComposerUGD *)data;
+
+ if (ugd == NULL)
+ return;
+
+ if (ewk_view_script_execute(ugd->body_ewkview, COMPOSER_JS_ENABLE_EDITABLE, _composer_script_executed_cb, 0) == EINA_FALSE)
+ debug_log("COMPOSER_JS_ENABLE_EDITABLE failed.");
+
+ if (ewk_view_script_execute(ugd->body_ewkview, COMPOSER_JS_GET_HTML_CONTENT, _composer_get_html_content_cb, (void *)ugd) == EINA_FALSE)
+ debug_log("COMPOSER_JS_GET_HTML_CONTENT failed.");
+
+}
+
Evas_Object *_composer_create_body_webview(Evas_Object *parent, char *title, EmailComposerUGD *ugd)
{
debug_log("");
evas_object_show(ly);
ugd->body_ewkview = ewk_view_add(evas_object_evas_get(parent));
-
+ evas_object_size_hint_weight_set(ugd->body_ewkview, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(ugd->body_ewkview, EVAS_HINT_FILL, EVAS_HINT_FILL);
ewk_view_vertical_panning_hold_set(ugd->body_ewkview, EINA_TRUE);
//elm_webview_input_field_zoom_set(ugd->body_webview, EINA_TRUE); //reviewing
ewk_setting_uses_encoding_detector_set(ewkSetting, EINA_TRUE);
- //ewk_view_show_ime_on_autofocus_set(ugd->body_ewkview, EINA_TRUE); // jcpark reviewing
evas_object_smart_callback_add(ugd->body_ewkview, "load,finished", _composer_webkit_loadFinished_cb, ugd);
evas_object_smart_callback_add(ugd->body_ewkview, "policy,navigation,decide", _composer_webview_policy_navigation_decide_cb, ugd);
evas_object_smart_callback_add(ugd->body_ewkview, "scroll,up", _composer_webkit_scroll_up_cb, ugd);
evas_object_smart_callback_add(ugd->body_ewkview, "contextmenu,selected", _composer_webview_contextmenu_selected_cb, ugd);
evas_object_smart_callback_add(ugd->body_ewkview, "editorclient,ime,closed", _composer_webkit_ime_closed_cb, ugd);
evas_object_smart_callback_add(ugd->body_ewkview, "editorclient,ime,opened", _composer_webkit_ime_opened_cb, ugd);
+ evas_object_smart_callback_add(ugd->body_ewkview, "text,style,state", _composer_webkit_get_text_status_cb, ugd);
+ evas_object_smart_callback_add(ugd->body_ewkview, "inputmethod,changed", _composer_webkit_get_ime_rect_cb, ugd);
evas_object_event_callback_add(ugd->body_ewkview, EVAS_CALLBACK_FOCUS_IN, _composer_webkit_focused_cb, ugd);
evas_object_event_callback_add(ugd->body_ewkview, EVAS_CALLBACK_FOCUS_OUT, _composer_webkit_unfocused_cb, ugd);
return ly;
}
-void _composer_register_editfield_entry_callback(Evas_Object *obj, EmailComposerUGD *ugd)
-{
- debug_log("");
-
- evas_object_smart_callback_add(obj, "changed", _composer_edit_field_changed_cb, ugd);
- evas_object_smart_callback_add(obj, "preedit,changed", _composer_edit_field_changed_cb, ugd);
-
-// Ecore_IMF_Context *imf_context = elm_entry_imf_context_get(obj);
-// ecore_imf_context_input_panel_event_callback_add(imf_context, ECORE_IMF_INPUT_PANEL_STATE_EVENT, _composer_input_panel_state_changed_cb, ugd);
-}
-
static Eina_Bool _composer_webkit_field_clicked_cb_hit_test_hash_fn(const Eina_Hash *hash, const void *key, void *data, void *fdata)
{
debug_log("Func data: %s, Hash entry: %s / %s\n", fdata, (const char *)key, data);
EmailComposerUGD *ugd = (EmailComposerUGD *)data;
- if (ewk_view_script_execute(ugd->body_ewkview, COMPOSER_JS_ENABLE_EDITABLE, _composer_script_executed_cb, 0) == EINA_FALSE)
- debug_log("COMPOSER_JS_ENABLE_EDITABLE failed.");
-
- if (ewk_view_script_execute(ugd->body_ewkview, COMPOSER_JS_GET_HTML_CONTENT, _composer_get_html_content_cb, (void *)ugd) == EINA_FALSE)
- debug_log("COMPOSER_JS_GET_HTML_CONTENT failed.");
+ _composer_webkit_set_body_script(data);
Ewk_Setting *ewkSetting = NULL;
ewkSetting = ewk_view_setting_get(ugd->body_ewkview);
//ewk_setting_auto_load_images_set(ewkSetting, EINA_TRUE);
ewk_setting_editable_link_behavior_set(ewkSetting, EWK_EDITABLE_LINK_BEHAVIOR_NEVER_LIVE);
- if (ugd->isRotated == true) {
- _composer_resize_body_webview(ugd, COMPOSER_IME_HEIGHT_H);
- } else {
- _composer_resize_body_webview(ugd, COMPOSER_IME_HEIGHT_V);
- }
-
if (ugd->selected_entry == ugd->body_ewkview) {
// focus to the body field when reply the email.
evas_object_focus_set(ugd->body_ewkview, EINA_TRUE);
if (ewk_view_script_execute(ugd->body_ewkview, COMPOSER_JS_SET_UNFOCUS, _composer_script_executed_cb, 0) == EINA_FALSE)
debug_log("COMPOSER_JS_SET_UNFOCUS failed.");
#endif
+ if (ugd->focus_status == COMPOSER_FOCUS_STATUS_SELECTED) {
+ elm_object_tree_focus_allow_set(ugd->c_layout, EINA_FALSE); // block the focus not to open IME.
+ ugd->focus_status = COMPOSER_FOCUS_STATUS_NONE;
+ }
}
}
static void _composer_webkit_ime_opened_cb(void *data, Evas_Object *obj, void *event_info)
{
debug_log("");
-
EmailComposerUGD *ugd = (EmailComposerUGD *)data;
+
if (ugd->isRotated == true) {
- _composer_resize_body_webview(ugd, COMPOSER_IME_HEIGHT_H);
- } else {
- _composer_resize_body_webview(ugd, COMPOSER_IME_HEIGHT_V);
+ _composer_region_show_cb(ugd);
+ ugd->isRotated = false;
}
}
//ugd->idler_bringin = ecore_idler_add(_composer_bringin_cb, ugd);
}
+static void _composer_webkit_get_ime_rect_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ debug_log("");
+ EmailComposerUGD *ugd = (EmailComposerUGD *)data;
+ Eina_Rectangle *rect = (Eina_Rectangle*)event_info;
+ debug_log("inputmethod,changed (x:%d,y:%d,w:%d,h:%d)\n", rect->x, rect->y, rect->w, rect->h);
+
+ _composer_resize_body_webview(ugd, rect->h);
+}
+
static void _composer_webview_policy_navigation_decide_cb(void *data, Evas_Object *obj, void *event_info)
{
debug_log("");
debug_log("Never here!");
}
}
+
+static void _composer_webkit_get_text_status_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ debug_log("");
+
+ EmailComposerUGD *ugd = (EmailComposerUGD *)data;
+ Ewk_Text_Style* textStyle = (Ewk_Text_Style *)event_info;
+
+ if ((ugd == NULL) || (textStyle == NULL)) {
+ return;
+ }
+
+ int ms_x, ms_y, ms_w, ms_h;
+ Evas_Point sp, ep;
+ ewk_text_style_position_get(textStyle, &sp, &ep);
+ debug_log("=================================================");
+ debug_log("1. Start Point : sp.x(%d), sp.y(%d)", sp.x, sp.y);
+ debug_log("1. End Point : ep.x(%d), ep.y(%d)", ep.x, ep.y);
+ debug_log("=================================================");
+
+ elm_scroller_region_get(ugd->main_scroller, &ms_x, &ms_y, &ms_w, &ms_h);
+ debug_log("1. main_scroller(ms_x:%d, ms_y:%d, ms_w:%d, ms_h:%d)", ms_x, ms_y, ms_w, ms_h);
+
+ int visible_area = 0;
+ int ewk_sc_x, ewk_sc_y;
+ Evas_Coord ewk_ct_w,ewk_ct_h;
+ ewk_view_scroll_pos_get(ugd->body_ewkview, &ewk_sc_x, &ewk_sc_y);
+ debug_log("ewk_view_scroll_pos_get(ewk_sc_x:%d, ewk_sc_y:%d)", ewk_sc_x, ewk_sc_y);
+
+ ewk_view_contents_size_get(ugd->body_ewkview, &ewk_ct_w, &ewk_ct_h);
+ debug_log("ewk_view_contents_size_get(ewk_ct_w:%d, ewk_ct_h:%d)", ewk_ct_w, ewk_ct_h);
+
+ if (ugd->isHorizontal == true) {
+ visible_area = 397;
+ } else {
+ visible_area = 830;
+ }
+
+ if (ugd->is_prediction == EINA_TRUE) {
+ visible_area = visible_area - COMPOSER_IME_PREDICTION_H;
+ }
+
+ debug_log("ugd->is_prediction : %d", ugd->is_prediction);
+
+ if (ms_y < 311 + COMPOSER_IME_PREDICTION_H) {
+ if (ep.y > visible_area) {
+ if (ewk_sc_y > 0) {
+ elm_scroller_region_show(ugd->main_scroller, ms_x, 10000, ms_w, ms_h);
+ ewk_view_scroll_set(ugd->body_ewkview, 0, ep.y - visible_area + ewk_sc_y);
+ } else {
+ elm_scroller_region_bring_in(ugd->main_scroller, ms_x, ep.y - visible_area + ms_y, ms_w, ms_h);
+ }
+ }
+ } else {
+ if (ep.y > visible_area) {
+ elm_scroller_region_show(ugd->main_scroller, ms_x, 10000, ms_w, ms_h);
+ ewk_view_scroll_set(ugd->body_ewkview, 0, ep.y - visible_area + ewk_sc_y);
+ }
+ }
+}
+
{
debug_log("");
- int ret = CTS_SUCCESS;
- CTSiter *iter = NULL;
-
+ int ct_ret = CONTACTS_ERROR_NONE;
EMAIL_CONTACT_LIST_INFO_S *contacts_list_item = NULL;
Eina_List *contacts_list = NULL;
+ contacts_list_h list = NULL;
- contacts_svc_get_list(CTS_LIST_ALL_CONTACT_HAD_EMAIL, &iter);
-
- while (CTS_SUCCESS == contacts_svc_iter_next(iter)) {
- CTSvalue *contact = NULL;
- CTSvalue *email = NULL;
- const char *img_path, *email_addr;
- char *display = NULL;
-
- contact = contacts_svc_iter_get_info(iter);
-
- if (contact == NULL)
- break;
-
- int index = contacts_svc_value_get_int(contact, CTS_LIST_CONTACT_ID_INT);
-
- ret = contacts_svc_get_contact_value(CTS_GET_DEFAULT_EMAIL_VALUE, index, &email);
-
- if (ret != CTS_SUCCESS)
- goto LOOP_TAIL;
-
- contacts_list_item = (EMAIL_CONTACT_LIST_INFO_S *) calloc(1, sizeof(EMAIL_CONTACT_LIST_INFO_S));
-
- if (contacts_list_item != NULL) {
- contacts_list_item->ugd = ugd;
- contacts_list_item->index = index;
-
- display = g_strdup(contacts_svc_value_get_str(contact, CTS_LIST_CONTACT_DISPLAY_STR));
+ ct_ret = email_get_contacts_list(CONTACTS_MATCH_CONTAINS, &list, search_word);
+ debug_log("email_get_contacts_record: list : %d", list);
- img_path = contacts_svc_value_get_str(contact, CTS_LIST_CONTACT_IMG_PATH_STR);
- contacts_list_item->image_path = g_strdup(img_path);
-
- email_addr = contacts_svc_value_get_str(email, CTS_EMAIL_VAL_ADDR_STR);
- contacts_list_item->email_address = g_strdup(email_addr);
+ if (!list) {
+ debug_log("list is NULL");
+ contacts_list_destroy(list, true);
+ return contacts_list;
+ }
- if (display) {
- //debug_log("display = %s", display);
- } else {
- display = g_strdup(email_addr);
- }
+ contacts_list_item = (EMAIL_CONTACT_LIST_INFO_S *)calloc(1, sizeof(EMAIL_CONTACT_LIST_INFO_S));
- if (display && contacts_list_item->email_address && (strcasestr(display, search_word) || strcasestr(contacts_list_item->email_address, search_word))) {
- strncpy(contacts_list_item->display_name, display, sizeof(contacts_list_item->display_name) - 1);
+ if (contacts_list_item == NULL){
+ debug_log("contacts_list_item is NULL");
+ return contacts_list;
+ }
- contacts_list = eina_list_append(contacts_list, contacts_list_item);
- } else if (contacts_list_item) {
- Eina_List *free_contacts_list = NULL; /* to use existing composer_ps_delete_contacts_list API, a temp list is used */
- free_contacts_list = eina_list_append(free_contacts_list, contacts_list_item);
- composer_ps_delete_contacts_list(free_contacts_list);
- free_contacts_list = eina_list_free(free_contacts_list);
- }
- }
+ ct_ret = email_get_contacts_list_info(list, contacts_list_item);
+// ct_ret = email_get_contacts_list_info2(CONTACTS_MATCH_CONTAINS, search_word, contacts_list_item);
+ debug_log("email_get_contacts_list_info: contacts_list_item : %d", contacts_list_item);
- if (display) {
- g_free(display);
- display = NULL;
+ if (contacts_list_item->display_name && contacts_list_item->email_address &&
+ (strcasestr(contacts_list_item->display_name, search_word) || strcasestr(contacts_list_item->email_address, search_word))) {
+ contacts_list_item->ugd = ugd;
+ contacts_list = eina_list_append(contacts_list, contacts_list_item);
+ } else {
+ if (contacts_list_item) {
+ Eina_List *free_contacts_list = NULL; /* to use existing composer_ps_delete_contacts_list API, a temp list is used */
+ free_contacts_list = eina_list_append(free_contacts_list, contacts_list_item);
+ composer_ps_delete_contacts_list(free_contacts_list);
+ free_contacts_list = eina_list_free(free_contacts_list);
}
-
- LOOP_TAIL:
- contacts_svc_value_free(contact);
- contacts_svc_value_free(email);
}
-
- contacts_svc_iter_remove(iter);
+ contacts_list_destroy(list, true);
return contacts_list;
}
EMAIL_CONTACT_LIST_INFO_S *contacts_list_item = NULL;
EINA_LIST_FOREACH(l, lt, contacts_list_item) {
if (contacts_list_item) {
+ contacts_list_item->ugd = NULL;
g_free(contacts_list_item->display);
contacts_list_item->display = NULL;
g_free(contacts_list_item->email_address);
static Evas_Object *_composer_mbe_create_recp_layout(Evas_Object *parent);
static Evas_Object *_composer_mbe_create_recipient_layout(Evas_Object *parent, COMPOSER_RECIPIENT_TYPE_E recp_type, EmailComposerUGD *ugd);
+static void _composer_mbe_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ debug_log("");
+
+ EmailComposerUGD *ugd = (EmailComposerUGD *)data;
+ if (!ugd)
+ return;
+
+ if (ugd->popup_list && (eina_list_count(ugd->popup_list) > 0)) {
+ Evas_Object *p;
+ p = eina_list_nth(ugd->popup_list, 0);
+
+ if (!p)
+ return;
+ elm_object_focus_set(p, EINA_TRUE);
+ return;
+ }
+}
+
+static void _composer_mbe_expanded_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ debug_log("");
+}
+
+static void _composer_mbe_contracted_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ debug_log("");
+}
+
static void _composer_mbe_register_mbe_entry_callback(Evas_Object *parent, EmailComposerUGD *ugd)
{
debug_log("");
evas_object_smart_callback_add(parent, "item,clicked", _composer_mbe_selected_cb, ugd);
evas_object_smart_callback_add(parent, "focused", _composer_mbe_focused_cb, ugd);
evas_object_smart_callback_add(parent, "unfocused", _composer_mbe_unfocused_cb, ugd);
+ evas_object_smart_callback_add(parent, "expanded", _composer_mbe_expanded_cb, ugd);
+ evas_object_smart_callback_add(parent, "contracted", _composer_mbe_contracted_cb, ugd);
+ evas_object_smart_callback_add(parent, "clicked", _composer_mbe_clicked_cb, ugd);
}
static Evas_Object *_composer_mbe_create_mbe(Evas_Object *parent, COMPOSER_RECIPIENT_TYPE_E recp_type, EmailComposerUGD *ugd)
}
elm_object_text_set(mbe, recp_string);
-// if (recp_type != COMPOSER_RECIPIENT_TYPE_FROM) {
-// Ecore_IMF_Context *imf_context = elm_entry_imf_context_get(entry);
-// ecore_imf_context_input_panel_event_callback_add(imf_context, ECORE_IMF_INPUT_PANEL_STATE_EVENT, _composer_input_panel_state_changed_cb, ugd);
-// }
+ if (recp_type != COMPOSER_RECIPIENT_TYPE_FROM) {
+ Ecore_IMF_Context *imf_context = elm_entry_imf_context_get(entry);
+ ecore_imf_context_input_panel_event_callback_add(imf_context, ECORE_IMF_INPUT_PANEL_STATE_EVENT, _composer_input_panel_state_changed_cb, ugd);
+ ecore_imf_context_input_panel_event_callback_add (imf_context, ECORE_IMF_INPUT_PANEL_GEOMETRY_EVENT, _composer_input_panel_resize_cb, ugd);
+ debug_log("ugd->is_prediction: %d", ugd->is_prediction);
+ }
_composer_mbe_register_mbe_callback(mbe, ugd);
_composer_mbe_register_mbe_entry_callback(entry, ugd);
Eina_Bool success_flag = EINA_TRUE;
- if (STR_LEN((gchar *)buf) >= 0 && len >= 0) {
+ if (STR_LEN((gchar *)buf) > 0 && len > 0) {
int fd = open(path, O_WRONLY | O_CREAT | O_TRUNC, S_IREAD | S_IWRITE);
if (fd != -1) {
ssize_t nwrite = write(fd, (const void *)buf, (size_t) len);
return list;
}
-int _composer_add_mailbox_folder(EmailComposerUGD *ugd, email_mailbox_type_e mailbox_type)
+int _composer_add_mailbox_folder(EmailComposerUGD *ugd, email_mailbox_type_e mailbox_type, Eina_Bool b_save_to_draft)
{
debug_log("");
debug_log("mailbox = %s", ugd->mailbox_info->mail_box->mailbox_name);
debug_log("mailbox_id = %d", ugd->mailbox_info->mail_box->mailbox_id);
- nResult = _composer_make_mail(ugd);
+ nResult = _composer_make_mail(ugd, b_save_to_draft);
if (nResult < COMPOSER_ERROR_NONE) {
debug_log("error in _composer_make_mail(%d)", nResult);
return nResult;
return COMPOSER_ERROR_NONE;
}
-int _composer_move_mailbox_folder(EmailComposerUGD *ugd, email_mailbox_type_e mailbox_type)
+int _composer_move_mailbox_folder(EmailComposerUGD *ugd, email_mailbox_type_e mailbox_type, Eina_Bool b_save_to_draft)
{
debug_log("");
return nResult;
}
- nResult = _composer_make_mail(ugd);
+ nResult = _composer_make_mail(ugd, b_save_to_draft);
if (nResult < COMPOSER_ERROR_NONE) {
debug_log("error in _composer_make_mail(%d)", nResult);
return nResult;
return COMPOSER_ERROR_NONE;
}
-int _composer_make_mail(EmailComposerUGD *ugd)
+int _composer_make_mail(EmailComposerUGD *ugd, Eina_Bool b_save_to_draft)
{
debug_log("");
1) Add new edited email to Outbox.
2) Delete the old email from Drafts / Outbox */
- if (0 < ugd->mailbox_info->mailbox_id) {
- int ret = _composer_add_mailbox_folder(ugd, EMAIL_MAILBOX_TYPE_OUTBOX);
+ if (0 < ugd->mailbox_info->mailbox_id)
+ {
+ int ret = _composer_add_mailbox_folder(ugd, EMAIL_MAILBOX_TYPE_OUTBOX, EINA_FALSE);
if (ret < COMPOSER_ERROR_NONE) {
debug_log("error in _composer_add_mailbox_folder(%d)", ret);
}
} else {
- int ret = _composer_add_mailbox_folder(ugd, EMAIL_MAILBOX_TYPE_OUTBOX);
+ int ret = _composer_add_mailbox_folder(ugd, EMAIL_MAILBOX_TYPE_OUTBOX, EINA_FALSE);
if (ret < COMPOSER_ERROR_NONE) {
debug_log("error in _composer_add_mailbox_folder(%d)", ret);
debug_log("selected button text = %s", pszBtnText);
if (pszBtnText && strcmp(pszBtnText, dgettext("sys_string", "IDS_COM_SK_YES")) == 0) {
-
- int ret = _composer_add_mailbox_folder(ugd, EMAIL_MAILBOX_TYPE_DRAFT);
+ int ret = _composer_add_mailbox_folder(ugd, EMAIL_MAILBOX_TYPE_DRAFT, EINA_TRUE);
if (ret < COMPOSER_ERROR_NONE) {
debug_log("Failed save in Drafts(%d)", ret);
return eo;
}
-Evas_Object *_composer_create_navigation_layout(Evas_Object *parent)
+Evas_Object *_composer_create_navigation_layout(EmailComposerUGD *ugd)
{
debug_log("");
+ Evas_Object *parent = ugd->main_layout;
Evas_Object *navi_bar;
navi_bar = elm_naviframe_add(parent);
elm_layout_theme_set(layout, "layout", "application", "noindicator");
evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- elm_win_resize_object_add(parent, layout);
evas_object_show(layout);
return layout;
_composer_add_origin_msg(ugd);
}
- bool need_download = false;
-
if (ugd->composer_type == RUN_COMPOSER_FORWARD && ugd->account_info->account->options.forward_with_files) {
debug_log("attachment_count:%d, inline_content_count:%d", ugd->existing_mail_info->mail_data->attachment_count, ugd->existing_mail_info->mail_data->inline_content_count);
for (i = 0; i < ugd->existing_mail_info->mail_data->attachment_count; i++) {
debug_log("save_status:%d, inline_content_status:%d", ugd->existing_mail_info->attachment_list[i].save_status, ugd->existing_mail_info->attachment_list[i].inline_content_status);
if (ugd->existing_mail_info->attachment_list[i].save_status == FALSE && ugd->existing_mail_info->attachment_list[i].inline_content_status == FALSE) {
- need_download = true;
+ ugd->need_download = EINA_TRUE;
ugd->fw_dn_cnt++;
}
}
- debug_log("need_download:%d, fw_dn_cnt:%d", need_download, ugd->fw_dn_cnt);
+ debug_log("ugd->need_download:%d, fw_dn_cnt:%d", ugd->need_download, ugd->fw_dn_cnt);
}
}
_composer_add_attachment(ugd);
- if (need_download) {
- _composer_show_download_attachment_popup(ugd);
- }
+// _composer_download_attachment(ugd);
+ char *plain_charset = NULL;
+ char *charset = NULL;
if ((EINA_TRUE == ugd->has_body_html) &&
(ugd->composer_type == RUN_COMPOSER_EDIT || ugd->composer_type == RUN_COMPOSER_REPLY || ugd->composer_type == RUN_COMPOSER_REPLY_ALL || ugd->composer_type == RUN_COMPOSER_FORWARD)) {
_composer_add_softlink_to_inline_images(ugd);
- char *plain_charset = NULL;
if (ugd->existing_mail_info->mail_data && ugd->existing_mail_info->mail_data->file_path_plain) {
plain_charset = email_parse_get_filename_from_path(ugd->existing_mail_info->mail_data->file_path_plain);
debug_log("plain_charset : %s", plain_charset);
debug_log("ewkSetting is NULL.");
ewk_setting_default_encoding_set(ewkSetting, plain_charset);
- g_free(plain_charset);
}
} else {
if (ugd->existing_mail_info->mail_data && ugd->existing_mail_info->mail_data->file_path_html) {
- char *charset = email_parse_get_filename_from_path(ugd->existing_mail_info->mail_data->file_path_html);
+ charset = email_parse_get_filename_from_path(ugd->existing_mail_info->mail_data->file_path_html);
debug_log("body html filename charset:%s", charset);
if (charset) {
Ewk_Setting *ewkSetting = ewk_view_setting_get(ugd->body_ewkview);
debug_log("ewkSetting is NULL.");
ewk_setting_default_encoding_set(ewkSetting, charset);
- g_free(charset);
}
}
}
ugd->dn_prog_popup = NULL;
}
+ _composer_webkit_set_body_script(data);
+ elm_object_tree_focus_allow_set(ugd->c_layout, EINA_TRUE); // block the focus not to open IME.
+ elm_object_disabled_set(ugd->send_btn, EINA_FALSE);
+ elm_object_disabled_set(ugd->cancel_btn, EINA_FALSE);
+
_composer_cancel_download_attachment(ugd);
ugd->selected_entry = ugd->to_mbe_entry;
}
}
-void _composer_download_attachment(EmailComposerUGD *ugd)
+static Eina_Bool _composer_save_attachment(EmailComposerUGD *ugd, int index)
{
debug_log("");
- int att_cnt = g_list_length(ugd->fw_attachment_list);
+ if (ugd->fw_attachment_list == NULL) {
+ return EINA_FALSE;
+ }
- debug_log("att_cnt = %d", att_cnt);
+ EMAIL_ATTACHMENT_INFO_S *info = (EMAIL_ATTACHMENT_INFO_S *) g_list_nth_data(ugd->fw_attachment_list, index);
- ugd->fw_dn_cnt = att_cnt;
+ if (info == NULL) {
+ debug_log("EMAIL_ATTACHMENT_INFO_S *info is NULL");
+ return EINA_FALSE;
+ }
- int ret;
- service_h service = NULL;
+ if (!info->downloaded) {
+ int handle = 0;
+ gboolean res = FALSE;
- ret = service_create(&service);
- debug_log("service_create: %d", ret);
- if (!service) {
- debug_log("service create failed");
- return;
- }
+ debug_log("Need attachment download");
+ /* download attachment */
+ info->downloaded = true;
- ret = service_add_extra_data(service, EMAIL_BUNDLE_KEY_SAVE_ALL, "SAVE_ALL");
- debug_log("service_add_extra_data: %d", ret);
+ res = email_engine_attachment_download(ugd->existing_mail_info->mail_data->account_id, info->mail_id, info->index, &handle);
- ug_send_result(ugd->ug_main, service);
+ if (res == TRUE) {
+ ugd->fw_dn_handle[index] = handle;
+ ugd->idler_show_progress = ecore_idler_add(_composer_show_progress_popup, ugd);
+ } else {
+ info->downloaded = false;
+ _composer_create_noti(ugd, false, dgettext("sys_string", "IDS_COM_POP_WARNING"),
+ _("IDS_EMAIL_POP_UNABLE_TO_OPEN_ATTACHMENT"), 1,
+ dgettext("sys_string", "IDS_COM_SK_OK"), NULL,
+ 0, _composer_popup_response_cb);
+ }
- ret = service_destroy(service);
- debug_log("service_destroy: %d", ret);
+ return (res ? EINA_TRUE : EINA_FALSE);
+ }
- ugd->idler_show_progress = ecore_idler_add(_composer_show_progress_popup, ugd);
+ return EINA_FALSE;
}
+void _composer_download_attachment(EmailComposerUGD *ugd)
+{
+ debug_log("");
+ int i = 0;
+ int att_cnt = g_list_length(ugd->fw_attachment_list);
+
+ debug_log("att_cnt = %d", att_cnt);
+
+ ugd->fw_dn_cnt = att_cnt;
+
+ if (att_cnt > 0) {
+ for ( i = 0 ; i < att_cnt ; i++ ) {
+ if (_composer_save_attachment(ugd, i) == EINA_TRUE) {
+ int ret;
+ service_h service = NULL;
+
+ ret = service_create(&service);
+ debug_log("service_create: %d", ret);
+ if (!service) {
+ debug_log("service create failed");
+ return;
+ }
+
+ ret = service_add_extra_data(service, EMAIL_BUNDLE_KEY_UPDATE, EMAIL_BUNDLE_KEY_UPDATE);
+ debug_log("service_add_extra_data: %d", ret);
+
+ ret = ug_send_result(ugd->ug_main, service);
+ debug_log("ug_send_result: %d", ret);
+
+ ret = service_destroy(service);
+ debug_log("service_destroy: %d", ret);
+ }
+ }
+ } else {
+ ugd->need_download == EINA_FALSE;
+ ugd->bSendBtnDisabled = true;
+ ugd->send_timer = ecore_timer_add(0.5, _composer_send_mail_cb, ugd);
+ }
+ }
+
void _composer_update_attachment_info(EmailComposerUGD *ugd, int index)
{
debug_log("");
- int i;
+ int nAttachmentObjListCount = eina_list_count(ugd->attachment_item_obj_list);
+ debug_log("nAttachmentObjListCount : %d", nAttachmentObjListCount);
- for (i = 0; i < g_list_length(ugd->fw_attachment_list); ++i) {
- EMAIL_ATTACHMENT_INFO_S *info = (EMAIL_ATTACHMENT_INFO_S *) g_list_nth_data(ugd->fw_attachment_list, i);
- {
+ if (nAttachmentObjListCount > 0) {
+ int nCount = 0;
+ Eina_Iterator *it = NULL;
+ Evas_Object *attachment_obj = NULL;
+ email_attachment_data_t *attachment_data;
+
+ it = eina_list_iterator_new(ugd->attachment_item_obj_list);
+
+ while (eina_iterator_next(it, (void **)&attachment_obj)) {
+ char *path = NULL;
+ EMAIL_ATTACHMENT_INFO_S *info = (EMAIL_ATTACHMENT_INFO_S *) g_list_nth_data(ugd->fw_attachment_list, nCount);
+ debug_log("info : %x", info);
if (info) {
+ debug_log("info->path : %s", info->path);
+ debug_log("info->downloaded : %d", info->downloaded);
+ debug_log("info->attach_id : %d", info->attach_id);
if (info->index == index) {
+ char newpath[MAX_PATH_LEN] = { 0, };
info->downloaded = true;
- info->path = email_engine_get_attachment_path(info->attach_id);
+ path = email_engine_get_attachment_path(info->attach_id);
+
+ debug_log("info->downloaded : %d", info->downloaded);
+ debug_log("path : %s", path);
+
+ attachment_data = evas_object_data_get(attachment_obj, "attachment_data");
+
+ if (attachment_data && path && STR_VALID(path)) {
+ int ret;
+ debug_log("path[%s]", path);
+ ret = email_attachments_save_file(path, newpath, NULL);
+ if (ret == EMAIL_EXT_SAVE_ERR_NONE) {
+ char str[128] = { 0, };
+ snprintf(str, sizeof(str), "%s", dgettext("sys_string", "IDS_COM_POP_SAVED"));
+ /*_show_select_info(ug_data, str);*/
+ ret = status_message_post(str);
+ if (ret) {
+ debug_log("status_message_post failed: %d", ret);
+ }
+ }
+
+ attachment_data->attachment_path = g_strdup(path);
+ attachment_data->save_status = info->downloaded;
+ debug_log("attachment_name : %s", attachment_data->attachment_name);
+ debug_log("attachment_path : %s", attachment_data->attachment_path);
+ debug_log("attachment_id : %d", attachment_data->attachment_id);
+ debug_log("attachment_size : %d", attachment_data->attachment_size);
+ debug_log("save_status : %d", attachment_data->save_status);
+ debug_log("inline_content_status : %d", attachment_data->inline_content_status);
+
+ //_composer_attachment_update_thumbnail(ugd, attachment_obj, path);
+ }
+
+ if (path != NULL) {
+ g_free(path);
+ path = NULL;
+ }
}
}
+ nCount++;
}
}
}
int ret;
service_h service = NULL;
+ _composer_attachment_cancel_download(ugd);
+
ret = service_create(&service);
debug_log("service_create: %d", ret);
if (!service) {
{
debug_log("");
- Elm_Object_Item *item;
+ //Elm_Object_Item *item;
Eina_Bool overflow_flag = TRUE;
Eina_Bool invalid_address_flag = FALSE;
debug_log("display_name = %s, email_address = %s", ri->display_name, ri->email_list[0].email_addr);
if (!_composer_check_recipient_is_duplicated(ugd, ugd->to_mbe, ri)) {
- item = elm_multibuttonentry_item_append(ugd->to_mbe, ri->display_name, NULL, ri);
+ elm_multibuttonentry_item_append(ugd->to_mbe, ri->display_name, NULL, ri);
+ ri_used = 1;
} else {
if (ugd->composer_noti) {
evas_object_del(ugd->composer_noti);
ugd->composer_noti = _composer_create_noti(ugd, false, dgettext("sys_string", "IDS_COM_POP_WARNING"),
dgettext("sys_string", "IDS_COM_POP_ALREDY_EXISTS"), 0, NULL, NULL, 1.0, _composer_noti_response_cb);
}
-
- ri_used = 1;
}
if (ri && !ri_used) {
addrs_info = (email_address_info_t *) g_list_nth_data(ugd->to_list, i);
if (addrs_info->display_name && strlen(addrs_info->display_name) > 0)
- item = elm_multibuttonentry_item_append(ugd->to_mbe, addrs_info->display_name, NULL, ri);
+ elm_multibuttonentry_item_append(ugd->to_mbe, addrs_info->display_name, NULL, ri);
else
- item = elm_multibuttonentry_item_append(ugd->to_mbe, ri->display_name, NULL, ri);
+ elm_multibuttonentry_item_append(ugd->to_mbe, ri->display_name, NULL, ri);
} else
- item = elm_multibuttonentry_item_append(ugd->to_mbe, ri->display_name, NULL, ri);
+ elm_multibuttonentry_item_append(ugd->to_mbe, ri->display_name, NULL, ri);
}
ri_used = 1;
} else
free(ri->display_name);
ri->display_name = NULL;
}
+ }
+
+ if (ri) {
free(ri);
ri = NULL;
}
-
}
if (duplicate_cnt) {
{
debug_log("");
- Elm_Object_Item *item;
-
Eina_Bool overflow_flag = TRUE;
if (ugd->composer_type == RUN_COMPOSER_EDIT || ugd->composer_type == RUN_COMPOSER_REPLY_ALL
addrs_info = (email_address_info_t *) g_list_nth_data(ugd->cc_list, i);
if (addrs_info->display_name && strlen(addrs_info->display_name) > 0)
- item = elm_multibuttonentry_item_append(ugd->cc_mbe, addrs_info->display_name, NULL, (void *)ri);
+ elm_multibuttonentry_item_append(ugd->cc_mbe, addrs_info->display_name, NULL, (void *)ri);
else
- item = elm_multibuttonentry_item_append(ugd->cc_mbe, ri->display_name, NULL, (void *)ri);
+ elm_multibuttonentry_item_append(ugd->cc_mbe, ri->display_name, NULL, (void *)ri);
} else
- item = elm_multibuttonentry_item_append(ugd->cc_mbe, ri->display_name, NULL, (void *)ri);
+ elm_multibuttonentry_item_append(ugd->cc_mbe, ri->display_name, NULL, (void *)ri);
} else {
duplicate_cnt++;
if (ri) {
{
debug_log("");
- Elm_Object_Item *item;
-
Eina_Bool overflow_flag = TRUE;
if (ugd->composer_type == RUN_COMPOSER_EDIT || ugd->composer_type == RUN_COMPOSER_REPLY_ALL
addrs_info = (email_address_info_t *) g_list_nth_data(ugd->bcc_list, i);
if (addrs_info->display_name && strlen(addrs_info->display_name) > 0)
- item = elm_multibuttonentry_item_append(ugd->bcc_mbe, addrs_info->display_name, NULL, (void *)ri);
+ elm_multibuttonentry_item_append(ugd->bcc_mbe, addrs_info->display_name, NULL, (void *)ri);
else
- item = elm_multibuttonentry_item_append(ugd->bcc_mbe, ri->display_name, NULL, (void *)ri);
+ elm_multibuttonentry_item_append(ugd->bcc_mbe, ri->display_name, NULL, (void *)ri);
} else
- item = elm_multibuttonentry_item_append(ugd->bcc_mbe, ri->display_name, NULL, (void *)ri);
+ elm_multibuttonentry_item_append(ugd->bcc_mbe, ri->display_name, NULL, (void *)ri);
} else {
duplicate_cnt++;
if (ri) {
if (ri != NULL) {
debug_log("display_name = %s, email_address = %s", ri->display_name, ri->email_list[0].email_addr);
+ if (ri->display_name == NULL) {
+ debug_log("ri->display_name is NULL!");
+ g_free(ri);
+ ri = NULL;
+ continue;
+ }
s_len = strlen(ri->display_name) + (!t ? 1 : strlen(t) + 3);
debug_log("len = %d", s_len);
debug_log("attachments inline? (%d)", attachment_info->inline_content);
ugd->fw_attachment_list = g_list_append(ugd->fw_attachment_list, attachment_info);
+
+ email_attachment_data_t *attachment_data = (email_attachment_data_t *)calloc(1, sizeof(email_attachment_data_t));
+
+ attachment_data->attachment_id = attachment_info->attach_id;
+ attachment_data->attachment_name = COMPOSER_STRDUP(attachment_info->name);
+ attachment_data->attachment_path = COMPOSER_STRDUP(attachment_info->path);
+ attachment_data->save_status = 0;
+ attachment_data->attachment_size = attachment_info->size;
+ nTotalAttachmentSize = nTotalAttachmentSize + attachment_data->attachment_size;
+
+ _composer_attachment_create_list_box(ugd, attachment_data);
}
}
}
Evas_Object *notify;
if (use_win)
- notify = _composer_popup_create(ugd->main_layout, ugd);
+ notify = _composer_popup_create(ugd->win_main, ugd);
else
- notify = elm_popup_add(ugd->main_layout);
+ notify = elm_popup_add(ugd->win_main);
debug_log("notify: %p", notify);
if (!notify) {
elm_object_text_set(notify, content);
}
+#ifdef _POPUP_WITH_LIST
+ elm_object_style_set(notify, "min_menustyle");
+#else
+ elm_object_style_set(notify, "menustyle");
+#endif
+
if (btn_num == 1) {
Evas_Object *peoBtn1 = NULL;
peoBtn1 = elm_button_add(notify);
Evas_Object *notify;
if (use_win)
- notify = _composer_popup_create(ugd->main_layout, ugd);
+ notify = _composer_popup_create(ugd->win_main, ugd);
else
- notify = elm_popup_add(ugd->main_layout);
+ notify = elm_popup_add(ugd->win_main);
debug_log("notify: %p", notify);
if (!notify) {
EmailComposerUGD *ugd = (EmailComposerUGD *)data;
elm_object_tree_focus_allow_set(ugd->c_layout, EINA_TRUE); // block the focus not to open IME.
+ ugd->focus_status = COMPOSER_FOCUS_STATUS_NONE;
Evas_Object *mbe = NULL;
mbe = ugd->bcc_mbe;
}
+ if (mbe) {
+ Elm_Object_Item *item = elm_multibuttonentry_selected_item_get(mbe);
+ elm_multibuttonentry_item_selected_set(item, EINA_FALSE);
+ }
+
// elm_multibuttonentry_item_unselect_all(mbe);
elm_object_tree_focus_allow_set(ugd->c_layout, EINA_TRUE);
void _composer_resize_body_webview(EmailComposerUGD *ugd, int ime_height)
{
int nWidth, nHeight;
-// Evas_Coord x = 0, y = 0, w = 0, h = 0;
_composer_display_position(ugd);
evas_object_geometry_get(ugd->webkit_ly, &x, &y, &w, &h);
debug_log(" === resize webkit_ly x:%d, y:%d, w:%d, h:%d", x, y, w, h);
- if (ugd->option_header_opened == true) {
- ime_height += 122;
+ if (ugd->isHorizontal == false) {
+ ugd->is_prediction = ((ime_height - COMPOSER_IME_HEIGHT_V) == 0) ? EINA_FALSE : EINA_TRUE;
+ } else {
+ ugd->is_prediction = ((ime_height - COMPOSER_IME_HEIGHT_H) == 0) ? EINA_FALSE : EINA_TRUE;
}
+ debug_log("ugd->is_prediction(%d) : %d", ugd->is_prediction, ime_height - COMPOSER_IME_HEIGHT_V);
- if (ugd->isRotated == false) {
+ if (ugd->isHorizontal == false) {
// Webkit should be resized after showing/hiding IME
- debug_log("nHeight:%d, COMPOSER_NAVI_HEIGHT:%d, indicator_height:%d", nHeight, COMPOSER_NAVI_HEIGHT, ugd->indicator_height);
- evas_object_size_hint_min_set(ugd->webkit_ly, 0, nHeight - COMPOSER_NAVI_HEIGHT - ugd->indicator_height - ime_height);
+ debug_log("nHeight:%d, COMPOSER_NAVI_HEIGHT:%d, indicator_height:%d", nHeight, COMPOSER_NAVI_HEIGHT, COMPOSER_INDI_HEIGHT);
+ evas_object_size_hint_min_set(ugd->webkit_ly, 0, nHeight - COMPOSER_NAVI_HEIGHT - COMPOSER_INDI_HEIGHT - ime_height);
} else {
- debug_log("nHeight:%d, COMPOSER_NAVI_HEIGHT:%d, indicator_height:%d", nWidth, COMPOSER_NAVI_HEIGHT, ugd->indicator_height);
+ debug_log("nHeight:%d, COMPOSER_NAVI_HEIGHT:%d, indicator_height:%d", nWidth, COMPOSER_NAVI_HEIGHT, COMPOSER_INDI_HEIGHT);
evas_object_size_hint_min_set(ugd->webkit_ly, 0, nWidth - COMPOSER_NAVI_HEIGHT - ime_height);
}
+
+ if ((ugd->from_mbe != NULL) && (ugd->b_launch_finished == false)) {
+ ugd->b_launch_finished = true;
+ ugd->bringin_timer = ecore_timer_add(0.5f, _composer_bringin_cb, ugd);
+ }
+}
+
+void _composer_input_panel_resize_cb(void *data, Ecore_IMF_Context *ctx, int value)
+{
+ debug_log("");
+ int x, y, w, h;
+ EmailComposerUGD *ugd = (EmailComposerUGD *)data;
+
+ ecore_imf_context_input_panel_geometry_get (ctx, &x, &y, &w, &h);
+ debug_log("imf = [x:%d, y:%d, w:%d, h:%d]", x, y, w, h);
+
+ if (ugd->isHorizontal == false) {
+ ugd->is_prediction = ((h - COMPOSER_IME_HEIGHT_V) == 0) ? EINA_FALSE : EINA_TRUE;
+ } else {
+ ugd->is_prediction = ((h - COMPOSER_IME_HEIGHT_H) == 0) ? EINA_FALSE : EINA_TRUE;
+ }
+ _composer_resize_body_webview(ugd, h);
+ elm_layout_sizing_eval(ugd->c_layout);
}
void _composer_input_panel_state_changed_cb(void *data, Ecore_IMF_Context *ctx, int value)
if (ctx) {
int x, y, w, h;
ecore_imf_context_input_panel_geometry_get(ctx, &x, &y, &w, &h);
- debug_log("imf = [x:%d, y:%d, h:%d, w:%d]", x, y, w, h);
+ debug_log("imf = [x:%d, y:%d, w:%d, h:%d]", x, y, w, h);
debug_log("IME status changed to %d", value);
debug_log("scroller = [x:%d, y:%d, w:%d, h:%d]", x, y, w, h);
x = y = w = h = 0;
- evas_object_geometry_get(ugd->conform, &x, &y, &w, &h);
- debug_log("conformant = [x:%d, y:%d, w:%d, h:%d]", x, y, w, h);
- x = y = w = h = 0;
-
if (ugd->from_ly) {
evas_object_geometry_get(ugd->from_ly, &x, &y, &w, &h);
debug_log("from = [x:%d, y:%d, w:%d, h:%d]", x, y, w, h);
ethumb_shutdown();
debug_log("contact service end");
- contacts_svc_disconnect();
+ contacts_disconnect2();
+
_on_edbus_remove_receiver(ugd);
ret = e_dbus_shutdown();
case UG_EVENT_ROTATE_PORTRAIT:
elm_layout_theme_set(ugd->main_layout, "layout", "application", "default");
// elm_win_indicator_mode_set(ugd->win_main, ELM_WIN_INDICATOR_SHOW);
- if (ugd->option_header_opened) {
- elm_object_item_signal_emit(ugd->navi_item, "elm,state,optionheader,close", "");
- ugd->option_header_opened = FALSE;
- }
- ugd->isRotated = false;
+ ugd->isHorizontal = false;
win_main_angle = 0;
- _composer_resize_body_webview(ugd, COMPOSER_IME_HEIGHT_V);
break;
case UG_EVENT_ROTATE_PORTRAIT_UPSIDEDOWN:
elm_layout_theme_set(ugd->main_layout, "layout", "application", "default");
// elm_win_indicator_mode_set(ugd->win_main, ELM_WIN_INDICATOR_SHOW);
- if (ugd->option_header_opened) {
- elm_object_item_signal_emit(ugd->navi_item, "elm,state,optionheader,close", "");
- ugd->option_header_opened = FALSE;
- }
- ugd->isRotated = false;
+ ugd->isHorizontal = false;
win_main_angle = 180;
- _composer_resize_body_webview(ugd, COMPOSER_IME_HEIGHT_V);
break;
case UG_EVENT_ROTATE_LANDSCAPE:
elm_layout_theme_set(ugd->main_layout, "layout", "application", "noindicator");
// elm_win_indicator_mode_set(ugd->win_main, ELM_WIN_INDICATOR_HIDE);
- if (ugd->option_header_opened) {
- elm_object_item_signal_emit(ugd->navi_item, "elm,state,optionheader,close", "");
- ugd->option_header_opened = FALSE;
- }
- ugd->isRotated = true;
+ ugd->isHorizontal = true;
win_main_angle = 270;
- _composer_resize_body_webview(ugd, COMPOSER_IME_HEIGHT_H);
break;
case UG_EVENT_ROTATE_LANDSCAPE_UPSIDEDOWN:
elm_layout_theme_set(ugd->main_layout, "layout", "application", "noindicator");
// elm_win_indicator_mode_set(ugd->win_main, ELM_WIN_INDICATOR_HIDE);
- if (ugd->option_header_opened) {
- elm_object_item_signal_emit(ugd->navi_item, "elm,state,optionheader,close", "");
- ugd->option_header_opened = FALSE;
- }
- ugd->isRotated = true;
+ ugd->isHorizontal = true;
win_main_angle = 90;
- _composer_resize_body_webview(ugd, COMPOSER_IME_HEIGHT_H);
break;
case UG_EVENT_REGION_CHANGE:
break;
default:
break;
}
-
+ _composer_resize_body_webview(ugd, 0);
elm_layout_sizing_eval(ugd->c_layout);
debug_log("win_main_angle: %d, win_rotation: %d, device_orientation: %d, event: %d", win_main_angle, elm_win_rotation_get(ugd->win_main), app_get_device_orientation(), event);
}
#ifdef _TEMPORARY_FIX_FOR_ROTATION_
else {
- if (ugd->isRotated)
+ if (ugd->isHorizontal)
ugd->temporary_fix_for_rotation = true;
}
#else
// The bottom of the main scroller is below the screen.
int nWidth, nHeight;
ecore_x_window_size_get(ecore_x_window_root_first_get(), &nWidth, &nHeight);
- if (ugd->isRotated) { // LANDSCAPE
+ if (ugd->isHorizontal) { // LANDSCAPE
evas_object_size_hint_min_set(ugd->body_ewkview, nHeight, nWidth - COMPOSER_NAVI_HEIGHT); // screen doesn't have indicator in case of LANDSCAPRE mode
} else { // PORTRAIT
- evas_object_size_hint_min_set(ugd->body_ewkview, nWidth, nHeight - COMPOSER_NAVI_HEIGHT - ugd->indicator_height);
+ evas_object_size_hint_min_set(ugd->body_ewkview, nWidth, nHeight - COMPOSER_NAVI_HEIGHT - COMPOSER_INDI_HEIGHT);
}
#endif
}
elm_win_rotation_with_resize_set(ugd->win_main, win_main_angle);
+ ugd->isRotated = true;
// ugd->bringin_timer = ecore_timer_add(0.1f, _composer_bringin_cb, ugd);
}
elm_layout_theme_set(base, "layout", "application", "default");
evas_object_size_hint_weight_set(base, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(base, EVAS_HINT_FILL, EVAS_HINT_FILL);
- elm_win_resize_object_add(parent, base);
bg = elm_bg_add(base);
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
elm_layout_theme_set(ugd->main_layout, "layout", "application", "default");
evas_object_size_hint_weight_set(ugd->main_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- elm_win_resize_object_add(ugd->win_main, ugd->main_layout);
evas_object_show(ugd->main_layout);
}
if (g_strcmp0(".", dir_entry->d_name) == 0 || g_strcmp0("..", dir_entry->d_name) == 0)
continue;
snprintf(buffer, 256, "%s/%s", EMAIL_TMP_FOLDER, dir_entry->d_name);
- remove(buffer);
+ if (-1 == remove(buffer)) {
+ debug_log("Failed to remove buffer");
+ }
}
closedir(dir);
rmdir(EMAIL_TMP_FOLDER);
Evas_Object *outer_layout;
Evas_Object *inner_layout;
Evas_Object *inner_sc;
- Evas_Object *conform;
win = ugd->win_main;
- elm_win_conformant_set(win, EINA_TRUE);
ugd->evas = evas_object_evas_get(win);
- nf = _composer_create_navigation_layout(ugd->main_layout);
+ nf = _composer_create_navigation_layout(ugd);
outer_layout = _composer_create_outer_layout(nf);
inner_layout = _composer_create_composer_layout(nf);
inner_sc = _composer_create_main_scroller(nf);
- conform = elm_conformant_add(win);
- evas_object_size_hint_weight_set(conform, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- evas_object_show(conform);
-
elm_object_content_set(inner_sc, inner_layout);
- elm_object_content_set(conform, inner_sc);
- elm_object_part_content_set(outer_layout, "elm.swallow.content", conform);
+ elm_object_part_content_set(outer_layout, "elm.swallow.content", inner_sc);
ugd->navi_bar = nf;
ugd->main_scroller = inner_sc;
ugd->c_layout = inner_layout;
- ugd->conform = conform;
_composer_create_view(inner_layout, ugd);
ugd->bcc_added = false;
ugd->me_added = false;
ugd->isRotated = false;
+ ugd->isHorizontal = false;
ugd->is_recipient_duplicated = false;
ugd->temporary_fix_for_rotation = false;
+ ugd->is_prediction = EINA_FALSE;
ugd->is_main_scroller_scrolling = false;
ugd->is_webview_scrolling = false;
- ecore_x_e_illume_indicator_geometry_get(ecore_x_window_root_first_get(), NULL, NULL, NULL, &ugd->indicator_height);
ugd->focus_status = COMPOSER_FOCUS_STATUS_NONE;
ugd->listOfImageUrls = NULL;
ugd->b_load_finished = EINA_FALSE;
+ ugd->need_download = EINA_FALSE;
Elm_Theme *th = elm_theme_new();
elm_theme_ref_set(th, NULL);
COMPOSER_ERROR_TYPE_E ret = COMPOSER_ERROR_NONE;
debug_log("contact service begin");
- contacts_svc_connect();
+ contacts_connect2();
/* DBUS */
if (_composer_dbus_receiver_setup(ugd) < 0)
email_engine_finalize();
debug_log("contact service end");
- contacts_svc_disconnect();
+ contacts_disconnect2();
_on_edbus_remove_receiver(ugd);
/* DATA1[mail_id] DATA2[NULL] DATA3[attachment_id] */
debug_log("receive noti, DOWNLOAD_ATTACH_FINISH");
- int idx = 0;
- Eina_List *list = NULL;
-
- int att_cnt = g_list_length(ugd->fw_attachment_list);
-
if (ugd->fw_dn_cnt > 0) {
ugd->fw_dn_cnt--;
_composer_update_attachment_info(ugd, data3);
- for (idx = 0; idx < att_cnt; idx++) {
- EMAIL_ATTACHMENT_INFO_S *info = g_list_nth_data(ugd->fw_attachment_list, idx);
-
- if (info == NULL) {
- debug_log("Attachment is NULL");
- continue;
- }
-
- if (!info->inline_content) {
- if (info->downloaded) {
- debug_log("path %s", info->path);
- if (info->path)
- list = eina_list_append(list, info->path);
- }
- }
+ if (ugd->need_download == EINA_TRUE) {
+ ugd->bSendBtnDisabled = true;
+ ugd->send_timer = ecore_timer_add(0.5, _composer_send_mail_cb, ugd);
+ ugd->need_download = EINA_FALSE;
}
-
- _composer_attachment_create_list(ugd, list, EINA_FALSE);
} else {
debug_log("Donwload Not Finished");
INCLUDE(FindPkgConfig)
pkg_check_modules(pkgs-mailbox REQUIRED appcore-efl ui-gadget-1
elementary email-service glib-2.0 edbus bundle dlog
- capi-appfw-application status)
+ capi-appfw-application status contacts-service2)
FOREACH(flag ${pkgs-mailbox_CFLAGS})
SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/common/include)
INCLUDE(FindPkgConfig)
-pkg_check_modules(pkgs-email REQUIRED appcore-efl ui-gadget-1 elementary email-service bundle dlog ecore-input edbus)
+pkg_check_modules(pkgs-email REQUIRED appcore-efl ui-gadget-1 elementary email-service bundle dlog ecore-input edbus contacts-service2)
FOREACH(flag ${pkgs-email_CFLAGS})
SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
Evas *evas;
Evas_Object *win_main;
+ Evas_Object *conform;
int account_id;
char *account_name;
switch (mode) {
case UG_MODE_FULLVIEW:
evas_object_size_hint_weight_set(base, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- elm_win_resize_object_add(win, base);
ug_disable_effect(ug);
evas_object_show(base);
break;
return false;
}
ad->win_main = win;
+ elm_win_conformant_set(win, EINA_TRUE);
+
+ ad->conform = elm_conformant_add(ad->win_main);
+ evas_object_size_hint_weight_set(ad->conform, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ elm_win_resize_object_add(ad->win_main, ad->conform);
+ evas_object_show(ad->conform);
+
+ /*key_down_handler = ecore_event_handler_add(ECORE_EVENT_KEY_DOWN, _email_ui_keydown_cb, ad);*/
UG_INIT_EFL(ad->win_main, UG_OPT_INDICATOR_ENABLE);
- email_icu_mutex_init();
/* icu */
email_open_icu_pattern_generator();
- //Register timezone changed callback
- email_register_timezone_changed_callback(_email_timezone_change_cb, NULL);
-
return true;
}
set_app_terminated();
- //email_close_icu_pattern_generator();
- email_deregister_timezone_changed_callback(_email_timezone_change_cb);
-
- email_icu_mutex_destroy();
-
email_engine_finalize_force();
int ret = e_dbus_shutdown();
}
int acc_id;
- email_engine_get_default_account(&acc_id);
-
+ int err = 0;
+ err = email_engine_get_default_account(&acc_id);
+ if (err != EMAIL_ERROR_NONE) {
+ debug_log("email_engine_get_default_account is failed");
+ }
service_h service = NULL;
ret = service_create(&service);
debug_log("");
elm_exit();
}
+
static void _email_timezone_change_cb(keynode_t *key, void *data)
{
debug_log("");
BuildRequires: pkgconfig(capi-appfw-application)
BuildRequires: pkgconfig(capi-base-common)
BuildRequires: pkgconfig(contacts-service)
+BuildRequires: pkgconfig(contacts-service2)
BuildRequires: pkgconfig(ethumb)
BuildRequires: pkgconfig(libmedia-utils)
BuildRequires: pkgconfig(calendar-service2)
evas_object_size_hint_aspect_set(title_ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
elm_icon_resizable_set(title_ic, EINA_TRUE, EINA_TRUE);
- if (account_data->incoming_server_type == EMAIL_SERVER_TYPE_ACTIVE_SYNC) {
- elm_icon_file_set(title_ic, ACCOUNT_ICON_EXCHANGE, NULL);
- } else {
- elm_icon_file_set(title_ic, account_data->logo_icon_path, NULL);
- }
+ elm_icon_file_set(title_ic, account_data->logo_icon_path, NULL);
account_user_data_t *user_data = (account_user_data_t *)account_data->user_data;
INCLUDE(FindPkgConfig)
pkg_check_modules(pkgs-viewer REQUIRED appcore-efl ui-gadget-1 x11 elementary ecore glib-2.0 gobject-2.0
status capi-media-metadata-extractor capi-media-image-util capi-content-media-content
- email-service edbus capi-appfw-application vconf ewebkit2 contacts-service sysman bundle dlog efreet-mime libmedia-utils calendar-service2 ethumb)
+ email-service edbus capi-appfw-application vconf ewebkit2 contacts-service2 sysman bundle dlog efreet-mime libmedia-utils calendar-service2 ethumb)
FOREACH(flag ${pkgs-viewer_CFLAGS})
SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
Elm_Object_Item *item;
};
-typedef struct _EMAIL_CONTACT_LIST_INFO_S {
- int index;
- char *display;
- char *email_address;
- char display_name[40];
-} EMAIL_CONTACT_LIST_INFO_S;
-
typedef struct _EmailViewerWebview EmailViewerWebview;
struct _EmailViewerWebview {
Evas_Coord minw, minh;
Evas_Object *dg_attach;
Evas_Object *addrs;
Evas_Object *scroller;
- Evas_Object *conformant;
Evas_Object *webview_bx;
Evas_Object *main_bx;
Evas_Object *navi_bar;
Evas_Object *progress_bar[ATTACH_MAX];
Evas_Object *progress_bar_ly[ATTACH_MAX];
- Elm_Object_Item *reply_ctr_it;
- Elm_Object_Item *replyall_ctr_it;
- Elm_Object_Item *forward_ctr_it;
- Elm_Object_Item *calendar_ctr_it;
- Elm_Object_Item *resend_ctr_it;
- Elm_Object_Item *move_ctr_it;
- Elm_Object_Item *del_ctr_it;
- Elm_Object_Item *more_ctr_it;
+ Evas_Object *reply_btn;
+ Evas_Object *delete_btn;
+ Evas_Object *resend_btn;
+ Evas_Object *cancel_btn;
+ Evas_Object *move_btn;
Elm_Object_Item *more_ctx_block_item;
Elm_Object_Item *ctx_block_item;
Ecore_Idler *idler;
Ecore_Timer *timer;
Ecore_Timer *waiting_timer;
+
+ Evas_Object *gesture_obj;
};
void _hide_view(EmailViewerUGD *ug_data);
sync = EMAIL_DELETE_LOCAL_AND_SERVER;
}
}
- email_free_account(&account_data, 1);
- account_data = NULL;
}
}
+
+ if (account_data) {
+ email_free_account(&account_data, 1);
+ account_data = NULL;
+ }
}
if (!email_engine_delete_mail(priv->account_id, priv->mailbox_id, priv->mail_id, sync)) {
Eina_Bool success_flag = EINA_TRUE;
- if (STR_LEN((gchar *)buf) >= 0 && len >= 0) {
+ if (STR_LEN((gchar *)buf) >= 0) {
int fd = open(path, O_WRONLY | O_CREAT | O_TRUNC, S_IREAD | S_IWRITE);
if (fd != -1) {
ssize_t nwrite = write(fd, (const void *)buf, (size_t) len);
static void _webview_load_finished_cb(void *data, Evas_Object *obj, void *event_info)
{
debug_log("");
- if (_g_ug_data == NULL) {
- debug_log("_g_ug_data == NULL");
+ if (data == NULL) {
+ debug_log("data == NULL");
return;
}
EmailViewerUGD *ug_data = (EmailViewerUGD *)data;
+ if (_g_ug_data == NULL) {
+ debug_log("_g_ug_data == NULL");
+ evas_object_del(ug_data->timeout_popup);
+ ug_data->timeout_popup = NULL;
+ return;
+ }
+
ug_data->b_load_finished = EINA_TRUE;
/*_measure_webview_xy(ug_data);*/
debug_log("send_read_report: %d", ud->send_read_report);
send_read_report = ud->send_read_report;
}
- email_free_account(&account, 1);
- account = NULL;
}
}
+ if (account != NULL) {
+ email_free_account(&account, 1);
+ account = NULL;
+ }
+
debug_log("flags_seen_field:%d, send_read_report:%d, request_report:%d, report_status:%d", ug_data->email_data->mail_info->flags_seen_field, send_read_report, ug_data->property->request_report, ug_data->email_data->mail_info->report_status & EMAIL_MAIL_REQUEST_MDN);
if (!ug_data->email_data->mail_info->flags_seen_field && send_read_report && ug_data->property->request_report == TRUE && (ug_data->email_data->mail_info->report_status & EMAIL_MAIL_REQUEST_MDN)) {
int send_result = _send_read_report_mail(ug_data);
Ewk_Context_Menu_Item* menu_item = (Ewk_Context_Menu_Item*)event_info;
Ewk_Context_Menu_Item_Tag menu_item_tag = EWK_CONTEXT_MENU_ITEM_TAG_NO_ACTION;
- int img_buf_len = 0;
+ gsize img_buf_len = 0;
gchar *img_buf = NULL;
char *img_url = NULL;
Ewk_Hit_Test *ewk_hit_test = NULL;
ret = media_content_scan_file(new_path);
debug_log("media_content_scan_file: %d", ret);
}
-
+
ret = media_content_disconnect();
if (ret) {
debug_log("media_content_disconnect() is failed!");
static void _reset_view(EmailViewerUGD *ug_data);
static void _win_profile_changed_cb(void *data, Evas_Object *obj, void *event);
+static void _timezone_changed_cb(keynode_t *key, void *data);
static Evas_Object *_create_navigation_bar(EmailViewerUGD *ug_data);
static Evas_Object *_create_subject(EmailViewerUGD *ug_data);
static Evas_Object *_create_attach_ex(EmailViewerUGD *ug_data);
static Evas_Object *_create_body(EmailViewerUGD *ug_data);
static Evas_Object *_create_tab_bar(EmailViewerUGD *ug_data);
-static Evas_Object *_update_tab_bar(EmailViewerUGD *ug_data);
+//static Evas_Object *_update_tab_bar(EmailViewerUGD *ug_data);
static Evas_Object *_create_partial_body_dn_btn(EmailViewerUGD *ug_data);
static Evas_Object *_create_bg(Evas_Object *win);
static void _create_down_progress(char *message, popup_cb resp_cb);
static void _create_down_progress_ex(int index, EMAIL_VIEWER_PROGRESSBAR_TYPE p_type);
static void _destroy_down_progress_ex(void *data, Evas_Object *obj, void *event_info);
-static void _create_more_ctxpopup(EmailViewerUGD *ug_data);
+static void _create_more_ctxpopup(EmailViewerUGD *ug_data, Evas_Object *obj);
static void _delete_evas_objects(EmailViewerUGD *ug_data);
/* callback functions */
static void _reply_all_cb(void *data, Evas_Object *obj, void *event_info);
static void _reply_option_cb(void *data, Evas_Object *obj, void *event_info);
static void _forward_cb(void *data, Evas_Object *obj, void *event_info);
+static void _launch_message_composer(EmailViewerUGD *ug_data);
static void _resend_cb(void *data, Evas_Object *obj, void *event_info);
+static void _cancel_send_cb(void *data, Evas_Object *obj, void *event_info);
+static void _edit_email_cb(void *data, Evas_Object *obj, void *event_info);
static void _delete_cb(void *data, Evas_Object *obj, void *event_info);
static void _move_cb(void *data, Evas_Object *obj, void *event_info);
static void _more_cb(void *data, Evas_Object *obj, void *event_info);
ug_data->webview_margin_landscape = 379;
} else if (w == 720) {
ug_data->webview_width = 710.0;
- ug_data->webview_height = 1021.0;
+ ug_data->webview_height = 1122.0;
ug_data->webview_width_landscape = 710.0;
ug_data->webview_height_landscape = 558.0;
ug_data->webview_margin = 1029;
debug_log("show_images is %d", ud->show_images);
ug_data->b_show_remote_images = ud->show_images;
}
- email_free_account(&account, 1);
- account = NULL;
}
}
+ if (account) {
+ email_free_account(&account, 1);
+ account = NULL;
+ }
+
/* DBUS */
_dbus_receiver_setup(ug_data);
+ email_register_timezone_changed_callback(_timezone_changed_cb, ug_data);
+
_init_viewer_data(ug_data->account_id, ug_data->mail_id, NULL, ug_data);
_create_view(ug_data);
if (ug_data->b_direct_destroy)
return;
+ if (ug_data->email_data == NULL) {
+ debug_log("ug_data->email_data is NULL.");
+ return;
+ }
/* stop engine */
EmailViewerPrivate *priv = ug_data->email_data;
- EmailViewerProp *prop = ug_data->property;
int i = 0;
- int att_len = g_list_length(prop->attachments);
+ int att_len = 0;
+
+ if (ug_data->property) {
+ att_len = g_list_length(ug_data->property->attachments);
+ }
if (priv->email_handle != 0)
email_engine_stop_working(ug_data->account_id, priv->email_handle);
}
debug_log("free attachment");
- if (ug_data->property->attachments) {
- int i = 0;
- LIST_ITER_START(i, ug_data->property->attachments) {
- EmailAttachmentType *info = (EmailAttachmentType *)LIST_ITER_GET_DATA(i, ug_data->property->attachments);
- if (info->name)
- free(info->name);
- if (info->path)
- free(info->path);
- free(info);
+ if (ug_data->property) {
+ if (ug_data->property->attachments) {
+ int i = 0;
+ LIST_ITER_START(i, ug_data->property->attachments) {
+ EmailAttachmentType *info = (EmailAttachmentType *)LIST_ITER_GET_DATA(i, ug_data->property->attachments);
+ if (info->name)
+ free(info->name);
+ if (info->path)
+ free(info->path);
+ free(info);
+ }
+ g_list_free(ug_data->property->attachments);
+ ug_data->property->attachments = NULL;
}
- g_list_free(ug_data->property->attachments);
- ug_data->property->attachments = NULL;
- }
- debug_log("free property");
- if (ug_data->property) {
- free(ug_data->property);
- ug_data->property = NULL;
+ debug_log("free property");
+ if (ug_data->property) {
+ free(ug_data->property);
+ ug_data->property = NULL;
+ }
}
ug_data->base = NULL;
_viewer_remove_temp_folder();
+ email_deregister_timezone_changed_callback(_timezone_changed_cb);
_dbus_receiver_remove(NULL);
int ret = e_dbus_shutdown();
debug_log("show_images is %d", ud->show_images);
ug_data->b_show_remote_images = ud->show_images;
}
- email_free_account(&account, 1);
- account = NULL;
}
Ewk_Setting *setting = ewk_view_setting_get(ug_data->webview);
}
}
+ if (account) {
+ email_free_account(&account, 1);
+ account = NULL;
+ }
+
_init_viewer_data(ug_data->account_id, ug_data->mail_id, NULL, ug_data);
evas_object_show(ug_data->layout_main);
case UG_EVENT_LOW_BATTERY:
break;
case UG_EVENT_LANG_CHANGE:
+ if (ug_data->reply_btn)
+ elm_object_text_set(ug_data->reply_btn, dgettext("sys_string", "IDS_COM_SK_REPLY"));
+ if (ug_data->delete_btn)
+ elm_object_text_set(ug_data->delete_btn, dgettext("sys_string", "IDS_COM_SK_DELETE"));
+ if (ug_data->resend_btn)
+ elm_object_text_set(ug_data->resend_btn, _("IDS_EMAIL_SK_RESEND"));
+ if (ug_data->cancel_btn)
+ elm_object_text_set(ug_data->cancel_btn, dgettext("sys_string", "IDS_COM_SK_CANCEL"));
+ if (ug_data->move_btn)
+ elm_object_text_set(ug_data->move_btn, _("IDS_EMAIL_SK_MOVE"));
+
+ if (ug_data->dn_btn) {
+ elm_object_text_set(ug_data->dn_btn, _("IDS_EMAIL_BODY_DOWNLOAD_MESSAGE"));
+ }
+
+ if (ug_data->partial_dn_btn) {
+ elm_object_text_set(ug_data->partial_dn_btn, _("IDS_EMAIL_BODY_DOWNLOAD_FULL_MESSAGE"));
+ }
break;
case UG_EVENT_ROTATE_PORTRAIT:
case UG_EVENT_ROTATE_PORTRAIT_UPSIDEDOWN:
if (ug_data->b_internal && ug_data->isRotate == true) {
ewk_view_command_execute(ug_data->webview, "Unselect", NULL);
debug_log("In Full view - Showing navi bar");
- elm_naviframe_item_title_visible_set(ug_data->navi_main_it, EINA_TRUE);
if (ug_data->con_popup) {
evas_object_del(ug_data->con_popup);
if (ug_data->b_internal && ug_data->isRotate == false) {
ewk_view_command_execute(ug_data->webview, "Unselect", NULL);
debug_log("In Split view - Hiding navi bar");
- elm_naviframe_item_title_visible_set(ug_data->navi_main_it, EINA_FALSE);
if (ug_data->con_popup) {
evas_object_del(ug_data->con_popup);
if (ug_data->navi_move_it1) {
debug_log("move1");
- ug_data->move_cbar = elm_toolbar_add(ug_data->navi_bar);
- elm_toolbar_shrink_mode_set(ug_data->move_cbar, ELM_TOOLBAR_SHRINK_EXPAND);
- elm_object_style_set(ug_data->move_cbar, "naviframe");
- evas_object_show(ug_data->move_cbar);
-
- elm_object_item_disabled_set(elm_toolbar_item_append(ug_data->move_cbar, NULL, "", NULL, NULL), EINA_TRUE);
- elm_toolbar_item_append(ug_data->move_cbar, NULL, dgettext("sys_string", "IDS_COM_SK_CANCEL"), _move_back_cb, ug_data);
- elm_object_item_part_content_set(ug_data->navi_move_it1, "controlbar", ug_data->move_cbar);
-
- Evas_Object *move_back_btn = elm_object_item_part_content_get(ug_data->navi_move_it1, "prev_btn");
- if (move_back_btn) {
- evas_object_smart_callback_del(move_back_btn, "clicked", _move_back_cb);
- evas_object_del(move_back_btn);
- elm_object_item_part_content_set(ug_data->navi_move_it1, "prev_btn", NULL);
- }
+ Evas_Object *move_back_btn = elm_button_add(ug_data->navi_bar);
+ elm_object_style_set(move_back_btn, "naviframe/back_btn/default");
+ evas_object_smart_callback_add(move_back_btn, "clicked", _move_back_cb, ug_data);
+ elm_object_item_part_content_set(ug_data->navi_move_it1, "prev_btn", move_back_btn);
elm_naviframe_item_title_visible_set(ug_data->navi_move_it1, EINA_FALSE);
+ if (ug_data->move_cbar) {
+ elm_object_item_part_content_unset(ug_data->navi_move_it1, "controlbar");
+ evas_object_del(ug_data->move_cbar);
+ ug_data->move_cbar = NULL;
+ }
}
if (ug_data->b_btn) {
switch (mode) {
case UG_MODE_FULLVIEW:
evas_object_size_hint_weight_set(base, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- elm_win_resize_object_add(win, base);
evas_object_show(base);
break;
default:
g_free(cmd);
return;
}
+
+ ret = service_get_extra_data(result, EMAIL_BUNDLE_KEY_UPDATE, (char **)&cmd);
+ debug_log("service_get_extra_data: %d", ret);
+ debug_log("return of bundle_get_val for cancel all(%s)", cmd);
+ if (cmd) {
+ debug_log("update attachments in viewer(%s)", cmd);
+ //ancel_download_attachment(ug_data);
+ g_free(cmd);
+ return;
+ }
}
}
return;
EmailViewerUGD *ug_data = (EmailViewerUGD *)priv;
- EmailViewerProp *prop = ug_data->property;
ug_data->display_download_result = TRUE;
if (ug == ug_data->ug_composer) {
}
ug_destroy(ug);
-
- if (ug_data->b_contact_ug_launched) {
- debug_log("change navibar title label");
- EMAIL_CONTACT_LIST_INFO_S *contact_list_item = NULL;
- contact_list_item = (EMAIL_CONTACT_LIST_INFO_S *)_contact_search_by_email(ug_data, prop->sender);
-
- if (contact_list_item) {
- elm_object_item_text_set(ug_data->navi_main_it, contact_list_item->display_name);
- _delete_contacts_list(contact_list_item);
- } else {
- elm_object_item_text_set(ug_data->navi_main_it, prop->sender_display_name);
- }
-
- ug_data->b_contact_ug_launched = FALSE;
- }
}
static ui_gadget_h create_ug(char *ug_name, service_h bd, void *data)
debug_log("");
Evas_Object *b_btn;
- Evas_Object *prev_btn;
- Evas_Object *next_btn;
EmailViewerProp *prop = ug_data->property;
ug_data->bg = _create_bg(ug_data->win_main);
evas_object_smart_callback_add(b_btn, "clicked", _back_cb, ug_data);
ug_data->b_btn = b_btn;
- ug_data->navi_main_it = elm_naviframe_item_push(ug_data->navi_bar, prop->sender_display_name, b_btn, NULL, ug_data->sub_ly, NULL);
+ ug_data->navi_main_it = elm_naviframe_item_push(ug_data->navi_bar, NULL/*prop->sender_display_name*/, b_btn, NULL, ug_data->sub_ly, NULL);
+ elm_naviframe_item_title_visible_set(ug_data->navi_main_it, EINA_FALSE);
- if (ug_data->b_internal) {
- /* Left : previous button */
- prev_btn = elm_button_add(ug_data->navi_bar);
- Evas_Object *prev_ic = elm_icon_add(prev_btn);
- elm_icon_file_set(prev_ic, IMGDIR "/M02_icon_previous.png", NULL);
- elm_object_style_set(prev_btn, "naviframe/title/default");
- evas_object_size_hint_aspect_set(prev_ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
- elm_icon_resizable_set(prev_ic, 0.8, 0.8);
- elm_object_part_content_set(prev_btn, "icon", prev_ic);
- elm_object_item_part_content_set(ug_data->navi_main_it, "title_left_btn", prev_btn);
- evas_object_smart_callback_add(prev_btn, "clicked", _prev_mail_cb, ug_data);
- ug_data->prev_btn = prev_btn;
-
- /* Right : next button */
- next_btn = elm_button_add(ug_data->navi_bar);
- Evas_Object *next_ic = elm_icon_add(next_btn);
- elm_icon_file_set(next_ic, IMGDIR "/M02_icon_next.png", NULL);
- elm_object_style_set(next_btn, "naviframe/title/default");
- evas_object_size_hint_aspect_set(next_ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
- elm_icon_resizable_set(next_ic, 0.8, 0.8);
- elm_object_part_content_set(next_btn, "icon", next_ic);
- elm_object_item_part_content_set(ug_data->navi_main_it, "title_right_btn", next_btn);
- evas_object_smart_callback_add(next_btn, "clicked", _next_mail_cb, ug_data);
- ug_data->next_btn = next_btn;
- }
+ _create_tab_bar(ug_data);
/* create scroller */
ug_data->scroller = elm_scroller_add(ug_data->navi_bar);
evas_object_smart_callback_add(ug_data->scroller, "edge,top", _outter_scroller_top_hit_cb, ug_data);
evas_object_smart_callback_add(ug_data->scroller, "scroll,drag,start", _outter_scroller_scroll_cb, ug_data);
- /* create conformant */
- elm_win_conformant_set(ug_data->win_main, EINA_TRUE);
- ug_data->conformant = elm_conformant_add(ug_data->sub_ly);
- elm_object_style_set(ug_data->conformant, "internal_layout");
- evas_object_size_hint_weight_set(ug_data->conformant, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- evas_object_size_hint_align_set(ug_data->conformant, EVAS_HINT_FILL, EVAS_HINT_FILL);
- elm_object_content_set(ug_data->conformant, ug_data->scroller);
- elm_object_part_content_set(ug_data->sub_ly, "elm.swallow.content", ug_data->conformant);
- evas_object_show(ug_data->conformant);
-
- if (ug_data->from_list != NULL) {
- email_address_info_t *addrs_info = NULL;
- int n_from_list = g_list_length(ug_data->from_list);
- debug_log("from list count [%d]", n_from_list);
-
- if (n_from_list > 0) {
- addrs_info = (email_address_info_t *) g_list_nth_data(ug_data->from_list, 0);
- debug_log("From Address:%s", addrs_info->address);
- debug_log("Display Name:%s", addrs_info->display_name);
- debug_log("Storage Type:%d", addrs_info->storage_type);
- debug_log("Contact ID:%d", addrs_info->contact_id);
- debug_log("");
- g_free(prop->sender_display_name);
- prop->sender_display_name = g_strdup(addrs_info->display_name);
- g_free(prop->sender);
- prop->sender = g_strdup(addrs_info->address);
-
- if (addrs_info->display_name && strlen(addrs_info->display_name) > 0)
- elm_object_item_text_set(ug_data->navi_main_it, addrs_info->display_name);
- else
- elm_object_item_text_set(ug_data->navi_main_it, addrs_info->address);
- }
- }
+ elm_object_part_content_set(ug_data->sub_ly, "elm.swallow.content", ug_data->scroller);
/* create main box */
ug_data->main_bx = elm_box_add(ug_data->navi_bar);
if (ug_data->isRotate == true) {
debug_log("In Split view - Hiding navi bar");
- elm_naviframe_item_title_visible_set(ug_data->navi_main_it, EINA_FALSE);
if (ug_data->b_btn) {
debug_log("hiding back button");
debug_log("@@@@@@@@@@ isRotate = %d", ug_data->isRotate);
if (ug_data->isRotate == true) {
debug_log("In Split view - Hiding navi bar");
- elm_naviframe_item_title_visible_set(ug_data->navi_main_it, EINA_FALSE);
if (ug_data->b_btn) {
debug_log("hiding back button");
elm_scroller_region_show(ug_data->scroller, 0, 0, (int)((double)ug_data->main_h * 0.6), ug_data->main_w);
} else {
debug_log("In Full view - Showing navi bar");
- elm_naviframe_item_title_visible_set(ug_data->navi_main_it, EINA_TRUE);
if (ug_data->b_btn) {
elm_scroller_region_show(ug_data->scroller, 0, 0, ug_data->main_w, ug_data->main_h);
}
- if (ug_data->from_list != NULL) {
- email_address_info_t *addrs_info = NULL;
- int n_from_list = g_list_length(ug_data->from_list);
- debug_log("from list count [%d]", n_from_list);
-
- if (n_from_list > 0) {
- addrs_info = (email_address_info_t *) g_list_nth_data(ug_data->from_list, 0);
- if (addrs_info) {
- debug_log("From Address:%s", addrs_info->address);
- debug_log("Display Name:%s", addrs_info->display_name);
- debug_log("Storage Type:%d", addrs_info->storage_type);
- debug_log("Contact ID:%d", addrs_info->contact_id);
- g_free(prop->sender_display_name);
- prop->sender_display_name = g_strdup(addrs_info->display_name);
- g_free(prop->sender);
- prop->sender = g_strdup(addrs_info->address);
-
- if (addrs_info->display_name && strlen(addrs_info->display_name) > 0)
- elm_object_item_text_set(ug_data->navi_main_it, addrs_info->display_name);
- else
- elm_object_item_text_set(ug_data->navi_main_it, addrs_info->address);
- }
- }
- } else {
- elm_object_item_text_set(ug_data->navi_main_it, prop->sender_display_name);
- }
-
/* reset subject */
char *_subject = elm_entry_utf8_to_markup(prop->subject);
if (!g_strcmp0(_subject, "")) {
elm_object_part_text_set(ug_data->ly_subject, "elm.text.sub", date_time);
+ /* reset icons */
+ /*Evas_Object *attach_icon = elm_icon_add(ug_data->ly_subject);
+ elm_icon_file_set(attach_icon, IMGDIR "/M02_email_icon_attach.png", NULL);
+ evas_object_size_hint_aspect_set(attach_icon, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
+ elm_icon_resizable_set(attach_icon, 1, 1);
+ elm_object_part_content_set(ug_data->ly_subject, "elm.icon.attach", attach_icon);
+ evas_object_show(attach_icon);*/
+
Evas_Object *favorite_icon = elm_icon_add(ug_data->ly_subject);
switch(prop->favorite)
{
case EMAIL_FLAG_NONE:
- elm_icon_file_set(favorite_icon, IMGDIR "/M02_email_icon_favorite_off.png", NULL);
+ elm_icon_file_set(favorite_icon, IMGDIR "/M02_icon_favorite_off_74x74.png", NULL);
break;
case EMAIL_FLAG_FLAGED:
- elm_icon_file_set(favorite_icon, IMGDIR "/M02_email_icon_favorite_on.png", NULL);
+ elm_icon_file_set(favorite_icon, IMGDIR "/M02_icon_favorite_on_74x74.png", NULL);
break;
case EMAIL_FLAG_TASK_STATUS_CLEAR:
elm_icon_file_set(favorite_icon, IMGDIR "/M02_email_Flag_Clear.png", NULL);
elm_object_item_part_content_unset(ug_data->navi_main_it, "controlbar");
evas_object_del(ug_data->ctr_bar);
ug_data->ctr_bar = NULL;
-
- ug_data->reply_ctr_it = NULL;
- ug_data->replyall_ctr_it = NULL;
- ug_data->forward_ctr_it = NULL;
- ug_data->calendar_ctr_it = NULL;
- ug_data->resend_ctr_it = NULL;
- ug_data->move_ctr_it = NULL;
- ug_data->del_ctr_it = NULL;
}
if (ug_data->to_ly) {
ewk_view_uri_set(ug_data->webview, EMAIL_DEFAULT_HTML);
+#ifdef _URI_SET
+ ewk_view_uri_set(ug_data->webview, EMAIL_DEFAULT_HTML/*""*/);
+#else
+ char tmp_file_path[MAX_PATH_LEN] = { 0, };
+ char *file_stream = NULL;
+ int file_size = 0;
+ FILE *fp = NULL;
+
+ fp = fopen(DATADIR"/_email_default.html", "r");
+ if (fp != NULL) {
+ fseek(fp, 0L, SEEK_END);
+ file_size = ftell(fp);
+ debug_log("file size: %d", file_size);
+ fseek(fp, 0L, SEEK_SET);
+
+ if (file_size > 0) {
+ file_stream = calloc(file_size, sizeof(char));
+
+ if (file_stream) {
+ if (fread(file_stream, sizeof(char), file_size, fp) != file_size) {
+ debug_log("error in fread");
+ }
+ }
+ }
+
+ fclose(fp);
+ }
+
+ snprintf(tmp_file_path, sizeof(tmp_file_path), "file://%s", RESDIR);
+ debug_log("tmp_file_path [%s]", tmp_file_path);
+ ewk_view_contents_set(ug_data->webview, file_stream, file_size, NULL, DEFAULT_CHARSET, tmp_file_path);
+ g_free(file_stream);
+#endif
_viewer_remove_temp_folder();
debug_log("free address info list");
elm_layout_theme_set(ug_data->layout_main, "layout", "application", "default");
evas_object_size_hint_weight_set(ug_data->layout_main, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- elm_win_resize_object_add(ug_data->win_main, ug_data->layout_main);
evas_object_show(ug_data->layout_main);
}
+static void _timezone_changed_cb(keynode_t *key, void *data)
+{
+ debug_enter();
+ EmailViewerUGD *ug_data = (EmailViewerUGD *)data;
+ EmailViewerProp *prop = ug_data->property;
+ int ret;
+ char date_time[MAX_STR_LEN] = { 0, };
+
+ char *timezone_id = NULL;
+ UChar utimezone_id[512] = { 0, };
+ UErrorCode status = U_ZERO_ERROR;
+
+ timezone_id = vconf_get_str(VCONFKEY_SETAPPL_TIMEZONE_ID);
+
+ if (!timezone_id)
+ return;
+
+ u_uastrcpy(utimezone_id, timezone_id);
+
+ ucal_setDefaultTimeZone(utimezone_id, &status);
+
+ if (U_FAILURE(status))
+ return;
+
+ char *formatted_date = NULL;
+
+ if (icu_timeformat == APPCORE_TIME_FORMAT_12)
+ formatted_date = email_get_date_text(icu_locale, "yMdhms", &(prop->mktime));
+ else
+ formatted_date = email_get_date_text(icu_locale, "yMdHms", &(prop->mktime));
+ ret = snprintf(date_time, MAX_STR_LEN, "%s", formatted_date);
+ free(formatted_date);
+ formatted_date = NULL;
+
+ elm_object_part_text_set(ug_data->ly_subject, "elm.text.sub", date_time);
+ debug_leave();
+}
+
static Evas_Object *_create_navigation_bar(EmailViewerUGD *ug_data)
{
debug_log("");
elm_object_part_text_set(di, "elm.text.sub", date_time);
+ /*Evas_Object *attach_icon = elm_icon_add(di);
+ elm_icon_file_set(attach_icon, IMGDIR "/M02_email_icon_attach.png", NULL);
+ evas_object_size_hint_aspect_set(attach_icon, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
+ elm_icon_resizable_set(attach_icon, 1, 1);
+ elm_object_part_content_set(di, "elm.icon.attach", attach_icon);
+ evas_object_show(attach_icon);*/
+
Evas_Object *favorite_icon = elm_icon_add(di);
switch(prop->favorite)
{
case EMAIL_FLAG_NONE:
- elm_icon_file_set(favorite_icon, IMGDIR "/M02_email_icon_favorite_off.png", NULL);
+ elm_icon_file_set(favorite_icon, IMGDIR "/M02_icon_favorite_off_74x74.png", NULL);
break;
case EMAIL_FLAG_FLAGED:
- elm_icon_file_set(favorite_icon, IMGDIR "/M02_email_icon_favorite_on.png", NULL);
+ elm_icon_file_set(favorite_icon, IMGDIR "/M02_icon_favorite_on_74x74.png", NULL);
break;
case EMAIL_FLAG_TASK_STATUS_CLEAR:
elm_icon_file_set(favorite_icon, IMGDIR "/M02_email_Flag_Clear.png", NULL);
elm_box_pack_after(ug_data->main_bx, di, ug_data->ly_subject);
ug_data->attach_hd_ly = di;
ug_data->attach_hd_bk = di;
+
+ _create_attach_ex(ug_data);
+
+ for (i = 0; i < prop->real_att_len; i++) {
+ if (ug_data->attach_ex_ly[i] != NULL) {
+ debug_log("index %d", i);
+ elm_box_unpack(ug_data->main_bx, ug_data->attach_ex_ly[i]);
+ evas_object_hide(ug_data->attach_ex_ly[i]);
+ }
+ }
} else {
debug_log("Attachment doesn't exist");
}
evas_object_show(ug_data->webview);
elm_box_pack_end(ug_data->main_bx, ug_data->webview_bx);
- _update_tab_bar(ug_data);
+// _update_tab_bar(ug_data);
} else {
/* create webview layout */
ug_data->webview_bx = _load_edj(ug_data->navi_bar, EV_THEME_PATH, "layout.email.web_view");
/* set touch callbacks */
evas_object_smart_callback_add(ug_data->webview, "policy,navigation,decide", _webview_policy_navigation_decide_cb, ug_data);
- evas_object_event_callback_add(ug_data->webview, EVAS_CALLBACK_MULTI_DOWN, _webview_multi_down_cb, ug_data);
- evas_object_event_callback_add(ug_data->webview, EVAS_CALLBACK_MULTI_UP, _webview_multi_up_cb, ug_data);
-
- /* update control Bar */
- _update_tab_bar(ug_data);
}
viewer_set_mail_seen(prop, priv->mail_info);
return ug_data->webview_bx;
}
+static Evas_Object *_create_toolbar_btn(Evas_Object *parent, const char *text, Evas_Smart_Cb func, void *data, const char *style)
+{
+ debug_log("");
+ Evas_Object *btn = elm_button_add(parent);
+ if (!btn) return NULL;
+ if (style)
+ elm_object_style_set(btn, style);
+ else
+ 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_toolbar_more_btn(Evas_Object *parent, Evas_Smart_Cb func, void *data)
+{
+ debug_log("");
+ 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_tab_bar(EmailViewerUGD *ug_data)
{
debug_log("mailbox_type:%d", ug_data->mailbox_type);
EmailViewerProp *prop = ug_data->property;
- Evas_Object *obj;
- obj = elm_toolbar_add(ug_data->navi_bar);
- elm_toolbar_shrink_mode_set(obj, ELM_TOOLBAR_SHRINK_EXPAND);
- elm_object_style_set(obj, "naviframe");
+ Evas_Object *more_btn = NULL;
+
+ more_btn = _create_toolbar_more_btn(ug_data->navi_bar, _more_cb, ug_data);
+ elm_object_item_part_content_set(ug_data->navi_main_it, "toolbar_more_btn", more_btn);
if (ug_data->mailbox_type == EMAIL_MAILBOX_TYPE_INBOX || ug_data->mailbox_type == EMAIL_MAILBOX_TYPE_SENTBOX ||
ug_data->mailbox_type == EMAIL_MAILBOX_TYPE_TRASH || ug_data->mailbox_type == EMAIL_MAILBOX_TYPE_SPAMBOX) {
+
int n_to_list = g_list_length(ug_data->to_list);
int n_cc_list = g_list_length(ug_data->cc_list);
debug_log("to:%d, cc:%d", n_to_list, n_cc_list);
if (n_to_list + n_cc_list >= 2) {
- ug_data->reply_ctr_it = elm_toolbar_item_append(obj, ICON_REPLY, dgettext("sys_string", "IDS_COM_SK_REPLY"), _reply_option_cb, ug_data);
+ ug_data->reply_btn = _create_toolbar_btn(ug_data->navi_bar, dgettext("sys_string", "IDS_COM_SK_REPLY"), _reply_option_cb, ug_data, "naviframe/toolbar/left");
} else {
- ug_data->reply_ctr_it = elm_toolbar_item_append(obj, ICON_REPLY, dgettext("sys_string", "IDS_COM_SK_REPLY"), _reply_cb, ug_data);
+ ug_data->reply_btn = _create_toolbar_btn(ug_data->navi_bar, dgettext("sys_string", "IDS_COM_SK_REPLY"), _reply_cb, ug_data, "naviframe/toolbar/left");
}
- ug_data->forward_ctr_it = elm_toolbar_item_append(obj, ICON_FORWARD, dgettext("sys_string", "IDS_COM_BODY_FORWARD"), _forward_cb, ug_data);
- ug_data->del_ctr_it = elm_toolbar_item_append(obj, ICON_DELETE, dgettext("sys_string", "IDS_COM_SK_DELETE"), _delete_cb, ug_data);
- ug_data->more_ctr_it = elm_toolbar_item_append(obj, ICON_CONTROLBAR_MORE, dgettext("sys_string", "IDS_COM_SK_MORE"), _more_cb, ug_data);
-
- elm_object_item_disabled_set(ug_data->reply_ctr_it, EINA_TRUE);
- elm_object_item_disabled_set(ug_data->forward_ctr_it, EINA_TRUE);
+ elm_object_item_part_content_set(ug_data->navi_main_it, "toolbar_button1", ug_data->reply_btn);
+ ug_data->delete_btn = _create_toolbar_btn(ug_data->navi_bar, dgettext("sys_string", "IDS_COM_SK_DELETE"), _delete_cb, ug_data, "naviframe/toolbar/right");
+ elm_object_item_part_content_set(ug_data->navi_main_it, "toolbar_button2", ug_data->delete_btn);
} else if (ug_data->mailbox_type == EMAIL_MAILBOX_TYPE_OUTBOX) {
debug_log("save_status: %d", prop->status2);
- if (prop->status2 == EMAIL_MAIL_STATUS_SEND_FAILURE) {
- ug_data->resend_ctr_it = elm_toolbar_item_append(obj, ICON_RESEND, _("IDS_EMAIL_SK_RESEND"), _resend_cb, ug_data);
- ug_data->del_ctr_it = elm_toolbar_item_append(obj, ICON_DELETE, dgettext("sys_string", "IDS_COM_SK_DELETE"), _delete_cb, ug_data);
+ if (prop->status2 == EMAIL_MAIL_STATUS_SEND_FAILURE || prop->status2 == EMAIL_MAIL_STATUS_SEND_CANCELED) {
+ ug_data->resend_btn = _create_toolbar_btn(ug_data->navi_bar, _("IDS_EMAIL_SK_RESEND"), _resend_cb, ug_data, "naviframe/toolbar/left");
+ elm_object_item_part_content_set(ug_data->navi_main_it, "toolbar_button1", ug_data->resend_btn);
+ ug_data->delete_btn = _create_toolbar_btn(ug_data->navi_bar, dgettext("sys_string", "IDS_COM_SK_DELETE"), _delete_cb, ug_data, "naviframe/toolbar/right");
+ elm_object_item_part_content_set(ug_data->navi_main_it, "toolbar_button2", ug_data->delete_btn);
+ } else if (prop->status2 == EMAIL_MAIL_STATUS_SEND_WAIT) {
+ ug_data->cancel_btn = _create_toolbar_btn(ug_data->navi_bar, dgettext("sys_string", "IDS_COM_SK_CANCEL"), _cancel_send_cb, ug_data, "naviframe/toolbar/left");
+ elm_object_item_part_content_set(ug_data->navi_main_it, "toolbar_button1", ug_data->cancel_btn);
+ ug_data->delete_btn = _create_toolbar_btn(ug_data->navi_bar, dgettext("sys_string", "IDS_COM_SK_DELETE"), _delete_cb, ug_data, "naviframe/toolbar/right");
+ elm_object_item_part_content_set(ug_data->navi_main_it, "toolbar_button2", ug_data->delete_btn);
} else {
- ug_data->del_ctr_it = elm_toolbar_item_append(obj, ICON_DELETE, dgettext("sys_string", "IDS_COM_SK_DELETE"), _delete_cb, ug_data);
+ ug_data->move_btn = _create_toolbar_btn(ug_data->navi_bar, _("IDS_EMAIL_SK_MOVE"), _move_cb, ug_data, "naviframe/toolbar/left");
+ elm_object_item_part_content_set(ug_data->navi_main_it, "toolbar_button1", ug_data->move_btn);
+ ug_data->delete_btn = _create_toolbar_btn(ug_data->navi_bar, dgettext("sys_string", "IDS_COM_SK_DELETE"), _delete_cb, ug_data, "naviframe/toolbar/right");
+ elm_object_item_part_content_set(ug_data->navi_main_it, "toolbar_button1", ug_data->delete_btn);
}
} else {
- ug_data->del_ctr_it = elm_toolbar_item_append(obj, ICON_DELETE, dgettext("sys_string", "IDS_COM_SK_DELETE"), _delete_cb, ug_data);
- ug_data->move_ctr_it = elm_toolbar_item_append(obj, ICON_MOVE, _("IDS_EMAIL_SK_MOVE"), _move_cb, ug_data);
- }
-
- elm_object_item_part_content_set(ug_data->navi_main_it, "controlbar", obj);
- ug_data->ctr_bar = obj;
-
- return NULL;
-}
-
-static Evas_Object *_update_tab_bar(EmailViewerUGD *ug_data)
-{
- debug_log("mailbox_type:%d", ug_data->mailbox_type);
-
- if (ug_data->mailbox_type == EMAIL_MAILBOX_TYPE_INBOX || ug_data->mailbox_type == EMAIL_MAILBOX_TYPE_SENTBOX ||
- ug_data->mailbox_type == EMAIL_MAILBOX_TYPE_TRASH || ug_data->mailbox_type == EMAIL_MAILBOX_TYPE_SPAMBOX) {
- elm_object_item_disabled_set(ug_data->reply_ctr_it, EINA_FALSE);
- elm_object_item_disabled_set(ug_data->forward_ctr_it, EINA_FALSE);
+ ug_data->move_btn = _create_toolbar_btn(ug_data->navi_bar, _("IDS_EMAIL_SK_MOVE"), _move_cb, ug_data, "naviframe/toolbar/left");
+ elm_object_item_part_content_set(ug_data->navi_main_it, "toolbar_button1", ug_data->move_btn);
+ ug_data->delete_btn = _create_toolbar_btn(ug_data->navi_bar, dgettext("sys_string", "IDS_COM_SK_DELETE"), _delete_cb, ug_data, "naviframe/toolbar/right");
+ elm_object_item_part_content_set(ug_data->navi_main_it, "toolbar_button2", ug_data->delete_btn);
}
return NULL;
return;
}
- if (ug_data->forward_ctr_it)
- elm_object_item_disabled_set(ug_data->forward_ctr_it, EINA_TRUE);
-
int scr_x = 0;
int scr_y = 0;
int scr_w = 0;
}
elm_scroller_region_show(ug_data->scroller, scr_x, scr_y, scr_w, scr_h);
+}
- if (priv && priv->download_all_cnt <= 0) {
- if (ug_data->forward_ctr_it)
- elm_object_item_disabled_set(ug_data->forward_ctr_it, EINA_FALSE);
- }
+static void _move_ctxpopup(Evas_Object *ctxpopup, Evas_Object *win)
+{
+ 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 _create_more_ctxpopup(EmailViewerUGD *ug_data)
+static void _create_more_ctxpopup(EmailViewerUGD *ug_data, Evas_Object *obj)
{
debug_log("");
if (!ug_data) {
EmailViewerProp *prop = ug_data->property;
EMAIL_CONTACT_LIST_INFO_S *contact_list_item = NULL;
contact_list_item = (EMAIL_CONTACT_LIST_INFO_S *)_contact_search_by_email(ug_data, prop->sender);
+ Evas_Object* icon = NULL;
if (ug_data->con_popup) {
evas_object_del(ug_data->con_popup);
return;
}
- if (contact_list_item) {
- debug_log("Contact Item Exist: index[%d]", contact_list_item->index);
- char index[10] = { 0, };
- snprintf(index, sizeof(index), "%d", contact_list_item->index);
-
+ debug_log("mailbox_type:%d", ug_data->mailbox_type);
+ if (ug_data->mailbox_type == EMAIL_MAILBOX_TYPE_OUTBOX) {
+ elm_ctxpopup_item_append(ug_data->con_popup, dgettext("sys_string", "IDS_COM_SK_EDIT"), NULL, _edit_email_cb, ug_data);
if (email_engine_check_seen_mail(ug_data->account_id, ug_data->mail_id))
elm_ctxpopup_item_append(ug_data->con_popup, _("IDS_EMAIL_OPT_MARK_AS_UNREAD"), NULL, _mark_as_unread_cb, ug_data);
else
elm_ctxpopup_item_append(ug_data->con_popup, _("IDS_EMAIL_OPT_MARK_AS_READ"), NULL, _mark_as_read_cb, ug_data);
-
- elm_ctxpopup_item_append(ug_data->con_popup, dgettext("sys_string", "IDS_COM_BODY_MOVE"), NULL, _move_cb, ug_data);
- elm_ctxpopup_item_append(ug_data->con_popup, _("IDS_EMAIL_OPT_SAVE_EMAIL_ABB"), NULL, _save_email_cb, ug_data);
- elm_ctxpopup_item_append(ug_data->con_popup, _("IDS_EMAIL_OPT_VIEW_CONTACT"), NULL, _ctxpopup_detail_contact_cb, g_strdup(index));
- ug_data->more_ctx_block_item = elm_ctxpopup_item_append(ug_data->con_popup, _("IDS_EMAIL_OPT_BLOCK"), NULL, _ctxpopup_add_block_rule_cb, prop->sender);
-
- _delete_contacts_list(contact_list_item);
} else {
+ elm_ctxpopup_item_append(ug_data->con_popup, dgettext("sys_string", "IDS_COM_BODY_FORWARD"), NULL, _forward_cb, ug_data);
+
if (email_engine_check_seen_mail(ug_data->account_id, ug_data->mail_id))
elm_ctxpopup_item_append(ug_data->con_popup, _("IDS_EMAIL_OPT_MARK_AS_UNREAD"), NULL, _mark_as_unread_cb, ug_data);
else
elm_ctxpopup_item_append(ug_data->con_popup, _("IDS_EMAIL_OPT_MARK_AS_READ"), NULL, _mark_as_read_cb, ug_data);
elm_ctxpopup_item_append(ug_data->con_popup, dgettext("sys_string", "IDS_COM_BODY_MOVE"), NULL, _move_cb, ug_data);
- elm_ctxpopup_item_append(ug_data->con_popup, _("IDS_EMAIL_OPT_SAVE_EMAIL_ABB"), NULL, _save_email_cb, ug_data);
- ug_data->create_contact_arg = CONTACTUI_REQ_ADD_EMAIL;
- elm_ctxpopup_item_append(ug_data->con_popup, dgettext("sys_string", "IDS_COM_OPT_ADD_TO_CONTACTS"), NULL, _ctxpopup_add_contact_cb, prop->sender);
- ug_data->more_ctx_block_item = elm_ctxpopup_item_append(ug_data->con_popup, _("IDS_EMAIL_OPT_BLOCK"), NULL, _ctxpopup_add_block_rule_cb, prop->sender);
- }
+ elm_ctxpopup_item_append(ug_data->con_popup, _("IDS_EMAIL_OPT_SAVE_EMAIL_ABB"), icon, _save_email_cb, ug_data);
+/*
+ if (contact_list_item) {
+ debug_log("Contact Item Exist: index[%d]", contact_list_item->index);
+ char index[10] = { 0, };
+ snprintf(index, sizeof(index), "%d", contact_list_item->index);
+ elm_ctxpopup_item_append(ug_data->con_popup, _("IDS_EMAIL_OPT_VIEW_CONTACT"), NULL, _ctxpopup_detail_contact_cb, g_strdup(index));
+ _delete_contacts_list(contact_list_item);
+ } else {
+ ug_data->create_contact_arg = CONTACTUI_REQ_ADD_EMAIL;
+ elm_ctxpopup_item_append(ug_data->con_popup, dgettext("sys_string", "IDS_COM_OPT_ADD_TO_CONTACTS"), NULL, _ctxpopup_add_contact_cb, prop->sender);
+ }
+ elm_ctxpopup_item_append(ug_data->con_popup, _("IDS_EMAIL_OPT_ADD_TO_CALENDAR"), NULL, _add_to_calendar_cb, ug_data);
+*/
+ if (ug_data->account_type != EMAIL_SERVER_TYPE_ACTIVE_SYNC) {
+ if (ug_data->mailbox_type != EMAIL_MAILBOX_TYPE_SPAMBOX)
+ ug_data->more_ctx_block_item = elm_ctxpopup_item_append(ug_data->con_popup, _("IDS_EMAIL_OPT_BLOCK"), NULL, _ctxpopup_add_block_rule_cb, prop->sender);
+ }
- int count, i;
- email_rule_t *rule_list = NULL;
+ if (ug_data->mailbox_type != EMAIL_MAILBOX_TYPE_SPAMBOX) {
+ int count, i;
+ email_rule_t *rule_list = NULL;
- /* get the rule list from service */
- if (email_get_rule_list(&rule_list, &count) < 0) {
- debug_log("email_get_rule_list failed");
- } else {
- if (count > 0) {
- for (i = 0; i < count; i++) {
- if (rule_list[i].type == EMAIL_FILTER_FROM) {
- debug_log("block address %s", rule_list[i].value);
-
- if (g_strcmp0(rule_list[i].value, prop->sender) == 0) {
- debug_log("[%s] already blocked", rule_list[i].value);
- if (ug_data->more_ctx_block_item)
- elm_object_item_disabled_set(ug_data->more_ctx_block_item, EINA_TRUE);
+ /* get the rule list from service */
+ if (email_get_rule_list(&rule_list, &count) < 0) {
+ debug_log("email_get_rule_list failed");
+ } else {
+ if (count > 0) {
+ for (i = 0; i < count; i++) {
+ if (rule_list[i].type == EMAIL_FILTER_FROM/*TYPE_BLOCK_ADDRESS*/) {
+ debug_log("block address %s", rule_list[i].value);
+
+ if (g_strcmp0(rule_list[i].value, prop->sender) == 0) {
+ debug_log("[%s] already blocked", rule_list[i].value);
+ if (ug_data->more_ctx_block_item)
+ elm_object_item_disabled_set(ug_data->more_ctx_block_item, EINA_TRUE);
+ }
+ }
}
}
+ /* free email rule_list */
+ email_free_rule(&rule_list, count);
}
}
- /* free email rule_list */
- email_free_rule(&rule_list, count);
}
- Evas_Coord x, y, w, h;
- evas_pointer_canvas_xy_get(ug_data->evas, &x, &y);
-// evas_object_move(ug_data->con_popup, x, y - 20);
- evas_object_geometry_get(ug_data->ctr_bar, &x, &y, &w, &h);
- debug_log("x:%d, y:%d, w:%d, h:%d, mx:%d", x, y, w, h, ((w - x) * 6) / 7);
- evas_object_move(ug_data->con_popup, ((w - x) * 6) / 7, y);
+ _move_ctxpopup(ug_data->con_popup, obj);
evas_object_show(ug_data->con_popup);
}
elm_ctxpopup_item_append(ug_data->con_popup, _("IDS_EMAIL_OPT_TO_ALL_ABB"), NULL, _reply_all_cb, ug_data);
Evas_Coord x, y, w, h;
- evas_object_geometry_get(ug_data->reply_ctr_it, &x, &y, &w, &h);
+ evas_object_geometry_get(ug_data->reply_btn, &x, &y, &w, &h);
evas_object_move(ug_data->con_popup, x + (w / 2), y);
evas_object_show(ug_data->con_popup);
}
ug_data->con_popup = NULL;
}
- ug_data->display_download_result = FALSE;
-
- _launch_composer(ug_data, RUN_COMPOSER_REPLY);
+ debug_log("mailbox_type:%d, message_class:%d", ug_data->mailbox_type, ug_data->email_data->mail_info->message_class);
+ if (ug_data->mailbox_type == EMAIL_MAILBOX_TYPE_INBOX && ug_data->email_data->mail_info->message_class == EMAIL_MESSAGE_CLASS_SMS) {
+ _launch_message_composer(ug_data);
+ } else {
+ ug_data->display_download_result = FALSE;
+ _launch_composer(ug_data, RUN_COMPOSER_REPLY);
+ }
if (ug_data->notify) {
evas_object_del(ug_data->notify);
ug_data->con_popup = NULL;
}
- ug_data->display_download_result = FALSE;
-
- _launch_composer(ug_data, RUN_COMPOSER_REPLY_ALL);
+ debug_log("mailbox_type:%d, message_class:%d", ug_data->mailbox_type, ug_data->email_data->mail_info->message_class);
+ if (ug_data->mailbox_type == EMAIL_MAILBOX_TYPE_INBOX && ug_data->email_data->mail_info->message_class == EMAIL_MESSAGE_CLASS_SMS) {
+ _launch_message_composer(ug_data);
+ } else {
+ ug_data->display_download_result = FALSE;
+ _launch_composer(ug_data, RUN_COMPOSER_REPLY_ALL);
+ }
if (ug_data->notify) {
evas_object_del(ug_data->notify);
EmailViewerUGD *ug_data = (EmailViewerUGD *)data;
- ug_data->display_download_result = FALSE;
+ if (ug_data->con_popup) {
+ evas_object_del(ug_data->con_popup);
+ ug_data->con_popup = NULL;
+ }
- _launch_composer(ug_data, RUN_COMPOSER_FORWARD);
+ debug_log("mailbox_type:%d, message_class:%d", ug_data->mailbox_type, ug_data->email_data->mail_info->message_class);
+ if (ug_data->mailbox_type == EMAIL_MAILBOX_TYPE_INBOX && ug_data->email_data->mail_info->message_class == EMAIL_MESSAGE_CLASS_SMS) {
+ _launch_message_composer(ug_data);
+ } else {
+ ug_data->display_download_result = FALSE;
+ _launch_composer(ug_data, RUN_COMPOSER_FORWARD);
+ }
}
-static void _resend_cb(void *data, Evas_Object *obj, void *event_info)
+static void _launch_message_composer(EmailViewerUGD *ug_data)
{
debug_log("");
+
+ if (!ug_data) {
+ debug_log("ug_data is NULL");
+ return;
+ }
+
+ int ret;
+ service_h service = NULL;
+
+ ret = service_create(&service);
+ debug_log("service_create: %d", ret);
+ if (!service) {
+ debug_log("service create failed");
+ return;
+ }
+
+ debug_log("full_address_from [%s]", ug_data->email_data->mail_info->full_address_from);
+#ifndef _MSG_COMPOSER_BY_APP_CONTROL_
+ ret = service_add_extra_data(service, EMAIL_BUNDLE_KEY_TO, ug_data->email_data->mail_info->full_address_from);
+ debug_log("service_add_extra_data: %d", ret);
+
+ create_ug(UG_NAME_MESSAGE_COMPOSER, service, ug_data);
+#else
+ ret = service_set_window(service, elm_win_xwindow_get(ug_data->win_main));
+ debug_log("service_set_window: %d", ret);
+ ret = service_set_app_id(service, UG_NAME_MESSAGE_COMPOSER);
+ debug_log("service_set_app_id: %d", ret);
+ ret = service_set_operation(service, SERVICE_OPERATION_SEND_TEXT);
+ debug_log("service_set_operation: %d", ret);
+ ret = service_add_extra_data(service, SERVICE_DATA_TO, ug_data->email_data->mail_info->full_address_from);
+ debug_log("service_add_extra_data: %d", ret);
+ ret = service_send_launch_request(service, NULL, NULL);
+ debug_log("service_send_launch_request: %d", ret);
+#endif
+
+ ret = service_destroy(service);
+ debug_log("service_destroy: %d", ret);
+
+ if (ug_data->notify) {
+ evas_object_del(ug_data->notify);
+ ug_data->notify = NULL;
+ }
+}
+
+static void _resend_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ debug_enter();
+ if (data == NULL) {
+ debug_log("data is NULL");
+ return;
+ }
+
+ EmailViewerUGD *ug_data = (EmailViewerUGD *)data;
+ int handle = 0;
+
+ /* Send email again */
+ debug_log("ug_data->account_id(%d), priv->account_id(%d), mail_info->account_id(%d), prop->account_id(%d)", ug_data->account_id, ug_data->email_data->account_id, ug_data->email_data->mail_info->account_id, ug_data->property->account_id);
+ debug_log("ug_data->mail_id(%d), priv->mail_id(%d), mail_info->mail_id(%d), prop->mail_id(%d)", ug_data->mail_id, ug_data->email_data->mail_id, ug_data->email_data->mail_info->mail_id, ug_data->property->mail_id);
+
+ int err = email_send_mail(ug_data->mail_id, &handle);
+ if (err != EMAIL_ERROR_NONE) {
+ debug_warning("email_send_mail failed: handle(%d) - err(%d)", handle, err);
+ } else {
+ debug_log("sending: handle(%d)", handle);
+ }
+
+ if (ug_data->isRotate == false && ug_data->b_internal) {
+ /* Viewer to hide, so set left content (mailbox) size to full */
+ _notify_mailbox_size(ug_data, "MAILBOX_RESIZE_FULL");
+ }
+
+ /* close viewer */
+ if (ug_data->b_internal) {
+ _hide_view(ug_data);
+
+ /* send next or previous mail request to mailbox. */
+/* int ret;
+ service_h service = NULL;
+
+ ret = service_create(&service);
+ debug_log("service_create: %d", ret);
+ if (!service) {
+ debug_log("service create failed");
+ return;
+ }
+
+ ret = service_add_extra_data(service, EMAIL_BUNDLE_KEY_MSG, EMAIL_BUNDLE_VAL_NEXT_MSG);
+ debug_log("service_add_extra_data: %d", ret);
+ ret = service_add_extra_data(service, EMAIL_BUNDLE_KEY_DO_DELETE, "1");
+ debug_log("service_add_extra_data: %d", ret);
+
+ ug_send_message(_g_mailbox_ug, service);
+
+ ret = service_destroy(service);
+ debug_log("service_destroy: %d", ret);*/
+ } else {
+ debug_log("ug_destory_me");
+ ug_destroy_me(ug_data->ug);
+ }
+}
+
+static void _cancel_send_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ debug_enter();
+ if (data == NULL) {
+ debug_log("data is NULL");
+ return;
+ }
+
+ EmailViewerUGD *ug_data = (EmailViewerUGD *)data;
+
+ debug_log("ug_data->account_id(%d), priv->account_id(%d), mail_info->account_id(%d), prop->account_id(%d)", ug_data->account_id, ug_data->email_data->account_id, ug_data->email_data->mail_info->account_id, ug_data->property->account_id);
+ debug_log("ug_data->mail_id(%d), priv->mail_id(%d), mail_info->mail_id(%d), prop->mail_id(%d)", ug_data->mail_id, ug_data->email_data->mail_id, ug_data->email_data->mail_info->mail_id, ug_data->property->mail_id);
+
+ int err = email_cancel_sending_mail(ug_data->mail_id);
+ if (err != EMAIL_ERROR_NONE) {
+ debug_warning("email_engine_cancel_send_mail failed - err(%d)", err);
+ }
+}
+
+static void _edit_email_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ debug_enter();
+ if (data == NULL) {
+ debug_log("data is NULL");
+ return;
+ }
+
+ EmailViewerUGD *ug_data = (EmailViewerUGD *)data;
+
+ if (ug_data->con_popup) {
+ evas_object_del(ug_data->con_popup);
+ ug_data->con_popup = NULL;
+ }
+
+ int ret;
+ service_h service = NULL;
+
+ ret = service_create(&service);
+ debug_log("service_create: %d", ret);
+ if (!service) {
+ debug_log("service create failed");
+ return;
+ }
+
+ char rtype[10] = { 0, };
+ snprintf(rtype, sizeof(rtype), "%d", RUN_COMPOSER_EDIT);
+ char acctid[10] = { 0, };
+ snprintf(acctid, sizeof(acctid), "%d", ug_data->account_id);
+ char mailboxid[10] = { 0, };
+ snprintf(mailboxid, sizeof(mailboxid), "%d", ug_data->mailbox_id);
+ char mailid[10] = { 0, };
+ snprintf(mailid, sizeof(mailid), "%d", ug_data->mail_id);
+
+ ret = service_add_extra_data(service, EMAIL_BUNDLE_KEY_RUN_TYPE, rtype);
+ debug_log("service_add_extra_data: %d", ret);
+ ret = service_add_extra_data(service, EMAIL_BUNDLE_KEY_ACCOUNT_ID, acctid);
+ debug_log("service_add_extra_data: %d", ret);
+ ret = service_add_extra_data(service, EMAIL_BUNDLE_KEY_MAILBOX, mailboxid);
+ debug_log("service_add_extra_data: %d", ret);
+ ret = service_add_extra_data(service, EMAIL_BUNDLE_KEY_MAIL_ID, mailid);
+ debug_log("service_add_extra_data: %d", ret);
+
+ ug_data->ug_composer = create_ug(UG_NAME_EMAIL_COMPOSER, service, ug_data);
+
+ ret = service_destroy(service);
+ debug_log("service_destroy: %d", ret);
}
static void _delete_cb(void *data, Evas_Object *obj, void *event_info)
dgettext("sys_string", "IDS_COM_SK_CANCEL"), _popup_response_cb, NULL);
} else {
_create_notify_3btn(ug_data, NULL, dgettext("sys_string", "IDS_COM_POP_DELETE_Q"),
- 2, N_("Delete permanently"), _popup_response_delete_ok_cb,
+ 2, dgettext("sys_string", "IDS_COM_SK_DELETE"), _popup_response_delete_ok_cb,
dgettext("sys_string", "IDS_COM_SK_CANCEL"), _popup_response_cb, NULL, NULL, NULL);
}
}
ug_data->itc1.func.del = _gl_del;
Elm_Object_Item *navi_it = NULL;
- navi_it = elm_naviframe_item_push(ug_data->navi_bar, dgettext("sys_string", "IDS_COM_BODY_MOVE"), NULL, NULL, gl, NULL);
+ navi_it = elm_naviframe_top_item_get(ug_data->navi_bar);
+ navi_it = elm_naviframe_item_insert_after(ug_data->navi_bar, navi_it, dgettext("sys_string", "IDS_COM_BODY_MOVE"), NULL, NULL, gl, NULL);
ug_data->navi_move_it1 = navi_it;
if (ug_data->isRotate)
elm_naviframe_item_title_visible_set(ug_data->navi_move_it1, EINA_FALSE);
elm_layout_theme_set(ug_data->layout_main, "layout", "application", "default");*/
Evas_Object *move_back_btn = NULL;
- if (ug_data->isRotate) {
- ug_data->move_cbar = elm_toolbar_add(ug_data->navi_bar);
- elm_toolbar_shrink_mode_set(ug_data->move_cbar, ELM_TOOLBAR_SHRINK_EXPAND);
- elm_object_style_set(ug_data->move_cbar, "naviframe");
- evas_object_show(ug_data->move_cbar);
-
- elm_object_item_disabled_set(elm_toolbar_item_append(ug_data->move_cbar, NULL, "", NULL, NULL), EINA_TRUE);
- elm_toolbar_item_append(ug_data->move_cbar, NULL, dgettext("sys_string", "IDS_COM_SK_CANCEL"), _move_back_cb, ug_data);
- elm_object_item_part_content_set(navi_it, "controlbar", ug_data->move_cbar);
-
- move_back_btn = elm_object_item_part_content_get(navi_it, "prev_btn");
- if (move_back_btn) {
- evas_object_del(move_back_btn);
- elm_object_item_part_content_set(navi_it, "prev_btn", NULL);
- }
- } else {
- move_back_btn = elm_object_item_part_content_get(navi_it, "prev_btn");
- if (move_back_btn) {
- evas_object_del(move_back_btn);
- move_back_btn = elm_button_add(ug_data->navi_bar);
- elm_object_style_set(move_back_btn, "naviframe/back_btn/default");
- evas_object_smart_callback_add(move_back_btn, "clicked", _move_back_cb, ug_data);
- elm_object_item_part_content_set(navi_it, "prev_btn", move_back_btn);
- }
+ move_back_btn = elm_object_item_part_content_get(navi_it, "prev_btn");
+ if (move_back_btn) {
+ evas_object_del(move_back_btn);
+ move_back_btn = elm_button_add(ug_data->navi_bar);
+ elm_object_style_set(move_back_btn, "naviframe/back_btn/default");
+ evas_object_smart_callback_add(move_back_btn, "clicked", _move_back_cb, ug_data);
+ elm_object_item_part_content_set(navi_it, "prev_btn", move_back_btn);
}
}
EmailViewerUGD *ug_data = (EmailViewerUGD *)data;
- _create_more_ctxpopup(ug_data);
+ _create_more_ctxpopup(ug_data, obj);
}
static void _body_down_cb(void *data, Evas_Object *obj, void *event_info)
if (ret == TRUE) {
priv->email_handle = handle;
- debug_log("succeed in email_engine_body_download");
+ debug_log("succeed in email_engine_body_download(handle:%d)", priv->email_handle);
_create_down_progress(dgettext("sys_string", "IDS_COM_POP_DOWNLOADING"), _destroy_down_progress_cb);
/* If attachment download is in progress, first cancel to attachment download of the mail and then carry out body download */
switch(prop->favorite)
{
case EMAIL_FLAG_NONE:
- elm_icon_file_set(favorite_icon, IMGDIR "/M02_email_icon_favorite_off.png", NULL);
+ elm_icon_file_set(favorite_icon, IMGDIR "/M02_icon_favorite_off_74x74.png", NULL);
break;
case EMAIL_FLAG_FLAGED:
- elm_icon_file_set(favorite_icon, IMGDIR "/M02_email_icon_favorite_on.png", NULL);
+ elm_icon_file_set(favorite_icon, IMGDIR "/M02_icon_favorite_on_74x74.png", NULL);
break;
case EMAIL_FLAG_TASK_STATUS_CLEAR:
elm_icon_file_set(favorite_icon, IMGDIR "/M02_email_Flag_Clear.png", NULL);
}
EmailViewerUGD *ug_data = (EmailViewerUGD *)data;
- EmailViewerPrivate *priv = ug_data->email_data;
if (ug_data->con_popup) {
evas_object_del(ug_data->con_popup);
}
int err = 0;
- debug_log("ug_data->mail_id(%d), priv->mail_id(%d), mail_info->mail_id(%d))", ug_data->mail_id, priv->mail_id, priv->mail_info->mail_id);
+ debug_log("ug_data->mail_id(%d), priv->mail_id(%d), mail_info->mail_id(%d), prop->mail_id(%d)", ug_data->mail_id, ug_data->email_data->mail_id, ug_data->email_data->mail_info->mail_id, ug_data->property->mail_id);
err = email_set_flags_field(ug_data->account_id, &ug_data->mail_id, 1, EMAIL_FLAGS_SEEN_FIELD, 0, 1);
debug_log("email_set_flags_field - err(%d)", err);
}
EmailViewerUGD *ug_data = (EmailViewerUGD *)data;
- EmailViewerPrivate *priv = ug_data->email_data;
if (ug_data->con_popup) {
evas_object_del(ug_data->con_popup);
}
int err = 0;
- debug_log("ug_data->mail_id(%d), priv->mail_id(%d), mail_info->mail_id(%d))", ug_data->mail_id, priv->mail_id, priv->mail_info->mail_id);
+ debug_log("ug_data->mail_id(%d), priv->mail_id(%d), mail_info->mail_id(%d), prop->mail_id(%d)", ug_data->mail_id, ug_data->email_data->mail_id, ug_data->email_data->mail_info->mail_id, ug_data->property->mail_id);
- err = email_set_flags_field(priv->mail_info->account_id, &ug_data->mail_id, 1, EMAIL_FLAGS_SEEN_FIELD, 1, 1);
+ err = email_set_flags_field(ug_data->account_id, &ug_data->mail_id, 1, EMAIL_FLAGS_SEEN_FIELD, 1, 1);
debug_log("email_set_flags_field - err(%d)", err);
if (err != EMAIL_ERROR_NONE) {
EmailViewerUGD *ug_data = (EmailViewerUGD *)data;
int err = 0;
- debug_log("ug_data->mail_id(%d), priv->mail_id(%d), mail_info->mail_id(%d))", ug_data->mail_id, ug_data->email_data->mail_id, ug_data->email_data->mail_info->mail_id);
+ debug_log("ug_data->mail_id(%d), priv->mail_id(%d), mail_info->mail_id(%d), prop->mail_id(%d)", ug_data->mail_id, ug_data->email_data->mail_id, ug_data->email_data->mail_info->mail_id, ug_data->property->mail_id);
email_mail_data_t *mail_t = NULL;
err = email_get_mail_data(ug_data->email_data->mail_id, &mail_t);
err = email_get_attachment_data_list(ug_data->email_data->mail_id, &attachment_t, &attachment_count);
debug_log("email_get_attachment_data_list - err (%d)", err);
- char file_name[MAX_PATH_LEN] = { 0, };
- snprintf(file_name, sizeof(file_name), "%s_%d_%d.%s", DIR_DEFAULT_MEDIA_PHONE"/Downloads/email", ug_data->account_id, ug_data->mail_id, "eml");
- char *output_file_path = g_strdup(file_name);
- debug_log("output_file_path(%s)", file_name, output_file_path);
+ if (err == EMAIL_ERROR_NONE) {
+ char file_name[MAX_PATH_LEN] = { 0, };
+ snprintf(file_name, sizeof(file_name), "%s_%d_%d.%s", DIR_DEFAULT_MEDIA_PHONE"/Downloads/email", ug_data->account_id, ug_data->mail_id, "eml");
+ char *output_file_path = g_strdup(file_name);
+ debug_log("output_file_path(%s)", file_name, output_file_path);
- err = email_write_mime_file(mail_t, attachment_t, attachment_count, &output_file_path);
- debug_log("email_write_mime_file - err(%d)", err);
+ err = email_write_mime_file(mail_t, attachment_t, attachment_count, &output_file_path);
+ debug_log("email_write_mime_file - err(%d)", err);
- g_free(output_file_path);
+ g_free(output_file_path);
+ }
if (mail_t) {
email_free_mail_data(&(mail_t), 1);
mail_t = NULL;
}
- if (attachment_t && attachment_count > 0) {
- email_free_attachment_data(&(attachment_t), attachment_count);
- attachment_t = NULL;
- attachment_count = 0;
- }
-
if (ug_data->timeout_popup) {
evas_object_del(ug_data->timeout_popup);
ug_data->timeout_popup = NULL;
#endif
}
+ if (attachment_t && attachment_count > 0) {
+ email_free_attachment_data(&(attachment_t), attachment_count);
+ attachment_t = NULL;
+ attachment_count = 0;
+ }
+
if (ug_data->waiting_timer) {
ecore_timer_del(ug_data->waiting_timer);
ug_data->waiting_timer = NULL;
}
email_free_rule(&rule, 1);
+
+ if (ug_data->isRotate == false && ug_data->b_internal) {
+ _notify_mailbox_size(ug_data, "MAILBOX_RESIZE_FULL");
+ }
+
+ /* close viewer */
+ if (ug_data->b_internal) {
+ _hide_view(ug_data);
+ } else {
+ debug_log("ug_destory_me");
+ ug_destroy_me(ug_data->ug);
+ }
}
static void _popup_waiting_response_cb(void *data, Evas_Object *obj, void *event_info)
{
debug_log("");
- if (!_g_ug_data) {
- debug_log("_g_ug_data is NULL");
- return;
- }
-
if (!data) {
debug_log("data is NULL");
return;
{
debug_log("");
if (!_g_ug_data) {
- debug_log("data is NULL");
+ debug_log("_g_ug_data is NULL");
return;
}
debug_log("service_destroy: %d", ret);
}
} else {
+ debug_log("Loading...");
if (ug_data->timeout_popup) {
evas_object_del(ug_data->timeout_popup);
ug_data->timeout_popup = NULL;
debug_log("");
}
+static void _mbe_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ debug_log("");
+ EmailViewerUGD *ug_data = (EmailViewerUGD *)data;
+ elm_object_focus_set(ug_data->con_popup, EINA_TRUE);
+}
+
static void _mbe_added_cb(void *data, Evas_Object *obj, void *event_info)
{
debug_log("");
_delete_contacts_list(contact_list_item);
} else {
ug_data->create_contact_arg = CONTACTUI_REQ_ADD_EMAIL;
- elm_ctxpopup_item_append(ug_data->con_popup, dgettext("sys_string", "IDS_COM_OPT_ADD_TO_CONTACTS"), NULL, _ctxpopup_add_contact_cb, addrs_info->address);
+ elm_ctxpopup_item_append(ug_data->con_popup, dgettext("sys_string", "IDS_COM_OPT_ADD_TO_CONTACTS"), NULL, _ctxpopup_add_contact_cb/*_ctxpopup_select_contact_mode_email_cb*//*_ctxpopup_create_contact_cb*/, addrs_info->address);
elm_ctxpopup_item_append(ug_data->con_popup, _("IDS_EMAIL_OPT_SEND_EMAIL"), NULL, _ctxpopup_send_email_cb, addrs_info->address);
ug_data->ctx_block_item = elm_ctxpopup_item_append(ug_data->con_popup, _("IDS_EMAIL_OPT_BLOCK"), NULL, _ctxpopup_add_block_rule_cb, addrs_info->address);
}
/* get the rule list from service */
if (email_get_rule_list(&rule_list, &count) < 0) {
- debug_log("email_get_rule_list failed");
+ debug_log("email_get_rule_list failed");
} else {
if (count > 0) {
for (i = 0; i < count; i++) {
}
evas_pointer_canvas_xy_get(ug_data->evas, &x, &y);
- debug_log("canvas x:%d, y:%d", x, y);
+ debug_log("canvas x:%d, y:%d", x, y);
evas_object_move(ug_data->con_popup, x, y);
evas_object_show(ug_data->con_popup);
}
EmailViewerUGD *ug_data = (EmailViewerUGD *)data;
- _create_tab_bar(ug_data);
-
/* check mail body downloaded */
int body_download_status = ug_data->property->body_download;
}
ug_data->select_info = elm_notify_add(ug_data->win_main);
- elm_notify_orient_set(ug_data->select_info, ELM_NOTIFY_ORIENT_BOTTOM);
+ elm_notify_align_set(ug_data->select_info, ELM_NOTIFY_ALIGN_FILL, 1.0);
ug_data->selectioninfo_layout = elm_layout_add(ug_data->layout_main);
elm_object_content_set(ug_data->select_info, ug_data->selectioninfo_layout);
- elm_layout_theme_set(ug_data->selectioninfo_layout, "standard", "selectioninfo", "vertical/bottom_64");
+ elm_layout_theme_set(ug_data->selectioninfo_layout, "standard", "selectioninfo", "center_text");
edje_object_part_text_set(_EDJ(ug_data->selectioninfo_layout), "elm.text", str);
elm_notify_timeout_set(ug_data->select_info, 3);
if (priv->b_all_att_save)
return;
- if (att_len > 0) {
- if (ug_data->forward_ctr_it)
- elm_object_item_disabled_set(ug_data->forward_ctr_it, EINA_TRUE);
- }
-
for (i = 0; i < att_len; i++) {
info = g_list_nth_data(prop->attachments, i);
_destroy_down_progress_ex((void *)attach_index, NULL, NULL);
_show_attachment(ug_data, attach_index);
}
+ } else { // for updating attachments
+ attach_index = _update_attachment_info(ug_data, attachment_id);
+ debug_log("attach_index [%d]", attach_index);
}
} else {
debug_log("mail_id or attachment_id is different");
return NULL;
}
- int ret = CTS_SUCCESS;
- CTSiter *iter = NULL;
-
- EMAIL_CONTACT_LIST_INFO_S *contacts_list_item = NULL;
- contacts_svc_connect();
-
- debug_log("search_word = %s", search_word);
-
- if (contacts_svc_get_list_with_str(CTS_LIST_EMAILINFOS_WITH_EMAIL, search_word, &iter) != CTS_SUCCESS) {
+ if (contacts_connect2() != CONTACTS_ERROR_NONE) {
+ debug_log("Fail of contacts_connect2 !!!");
return NULL;
}
- ret = contacts_svc_iter_next(iter);
-
- if (CTS_SUCCESS == ret) {
- CTSvalue *row_info = NULL;
-
- row_info = contacts_svc_iter_get_info(iter);
- if (row_info) {
- contacts_list_item = (EMAIL_CONTACT_LIST_INFO_S *)calloc(1, sizeof(EMAIL_CONTACT_LIST_INFO_S));
-
- int index = contacts_svc_value_get_int(row_info, CTS_LIST_EMAIL_CONTACT_ID_INT);
+ int ct_ret = CONTACTS_ERROR_NONE;
+ EMAIL_CONTACT_LIST_INFO_S *contacts_list_item = NULL;
+ Eina_List *contacts_list = NULL;
+ contacts_list_h list = NULL;
- contacts_list_item->index = index;
- contacts_list_item->display = g_strdup(contacts_svc_value_get_str(row_info, CTS_LIST_EMAIL_CONTACT_DISPLAY_STR));
- contacts_list_item->email_address = g_strdup(contacts_svc_value_get_str(row_info, CTS_LIST_EMAIL_ADDR_STR));
+ ct_ret = email_get_contacts_list(CONTACTS_MATCH_EXACTLY, &list, search_word);
+ debug_log("email_get_contacts_record: list : %d", list);
- snprintf(contacts_list_item->display_name, sizeof(contacts_list_item->display_name), "%s", contacts_list_item->display);
- }
+ if (!list) {
+ debug_log("list is NULL");
+ contacts_list_destroy(list, true);
+ contacts_disconnect2();
+ return contacts_list;
+ }
- contacts_svc_value_free(row_info);
- row_info = NULL;
+ contacts_list_item = (EMAIL_CONTACT_LIST_INFO_S *)calloc(1, sizeof(EMAIL_CONTACT_LIST_INFO_S));
+ contacts_list_item->ugd = ug_data;
- contacts_svc_iter_remove(iter);
- }
+ ct_ret = email_get_contacts_list_info(list, contacts_list_item);
+ debug_log("email_get_contacts_list_info: contacts_list_item : %d", contacts_list_item);
- contacts_svc_disconnect();
+ contacts_list_destroy(list, true);
+ contacts_disconnect2();
- return contacts_list_item;
+ return contacts_list;
}
static void _set_value_down_progress(double val)
} else if (type == EMAIL_ERROR_FAILED_BY_SECURITY_POLICY) {
ret = _("IDS_EMAIL_POP_DOWNLOADING_ATTACHMENTS_ON_THE_MOBILE_DEVICE_IS_NOT_ALLOWED_BY_EXCHANGE_SERVER_POLICY");
return g_strdup(ret);
+ } else if (type == EMAIL_ERROR_NETWORK_NOT_AVAILABLE) {
+ ret = N_("Network not available");
+ return g_strdup(ret);
+ } else if (type == EMAIL_ERROR_FLIGHT_MODE) {
+ ret = N_("Flight mode enabled");
+ return g_strdup(ret);
+ } else if (type == EMAIL_ERROR_NO_RESPONSE) {
+ ret = N_("No server response");
+ return g_strdup(ret);
+ } else if (type == EMAIL_ERROR_DISCONNECTED) {
+ ret = N_("Disconnected");
+ return g_strdup(ret);
+ } else if (type == EMAIL_ERROR_CONNECTION_BROKEN) {
+ ret = N_("Connection broken");
+ return g_strdup(ret);
} else {
snprintf(str, sizeof(str), "%s (%d)", dgettext("sys_string", "IDS_COM_POP_UNKNOWN_ERROR_OCCURRED"), type);
return g_strdup(str);
EmailViewerUGD *ug_data = (EmailViewerUGD *)data;
- elm_naviframe_item_pop(ug_data->navi_bar);
+ elm_object_item_del(ug_data->navi_move_it1);
ug_data->navi_move_it1 = NULL;
/*if (ug_data->b_internal)