void _delete_email(EmailViewerUGD *ug_data);
void _notify_mailbox_size(EmailViewerUGD *ug_data, char *size);
+int viewer_get_filepath_from_path(char *default_path, char *origin_path, char *new_path, Eina_Bool get_new_path);
+Eina_Bool viewer_save_file(const gchar *path, const gchar *buf, gsize len); // for saving images
#endif /* __DEF_email_viewer_utils_H__ */
/* EOF */
#define ICON_CONTROLBAR_MORE IMGDIR"/M02_controlbar_icon_more.png"
#define EMAIL_DEFAULT_HTML "file://"DATADIR"/_email_default.html"
+#define EMAIL_VIEWER_TMP_FOLDER DIR_TMP_PREFIX"/email_viewer"
#define EMAIL_VIEWER_NOC_WIDTH 710.0
#define EMAIL_VIEWER_NOC_HIGHT 949.0
return;
}
- email_account_t *account = NULL;
- if (!email_engine_get_account_full_data(mail_info->account_id, &account)) {
- debug_log("Failed email_engine_get_account_full_data");
- return;
- }
-
- if (account) {
- account_user_data_t *ud = (account_user_data_t*)account->user_data;
- if (ud != NULL) {
- debug_log("send_read_report is %d", ud->send_read_report);
- prop->request_report = ud->send_read_report;
- }
- email_free_account(&account, 1);
- account = NULL;
- }
+ prop->request_report = (mail_info->report_status & EMAIL_MAIL_REQUEST_MDN) ? TRUE : FALSE;
debug_log("request_report (%d)", prop->request_report);
}
ret = service_destroy(service);
debug_log("service_destroy: %d", ret);
}
+
+int viewer_get_filepath_from_path(char *default_path, char *origin_path, char *new_path, Eina_Bool get_new_path)
+{
+ debug_log("");
+ RETURN_VAL_IF_FAIL(STR_VALID(origin_path), EMAIL_EXT_SAVE_ERR_UNKNOWN);
+
+ int err = EMAIL_EXT_SAVE_ERR_NONE;
+ gchar tmp_path[MAX_PATH_LEN] = { 0, };
+ gchar new_filename[MAX_PATH_LEN] = { 0, };
+ gchar prefix[MAX_PATH_LEN] = { 0, };
+ gint max_length = MAX_PATH_LEN;
+
+ snprintf(prefix, sizeof(prefix), "%s", default_path);
+
+ debug_log("prefix:%s", prefix);
+
+ memset(new_path, 0, sizeof(MAX_PATH_LEN));
+ memset(tmp_path, 0, sizeof(MAX_PATH_LEN));
+
+ if (STR_LEN(tmp_path) == 0) {
+ g_sprintf(tmp_path, "%s", origin_path);
+ }
+
+ gchar *file_name = NULL;
+ gchar *file_ext = NULL;
+ gchar *file_path = email_parse_get_filepath_from_path(tmp_path);
+ email_parse_get_filename_n_ext_from_path(tmp_path, &file_name, &file_ext);
+
+ debug_log("file_name:%s", file_name);
+ debug_log("file_ext:%s", file_ext);
+
+ if (file_ext == NULL)
+ file_ext = "";
+
+ if (STR_VALID(file_name) && file_ext != NULL) {
+ debug_log("");
+ int num = 1;
+ if (STR_LEN(file_name) + STR_LEN(file_ext) > max_length - STR_LEN(prefix)) {
+ gint available_len = max_length - STR_LEN(prefix);
+
+ if (STR_VALID(file_ext)) {
+ available_len -= STR_LEN(file_ext);
+ }
+
+ gchar *new_name = email_cut_text_by_byte_len(file_name, available_len);
+
+ if (STR_VALID(new_name)) {
+ g_sprintf(new_path, "%s/%s%s", prefix, new_name, file_ext);
+ g_sprintf(new_filename, "%s%s", new_name, file_ext);
+ g_free(new_name); /* MUST BE. */
+ }
+ } else {
+ g_sprintf(new_path, "%s/%s%s", prefix, file_name, file_ext);
+ }
+
+ do {
+ if (access(new_path, F_OK) != -1) {
+ debug_log("file existed");
+ if (get_new_path == EINA_TRUE) {
+ memset(new_path, 0, sizeof(MAX_PATH_LEN));
+ gint available_len = max_length - STR_LEN(prefix);
+ if (STR_VALID(file_ext)) {
+ available_len -= STR_LEN(file_ext);
+ }
+ gchar *new_name = email_cut_text_by_byte_len(file_name, available_len);
+ g_sprintf(new_path, "%s/%s(%d)%s", prefix, new_name, num++, file_ext);
+ g_free(new_name);
+ err = EMAIL_EXT_SAVE_ERR_ALREADY_EXIST;
+ } else {
+ err = EMAIL_EXT_SAVE_ERR_ALREADY_EXIST;
+ break;
+ }
+ } else {
+ debug_log("file path is valid.");
+ break;
+ }
+ } while(1);
+ }
+
+ if (STR_VALID(file_path)) {
+ g_free(file_path); /* MUST BE. */
+ }
+
+ if (STR_VALID(file_name)) {
+ g_free(file_name); /* MUST BE. */
+ }
+
+ if (STR_VALID(file_ext)) {
+ g_free(file_ext); /* MUST BE. */
+ }
+
+ debug_log("new_path:%s", new_path);
+
+ return err;
+}
+
+Eina_Bool viewer_save_file(const gchar *path, const gchar *buf, gsize len)
+{
+ debug_log("path (%s)", path);
+
+ Eina_Bool success_flag = EINA_TRUE;
+
+ 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);
+ debug_log("nwrite(%d)", nwrite);
+ if (nwrite == -1) {
+ debug_log("fail to write");
+ success_flag = EINA_FALSE;
+ close(fd);
+ }
+ close(fd);
+ } else {
+ debug_log("fail to open");
+ success_flag = EINA_FALSE;
+ }
+ } else {
+ debug_log("check the buf!!");
+ success_flag = EINA_FALSE;
+ }
+
+ return success_flag;
+}
+
/* EOF */
#include "email-viewer-webview.h"
#include "email-viewer-js.h"
-
+#include "email-viewer-utils.h"
#include "email-debug.h"
#include "email-engine.h"
#include "email-html-converter.h"
/* Double_Scroller */
static void _webview_edge_top_cb(void *data, Evas_Object *obj, void *event_info);
static void _webview_edge_bottom_cb(void *data, Evas_Object *obj, void *event_info);
-static void _webview_scroll_down_cb(void *data, Evas_Object *obj, void *event_info);
static void _webview_scroll_up_cb(void *data, Evas_Object *obj, void *event_info);
+static void _webview_scroll_down_cb(void *data, Evas_Object *obj, void *event_info);
+static void _webview_mouse_down_cb(void *data, Evas * evas, Evas_Object *obj, void *event_info);
+static void _webview_contextmenu_customize_cb(void *data, Evas_Object *webview, void *event_info);
+static void _webview_contextmenu_selected_cb(void *data, Evas_Object *webview, void *event_info);
static int _send_read_report_mail(EmailViewerUGD *ug_data);
extern EmailViewerUGD *_g_ug_data;
extern ui_gadget_h _g_mailbox_ug;
+static int _g_pos_x;
+static int _g_pos_y;
+
Evas_Object *viewer_get_webview(EmailViewerUGD *ug_data, gboolean has_html)
{
debug_log("");
ewk_view_vertical_panning_hold_set(ug_data->webview, EINA_TRUE);
evas_object_smart_callback_add(ug_data->webview, "edge,top", _webview_edge_top_cb, ug_data);
evas_object_smart_callback_add(ug_data->webview, "edge,bottom", _webview_edge_bottom_cb, ug_data);
- evas_object_smart_callback_add(ug_data->webview, "scroll,down", _webview_scroll_down_cb, ug_data);
evas_object_smart_callback_add(ug_data->webview, "scroll,up", _webview_scroll_up_cb, ug_data);
+ evas_object_smart_callback_add(ug_data->webview, "scroll,down", _webview_scroll_down_cb, ug_data);
/*evas_object_smart_callback_add(ug_data->webkit, "load,progress", _webview_progressed_cb, ug_data);*/
evas_object_smart_callback_add(ug_data->webview, "load,committed", _webview_load_committed_cb, ug_data);
evas_object_smart_callback_add(ug_data->webview, "load,progress", _webview_load_progress_cb, ug_data);
evas_object_smart_callback_add(ug_data->webview, "load,error", _webview_load_error_cb, ug_data);
+ evas_object_smart_callback_add(ug_data->webview, "contextmenu,customize", _webview_contextmenu_customize_cb, ug_data);
+ evas_object_smart_callback_add(ug_data->webview, "contextmenu,selected", _webview_contextmenu_selected_cb, ug_data);
+
+ evas_object_event_callback_add(ug_data->webview, EVAS_CALLBACK_MOUSE_DOWN, _webview_mouse_down_cb, ug_data);
+
evas_object_show(ug_data->webview);
return ug_data->webview;
ewk_view_scale_range_get(ug_data->webview, &mins, &maxs);
debug_log("mins : %f , maxs : %f", mins, maxs);
+ int send_read_report = 0;
+ email_account_t *account = NULL;
+ if (email_engine_get_account_full_data(ug_data->account_id, &account)) {
+ if (account) {
+ account_user_data_t *ud = (account_user_data_t*)account->user_data;
+ if (ud) {
+ debug_log("send_read_report: %d", ud->send_read_report);
+ send_read_report = ud->send_read_report;
+ }
+ email_free_account(&account, 1);
+ account = NULL;
+ }
+ }
- debug_log("flags_seen_field:%d, request_report:%d, report_status:%d", ug_data->email_data->mail_info->flags_seen_field, 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 && ug_data->property->request_report == TRUE && (ug_data->email_data->mail_info->report_status & EMAIL_MAIL_REQUEST_MDN)) {
+ 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);
debug_log("send_result (%d)", send_result);
if (send_result != 1) {
// debug_log("");
}
+static void _webview_mouse_down_cb(void *data, Evas * evas, Evas_Object *obj, void *event_info)
+{
+ debug_log("");
+
+ Evas_Event_Mouse_Down *mouse_info = (Evas_Event_Mouse_Down *)event_info;
+ debug_log("output position: [%d, %d]", mouse_info->output.x, mouse_info->output.y);
+ _g_pos_x = mouse_info->output.x;
+ _g_pos_y = mouse_info->output.y;
+}
+
static int _send_read_report_mail(EmailViewerUGD *ug_data)
{
debug_log("");
}
#endif
+static void _webview_contextmenu_customize_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ debug_log("");
+
+ int i = 0, count = 0;
+ Eina_Bool isText = EINA_TRUE, isImage = EINA_FALSE;
+ Ewk_Context_Menu* contextmenu = (Ewk_Context_Menu*)event_info;
+ Ewk_Context_Menu_Item* menu_item = NULL;
+ Ewk_Context_Menu_Item_Tag menu_item_tag = EWK_CONTEXT_MENU_ITEM_TAG_NO_ACTION;
+
+ count = ewk_context_menu_item_count(contextmenu);
+ menu_item = ewk_context_menu_nth_item_get(contextmenu, 0);
+ menu_item_tag = ewk_context_menu_item_tag_get(menu_item);
+ debug_log("menu_item_tag : %d", menu_item_tag);
+
+ switch (menu_item_tag) {
+ case EWK_CONTEXT_MENU_ITEM_TAG_SEARCH_WEB: // text selection
+ isText = EINA_TRUE;
+ break;
+ case EWK_CONTEXT_MENU_ITEM_TAG_OPEN_LINK: // image or link selection
+ isText = EINA_FALSE;
+ isImage = EINA_TRUE;
+ break;
+ default:
+ debug_log("No context menu");
+ return;
+ }
+
+ for (i = 0; i < count; i++) {
+ menu_item = ewk_context_menu_nth_item_get(contextmenu, 0);
+ menu_item_tag = ewk_context_menu_item_tag_get(menu_item);
+ debug_log("menu_item_tag in for: %d", menu_item_tag);
+ if (menu_item_tag == EWK_CONTEXT_MENU_ITEM_TAG_TEXT_SELECTION_MODE) { // It is not an image.
+ isImage = EINA_FALSE;
+ }
+ ewk_context_menu_item_remove(contextmenu, menu_item);
+ }
+
+ if (isText == EINA_TRUE) {
+ ewk_context_menu_item_append_as_action(contextmenu, EWK_CONTEXT_MENU_ITEM_TAG_COPY, _("IDS_EMAIL_OPT_COPY"), EINA_TRUE);
+// ewk_context_menu_item_append_as_action(contextmenu, EWK_CONTEXT_MENU_ITEM_BASE_APPLICATION_TAG + 4, _("IDS_EMAIL_OPT_SHARE"), EINA_TRUE);
+ ewk_context_menu_item_append(contextmenu, EWK_CONTEXT_MENU_ITEM_BASE_APPLICATION_TAG, NULL, IMGDIR"/icon_search.png", EINA_TRUE);
+ } else {
+ if (isImage == EINA_TRUE) {
+ ewk_context_menu_item_append_as_action(contextmenu, EWK_CONTEXT_MENU_ITEM_TAG_COPY_IMAGE_TO_CLIPBOARD, _("IDS_EMAIL_OPT_COPY_IMAGE"), EINA_TRUE);
+ ewk_context_menu_item_append_as_action(contextmenu, EWK_CONTEXT_MENU_ITEM_BASE_APPLICATION_TAG + 1, _("IDS_EMAIL_OPT_SAVE_IMAGE"), EINA_TRUE);
+ ewk_context_menu_item_append_as_action(contextmenu, EWK_CONTEXT_MENU_ITEM_BASE_APPLICATION_TAG + 2, _("IDS_EMAIL_OPT_VIEW_IMAGE"), EINA_TRUE);
+ }
+ }
+}
+
+static void _webview_contextmenu_selected_cb(void *data, Evas_Object *webview, void *event_info)
+{
+ debug_log("");
+
+ EmailViewerUGD *ug_data = (EmailViewerUGD *)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;
+ gchar *img_buf = NULL;
+ char *img_url = NULL;
+ Ewk_Hit_Test *ewk_hit_test = NULL;
+ gchar new_path[MAX_PATH_LEN] = { 0, };
+
+ debug_log("menu_item : %d", menu_item);
+ menu_item_tag = ewk_context_menu_item_tag_get(menu_item);
+ debug_log("menu_item_tag : %d", menu_item_tag);
+
+ img_url = (char *)ewk_context_menu_item_image_url_get(menu_item);
+ debug_log("View image : img_url(%s)", img_url);
+
+ if (img_url != NULL) {
+ ewk_hit_test = ewk_view_hit_test_new(ug_data->webview, _g_pos_x, _g_pos_y, EWK_HIT_TEST_RESULT_CONTEXT_IMAGE);
+
+ if (ewk_hit_test != NULL) {
+ char *ext = NULL;
+ img_buf = ewk_hit_test_image_buffer_get(ewk_hit_test);
+ img_buf_len = ewk_hit_test_image_buffer_length_get(ewk_hit_test);
+ debug_log("View image : img_buf_len(%d)", img_buf_len);
+ ext = (char *)ewk_hit_test_image_file_name_extension_get(ewk_hit_test);
+ debug_log("View image : ext(%s)", ext);
+ }
+ }
+
+ switch (menu_item_tag) {
+ case EWK_CONTEXT_MENU_ITEM_BASE_APPLICATION_TAG : //Smart search
+ {
+ service_h service = NULL;
+ const char *keyword = NULL;
+ keyword = ewk_view_text_selection_text_get(ug_data->webview);
+ debug_log("keyword : %s", keyword);
+
+ service_create(&service);
+ service_set_operation(service, SERVICE_OPERATION_SEARCH);
+ service_add_extra_data(service, "http://tizen.org/appcontrol/data/keyword", keyword);
+ service_send_launch_request(service, NULL, NULL);
+ service_destroy(service);
+ }
+ break;
+
+ case EWK_CONTEXT_MENU_ITEM_BASE_APPLICATION_TAG + 1 : //Save image
+ {
+ if (viewer_get_filepath_from_path(DIR_DEFAULT_MEDIA_PHONE"/Images", img_url, new_path, EINA_TRUE) != EMAIL_EXT_SAVE_ERR_NONE) {
+ debug_log("file exist!");
+ }
+
+ if (viewer_save_file(new_path, img_buf, img_buf_len) == EINA_FALSE) {
+ debug_log("viewer_save_file error!");
+ } else {
+ char str[128] = { 0, };
+ snprintf(str, sizeof(str), "%s", dgettext("sys_string", "IDS_COM_POP_SAVED"));
+ int ret = status_message_post(str);
+ if (ret)
+ debug_log("status_message_post failed: %d", ret);
+ }
+ }
+ break;
+
+ case EWK_CONTEXT_MENU_ITEM_BASE_APPLICATION_TAG + 2 : // View image
+ {
+ if (viewer_get_filepath_from_path(EMAIL_VIEWER_TMP_FOLDER, img_url, new_path, EINA_FALSE) == EMAIL_EXT_SAVE_ERR_NONE) {
+ debug_log("file existed!");
+ }
+ if (viewer_save_file(new_path, img_buf, img_buf_len) == EINA_FALSE) {
+ debug_log("viewer_save_file error!");
+ }
+
+ 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_set_operation(service, SERVICE_OPERATION_VIEW);
+ debug_log("service_set_operation: %d", ret);
+ ret = service_set_uri(service, new_path);
+ debug_log("service_set_uri: %d", ret);
+ ret = service_add_extra_data(service, EMAIL_BUNDLE_KEY_VIDEO_PLAYER_LAUNCH_APP, "email");
+ debug_log("service_add_extra_data: %d", ret);
+ ret = service_send_launch_request(service, NULL, NULL);
+ debug_log("service_send_launch_request: %d", ret);
+ ret = service_destroy(service);
+ debug_log("service_destroy: %d", ret);
+ }
+ break;
+
+ default:
+ debug_log("Never here!");
+ }
+
+ if (ewk_hit_test != NULL) {
+ ewk_hit_test_free(ewk_hit_test);
+ ewk_hit_test = NULL;
+ }
+}
+
+
/* EOF */
static void _destroy_down_progress_cb(void *data, Evas_Object *obj, void *event_info);
/* Logic Functions */
+static int _viewer_create_temp_folder();
+static void _viewer_remove_temp_folder();
static void _init_viewer_data(int account_id, int mail_id, char *srv_mail_id, EmailViewerUGD *ug_data);
static int _init_webview_data(EmailViewerUGD *ug_data);
static Eina_Bool _check_body_download(void *data);
ug_data->base = NULL;
+ _viewer_remove_temp_folder();
+
_dbus_receiver_remove(NULL);
int ret = e_dbus_shutdown();
debug_log("ret: %d", ret);
email_engine_finalize();
-
debug_log("~");
}
ewk_view_uri_set(ug_data->webview, EMAIL_DEFAULT_HTML);
+ _viewer_remove_temp_folder();
+
debug_log("free address info list");
email_free_address_info_list(&(priv->addrs_info_list));
ug_data->from_list = NULL;
static Evas_Object *_create_tab_bar(EmailViewerUGD *ug_data)
{
- debug_log("");
+ debug_log("mailbox_type:%d", ug_data->mailbox_type);
EmailViewerProp *prop = ug_data->property;
Evas_Object *obj;
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)
+ 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);
- else
+ } 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->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);
static Evas_Object *_update_tab_bar(EmailViewerUGD *ug_data)
{
- debug_log("");
+ 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_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);
}
// 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);
+ evas_object_move(ug_data->con_popup, ((w - x) * 6) / 7, y);
evas_object_show(ug_data->con_popup);
}
elm_ctxpopup_item_append(ug_data->con_popup, _("IDS_EMAIL_OPT_TO_SENDER_ABB"), NULL, _reply_cb, ug_data);
elm_ctxpopup_item_append(ug_data->con_popup, _("IDS_EMAIL_OPT_TO_ALL_ABB"), NULL, _reply_all_cb, ug_data);
- Evas_Coord x, y;
- evas_pointer_canvas_xy_get(ug_data->evas, &x, &y);
- evas_object_move(ug_data->con_popup, x, y - 20);
+ Evas_Coord x, y, w, h;
+ evas_object_geometry_get(ug_data->reply_ctr_it, &x, &y, &w, &h);
+ evas_object_move(ug_data->con_popup, x + (w / 2), y);
evas_object_show(ug_data->con_popup);
}
static void _ctxpopup_add_contact_cb(void *data, Evas_Object *obj, void *event_info)
{
- debug_log("");
+ debug_log("data(%s)", data);
if (!data || !_g_ug_data) {
debug_log("data is NULL");
return;
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);
_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, _("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);
}
}
+static int _viewer_create_temp_folder()
+{
+ debug_log("");
+
+ if (!email_check_dir_exist(EMAIL_VIEWER_TMP_FOLDER)) {
+ int nErr = -1;
+ nErr = mkdir(EMAIL_VIEWER_TMP_FOLDER, 0755);
+ debug_log("errno: %d", nErr);
+ if (nErr == -1) {
+ debug_log("Email viewer temp folder creation failed");
+ return -1;
+ }
+ } else
+ debug_log("Email viewer temp folder already exists.");
+ return 0;
+}
+
+static void _viewer_remove_temp_folder()
+{
+ debug_log("");
+
+ struct dirent *dir_entry = NULL;
+ DIR *dir;
+ char buffer[256];
+
+ dir = opendir(EMAIL_VIEWER_TMP_FOLDER);
+ if (!dir) {
+ debug_log("Unable to open %s", EMAIL_VIEWER_TMP_FOLDER);
+ return;
+ }
+ while ((dir_entry = readdir(dir))) {
+ debug_log("%s", dir_entry->d_name);
+ if (g_strcmp0(".", dir_entry->d_name) == 0 || g_strcmp0("..", dir_entry->d_name) == 0)
+ continue;
+ snprintf(buffer, 256, "%s/%s", EMAIL_VIEWER_TMP_FOLDER, dir_entry->d_name);
+ remove(buffer);
+ }
+ closedir(dir);
+ rmdir(EMAIL_VIEWER_TMP_FOLDER);
+}
+
static void _init_viewer_data(int account_id, int mail_id, char *srv_mail_id, EmailViewerUGD *ug_data)
{
debug_log("");
}
ug_data->option_header_opened = 0;
+
+ if (_viewer_create_temp_folder() < 0)
+ debug_log("creating email viewer temp folder is failed");
}
static int _init_webview_data(EmailViewerUGD *ug_data)
ret = _("IDS_EMAIL_POP_DOWNLOADING_ATTACHMENTS_ON_THE_MOBILE_DEVICE_IS_NOT_ALLOWED_BY_EXCHANGE_SERVER_POLICY");
return g_strdup(ret);
} else {
- snprintf(str, sizeof(str), "%s (%d)", dgettext("sys_string", "IDS_COM_POP_INTERNAL_ERROR"), type);
+ snprintf(str, sizeof(str), "%s (%d)", dgettext("sys_string", "IDS_COM_POP_UNKNOWN_ERROR_OCCURRED"), type);
return g_strdup(str);
}
}