2.0 alpha 75/1875/1 2.0alpha master 2.0_alpha submit/master/20120928.054819
authorSeongho Jeong <seongho@linux-ioz5.site>
Fri, 28 Sep 2012 05:45:50 +0000 (14:45 +0900)
committerSeongho Jeong <seongho@linux-ioz5.site>
Fri, 28 Sep 2012 05:45:50 +0000 (14:45 +0900)
Signed-off-by: Seongho Jeong <seongho@linux-ioz5.site>
245 files changed:
CMakeLists.txt
account/CMakeLists.txt [new file with mode: 0755]
account/include/email-account-folder.h [new file with mode: 0755]
account/include/email-account.h [new file with mode: 0755]
account/src/email-account-folder.c [new file with mode: 0755]
account/src/email-account.c [new file with mode: 0755]
account/theme/email_account_theme.edc [new file with mode: 0755]
account/theme/email_effect_layout.edc [new file with mode: 0755]
block/CMakeLists.txt [new file with mode: 0755]
block/include/email-block.h [new file with mode: 0755]
block/src/email-block.c [new file with mode: 0755]
block/theme/email-block-theme-macro.edc [new file with mode: 0755]
block/theme/email-block-theme.edc [new file with mode: 0755]
common/CMakeLists.txt
common/include/email-common-types.h
common/include/email-engine.h
common/include/email-html-converter.h [new file with mode: 0755]
common/include/email-utils.h
common/src/email-engine.c
common/src/email-html-converter.c [new file with mode: 0755]
common/src/email-utils.c
composer/CMakeLists.txt
composer/include/email-composer-callback.h
composer/include/email-composer-type.h
composer/include/email-composer-util.h
composer/include/email-composer.h
composer/src/email-composer-callback.c
composer/src/email-composer-contents.c
composer/src/email-composer-predictive-search.c
composer/src/email-composer-util.c
composer/src/email-composer.c
composer/theme/_email_default.html [deleted file]
composer/theme/email-composer-genlist.edc [new file with mode: 0755]
composer/theme/email-composer-view.edc
composer/ug-email-composer-efl.xml
images/00_badge_34x34.png [deleted file]
images/01_controlbar_icon_accounts.png [deleted file]
images/01_controlbar_icon_change_group.png [deleted file]
images/01_controlbar_icon_favorite.png [deleted file]
images/01_controlbar_icon_forward.png [deleted file]
images/01_controlbar_icon_reply.png [deleted file]
images/01_controlbar_icon_send.png [deleted file]
images/01_controlbar_icon_set_as.png [deleted file]
images/01_controlbar_icon_store.png [deleted file]
images/01_controlbar_icon_tag.png [deleted file]
images/01_controllbar_icon_add_tag.png [deleted file]
images/01_header_icon_delete.png [deleted file]
images/01_header_icon_done.png [deleted file]
images/01_header_icon_edit.png [deleted file]
images/B15_double_tap_02.png [new file with mode: 0755]
images/M02_arrow_expand_dim.png [deleted file]
images/M02_btn_circle_bg_01.png [deleted file]
images/M02_btn_circle_bg_press.png [deleted file]
images/M02_btn_play.png [deleted file]
images/M02_button_05_dim.png [deleted file]
images/M02_button_05_normal.png [deleted file]
images/M02_button_05_press.png [deleted file]
images/M02_button_06_dim.png [deleted file]
images/M02_button_06_press.png [deleted file]
images/M02_button_download_press.png [moved from images/M02_btn_circle_bg.png with 58% similarity, mode: 0755]
images/M02_button_expand.png [moved from images/M02_button_expand_collapse.png with 100% similarity, mode: 0755]
images/M02_button_expand_opened_press.png [changed mode: 0644->0755]
images/M02_button_expand_press.png [moved from images/M02_icon_favorite_off_02.png with 71% similarity, mode: 0755]
images/M02_button_sweep.png [deleted file]
images/M02_button_sweep_delete.png [deleted file]
images/M02_button_sweep_dim.png [deleted file]
images/M02_button_sweep_press.png [deleted file]
images/M02_email_Flag_Active_press.png [deleted file]
images/M02_email_Flag_Clear.png [changed mode: 0644->0755]
images/M02_email_Flag_Clear_press.png [deleted file]
images/M02_email_btn_icon_down.png [deleted file]
images/M02_email_btn_icon_down_press.png [deleted file]
images/M02_email_icon_Encryption_press.png [deleted file]
images/M02_email_icon_attach_press.png [deleted file]
images/M02_email_icon_favorite_off.png [changed mode: 0644->0755]
images/M02_email_icon_favorite_on.png [changed mode: 0644->0755]
images/M02_email_icon_forward_press.png [deleted file]
images/M02_email_icon_index_close.png [moved from images/M02_email_icon_priority_press.png with 89% similarity, mode: 0755]
images/M02_email_icon_lock.png [deleted file]
images/M02_email_icon_lock_press.png [deleted file]
images/M02_email_icon_popup_advanced.png [moved from images/M02_icon_upper_folder_press.png with 82% similarity, mode: 0755]
images/M02_email_icon_popup_advanced_press.png [moved from images/U01_icon_upper_folder.png with 82% similarity, mode: 0755]
images/M02_email_icon_popup_all.png
images/M02_email_icon_popup_all_press.png [moved from images/M02_icon_upper_folder.png with 85% similarity, mode: 0755]
images/M02_email_icon_popup_date.png [new file with mode: 0755]
images/M02_email_icon_popup_date_press.png [new file with mode: 0755]
images/M02_email_icon_popup_sender.png
images/M02_email_icon_popup_sender_press.png [moved from images/M02_button_delete.png with 73% similarity, mode: 0755]
images/M02_email_icon_popup_title.png
images/M02_email_icon_popup_title_press.png [moved from images/01_header_icon_add.png with 89% similarity, mode: 0755]
images/M02_email_icon_reply_press.png [deleted file]
images/M02_email_icon_sign_press.png [deleted file]
images/M02_email_minus.png [deleted file]
images/M02_email_popup_bubble_tail_top.png [new file with mode: 0755]
images/M02_function_attach.png [deleted file]
images/M02_function_security.png [deleted file]
images/M02_help_bg.png [deleted file]
images/M02_icon_favorite_off_01.png [deleted file]
images/M02_icon_favorite_on.png [deleted file]
images/M02_icon_favorite_on_01.png [deleted file]
images/M02_icon_favorite_on_02.png [deleted file]
images/M02_icon_next_press.png [deleted file]
images/M02_icon_previous_press.png [deleted file]
images/M02_logo_bg.png [deleted file]
images/M02_rich_text_bar_Aleadsymbol_press.png [new file with mode: 0755]
images/M02_rich_text_bar_Indent_press.png [new file with mode: 0755]
images/M02_rich_text_bar_Outdent_press.png [new file with mode: 0755]
images/M02_rich_text_bar_align_all_center.png [moved from images/M02_contact_style_press.png with 92% similarity, mode: 0755]
images/M02_rich_text_bar_align_all_center_press.png [moved from images/M02_email_minus_press.png with 92% similarity, mode: 0755]
images/M02_rich_text_bar_align_center.png [moved from images/01_header_icon_others.png with 91% similarity, mode: 0755]
images/M02_rich_text_bar_align_center_press.png [new file with mode: 0755]
images/M02_rich_text_bar_align_left.png [moved from images/00_list_thumbnail_bg.png with 91% similarity, mode: 0755]
images/M02_rich_text_bar_align_left_press.png [moved from images/M02_contact_style.png with 91% similarity, mode: 0755]
images/M02_rich_text_bar_align_right.png [moved from images/00_list_bar_press_1x90.png with 91% similarity, mode: 0755]
images/M02_rich_text_bar_align_right_press.png [new file with mode: 0755]
images/M02_rich_text_bar_bold_press.png [new file with mode: 0755]
images/M02_rich_text_bar_btn_01_press.png [changed mode: 0644->0755]
images/M02_rich_text_bar_btn_02_press.png [changed mode: 0644->0755]
images/M02_rich_text_bar_fontbgcolor_text.png [new file with mode: 0755]
images/M02_rich_text_bar_fontbgcolor_text_press.png [new file with mode: 0755]
images/M02_rich_text_bar_fontcolor.png [changed mode: 0644->0755]
images/M02_rich_text_bar_fontcolor_press.png [new file with mode: 0755]
images/M02_rich_text_bar_fontsize.png [new file with mode: 0755]
images/M02_rich_text_bar_fontsize_press.png [new file with mode: 0755]
images/M02_rich_text_bar_insert.png [new file with mode: 0755]
images/M02_rich_text_bar_insert_press.png [new file with mode: 0755]
images/M02_rich_text_bar_italic_press.png [moved from images/01_header_icon_cancel.png with 89% similarity, mode: 0755]
images/M02_rich_text_bar_numbering_press.png [new file with mode: 0755]
images/M02_rich_text_bar_que_left.png [new file with mode: 0755]
images/M02_rich_text_bar_que_right.png [moved from images/00_list_img_check.png with 81% similarity, mode: 0755]
images/M02_rich_text_bar_redo_press.png [new file with mode: 0755]
images/M02_rich_text_bar_underline_press.png [moved from images/00_input_bg.png with 86% similarity]
images/M02_rich_text_bar_undo_press.png [new file with mode: 0755]
images/M02_shadow_01.png [deleted file]
images/M02_shadow_02.png [deleted file]
images/M02_title_button.png [deleted file]
images/M02_title_button_press.png [deleted file]
images/M02_toolbar_Next.png [deleted file]
images/M02_toolbar_Previous.png [deleted file]
images/U01_icon_ring_tone.png [deleted file]
images/U01_icon_rss.png [deleted file]
images/email_viewer_attach_multi.png [deleted file]
images/nf_title_separator.png [deleted file]
images/org.tizen.email.png [deleted file]
mailbox/CMakeLists.txt [new file with mode: 0755]
mailbox/include/email-mailbox-controlbar.h [new file with mode: 0755]
mailbox/include/email-mailbox-item.h [new file with mode: 0755]
mailbox/include/email-mailbox-list.h [new file with mode: 0755]
mailbox/include/email-mailbox-noti-mgr.h [new file with mode: 0755]
mailbox/include/email-mailbox-search.h [new file with mode: 0755]
mailbox/include/email-mailbox-sweep.h [new file with mode: 0755]
mailbox/include/email-mailbox.h [new file with mode: 0755]
mailbox/src/email-mailbox-controlbar.c [new file with mode: 0755]
mailbox/src/email-mailbox-item.c [new file with mode: 0755]
mailbox/src/email-mailbox-list.c [new file with mode: 0755]
mailbox/src/email-mailbox-noti-mgr.c [new file with mode: 0755]
mailbox/src/email-mailbox-search.c [new file with mode: 0755]
mailbox/src/email-mailbox-sweep.c [new file with mode: 0755]
mailbox/src/email-mailbox.c [new file with mode: 0755]
mailbox/theme/email-mailbox-theme-macro.edc [new file with mode: 0755]
mailbox/theme/email-mailbox-theme.edc [new file with mode: 0755]
main/CMakeLists.txt [new file with mode: 0755]
main/email.c [new file with mode: 0755]
main/email.h [new file with mode: 0755]
main/email.ini [new file with mode: 0755]
main/org.tizen.email.png [new file with mode: 0755]
main/org.tizen.email.xml [new file with mode: 0755]
packaging/org.tizen.email.spec
po/CMakeLists.txt
po/ar.po
po/az.po
po/bg.po
po/ca.po
po/cs.po
po/da.po
po/de_DE.po
po/el_GR.po
po/en.po
po/en_PH.po
po/en_US.po
po/es_ES.po
po/es_US.po
po/et.po
po/eu.po
po/fi.po
po/fr_CA.po
po/fr_FR.po
po/ga.po
po/gl.po
po/hi.po
po/hr.po
po/hu.po
po/hy.po
po/is.po
po/it_IT.po
po/ja_JP.po
po/ka.po
po/kk.po
po/ko_KR.po
po/lt.po
po/lv.po
po/mk.po
po/nb.po [new file with mode: 0755]
po/nl_NL.po
po/pl.po
po/pt_BR.po
po/pt_PT.po
po/ro.po
po/ru_RU.po
po/sk.po
po/sl.po
po/sr.po
po/sv.po
po/tr_TR.po
po/uk.po
po/uz.po [new file with mode: 0755]
po/zh_CN.po
po/zh_HK.po
po/zh_SG.po
po/zh_TW.po
setting/CMakeLists.txt
setting/include/email-setting.h
setting/src/email-setting-account-set.c
setting/src/email-setting-utils.c
setting/src/email-view-account-edit.c
setting/src/email-view-account-options.c
setting/src/email-view-account-setup.c
setting/src/email-view-manual-setup.c
setting/src/email-view-sync-schedule.c
setting/src/email-view-sync-setup.c
setting/theme/email-setting-theme-macro.edc
setting/theme/email-setting-theme.edc
viewer/CMakeLists.txt [new file with mode: 0755]
viewer/include/email-viewer-js.h [new file with mode: 0755]
viewer/include/email-viewer-logic.h [new file with mode: 0755]
viewer/include/email-viewer-utils.h [new file with mode: 0755]
viewer/include/email-viewer-webview.h [new file with mode: 0755]
viewer/include/email-viewer.h [new file with mode: 0755]
viewer/src/email-viewer-logic.c [new file with mode: 0755]
viewer/src/email-viewer-utils.c [new file with mode: 0755]
viewer/src/email-viewer-webview.c [new file with mode: 0755]
viewer/src/email-viewer.c [new file with mode: 0755]
viewer/theme/_email_default.html [new file with mode: 0755]
viewer/theme/email-viewer-theme-macro.edc [new file with mode: 0755]
viewer/theme/email-viewer-theme.edc [new file with mode: 0755]

index 8212d10..d2e0638 100755 (executable)
@@ -9,6 +9,7 @@ SET(LOCALEDIR "${RESDIR}/locale")
 SET(ICONDIR "/opt/share/icons/default/small")
 SET(EDJDIR "${RESDIR}/edje")
 SET(IMGDIR "${RESDIR}/images")
+SET(JSDIR "${RESDIR}/js")
 SET(UGDIR "/opt/ug/lib")
 
 ADD_DEFINITIONS("-DPREFIX=\"${PREFIX}\"")
@@ -18,9 +19,15 @@ ADD_DEFINITIONS("-DLOCALEDIR=\"${LOCALEDIR}\"")
 ADD_DEFINITIONS("-DICONDIR=\"${ICONDIR}\"")
 ADD_DEFINITIONS("-DEDJDIR=\"${EDJDIR}\"")
 ADD_DEFINITIONS("-DIMGDIR=\"${IMGDIR}\"")
+ADD_DEFINITIONS("-DJSDIR=\"${JSDIR}\"")
 
 # Add your submodule directory name
 ADD_SUBDIRECTORY(common)
 ADD_SUBDIRECTORY(setting)
 ADD_SUBDIRECTORY(composer)
+ADD_SUBDIRECTORY(viewer)
+ADD_SUBDIRECTORY(mailbox)
+ADD_SUBDIRECTORY(block)
+ADD_SUBDIRECTORY(account)
+ADD_SUBDIRECTORY(main)
 ADD_SUBDIRECTORY(po)
diff --git a/account/CMakeLists.txt b/account/CMakeLists.txt
new file mode 100755 (executable)
index 0000000..41a99bc
--- /dev/null
@@ -0,0 +1,61 @@
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6)\r
+PROJECT(ug-email-account-efl C)\r
+\r
+SET(SRCS\r
+       ./src/email-account.c\r
+       ./src/email-account-folder.c\r
+)\r
+SET(CMAKE_SKIP_BUILD_RPATH TRUE)\r
+\r
+IF("${CMAKE_BUILD_TYPE}" STREQUAL "")\r
+       SET(CMAKE_BUILD_TYPE "Release")\r
+ENDIF("${CMAKE_BUILD_TYPE}" STREQUAL "")\r
+MESSAGE("Build type: ${CMAKE_BUILD_TYPE}")\r
+\r
+SET(CMAKE_ACCOUNT_SOURCE_DIR "${CMAKE_SOURCE_DIR}/account")\r
+SET(CMAKE_ACCOUNT_BINARY_DIR "${CMAKE_BINARY_DIR}/account")\r
+INCLUDE_DIRECTORIES(${CMAKE_ACCOUNT_SOURCE_DIR}/include)\r
+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
+\r
+FOREACH(flag ${pkgs-account_CFLAGS})\r
+       SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")\r
+ENDFOREACH(flag)\r
+\r
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")\r
+SET(CMAKE_C_FLAGS_DEBUG "-O0 -g")\r
+\r
+FIND_PROGRAM(UNAME NAMES uname)\r
+EXEC_PROGRAM("${UNAME}" ARGS "-m" OUTPUT_VARIABLE "ARCH")\r
+IF("${ARCH}" STREQUAL "arm")\r
+       ADD_DEFINITIONS("-DTARGET")\r
+       MESSAGE("add -DTARGET")\r
+       SET(CMAKE_C_FLAGS_RELEASE "-mabi=aapcs-linux -msoft-float -O2")\r
+ENDIF("${ARCH}" STREQUAL "arm")\r
+\r
+ADD_DEFINITIONS("-DPREFIX=\"${CMAKE_INSTALL_PREFIX}\"")\r
+ADD_DEFINITIONS("-DDEBUG")\r
+\r
+ADD_LIBRARY(${PROJECT_NAME} SHARED ${SRCS})\r
+TARGET_LINK_LIBRARIES(${PROJECT_NAME} email-common ${pkgs-account_LDFLAGS})\r
+\r
+ADD_CUSTOM_TARGET(email-account-theme.edj\r
+               COMMAND edje_cc -id ${CMAKE_SOURCE_DIR}/images\r
+               ${CMAKE_ACCOUNT_SOURCE_DIR}/theme/email_account_theme.edc ${CMAKE_ACCOUNT_BINARY_DIR}/email-account-theme.edj\r
+               DEPENDS ${CMAKE_ACCOUNT_SOURCE_DIR}/theme/email_account_theme.edc\r
+)\r
+ADD_DEPENDENCIES(${PROJECT_NAME} email-account-theme.edj)\r
+\r
+ADD_CUSTOM_TARGET(email-effect-layout.edj\r
+               COMMAND edje_cc -id ${CMAKE_SOURCE_DIR}/images\r
+               ${CMAKE_ACCOUNT_SOURCE_DIR}/theme/email_effect_layout.edc ${CMAKE_ACCOUNT_BINARY_DIR}/email-effect-layout.edj\r
+               DEPENDS ${CMAKE_ACCOUNT_SOURCE_DIR}/theme/email_effect_layout.edc\r
+)\r
+ADD_DEPENDENCIES(${PROJECT_NAME} email-effect-layout.edj)\r
+\r
+INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${UGDIR})\r
+INSTALL(FILES ${CMAKE_ACCOUNT_BINARY_DIR}/email-account-theme.edj DESTINATION ${EDJDIR})\r
+INSTALL(FILES ${CMAKE_ACCOUNT_BINARY_DIR}/email-effect-layout.edj DESTINATION ${EDJDIR})\r
+\r
diff --git a/account/include/email-account-folder.h b/account/include/email-account-folder.h
new file mode 100755 (executable)
index 0000000..a118eff
--- /dev/null
@@ -0,0 +1,33 @@
+/*
+ * Copyright 2012  Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *    http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __email_account_folder_H_
+#define __email_account_folder_H__
+
+#include "email-account.h"
+
+Evas_Object *create_fullview(EmailAccountUGD *ug_data);
+void _create_folder_view(EmailAccountUGD *ug_data);
+void _refresh_folder_view(void *data);
+void _finish_folder_view(void *data, Evas_Object *obj, void *event_info);
+
+void _dbus_receiver_setup(EmailAccountUGD *ug_data);
+void _remove_dbus_receiver(EmailAccountUGD *ug_data);
+
+
+#endif /* __email_account_folder_H__ */
+
+/* EOF */
diff --git a/account/include/email-account.h b/account/include/email-account.h
new file mode 100755 (executable)
index 0000000..d9e9227
--- /dev/null
@@ -0,0 +1,224 @@
+/*
+ * Copyright 2012  Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *    http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __email_account_H__
+#define __email_account_H__
+
+#include <Edje.h>
+#include <Elementary.h>
+#include <libintl.h>
+#include <ui-gadget-module.h>
+#undef _
+#include <appcore-efl.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <getopt.h>
+#include <glib.h>
+#include <glib-object.h>
+#include <Ecore_IMF.h>
+#include <utilX.h>
+#include <vconf.h>
+#include <vconf-keys.h>
+#include <glib/gprintf.h>
+#include <status.h>
+
+#include "email-api.h"
+#include "email-types.h"
+
+#include "email-utils.h"
+#include "email-engine.h"
+#include "email-debug.h"
+#include "email-common-types.h"
+#include "email-locale.h"
+
+#define ACCOUNT_PACKAGE "email-account"
+#define THEME_PATH EDJDIR"/email-account-theme.edj"
+
+#define CONTROLBAR_ICON_COMPOSE IMGDIR"/M02_controlbar_icon_compose.png"
+#define CONTROLBAR_ICON_UPDATE IMGDIR"/M02_controlbar_icon_update.png"
+#define CONTROLBAR_ICON_ADD IMGDIR"/M02_controlbar_icon_add_folder.png"
+#define CONTROLBAR_ICON_RENAME IMGDIR"/M02_controlbar_icon_edit.png"
+#define CONTROLBAR_ICON_MOVE IMGDIR"/M02_controlbar_icon_move.png"
+#define CONTROLBAR_ICON_DELETE IMGDIR"/M02_controlbar_icon_delete.png"
+
+#define ACCOUNT_ICON_GMAIL IMGDIR"/M02_email_list_icon_gmail.png"
+#define ACCOUNT_ICON_HOTMAIL IMGDIR"/M02_email_list_icon_hotmail.png"
+#define ACCOUNT_ICON_YAHOO IMGDIR"/M02_email_list_icon_YahooMail.png"
+#define ACCOUNT_ICON_AOL IMGDIR"/M02_email_list_icon_AOL.png"
+#define ACCOUNT_ICON_OTHERS IMGDIR"/icon_email.png"
+
+#define ACCOUNT_ICON_ADDACCOUNT IMGDIR"/M02_email_list_icon_addaccount.png"
+#define ACCOUNT_ICON_ALLACCOUNT IMGDIR"/M02_email_list_icon_allaccount.png"
+
+#define _EDJ(o) elm_layout_edje_get(o)
+
+#define MAX_STR_LEN    1024
+#define NUM_STR_LEN    20
+
+#define EMAIL_HANDLE_INVALID -1
+
+typedef enum
+{
+       ACC_MAILBOX_TYPE_INBOX          = 0,    /**< Specified inbox type*/
+       ACC_MAILBOX_TYPE_FLAGGED        = 1,    /**< Specified flagged mailbox type on gmail */
+       ACC_MAILBOX_TYPE_DRAFT          = 2,    /**< Specified draft box type*/
+       ACC_MAILBOX_TYPE_OUTBOX         = 3,    /**< Specified outbox type*/
+       ACC_MAILBOX_TYPE_SENTBOX        = 4,    /**< Specified sent box type*/
+       ACC_MAILBOX_TYPE_SPAMBOX        = 5,    /**< Specified spam box type*/
+       ACC_MAILBOX_TYPE_TRASH          = 6,    /**< Specified trash type*/
+       ACC_MAILBOX_TYPE_MAX                    = 7,    /**< Specified all emails type of gmail*/
+}account_mailbox_type_e;
+
+typedef enum
+{
+       ACC_UG_ACCOUNT_VIEW     = 0,            /** UG_MODE_FRAMEVIEW */
+       ACC_UG_FOLDER_VIEW      = 1,            /** UG_MODE_FULLVIEW */
+}account_ug_view_type_e;
+
+typedef enum
+{
+       ACC_FOLDER_NONE                 = 0,
+       ACC_FOLDER_CREATE                       = 1,
+       ACC_FOLDER_RENAME               = 2,
+       ACC_FOLDER_DELETE                       = 3,
+       ACC_FOLDER_MOVE_TO              = 4,
+       ACC_FOLDER_MOVE_FROM    = 5,
+//     ACC_FOLDER_EDIT                 = 2,
+}folder_view_type_e;
+
+struct _menu_item {
+       char *name;
+       int i_boxtype;
+       void (*func)(void *data, Evas_Object *obj, const char *part);
+};
+
+typedef struct ug_data EmailAccountUGD;
+typedef struct email_account_list email_account_list;
+
+typedef struct _Item_Data Item_Data;
+struct _Item_Data {
+       EmailAccountUGD *ug_data;
+       email_account_list *alist;
+
+       Elm_Object_Item *it; // Genlist Item pointer
+       Eina_Bool checked; // Check status
+
+       GNode *child;
+};
+
+struct email_account_list {
+       EmailAccountUGD *ug_data;
+
+       int read_count;
+       int unread_count;
+       int n_mailbox_list;
+       email_mailbox_t *mailbox_list;
+       email_account_t *account_info;
+       GNode *folder_root;
+};
+
+struct ug_data {
+       Evas *evas;
+       Evas_Object *win;
+       Evas_Object *bg;
+
+       email_account_t *account_list;
+       Evas_Object *ly;
+       Evas_Object *sub_ly;
+       Evas_Object *navi_bar;
+       Elm_Object_Item *navibar_item;
+       Evas_Object *navi_title_ly;
+       Evas_Object *sp_icon;
+       Evas_Object *title_arrow;
+       Evas_Object *r_button;
+       Evas_Object *ctr_bar;
+       email_account_list *alist;
+       gint account_count;
+       Evas_Object *update_button;
+
+       Evas_Object *gl;
+       gint n_account_list;
+       gint end_key_event;
+       Elm_Object_Item *item[2];
+       Evas_Object *control_bar;
+
+       int all_read_count;
+       int all_unread_count;
+       int all_acc_read_count[ACC_MAILBOX_TYPE_MAX];
+       int all_acc_unread_count[ACC_MAILBOX_TYPE_MAX];
+
+       int block_item_click;
+       int main_w;
+       int main_h;
+       int b_duplicated_node;
+       char *traverse_compare;
+       email_mailbox_t *traverse_compare_mlist;
+
+       GNode *current_parent;
+
+       int account_id;
+       int folder_id;
+       int ug_mode;
+       int mailbox_type;
+
+       int folder_mode;
+       unsigned emf_handle;
+       Elm_Object_Item *root_item;
+       Elm_Object_Item *it;
+       Evas_Object *entry;
+       Evas_Object *popup;
+       Evas_Object *conformant;
+       Elm_Object_Item *move_from_item;
+
+       Evas_Object *select_info;
+       Evas_Object *selectioninfo_layout;
+       int checked_count;
+       Elm_Object_Item *renamed_it;
+
+       E_DBus_Connection *dbus_conn;
+       E_DBus_Signal_Handler *signal_handler_network;
+       E_DBus_Signal_Handler *signal_handler_storage;
+
+       Evas_Object *base;
+       ui_gadget_h ug_composer;
+       ui_gadget_h ug_setting;
+       ui_gadget_h ug;
+};
+
+#define GET_ACCOUNT_SERVER_TYPE(account_id) \
+               ({\
+                       email_account_t *email_account = NULL;\
+                       int server_type = 0;\
+                       int e = email_get_account(account_id, 0, &email_account);\
+                       if (e != EMAIL_ERROR_NONE || !email_account) {\
+                               debug_warning("email_get_account acct(%d) - err(%d) or acct NULL(%p)",\
+                                                               account_id, e, email_account);\
+                       }\
+                       else server_type = email_account->incoming_server_type;\
+                       if(email_account) email_free_account(&email_account, 1);\
+                       server_type;\
+               })
+
+#endif /* __email_account_H__ */
+
+void _create_account_view(EmailAccountUGD *ug_data);
+void _destroy_view(EmailAccountUGD *ug_data);
+Evas_Object *_add_emtpy_list(void *data);
+void _open_mail_list(void *data, Evas_Object *obj, void *event_info);
+
+/* EOF */
diff --git a/account/src/email-account-folder.c b/account/src/email-account-folder.c
new file mode 100755 (executable)
index 0000000..70b6dc9
--- /dev/null
@@ -0,0 +1,3575 @@
+/*
+ * Copyright 2012  Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *    http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef UG_MODULE_API
+#define UG_MODULE_API __attribute__ ((visibility("default")))
+#endif
+
+#include <Ecore_X.h>
+#include "email-account-folder.h"
+
+#include <unicode/uloc.h>
+#include <unicode/ucal.h>
+#include <unicode/udat.h>
+#include <unicode/udatpg.h>
+#include <unicode/ustring.h>
+
+static Evas_Object *_create_navigation_bar(EmailAccountUGD *ug_data);
+static void _create_controlbar(EmailAccountUGD * ug_data);
+static void _delete_controlbar(EmailAccountUGD * ug_data);
+static void _delete_selection_info(EmailAccountUGD * ug_data);
+static Evas_Object *create_control_option(EmailAccountUGD * ug_data);
+static Evas_Object *create_edit_control_option(EmailAccountUGD * ug_data);
+
+static void _refresh_account_list(void *data);
+static gboolean _check_duplicated_node(GNode *node, gpointer data);
+static void _make_folder_tree(email_account_list *alist, EmailAccountUGD *ug_data);
+
+static void _update_all_account_cb(void *data, Evas_Object *obj, void *event_info);
+
+static Eina_Bool _gl_state_get(void *data, Evas_Object *obj, const char *part);
+static char *_gl_label_get_for_subitem(void *data, Evas_Object *obj, const char *part);
+
+static void _gl_del(void *data, Evas_Object *obj);
+static char *_gl_label_get(void *data, Evas_Object *obj, const char *part);
+static Evas_Object *_gl_icon_get(void *data, Evas_Object *obj, const char *part);
+static void _gl_con(void *data, Evas_Object *obj, void *event_info);
+static void _gl_exp_req(void *data, Evas_Object *obj, void *event_info);
+static void _gl_con_req(void *data, Evas_Object *obj, void *event_info);
+static void _gl_exp(void *data, Evas_Object *obj, void *event_info);
+static void _gl_sel(void *data, Evas_Object *obj, void *event_info);
+static void _gl_exp_sel(void *data, Evas_Object *obj, void *event_info);
+
+static char *_gl_label_get_for_all_acc_inbox(void *data, Evas_Object *obj, const char *part);
+static char *_gl_label_get_for_all_acc_favorite(void *data, Evas_Object *obj, const char *part);
+static char *_gl_label_get_for_all_acc_draft(void *data, Evas_Object *obj, const char *part);
+static char *_gl_label_get_for_all_acc_outbox(void *data, Evas_Object *obj, const char *part);
+static char *_gl_label_get_for_all_acc_sentbox(void *data, Evas_Object *obj, const char *part);
+static char *_gl_label_get_for_all_acc_spambox(void *data, Evas_Object *obj, const char *part);
+static char *_gl_label_get_for_all_acc_trash(void *data, Evas_Object *obj, const char *part);
+
+static void _open_allacc_boxtype(void *data, Evas_Object *obj, void *event_info);
+
+static void _edit_item_check_changed_cb(void *data, Evas_Object *obj, void *event_info);
+
+static void _folder_create_cb(void *data, Evas_Object *obj, void *event_info);
+static void _popup_newfolder_cb(void *data, Evas_Object *obj, void *event_info);
+static void _create_con_cb(void *data, Evas_Object *obj, void *event_info);
+
+//static void _folder_edit_cb(void *data, Evas_Object *obj, void *event_info);
+//static void _folder_edit_sel_cb(void *data, Evas_Object *obj, void *event_info);
+static void _folder_rename_cb(void *data, Evas_Object *obj, void *event_info);
+static void _popup_rename_cb(void *data, Evas_Object *obj, void *event_info);
+static void _rename_con_cb(void *data, Evas_Object *obj, void *event_info);
+
+static void _folder_delete_cb(void *data, Evas_Object *obj, void *event_info);
+static void _popup_delfolder_cb(void *data, Evas_Object *obj, void *event_info);
+static void _delete_con_cb(void *data, Evas_Object *obj, void *event_info);
+
+static void _folder_move_cb(void *data, Evas_Object *obj, void *event_info);
+static void _popup_movefolder_cb(void *data, Evas_Object *obj, void *event_info);
+static void _move_con_cb(void *data, Evas_Object *obj, void *event_info);
+
+static void _popup_destroy_cb(void *data, Evas_Object *obj, void *event_info);
+static void _back_button_cb(void *data, Evas_Object *obj, void *event_info);
+static void _popup_success_cb(void *data, Evas_Object *obj, void *event_info);
+static void _popup_fail_cb(void *data, Evas_Object *obj, void *event_info);
+static void _popup_progress_cb(void *data, Evas_Object *obj, void *event_info);
+static void _cancel_button_cb(void *data, Evas_Object *obj, void *event_info);
+/*static void _go_button_clicked_cb(void *data, Evas_Object * obj, void *event_info);*/
+
+static void _edbus_event_account_receive(void *local_data, DBusMessage *message);
+static void _stop_emf_job(EmailAccountUGD *ug_data, unsigned handle);
+
+static void _entry_changed_cb(void *data, Evas_Object *obj, void *event_info);
+static void _entry_focused_cb(void *data, Evas_Object *obj, void *event_info);
+static void _entry_unfocused_cb(void *data, Evas_Object *obj, void *event_info);
+static void _eraser_clicked_cb(void *data, Evas_Object *obj, const char *emission, const char *source);
+
+//static void _changed_cb(void *data, Evas_Object *obj, void *event_info);
+//static void _focused_cb(void *data, Evas_Object *obj, void *event_info);
+//static void _unfocused_cb(void *data, Evas_Object *obj, void *event_info);
+//static Evas_Object *_singleline_editfield_add(Evas_Object *parent);
+//static void _maxlength_reached_cb(void *data, Evas_Object *obj, void *event_info);
+//static void _rename_entry_changed_cb(void *data, Evas_Object *obj, void *event_info);
+//static void _unset_rename(EmailAccountUGD *ug_data);
+//static void _rename_unfocused_cb(void *data, Evas_Object *obj, void *event_info);
+//static void _rename_button_cb(void *data, Evas_Object *obj, void *event_info);
+
+extern EmailAccountUGD *g_account_ugd;
+
+static Elm_Genlist_Item_Class itc_item_for_all_acc_box[ACC_MAILBOX_TYPE_MAX];
+
+static Elm_Genlist_Item_Class itc_item;
+static Elm_Genlist_Item_Class itc_subtree;
+static Elm_Genlist_Item_Class itc_subtree2;
+
+extern bool g_isRotate;
+
+static struct _menu_item folder_menu_its[] = {
+       { "IDS_EMAIL_BODY_INBOX", ACC_MAILBOX_TYPE_INBOX, _gl_label_get_for_all_acc_inbox },
+       { "IDS_EMAIL_BODY_FAVOURITES", ACC_MAILBOX_TYPE_FLAGGED, _gl_label_get_for_all_acc_favorite },
+       { "IDS_EMAIL_BODY_DRAFTS", ACC_MAILBOX_TYPE_DRAFT, _gl_label_get_for_all_acc_draft },
+       { N_("Outbox"), ACC_MAILBOX_TYPE_OUTBOX, _gl_label_get_for_all_acc_outbox },
+       { "IDS_EMAIL_BODY_SENTBOX", ACC_MAILBOX_TYPE_SENTBOX, _gl_label_get_for_all_acc_sentbox },
+       { "IDS_EMAIL_BODY_SPAMBOX", ACC_MAILBOX_TYPE_SPAMBOX, _gl_label_get_for_all_acc_spambox },
+       { "IDS_EMAIL_BODY_TRASH", ACC_MAILBOX_TYPE_TRASH, _gl_label_get_for_all_acc_trash },
+
+       /* do not delete below */
+       { NULL, -1, NULL }
+};
+
+Evas_Object *create_fullview(EmailAccountUGD *ug_data)
+{
+       debug_log("");
+       Evas_Object *b_btn;
+
+       ug_data->evas = evas_object_evas_get(ug_data->win);
+
+       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);
+       if (ug_data->ly == NULL) {
+               debug_log("ug_data->ly == NULL");
+               return NULL;
+       }
+       elm_layout_theme_set(ug_data->ly, "layout", "application", "default");
+       evas_object_size_hint_weight_set(ug_data->ly, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       elm_win_resize_object_add(ug_data->win, ug_data->ly);
+       evas_object_show(ug_data->ly);
+
+       elm_object_part_content_set(ug_data->ly, "elm.swallow.bg", ug_data->bg);
+
+       /* indicator */
+       elm_win_indicator_mode_set(ug_data->win, ELM_WIN_INDICATOR_SHOW);
+
+       /* navigation Bar */
+       _create_navigation_bar(ug_data);
+
+       b_btn = elm_button_add(ug_data->navi_bar);
+       evas_object_smart_callback_add(b_btn, "clicked", _back_button_cb, ug_data);
+       elm_object_style_set(b_btn, "naviframe/prev_btn/default");
+
+       /* push navi_bar */
+       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");
+
+       // Create custom style layout
+       ug_data->navi_title_ly = elm_layout_add(ug_data->navi_bar);
+       elm_layout_file_set(ug_data->navi_title_ly, THEME_PATH, "title");
+       evas_object_size_hint_weight_set(ug_data->navi_title_ly, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(ug_data->navi_title_ly, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(ug_data->navi_title_ly);
+       elm_object_signal_callback_add(ug_data->navi_title_ly, "elm,action,title,clicked", "", NULL, ug_data);
+       elm_object_item_part_content_set(ug_data->navibar_item, "title", ug_data->navi_title_ly);
+
+       //Title Right Button for update
+       ug_data->update_button = elm_button_add(ug_data->navi_bar);
+       elm_object_style_set(ug_data->update_button, "naviframe/title/default");
+       Evas_Object *update_icon = elm_icon_add(ug_data->update_button);
+       elm_icon_file_set(update_icon, CONTROLBAR_ICON_UPDATE, NULL);
+       elm_icon_resizable_set(update_icon, 1, 1);
+       evas_object_image_smooth_scale_set(update_icon, 0);
+       elm_object_content_set(ug_data->update_button, update_icon);
+       evas_object_smart_callback_add(ug_data->update_button, "clicked", _update_all_account_cb, ug_data);
+       elm_object_part_content_set(ug_data->navi_title_ly, "right_btn", ug_data->update_button);
+
+       // add service provider icon
+       ug_data->sp_icon = elm_icon_add(ug_data->navi_title_ly);
+       evas_object_show(ug_data->sp_icon);
+       elm_object_part_content_set(ug_data->navi_title_ly, "sub_left_icon", ug_data->sp_icon);
+#else
+       ug_data->navibar_item = elm_naviframe_item_push(ug_data->navi_bar,
+                       NULL, b_btn, NULL, ug_data->sub_ly, NULL);
+       elm_object_item_text_set(ug_data->navibar_item, dgettext("sys_string", "IDS_COM_OPT_FOLDERS"));
+
+       //Title Right Button for update
+       ug_data->update_button = elm_button_add(ug_data->navi_bar);
+       elm_object_style_set(ug_data->update_button, "naviframe/title/default");
+       Evas_Object *update_icon = elm_icon_add(ug_data->update_button);
+       elm_icon_file_set(update_icon, CONTROLBAR_ICON_UPDATE, NULL);
+       elm_icon_resizable_set(update_icon, 1, 1);
+       evas_object_image_smooth_scale_set(update_icon, 0);
+       elm_object_content_set(ug_data->update_button, update_icon);
+       evas_object_smart_callback_add(ug_data->update_button, "clicked", _update_all_account_cb, ug_data);
+       elm_object_item_part_content_set(ug_data->navibar_item, "title_right_btn", ug_data->update_button);
+
+#endif
+
+       /* contents */
+       _create_folder_view(ug_data);
+       elm_object_part_content_set(ug_data->sub_ly, "elm.swallow.content", ug_data->gl);
+
+       /* control bar */
+       if(ug_data->account_id == 0)
+       {
+               Evas_Object *cbar;
+               cbar = elm_toolbar_add(ug_data->navi_bar);
+               elm_toolbar_shrink_mode_set(cbar, ELM_TOOLBAR_SHRINK_EXPAND);
+               elm_object_style_set(cbar, "naviframe");
+               elm_object_item_part_content_set(ug_data->navibar_item, "controlbar", cbar);
+               ug_data->control_bar = cbar;
+       }
+       else
+       {
+               _create_controlbar(ug_data);
+       }
+
+       debug_log("account_id: [%d]", ug_data->account_id);
+
+#if 0  // 2line title text
+       // 2line title text
+       elm_object_part_text_set(ug_data->navi_title_ly, "txt_title", _("IDS_EMAIL_HEADER_FOLDERS"));
+       if (ug_data->account_id == 0) {
+               elm_icon_file_set(ug_data->sp_icon, NULL, NULL);
+               elm_object_part_text_set(ug_data->navi_title_ly, "txt_sub", _("IDS_EMAIL_HEADER_ALL_ACCOUNTS"));
+       }
+       else{
+               email_account_t *account;
+               email_get_account(ug_data->account_id, WITHOUT_OPTION, &account);
+               elm_icon_file_set(ug_data->sp_icon, account->logo_icon_path, NULL);
+
+               elm_object_part_text_set(ug_data->navi_title_ly, "txt_sub", account->account_name);
+
+               if(account) email_free_account(&account, 1);
+       }
+#endif
+
+       return ug_data->ly;
+}
+
+static Evas_Object *_create_navigation_bar(EmailAccountUGD * ug_data)
+{
+       debug_log("");
+       Evas_Object *navi_bar;
+
+       navi_bar = elm_naviframe_add(ug_data->ly);
+       if (navi_bar == NULL) {
+               debug_log("navi_bar == NULL");
+               return NULL;
+       }
+       elm_object_part_content_set(ug_data->ly, "elm.swallow.content", navi_bar);
+       evas_object_show(navi_bar);
+
+       ug_data->navi_bar = navi_bar;
+       return navi_bar;
+}
+
+static void _create_controlbar(EmailAccountUGD * ug_data)
+{
+       debug_log("");
+
+       _delete_selection_info(ug_data);
+
+       elm_object_item_part_content_unset(ug_data->navibar_item, "controlbar");
+
+       _delete_controlbar(ug_data);
+
+       switch (ug_data->folder_mode) {
+       case ACC_FOLDER_NONE:
+               ug_data->control_bar = create_control_option(ug_data);
+               break;
+       case ACC_FOLDER_CREATE:
+       case ACC_FOLDER_RENAME:
+       case ACC_FOLDER_DELETE:
+       case ACC_FOLDER_MOVE_TO:
+       case ACC_FOLDER_MOVE_FROM:
+               ug_data->control_bar = create_edit_control_option(ug_data);
+               break;
+       default:
+               break;
+       }
+}
+
+static void _delete_controlbar(EmailAccountUGD * ug_data)
+{
+       debug_log("");
+       if (ug_data->control_bar) {
+               evas_object_del(ug_data->control_bar);
+               ug_data->control_bar = NULL;
+       }
+}
+
+static void _delete_selection_info(EmailAccountUGD * ug_data)
+{
+       debug_log("");
+
+       if (ug_data->select_info != NULL) {
+               evas_object_del(ug_data->select_info);
+               ug_data->select_info = NULL;
+       }
+
+       if (ug_data->selectioninfo_layout != NULL) {
+               evas_object_del(ug_data->selectioninfo_layout);
+               ug_data->selectioninfo_layout = NULL;
+       }
+}
+
+static Evas_Object *create_control_option(EmailAccountUGD * ug_data)
+{
+       debug_log("");
+       Evas_Object *cbar;
+
+       cbar = elm_toolbar_add(ug_data->navi_bar);
+       elm_toolbar_shrink_mode_set(cbar, ELM_TOOLBAR_SHRINK_EXPAND);
+       elm_object_style_set(cbar, "naviframe");
+
+       elm_toolbar_item_append(cbar, CONTROLBAR_ICON_ADD, _("IDS_EMAIL_SK_CREATE_FOLDER"), _folder_create_cb, ug_data);
+       elm_toolbar_item_append(cbar, CONTROLBAR_ICON_DELETE, dgettext("sys_string", "IDS_COM_SK_DELETE"), _folder_delete_cb, ug_data);
+       elm_toolbar_item_append(cbar, CONTROLBAR_ICON_MOVE, _("IDS_EMAIL_SK_MOVE"), _folder_move_cb, ug_data);
+       elm_toolbar_item_append(cbar, CONTROLBAR_ICON_RENAME, dgettext("sys_string", "IDS_COM_SK_RENAME"), _folder_rename_cb, ug_data);
+
+       elm_object_item_part_content_set(ug_data->navibar_item, "controlbar", cbar);
+
+       return cbar;
+}
+
+static Evas_Object *create_edit_control_option(EmailAccountUGD * ug_data)
+{
+       debug_log("");
+       Evas_Object *cbar;
+
+       cbar = elm_toolbar_add(ug_data->navi_bar);
+       elm_toolbar_shrink_mode_set(cbar, ELM_TOOLBAR_SHRINK_EXPAND);
+       elm_object_style_set(cbar, "naviframe");
+
+//     elm_toolbar_item_append(cbar, CONTROLBAR_ICON_MOVE, _("IDS_EMAIL_SK_MOVE"), _folder_move_cb, ug_data);
+//     elm_toolbar_item_append(cbar, CONTROLBAR_ICON_DELETE, dgettext("sys_string", "IDS_COM_SK_DELETE"), _popup_delfolder_cb, ug_data);
+
+       elm_object_item_part_content_set(ug_data->navibar_item, "controlbar", cbar);
+
+       return cbar;
+}
+
+void _create_folder_view(EmailAccountUGD *ug_data)
+{
+       debug_log("");
+       Evas_Object *gl;
+
+       _destroy_view(ug_data);
+
+       /* accounts list */
+       if (ug_data->gl) {
+               gl = ug_data->gl;
+       } else {
+               gl = elm_genlist_add(ug_data->navi_bar);
+               elm_genlist_tree_effect_enabled_set(gl, 1);
+               elm_genlist_block_count_set(gl, 36);
+               ug_data->gl = gl;
+       }
+
+       email_account_t *account_list = NULL;
+       int account_count = 0;
+       email_account_t *account_info = NULL;
+       int err = 0;
+       int i = 0;
+       int j = 0;
+       struct _menu_item *menu_its;
+       Item_Data *tree_item_data;
+
+       memset((ug_data->all_acc_unread_count), 0, sizeof(ug_data->all_acc_unread_count));
+       memset((ug_data->all_acc_read_count), 0, sizeof(ug_data->all_acc_unread_count));
+
+       /* If one account only. Set as the account. */
+       err = email_engine_get_account_list(&account_count, &account_list);
+       if (err == 0) {
+               debug_critical("fail to get account list - err(%d)", err);
+               if (ug_data->gl) {
+                       evas_object_del(ug_data->gl);
+                       ug_data->gl = NULL;
+               }
+               ug_data->gl = _add_emtpy_list(ug_data);
+               return;
+       }
+       if (account_list == NULL || account_count == 0) {
+               debug_critical("account info is @niL");
+               if (ug_data->gl) {
+                       evas_object_del(ug_data->gl);
+                       ug_data->gl = NULL;
+               }
+               ug_data->gl = _add_emtpy_list(ug_data);
+               return;
+       }
+       debug_log("current account_id: %d", ug_data->account_id);
+       if (account_count == 1 && ug_data->account_id == 0)
+       {
+               ug_data->account_id = account_list[0].account_id;
+       }
+       err = email_engine_free_account_list(&account_list, account_count);
+       if (err == 0) {
+               debug_critical("fail to free account list - err(%d)", err);
+       }
+       else
+       {
+               account_list = NULL;
+               account_count = 0;
+       }
+
+       debug_log("current account_id: %d", ug_data->account_id);
+
+       /* If all account mode, show mailbox-type list. */
+       if(ug_data->account_id == 0)
+       {
+               err = email_engine_get_account_list(&account_count, &account_list);
+
+               if (err == 0) {
+                       debug_critical("fail to get account list - err(%d)", err);
+                       if (ug_data->gl) {
+                               evas_object_del(ug_data->gl);
+                               ug_data->gl = NULL;
+                       }
+                       ug_data->gl = _add_emtpy_list(ug_data);
+                       return;
+               }
+
+               if (account_list == NULL || account_count == 0) {
+                       debug_critical("account info is @niL");
+                       if (ug_data->gl) {
+                               evas_object_del(ug_data->gl);
+                               ug_data->gl = NULL;
+                       }
+                       ug_data->gl = _add_emtpy_list(ug_data);
+                       return;
+               }
+
+               ug_data->n_account_list = account_count;
+
+               menu_its = folder_menu_its;
+               for (i = ACC_MAILBOX_TYPE_INBOX; i < ACC_MAILBOX_TYPE_MAX; i++)
+               {
+                       itc_item_for_all_acc_box[i].item_style = "2text";
+                       itc_item_for_all_acc_box[i].func.text_get = menu_its[i].func;
+                       itc_item_for_all_acc_box[i].func.state_get = _gl_state_get;
+                       itc_item_for_all_acc_box[i].func.del = _gl_del;
+
+                       tree_item_data = calloc(1, sizeof(Item_Data));
+                       tree_item_data->ug_data = ug_data;
+                       tree_item_data->it = elm_genlist_item_append(gl, &itc_item_for_all_acc_box[i], tree_item_data, NULL,
+                                       ELM_GENLIST_ITEM_NONE, _open_allacc_boxtype, (void*)menu_its[i].i_boxtype);
+               }
+
+               email_account_list *alist = (email_account_list *)calloc(account_count, sizeof(email_account_list));
+               memset((alist), 0, (sizeof(email_account_list)*account_count));
+
+               for (i = 0; i < account_count; i++) {
+                       alist[i].ug_data = ug_data;
+                       alist[i].account_info = &account_list[i];
+
+                       int err = 0;
+                       int mailbox_list_count = 0;
+                       email_mailbox_t *mailbox_list = NULL;
+
+                       err = email_get_mailbox_list_ex(account_list[i].account_id, -1, 1, &mailbox_list, &mailbox_list_count);
+                       if (err != EMAIL_ERROR_NONE) {
+                               debug_critical("email_get_mailbox_list return error");
+                               continue;
+                       }
+
+                       alist[i].mailbox_list = mailbox_list;
+                       alist[i].n_mailbox_list = mailbox_list_count;
+
+                       if (mailbox_list_count > 0) {
+                               for (j = 0; j < mailbox_list_count; j++) {
+                                       switch(mailbox_list[j].mailbox_type)
+                                       {
+                                               case EMAIL_MAILBOX_TYPE_INBOX:
+                                               {
+                                                       ug_data->all_acc_read_count[ACC_MAILBOX_TYPE_INBOX] += mailbox_list[j].total_mail_count_on_local;
+                                                       ug_data->all_acc_unread_count[ACC_MAILBOX_TYPE_INBOX] += mailbox_list[j].unread_count;
+                                               }
+                                                       break;
+                                               case EMAIL_MAILBOX_TYPE_SENTBOX:
+                                               {
+                                                       ug_data->all_acc_read_count[ACC_MAILBOX_TYPE_SENTBOX] += mailbox_list[j].total_mail_count_on_local;
+                                                       ug_data->all_acc_unread_count[ACC_MAILBOX_TYPE_SENTBOX] += mailbox_list[j].unread_count;
+                                               }
+                                                       break;
+                                               case EMAIL_MAILBOX_TYPE_TRASH:
+                                               {
+                                                       ug_data->all_acc_read_count[ACC_MAILBOX_TYPE_TRASH] += mailbox_list[j].total_mail_count_on_local;
+                                                       ug_data->all_acc_unread_count[ACC_MAILBOX_TYPE_TRASH] += mailbox_list[j].unread_count;
+                                               }
+                                                       break;
+                                               case EMAIL_MAILBOX_TYPE_DRAFT:
+                                               {
+                                                       ug_data->all_acc_read_count[ACC_MAILBOX_TYPE_DRAFT] += mailbox_list[j].total_mail_count_on_local;
+                                                       ug_data->all_acc_unread_count[ACC_MAILBOX_TYPE_DRAFT] += mailbox_list[j].unread_count;
+                                               }
+                                                       break;
+                                               case EMAIL_MAILBOX_TYPE_SPAMBOX:
+                                               {
+                                                       ug_data->all_acc_read_count[ACC_MAILBOX_TYPE_SPAMBOX] += mailbox_list[j].total_mail_count_on_local;
+                                                       ug_data->all_acc_unread_count[ACC_MAILBOX_TYPE_SPAMBOX] += mailbox_list[j].unread_count;
+                                               }
+                                                       break;
+                                               case EMAIL_MAILBOX_TYPE_OUTBOX:
+                                               {
+                                                       ug_data->all_acc_read_count[ACC_MAILBOX_TYPE_OUTBOX] += mailbox_list[j].total_mail_count_on_local;
+                                                       ug_data->all_acc_unread_count[ACC_MAILBOX_TYPE_OUTBOX] += mailbox_list[j].unread_count;
+                                               }
+                                                       break;
+                                               case EMAIL_MAILBOX_TYPE_FLAGGED:
+                                               {
+                                                       ug_data->all_acc_read_count[ACC_MAILBOX_TYPE_FLAGGED] += mailbox_list[j].total_mail_count_on_local;
+                                                       ug_data->all_acc_unread_count[ACC_MAILBOX_TYPE_FLAGGED] += mailbox_list[j].unread_count;
+                                               }
+                                                       break;
+                                               default:
+                                                       break;
+                                       }
+                               }
+                       }
+
+                       _make_folder_tree(alist + i, ug_data);
+               }
+
+               ug_data->alist = alist;
+       }
+       else
+       {
+               err = email_engine_get_account_full_data(ug_data->account_id, &account_info);
+
+               if (err == 0) {
+                       debug_critical("fail to get account info - err(%d)", err);
+                       if (ug_data->gl) {
+                               evas_object_del(ug_data->gl);
+                               ug_data->gl = NULL;
+                       }
+                       ug_data->gl = _add_emtpy_list(ug_data);
+                       return;
+               }
+
+               if (account_info == NULL) {
+                       debug_critical("account info is @niL");
+                       if (ug_data->gl) {
+                               evas_object_del(ug_data->gl);
+                               ug_data->gl = NULL;
+                       }
+                       ug_data->gl = _add_emtpy_list(ug_data);
+                       return;
+               }
+
+               itc_item.item_style = "dialogue/2text.2icon/expandable";
+               itc_item.func.text_get = _gl_label_get;
+               itc_item.func.content_get = _gl_icon_get;
+               itc_item.func.state_get = _gl_state_get;
+               itc_item.func.del = _gl_del;
+               itc_item.decorate_all_item_style = NULL;
+
+               email_account_list *alist = (email_account_list *)calloc(1, sizeof(email_account_list));
+               memset((alist), 0, sizeof(email_account_list));
+
+               alist->ug_data = ug_data;
+               alist->account_info = account_info;
+
+               int err = 0;
+               int mailbox_list_count = 0;
+               email_mailbox_t *mailbox_list = NULL;
+               Elm_Object_Item *account_item;
+
+               err = email_get_mailbox_list_ex(account_info->account_id, -1, 1, &mailbox_list, &mailbox_list_count);
+               if (err != EMAIL_ERROR_NONE) {
+                       debug_critical("email_get_mailbox_list return error");
+               }
+
+               alist->mailbox_list = mailbox_list;
+               alist->n_mailbox_list = mailbox_list_count;
+
+               if (mailbox_list_count > 0) {
+                       for (j = 0; j < mailbox_list_count; j++) {
+                               alist->read_count += mailbox_list[j].total_mail_count_on_local;
+                               alist->unread_count += mailbox_list[j].unread_count;
+                       }
+
+                       ug_data->all_read_count += alist->read_count;
+                       ug_data->all_unread_count += alist->unread_count;
+               }
+
+               _make_folder_tree(alist, ug_data);
+
+               ug_data->alist = alist;
+
+               debug_log("ug_data->alist:%d, alist: %d", ug_data->alist, alist);
+
+               tree_item_data = calloc(1, sizeof(Item_Data));
+               tree_item_data->ug_data = ug_data;
+               tree_item_data->alist = alist;
+               tree_item_data->child = (GNode *)alist;
+               tree_item_data->it = account_item = elm_genlist_item_append(gl, &itc_item, tree_item_data, NULL, ELM_GENLIST_ITEM_TREE, _edit_item_check_changed_cb/*_open_mail_list*/, tree_item_data);
+
+               evas_object_smart_callback_add(gl, "expand,request", _gl_exp_req, gl);
+               evas_object_smart_callback_add(gl, "contract,request", _gl_con_req, gl);
+               evas_object_smart_callback_add(gl, "expanded", _gl_exp, ug_data);
+               evas_object_smart_callback_add(gl, "contracted", _gl_con, gl);
+
+               ug_data->root_item = account_item;
+               elm_genlist_item_expanded_set(account_item, 1);
+               elm_genlist_item_selected_set(account_item, EINA_FALSE);
+//             elm_genlist_item_select_mode_set(account_item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+       }
+
+       return;
+}
+
+static gboolean _check_duplicated_node(GNode *node, gpointer data)
+{
+       debug_log("");
+       if (!data) {
+               debug_log("data is NULL");
+               return FALSE;
+       }
+
+       if (!node) {
+               debug_log("node is NULL");
+               return FALSE;
+       }
+
+       if (!(node->data)) {
+               debug_log("node data is NULL");
+               return FALSE;
+       }
+
+       gboolean b_search_parent = FALSE;
+       EmailAccountUGD *ug_data = (EmailAccountUGD *)data;
+       email_mailbox_t *node_data = (email_mailbox_t *)node->data;
+       gchar **vector = NULL;
+       vector = g_strsplit_set(node_data->mailbox_name, "/", -1);
+       int vlen = g_strv_length(vector);
+//     debug_log("compare(%s), vector(%s), vlen(%d)", ug_data->traverse_compare, vector[vlen-1], vlen);
+
+       gchar **vector2 = NULL;
+       vector2 = g_strsplit_set(ug_data->traverse_compare_mlist->mailbox_name, "/", -1);
+       int vlen2 = g_strv_length(vector2);
+       gchar *foler_name = g_strdup(vector2[vlen2-1]);
+       gchar* retval = g_strdup(ug_data->traverse_compare_mlist->mailbox_name);
+       gchar* ptr = NULL;
+       ptr = g_strstr_len(retval, -1, foler_name);
+       if (ptr != NULL && vlen > 1 && vlen2 > 1){
+               gchar* temp = g_strndup(retval, ptr-retval-1);
+               b_search_parent = TRUE;
+               g_free(retval);
+               retval = g_strdup(temp);
+               g_free(temp);
+       }
+//     debug_log("retval(%s), mailbox_name(%s), foler_name(%s), vlen2(%d)",
+//             retval, ug_data->traverse_compare_mlist->mailbox_name, foler_name, vlen2);
+//     debug_log("node_data->mailbox_name(%s)", node_data->mailbox_name);
+//     debug_log("node_data->mailbox_is(%d) : traverse_compare_mlist->mailbox_id(%d)", node_data->mailbox_id, ug_data->traverse_compare_mlist->mailbox_id);
+
+//     debug_log("vlen(%d) : vlen2(%d), ug_data->b_duplicated_node(%d)", vlen, vlen2, ug_data->b_duplicated_node);
+       if(node_data->mailbox_id == ug_data->traverse_compare_mlist->mailbox_id
+               || vlen != (vlen2-1))
+       {
+//             debug_log("same");
+               g_free(retval);
+               g_strfreev(vector);
+               g_strfreev(vector2);
+               return FALSE;
+       }
+
+       if ((b_search_parent == FALSE && g_strcmp0(vector[vlen-1], ug_data->traverse_compare) == 0)
+               ||( b_search_parent == TRUE && g_strcmp0(node_data->mailbox_name, retval) == 0)) {
+               ug_data->b_duplicated_node = 1;
+               ug_data->current_parent = node;
+               debug_log("** find dup(%s), b_search_parent(%d)", vector[vlen-1], b_search_parent);
+
+               g_free(retval);
+               g_strfreev(vector);
+               g_strfreev(vector2);
+               return TRUE;
+       }
+
+       g_free(retval);
+       g_strfreev(vector);
+       g_strfreev(vector2);
+       return FALSE;
+}
+
+static void _make_folder_tree(email_account_list *alist, EmailAccountUGD *ug_data)
+{
+       debug_log("");
+
+       int i = 0;
+       int j = 0;
+       email_mailbox_t *mailbox_list = alist->mailbox_list;
+       int mailbox_count = alist->n_mailbox_list;
+       gchar **vector[mailbox_count];
+       GNode *root = g_node_new(NULL);
+
+       for (i=0; i<mailbox_count; i++) {
+               vector[i] = g_strsplit_set(mailbox_list[i].mailbox_name, "/", -1);
+
+               if (vector[i] == NULL) {
+                       debug_log("vector is NULL");
+                       continue;
+               }
+
+               int vlen = g_strv_length(vector[i]);
+
+               if (vlen <= 0) {
+                       continue;
+               }
+//             debug_log("vector[%d]: %s, mailbox_list[%d].mailbox_name: %s", i, vector[i][vlen-1], i, mailbox_list[i].mailbox_name);
+
+               if (vlen == 1) {
+                       GNode *child = g_node_new(mailbox_list+i);
+                       g_node_insert(root, -1, child);
+                       continue;
+               }
+
+               ug_data->current_parent = root;
+               for (j=0; j<vlen; j++) {
+                       /*check if it exist among the leaves*/
+                       ug_data->traverse_compare = g_strdup(vector[i][j]);
+                       ug_data->traverse_compare_mlist = &mailbox_list[i];
+                       g_node_traverse(ug_data->current_parent, G_IN_ORDER, G_TRAVERSE_ALL, -1, _check_duplicated_node, (gpointer)ug_data);
+                       if (ug_data->b_duplicated_node == 1) {
+                               GNode *child = g_node_new(mailbox_list+i);
+                               email_mailbox_t *mlist = (email_mailbox_t *)(child->data);
+                               email_mailbox_t *mlist_parent = (email_mailbox_t *)(ug_data->current_parent->data);
+
+                               ug_data->current_parent = g_node_insert(ug_data->current_parent, -1, child);
+                               debug_log("*** parent:%s - child:%s", mlist_parent->mailbox_name, mlist->mailbox_name);
+                       }
+                       ug_data->b_duplicated_node = 0;
+                       g_free(ug_data->traverse_compare);
+                       ug_data->traverse_compare = NULL;
+               }
+               g_strfreev(vector[i]);
+       }
+
+       alist->folder_root = root;
+}
+
+static Eina_Bool _gl_state_get(void *data, Evas_Object *obj, const char *part)
+{
+       debug_log("");
+       return EINA_FALSE;
+}
+
+static char *_gl_label_get_for_subitem(void *data, Evas_Object *obj, const char *part)
+{
+       debug_log("");
+       Item_Data *tree_item_data = (Item_Data*)data;
+       GNode *node = (GNode *)tree_item_data->child;
+       email_mailbox_t *mlist = (email_mailbox_t *)(node->data);
+       char tmp[MAX_STR_LEN] = { 0, };
+
+       if (mlist == NULL) {
+               debug_log("mlist is NULL !!");
+               goto FINISH;
+       }
+
+       if (!strcmp(part, "elm.text")) {
+               if (mlist->alias != NULL) {
+                       snprintf(tmp, sizeof(tmp), "%s [%d/%d]", mlist->alias,
+                                       mlist->unread_count, mlist->total_mail_count_on_local);
+                       debug_log("%s : tree_item_data: %p, tree_item_data->it: %p", tmp, tree_item_data, tree_item_data->it);
+                       return g_strdup(tmp);
+               }
+       }
+
+FINISH:
+       snprintf(tmp, sizeof(tmp), _("IDS_EMAIL_BODY_NO_TEXT"));
+       return g_strdup(tmp);
+}
+
+static void _gl_del(void *data, Evas_Object *obj)
+{
+       debug_log("");
+       Item_Data *item_data = (Item_Data *)data;
+       FREE(item_data);
+}
+
+static char *_gl_label_get(void *data, Evas_Object *obj, const char *part)
+{
+       Item_Data *tree_item_data = (Item_Data *)data;
+       email_account_list *alist = tree_item_data->alist;
+       char tmp[MAX_STR_LEN] = { 0, }; /*account_name has no limitation on size*/
+
+       if (alist == NULL) {
+               debug_log("alist is NULL !!");
+               goto FINISH;
+       }
+
+       if (!strcmp(part, "elm.text.1")) {
+               if (alist->account_info->account_name != NULL) {
+                       debug_log("account_name: %s", alist->account_info->account_name);
+                       snprintf(tmp, sizeof(tmp), "%s  [%d/%d]",
+                                       alist->account_info->account_name, alist->unread_count, alist->read_count);
+                       return g_strdup(tmp);
+               }
+       } else if (!strcmp(part, "elm.text.2")) {
+               if (alist->account_info->user_email_address != NULL) {
+                       debug_log("user_email_addr: %s", alist->account_info->user_email_address);
+                       return g_strdup(alist->account_info->user_email_address);
+               }
+       } else {
+               debug_log("part is invalid");
+       }
+
+FINISH:
+       snprintf(tmp, sizeof(tmp), _("IDS_EMAIL_BODY_NO_TEXT"));
+       return g_strdup(tmp);
+}
+
+static Evas_Object *_gl_icon_get(void *data, Evas_Object *obj, const char *part)
+{
+       debug_log("");
+       if (!data) {
+               debug_log("data is NULL");
+               return NULL;
+       }
+
+       Item_Data *item_data = (Item_Data *)data;
+       email_account_list *alist = item_data->alist;
+//     Evas_Object *btn = NULL, *check = NULL, *edit_field = NULL, *entry = NULL;
+//     static Elm_Entry_Filter_Limit_Size limit_filter_data;
+
+       if (elm_genlist_decorate_mode_get(obj)) {
+#if 0
+               if (!strcmp(part, "elm.edit.icon.1")) {
+                       check = elm_check_add(obj);
+                       debug_log("alist: %p, ug_data: %p, ug_data->it: %p, alist->it: %p, obj: %p, checked: %d", alist, alist->ug_data, alist->ug_data->it, item_data->it, obj, item_data->checked);
+                       elm_check_state_pointer_set(check, &item_data->checked);
+                       evas_object_smart_callback_add(check, "changed", _edit_item_check_changed_cb, item_data);
+                       return check;
+               } else if (!strcmp(part, "elm.edit.icon.2")) { // swallow rename button if need
+                       btn = elm_button_add(obj);
+                       elm_object_style_set(btn, "rename");
+                       debug_log("item_data: %p, item_data->it: %p", item_data, item_data->it);
+                       if (item_data/*item_data->it*/){
+                               evas_object_smart_callback_add(btn, "clicked", _rename_button_cb, item_data);
+                       }
+                       return btn;
+               } else if (!strcmp(part, "elm.flip.icon")) {
+                       btn = elm_button_add(obj);
+                       elm_object_text_set(btn, dgettext("sys_string", "IDS_COM_SK_CANCEL"));
+                       return btn;
+               } else if (!strcmp(part, "elm.flip.content")) { // this is used when the flip mode is enabled.
+                       GNode *node = (GNode *)item_data->child;
+                       email_mailbox_t *mlist = (email_mailbox_t *)(node->data);
+
+                       edit_field = _singleline_editfield_add(obj);
+                       debug_log("edit_field: %p, alias: %s", edit_field, mlist->alias);
+
+                       entry = elm_object_part_content_get(edit_field, "elm.swallow.content");
+                       elm_entry_entry_set(entry, mlist->alias);
+                       elm_object_focus_set(entry, EINA_TRUE);
+                       elm_entry_cursor_end_set(entry);
+
+                       // the below is sample code for control entry. It is not mandatory.
+                       limit_filter_data.max_char_count = 0;
+                       limit_filter_data.max_byte_count = 30;
+                       elm_entry_markup_filter_append(entry, elm_entry_filter_limit_size, &limit_filter_data);
+                       evas_object_smart_callback_add(entry, "changed", _rename_entry_changed_cb, data);
+                       evas_object_smart_callback_add(entry, "maxlength,reached", _maxlength_reached_cb, NULL);
+                       evas_object_smart_callback_add(entry, "unfocused", _rename_unfocused_cb, obj);
+
+                       return edit_field;
+               }
+#endif
+       }
+
+       if (!strcmp(part, "elm.icon") || !strcmp(part, "elm.icon.1"))
+       {
+               Evas_Object *icon = elm_icon_add(obj);
+
+               // setting/include/email-setting.h
+               typedef enum {
+                       HOTMAIL =1,
+                       GMAIL,
+                       YAHOOMAIL,
+                       AOL,
+                       OTHERS
+               } AccountInfo;
+
+               account_user_data_t *user_data = (account_user_data_t *)alist->account_info->user_data;
+               debug_log("is_preset_account:%d", user_data->is_preset_account);
+
+               switch (user_data->is_preset_account) {
+               case GMAIL:
+                       elm_icon_file_set(icon, ACCOUNT_ICON_GMAIL, NULL);
+                       break;
+               case HOTMAIL:
+                       elm_icon_file_set(icon, ACCOUNT_ICON_HOTMAIL, NULL);
+                       break;
+               case YAHOOMAIL:
+                       elm_icon_file_set(icon, ACCOUNT_ICON_YAHOO, NULL);
+                       break;
+               case AOL:
+                       elm_icon_file_set(icon, ACCOUNT_ICON_AOL, NULL);
+                       break;
+               case OTHERS:
+               default:
+                       elm_icon_file_set(icon, ACCOUNT_ICON_OTHERS, NULL);
+                       break;
+               }
+               evas_object_size_hint_aspect_set(icon, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
+
+               return icon;
+       }
+       else if (!strcmp(part, "elm.swallow.colorbar"))
+       {
+               account_user_data_t *user_data = (account_user_data_t *)alist->account_info->user_data;
+               unsigned int val = user_data->index_color;
+               int r = (val & 0xff000000) >> 24;
+               int g = (val & 0x00ff0000) >> 16;
+               int b = (val & 0x0000ff00) >> 8;
+               int a = val & 0x000000ff;
+
+               Evas_Object *color_bar = evas_object_rectangle_add(evas_object_evas_get(obj));
+               evas_object_size_hint_fill_set(color_bar, EVAS_HINT_FILL, EVAS_HINT_FILL);
+               evas_object_color_set(color_bar, r, g, b, a);
+
+               return color_bar;
+       }
+       else
+       {
+               debug_log("part is invalid");
+       }
+
+       return NULL;
+}
+
+static void _gl_con(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       Elm_Object_Item *it = event_info;
+
+       elm_genlist_item_selected_set(it, EINA_FALSE);
+       elm_genlist_item_subitems_clear(it);
+}
+
+static void _gl_exp_req(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       Elm_Object_Item *it = event_info;
+       elm_genlist_item_expanded_set(it, 1);
+       elm_genlist_item_selected_set(it, EINA_FALSE);
+
+       /*current_it = it;*/
+}
+
+static void _gl_con_req(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       Elm_Object_Item *it = event_info;
+       elm_genlist_item_expanded_set(it, 0);
+
+       /*current_it = it;*/
+}
+
+static void _gl_exp(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+
+       Elm_Object_Item *it = event_info;
+       /*elm_genlist_item_selected_set(it, 0);*/
+       Evas_Object *gl = elm_object_item_widget_get(it);
+
+       itc_subtree.item_style = "1text.1/expandable_n_depth";
+       itc_subtree.func.text_get = _gl_label_get_for_subitem;
+       itc_subtree.func.content_get = _gl_icon_get;
+       itc_subtree.func.state_get = _gl_state_get;
+       itc_subtree.func.del = _gl_del;
+       itc_subtree.decorate_all_item_style = NULL;
+
+       itc_subtree2.item_style = "1text.2/expandable_n_depth";
+       itc_subtree2.func.text_get = _gl_label_get_for_subitem;
+       itc_subtree2.func.content_get = _gl_icon_get;
+       itc_subtree2.func.state_get = _gl_state_get;
+       itc_subtree2.func.del = _gl_del;
+       itc_subtree2.decorate_all_item_style = NULL;
+
+       int i = 0;
+       int depth = elm_genlist_item_expanded_depth_get(it);
+       Elm_Object_Item *sub_it = NULL;
+       Item_Data *tree_item_data;
+
+       debug_log("depth: %d", depth);
+
+       if (depth == 0) {
+               //const void *item_data = elm_object_item_data_get((const Elm_Object_Item *)it);
+               Item_Data *item_data = (Item_Data *)elm_object_item_data_get((const Elm_Object_Item *)it);
+               if (item_data == NULL) {
+                       debug_log("item data is NULL");
+                       return;
+               }
+               email_account_list *alist = item_data->alist;
+
+               int n_children = g_node_n_children(alist->folder_root);
+               debug_log("n_children of root: %d", n_children);
+
+               for (i = 0; i < n_children; i++) {
+                       GNode *child = g_node_nth_child(alist->folder_root, i);
+                       if (g_node_n_children(child) > 0) {
+                               tree_item_data = calloc(1, sizeof(Item_Data));
+                               tree_item_data->ug_data = alist->ug_data;
+                               tree_item_data->alist = alist;
+                               tree_item_data->child = child;
+                               sub_it = tree_item_data->it = elm_genlist_item_append(gl, &itc_subtree, tree_item_data, it,
+                                                       ELM_GENLIST_ITEM_TREE, _gl_exp_sel, alist);
+                               //debug_log("alist: %p, tree_item_data:%p, tree_item_data->it : %p, it: %p, child: %p", alist, tree_item_data, tree_item_data->it, it, child);
+                       } else {
+                               tree_item_data = calloc(1, sizeof(Item_Data));
+                               tree_item_data->ug_data = alist->ug_data;
+                               tree_item_data->alist = alist;
+                               tree_item_data->child = child;
+                               tree_item_data->it = elm_genlist_item_append(gl, &itc_subtree2, tree_item_data, it,
+                                                       ELM_GENLIST_ITEM_NONE, _gl_sel, alist);
+                               //debug_log("alist: %p, tree_item_data:%p, tree_item_data->it : %p, it: %p, child: %p", alist, tree_item_data, tree_item_data->it, it, child);
+                       }
+               }
+       }
+       else if (depth > 0) {
+//             const void *item_data = elm_object_item_data_get((const Elm_Object_Item *)it);
+               Item_Data *item_data = (Item_Data *)elm_object_item_data_get((const Elm_Object_Item *)it);
+               if (item_data == NULL) {
+                       debug_log("item data is NULL");
+                       return;
+               }
+               GNode *sub_root = (GNode *)item_data->child;
+
+               int n_children = g_node_n_children(sub_root);
+               debug_log("n_children of sub_root depth[%d]: %d", depth, n_children);
+
+               Elm_Object_Item *parent_it =it;
+               for (i = 0; i < depth; i++)
+                       parent_it = elm_genlist_item_parent_get(parent_it);
+
+               //const void *parent_item_data = elm_object_item_data_get((const Elm_Object_Item *)parent_it);
+               Item_Data *parent_item_data = elm_object_item_data_get((const Elm_Object_Item *)parent_it);
+               if (parent_item_data == NULL) {
+                       debug_log("parent item data is NULL");
+                       return;
+               }
+               email_account_list *alist = (email_account_list *) parent_item_data->alist;
+
+               for (i = 0; i < n_children; i++) {
+                       GNode *child = g_node_nth_child(sub_root, i);
+                       if (g_node_n_children(child) > 0) {
+                               tree_item_data = calloc(1, sizeof(Item_Data));
+                               tree_item_data->ug_data = alist->ug_data;
+                               tree_item_data->alist = alist;
+                               tree_item_data->child = child;
+                               sub_it = tree_item_data->it = elm_genlist_item_append(gl, &itc_subtree, tree_item_data, it,
+                                                       ELM_GENLIST_ITEM_TREE, _gl_exp_sel, alist);
+                               //debug_log("alist: %p, tree_item_data:%p, tree_item_data->it : %p, it: %p, child: %p", alist, tree_item_data, tree_item_data->it, it, child);
+                       } else {
+                               tree_item_data = calloc(1, sizeof(Item_Data));
+                               tree_item_data->ug_data = alist->ug_data;
+                               tree_item_data->alist = alist;
+                               tree_item_data->child = child;
+                               tree_item_data->it = elm_genlist_item_append(gl, &itc_subtree2, tree_item_data, it,
+                                                       ELM_GENLIST_ITEM_NONE, _gl_sel, alist);
+                               //debug_log("alist: %p, tree_item_data:%p, tree_item_data->it : %p, it: %p, child: %p", alist, tree_item_data, tree_item_data->it, it, child);
+                       }
+               }
+       }
+}
+
+static void _gl_sel(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       if (!data) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       email_account_list *alist = (email_account_list *) data;
+
+       Elm_Object_Item *it = event_info;
+       Item_Data *item_data = elm_object_item_data_get((const Elm_Object_Item *)it);
+       if (item_data == NULL) {
+               debug_log("item_data is NULL");
+               return;
+       }
+
+       Evas_Coord x, y = 0;
+       evas_pointer_canvas_xy_get(evas_object_evas_get(obj), &x, &y);
+       debug_log("X = %d, Y = %d", x, y);
+
+       elm_genlist_item_selected_set(it, 0);
+
+       if (alist->ug_data == NULL) {
+               debug_log("ugd is NULL");
+               return;
+       }
+
+       int main_w = alist->ug_data->main_w;
+       int main_h = alist->ug_data->main_h;
+       debug_log("g_isRotate = %d, main_w: %d, main_h:%d", g_isRotate, main_w, main_h);
+/*
+       if (g_isRotate == false)
+       {
+               debug_log("Potrait Mode");
+               if (x > (main_w-96) && x < main_w) {
+                       return;
+               }
+       } else {
+               debug_log("Landscape Mode");
+               if (x > (main_w-96) && x < main_w) {
+                       return;
+               }
+       }
+*/
+       GNode *node = (GNode *)item_data->child;
+       email_mailbox_t *mlist = (email_mailbox_t *)(node->data);
+
+       if (alist->ug_data->block_item_click)
+               return;
+
+       if (elm_genlist_decorate_mode_get(alist->ug_data->gl)) {
+               if(ACC_FOLDER_CREATE == alist->ug_data->folder_mode)
+               {
+                       _popup_newfolder_cb(data, obj, event_info);
+               }
+/*             else if(ACC_FOLDER_EDIT == alist->ug_data->folder_mode)
+               {
+                       _folder_edit_sel_cb(data, obj, event_info);
+               }
+*/
+               else if(ACC_FOLDER_DELETE == alist->ug_data->folder_mode)
+               {
+                       _popup_delfolder_cb(data, obj, event_info);
+               }
+               else if(ACC_FOLDER_MOVE_FROM == alist->ug_data->folder_mode)
+               {
+                       alist->ug_data->move_from_item = it;
+                       alist->ug_data->it = it;
+                       _folder_move_cb(alist->ug_data, obj, event_info);
+               }
+               else if(ACC_FOLDER_MOVE_TO == alist->ug_data->folder_mode)
+               {
+                       _popup_movefolder_cb(data, obj, event_info);
+               }
+               else if(ACC_FOLDER_RENAME == alist->ug_data->folder_mode)
+               {
+                       _popup_rename_cb(data, obj, event_info);
+               }
+       }
+       else
+       {
+               elm_genlist_item_update(it);
+
+               service_h service;
+               if (SERVICE_ERROR_NONE != service_create(&service))
+               {
+                       debug_log("creating service handle failed");
+                       return;
+               }
+
+               char id[NUM_STR_LEN] = {0,};
+               snprintf(id, sizeof(id), "%d", alist->account_info->account_id);
+
+               char is_null[NUM_STR_LEN] = {0,};
+               snprintf(is_null, sizeof(is_null), "%d", false);
+
+               char mailbox_id[NUM_STR_LEN] = {0,};
+               snprintf(mailbox_id, sizeof(mailbox_id), "%d", mlist->mailbox_id);
+
+               service_add_extra_data(service, EMAIL_BUNDLE_KEY_ACCOUNT_ID, id);
+               service_add_extra_data(service, EMAIL_BUNDLE_KEY_IS_NULL, is_null);
+               service_add_extra_data(service, EMAIL_BUNDLE_KEY_MAILBOX, mailbox_id);
+               service_add_extra_data(service, EMAIL_BUNDLE_KEY_USER_EMAIL, alist->account_info->user_email_address);
+               service_add_extra_data(service, EMAIL_BUNDLE_KEY_MAILBOX_ALIAS, mlist->alias);
+               ug_send_result(alist->ug_data->ug, service);
+
+               alist->ug_data->block_item_click = 1;
+
+               service_destroy(service);
+       }
+}
+
+static void _gl_exp_sel(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+
+       if (!data) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       email_account_list *alist = (email_account_list *) data;
+
+       Elm_Object_Item *it = event_info;
+       Item_Data *item_data = elm_object_item_data_get((const Elm_Object_Item *)it);
+       if (item_data == NULL) {
+               debug_log("item_data is NULL");
+               return;
+       }
+
+       elm_genlist_item_selected_set(it, 0);
+
+       Evas_Coord x, y = 0;
+       evas_pointer_canvas_xy_get(evas_object_evas_get(obj), &x, &y);
+       debug_log("X = %d, Y = %d", x, y);
+
+       if (alist->ug_data == NULL) {
+               debug_log("ugd is NULL");
+               return;
+       }
+
+       GNode *node = (GNode *)item_data->child;
+       email_mailbox_t *mlist = (email_mailbox_t *)(node->data);
+       gchar **vector = NULL;
+       vector = g_strsplit_set(mlist->mailbox_name, "/", -1);
+       int vlen = g_strv_length(vector);
+
+       int main_w = alist->ug_data->main_w;
+       int main_h = alist->ug_data->main_h;
+       debug_log("g_isRotate = %d, main_w: %d, main_h:%d", g_isRotate, main_w, main_h);
+
+       if (g_isRotate == false)
+       {
+               if (x > 0 && x < (100+(vlen*28))) {
+                       debug_log("Potrait Mode");
+                       return;
+               }
+       } else {
+               if (x > 0 && x < (100+(vlen*28))) {
+                       debug_log("Landscape Mode");
+                       return;
+               }
+       }
+       g_strfreev(vector);
+/*
+       if (g_isRotate == false)
+       {
+               debug_log("Potrait Mode");
+               if (x > (main_w-96) && x < main_w) {
+                       return;
+               }
+       } else {
+               debug_log("Landscape Mode");
+               if (x > (main_w-96) && x < main_w) {
+                       return;
+               }
+       }
+*/
+
+       if (alist->ug_data->block_item_click)
+               return;
+
+       if (elm_genlist_decorate_mode_get(alist->ug_data->gl)) {
+               if(ACC_FOLDER_CREATE == alist->ug_data->folder_mode)
+               {
+                       _popup_newfolder_cb(data, obj, event_info);
+               }
+/*             else if(ACC_FOLDER_EDIT == alist->ug_data->folder_mode)
+               {
+                       _folder_edit_sel_cb(data, obj, event_info);
+               }*/
+               else if(ACC_FOLDER_DELETE == alist->ug_data->folder_mode)
+               {
+                       _popup_delfolder_cb(data, obj, event_info);
+               }
+               else if(ACC_FOLDER_MOVE_FROM == alist->ug_data->folder_mode)
+               {
+                       alist->ug_data->move_from_item = it;
+                       _folder_move_cb(alist->ug_data, obj, event_info);
+               }
+               else if(ACC_FOLDER_MOVE_TO == alist->ug_data->folder_mode)
+               {
+                       _popup_movefolder_cb(data, obj, event_info);
+               }
+               else if(ACC_FOLDER_RENAME == alist->ug_data->folder_mode)
+               {
+                       _popup_rename_cb(data, obj, event_info);
+               }
+       }
+       else
+       {
+               if (g_isRotate == false)
+               {
+                       if (x > 0 && x < 148) {
+                               debug_log("Potrait Mode");
+                               return;
+                       }
+               } else {
+                       if (x > 0 && x < 148) {
+                               debug_log("Landscape Mode");
+                               return;
+                       }
+               }
+
+               elm_genlist_item_update(it);
+
+               service_h service;
+               if (SERVICE_ERROR_NONE != service_create(&service))
+               {
+                       debug_log("creating service handle failed");
+                       return;
+               }
+
+               char id[NUM_STR_LEN] = {0,};
+               snprintf(id, sizeof(id), "%d", alist->account_info->account_id);
+
+               char is_null[NUM_STR_LEN] = {0,};
+               snprintf(is_null, sizeof(is_null), "%d", false);
+
+               char mailbox_id[NUM_STR_LEN] = {0,};
+               snprintf(mailbox_id, sizeof(mailbox_id), "%d", mlist->mailbox_id);
+
+               service_add_extra_data(service, EMAIL_BUNDLE_KEY_ACCOUNT_ID, id);
+               service_add_extra_data(service, EMAIL_BUNDLE_KEY_IS_NULL, is_null);
+               service_add_extra_data(service, EMAIL_BUNDLE_KEY_MAILBOX, mailbox_id);
+               service_add_extra_data(service, EMAIL_BUNDLE_KEY_USER_EMAIL, alist->account_info->user_email_address);
+               service_add_extra_data(service, EMAIL_BUNDLE_KEY_MAILBOX_ALIAS, mlist->alias);
+               ug_send_result(alist->ug_data->ug, service);
+
+               alist->ug_data->block_item_click = 1;
+
+               service_destroy(service);
+       }
+}
+
+void _refresh_folder_view(void *data)
+{
+       debug_log("");
+       EmailAccountUGD *ug_data = (EmailAccountUGD *) data;
+
+       if (ug_data == NULL) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       Evas_Object *gl = ug_data->gl;
+       if (ug_data->gl == NULL) {
+               debug_log("genlist is NULL");
+               return;
+       }
+
+       elm_genlist_clear(gl);
+       evas_object_del(gl);
+       ug_data->gl = NULL;
+
+       _destroy_view(ug_data);
+       _create_folder_view(ug_data);
+       elm_object_part_content_set(ug_data->sub_ly, "elm.swallow.content", ug_data->gl);
+
+       return;
+}
+
+static void _refresh_account_list(void *data)
+{
+       debug_log("");
+       EmailAccountUGD *ug_data = (EmailAccountUGD *) data;
+
+       if (ug_data == NULL) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       Evas_Object *gl = ug_data->gl;
+       if (ug_data->gl == NULL) {
+               debug_log("genlist is NULL");
+               return;
+       }
+
+       elm_genlist_clear(gl);
+       evas_object_del(gl);
+       ug_data->gl = NULL;
+
+       _destroy_view(ug_data);
+       _create_account_view(ug_data);
+       elm_object_part_content_set(ug_data->ly, "elm.swallow.content", ug_data->gl);
+
+       return;
+}
+
+void _finish_folder_view(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       EmailAccountUGD *ug_data = (EmailAccountUGD *) data;
+
+       if (ug_data == NULL) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       Evas_Object *gl = ug_data->gl;
+       if (ug_data->gl == NULL) {
+               debug_log("genlist is NULL");
+               return;
+       }
+
+       elm_genlist_clear(gl);
+       evas_object_del(gl);
+       ug_data->gl = NULL;
+
+       _destroy_view(ug_data);
+
+       ug_data->folder_mode = ACC_FOLDER_NONE;
+
+       /* Change layout background color to default background color */
+       edje_object_signal_emit(_EDJ(ug_data->ly), "elm,bg,show,default", "elm");
+
+       elm_object_item_part_content_unset(ug_data->navibar_item, "controlbar");
+       elm_object_item_part_content_set(ug_data->navibar_item, "controlbar", ug_data->control_bar);
+       evas_object_show(ug_data->control_bar);
+
+       _create_folder_view(ug_data);
+       elm_object_part_content_set(ug_data->sub_ly, "elm.swallow.content", ug_data->gl);
+
+       /* Set the navigation bar title */
+       //elm_object_part_text_set(ug_data->navi_title_ly, "txt_title", _("IDS_EMAIL_HEADER_FOLDERS"));
+       elm_object_item_text_set(ug_data->navibar_item, _("IDS_EMAIL_HEADER_FOLDERS"));
+
+       _create_controlbar(ug_data);
+
+       return;
+}
+
+static void _update_all_account_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       EmailAccountUGD *ug_data = (EmailAccountUGD *)data;
+
+       if(ug_data->ug_mode == ACC_UG_ACCOUNT_VIEW)
+       {
+               _refresh_account_list(ug_data);
+       }
+       else // UG_MODE_FULLVIEW
+       {
+               if (!elm_genlist_decorate_mode_get(ug_data->gl)) {
+                       _refresh_folder_view(ug_data);
+               } else {
+                       if(ACC_FOLDER_CREATE == ug_data->folder_mode)
+                       {
+                               _folder_create_cb(ug_data, NULL, NULL);
+                       }
+                       else if(ACC_FOLDER_DELETE == ug_data->folder_mode)
+                       {
+                               _folder_delete_cb(ug_data, NULL, NULL);
+                       }
+                       else if(ACC_FOLDER_MOVE_TO == ug_data->folder_mode)
+                       {
+                               _folder_move_cb(ug_data, NULL, NULL);
+                       }
+                       else if(ACC_FOLDER_RENAME == ug_data->folder_mode)
+                       {
+                               _folder_rename_cb(ug_data, NULL, NULL);
+                       }
+                       /*else if(ACC_FOLDER_EDIT == ug_data->folder_mode)
+                       {
+                               _folder_edit_cb(ug_data, NULL, NULL);
+                       }*/
+               }
+       }
+}
+
+static char *_gl_label_get_for_all_acc_inbox(void *data, Evas_Object *obj, const char *part)
+{
+       debug_log("");
+       Item_Data *tree_item_data = (Item_Data *) data;
+       EmailAccountUGD *ug_data = tree_item_data->ug_data;
+       char tmp[MAX_STR_LEN] = { 0, };
+
+       if (!strcmp(part, "elm.text.1")) {
+               snprintf(tmp, sizeof(tmp), "%s", _("IDS_EMAIL_BODY_INBOX"));
+               return g_strdup(tmp);
+       } else if (!strcmp(part, "elm.text.2")) {
+               snprintf(tmp, sizeof(tmp), "[%d/%d]", ug_data->all_acc_unread_count[ACC_MAILBOX_TYPE_INBOX], ug_data->all_acc_read_count[ACC_MAILBOX_TYPE_INBOX]);
+               return g_strdup(tmp);
+       } else {
+               debug_log("part is invalid");
+       }
+
+       snprintf(tmp, sizeof(tmp), _("IDS_EMAIL_BODY_NO_TEXT"));
+       return g_strdup(tmp);
+}
+
+static char *_gl_label_get_for_all_acc_favorite(void *data, Evas_Object *obj, const char *part)
+{
+       debug_log("");
+       Item_Data *tree_item_data = (Item_Data *) data;
+       EmailAccountUGD *ug_data = tree_item_data->ug_data;
+       char tmp[MAX_STR_LEN] = { 0, };
+
+       if (!strcmp(part, "elm.text.1")) {
+               snprintf(tmp, sizeof(tmp), "%s", _("IDS_EMAIL_BODY_FAVOURITES"));
+               return g_strdup(tmp);
+       } else if (!strcmp(part, "elm.text.2")) {
+               snprintf(tmp, sizeof(tmp), "[%d/%d]", ug_data->all_acc_unread_count[ACC_MAILBOX_TYPE_FLAGGED], ug_data->all_acc_read_count[ACC_MAILBOX_TYPE_FLAGGED]);
+               return g_strdup(tmp);
+       } else {
+               debug_log("part is invalid");
+       }
+
+       snprintf(tmp, sizeof(tmp), _("IDS_EMAIL_BODY_NO_TEXT"));
+       return g_strdup(tmp);
+}
+
+static char *_gl_label_get_for_all_acc_draft(void *data, Evas_Object *obj, const char *part)
+{
+       debug_log("");
+       Item_Data *tree_item_data = (Item_Data *) data;
+       EmailAccountUGD *ug_data = tree_item_data->ug_data;
+       char tmp[MAX_STR_LEN] = { 0, };
+
+       if (!strcmp(part, "elm.text.1")) {
+               snprintf(tmp, sizeof(tmp), "%s", _("IDS_EMAIL_BODY_DRAFTS"));
+               return g_strdup(tmp);
+       } else if (!strcmp(part, "elm.text.2")) {
+               snprintf(tmp, sizeof(tmp), "[%d/%d]", ug_data->all_acc_unread_count[ACC_MAILBOX_TYPE_DRAFT], ug_data->all_acc_read_count[ACC_MAILBOX_TYPE_DRAFT]);
+               return g_strdup(tmp);
+       } else {
+               debug_log("part is invalid");
+       }
+
+       snprintf(tmp, sizeof(tmp), _("IDS_EMAIL_BODY_NO_TEXT"));
+       return g_strdup(tmp);
+}
+
+static char *_gl_label_get_for_all_acc_outbox(void *data, Evas_Object *obj, const char *part)
+{
+       debug_log("");
+       Item_Data *tree_item_data = (Item_Data *) data;
+       EmailAccountUGD *ug_data = tree_item_data->ug_data;
+       char tmp[MAX_STR_LEN] = { 0, };
+
+       if (!strcmp(part, "elm.text.1")) {
+               snprintf(tmp, sizeof(tmp), "%s", N_("Outbox"));
+               return g_strdup(tmp);
+       } else if (!strcmp(part, "elm.text.2")) {
+               snprintf(tmp, sizeof(tmp), "[%d/%d]", ug_data->all_acc_unread_count[ACC_MAILBOX_TYPE_OUTBOX], ug_data->all_acc_read_count[ACC_MAILBOX_TYPE_OUTBOX]);
+               return g_strdup(tmp);
+       } else {
+               debug_log("part is invalid");
+       }
+
+       snprintf(tmp, sizeof(tmp), _("IDS_EMAIL_BODY_NO_TEXT"));
+       return g_strdup(tmp);
+}
+
+static char *_gl_label_get_for_all_acc_sentbox(void *data, Evas_Object *obj, const char *part)
+{
+       debug_log("");
+       Item_Data *tree_item_data = (Item_Data *) data;
+       EmailAccountUGD *ug_data = tree_item_data->ug_data;
+       char tmp[MAX_STR_LEN] = { 0, };
+
+       if (!strcmp(part, "elm.text.1")) {
+               snprintf(tmp, sizeof(tmp), "%s", _("IDS_EMAIL_BODY_SENTBOX"));
+               return g_strdup(tmp);
+       } else if (!strcmp(part, "elm.text.2")) {
+               snprintf(tmp, sizeof(tmp), "[%d/%d]", ug_data->all_acc_unread_count[ACC_MAILBOX_TYPE_SENTBOX], ug_data->all_acc_read_count[ACC_MAILBOX_TYPE_SENTBOX]);
+               return g_strdup(tmp);
+       } else {
+               debug_log("part is invalid");
+       }
+
+       snprintf(tmp, sizeof(tmp), _("IDS_EMAIL_BODY_NO_TEXT"));
+       return g_strdup(tmp);
+}
+
+static char *_gl_label_get_for_all_acc_spambox(void *data, Evas_Object *obj, const char *part)
+{
+       debug_log("");
+       Item_Data *tree_item_data = (Item_Data *) data;
+       EmailAccountUGD *ug_data = tree_item_data->ug_data;
+       char tmp[MAX_STR_LEN] = { 0, };
+
+       if (!strcmp(part, "elm.text.1")) {
+               snprintf(tmp, sizeof(tmp), "%s", _("IDS_EMAIL_BODY_SPAMBOX"));
+               return g_strdup(tmp);
+       } else if (!strcmp(part, "elm.text.2")) {
+               snprintf(tmp, sizeof(tmp), "[%d/%d]", ug_data->all_acc_unread_count[ACC_MAILBOX_TYPE_SPAMBOX], ug_data->all_acc_read_count[ACC_MAILBOX_TYPE_SPAMBOX]);
+               return g_strdup(tmp);
+       } else {
+               debug_log("part is invalid");
+       }
+
+       snprintf(tmp, sizeof(tmp), _("IDS_EMAIL_BODY_NO_TEXT"));
+       return g_strdup(tmp);
+}
+
+static char *_gl_label_get_for_all_acc_trash(void *data, Evas_Object *obj, const char *part)
+{
+       debug_log("");
+       Item_Data *tree_item_data = (Item_Data *) data;
+       EmailAccountUGD *ug_data = tree_item_data->ug_data;
+       char tmp[MAX_STR_LEN] = { 0, };
+
+       if (!strcmp(part, "elm.text.1")) {
+               snprintf(tmp, sizeof(tmp), "%s", _("IDS_EMAIL_BODY_TRASH"));
+               return g_strdup(tmp);
+       } else if (!strcmp(part, "elm.text.2")) {
+               snprintf(tmp, sizeof(tmp), "[%d/%d]", ug_data->all_acc_unread_count[ACC_MAILBOX_TYPE_TRASH], ug_data->all_acc_read_count[ACC_MAILBOX_TYPE_TRASH]);
+               return g_strdup(tmp);
+       } else {
+               debug_log("part is invalid");
+       }
+
+       snprintf(tmp, sizeof(tmp), _("IDS_EMAIL_BODY_NO_TEXT"));
+       return g_strdup(tmp);
+}
+
+static void _open_allacc_boxtype(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+
+       int box_type = (account_mailbox_type_e)data;
+       email_mailbox_type_e mailbox_type = EMAIL_MAILBOX_TYPE_INBOX;
+       Elm_Object_Item *item = (Elm_Object_Item *)event_info;
+       Item_Data *item_data = elm_object_item_data_get((const Elm_Object_Item *)item);
+       RETURN_IF_FAIL(item_data != NULL);
+       EmailAccountUGD *ug_data = (EmailAccountUGD *) item_data->ug_data;
+
+       elm_genlist_item_selected_set(item, 0);
+
+       if (ug_data->block_item_click)
+               return;
+       elm_genlist_item_update(item);
+
+       switch(box_type)
+       {
+               case ACC_MAILBOX_TYPE_INBOX:
+               {
+                       mailbox_type = EMAIL_MAILBOX_TYPE_INBOX;
+               }
+                       break;
+               case ACC_MAILBOX_TYPE_FLAGGED:
+               {
+                       mailbox_type = EMAIL_MAILBOX_TYPE_FLAGGED;
+               }
+                       break;
+               case ACC_MAILBOX_TYPE_DRAFT:
+               {
+                       mailbox_type = EMAIL_MAILBOX_TYPE_DRAFT;
+               }
+                       break;
+               case ACC_MAILBOX_TYPE_OUTBOX:
+               {
+                       mailbox_type = EMAIL_MAILBOX_TYPE_OUTBOX;
+               }
+               break;
+               case ACC_MAILBOX_TYPE_SENTBOX:
+               {
+                       mailbox_type = EMAIL_MAILBOX_TYPE_SENTBOX;
+               }
+               break;
+               case ACC_MAILBOX_TYPE_SPAMBOX:
+               {
+                       mailbox_type = EMAIL_MAILBOX_TYPE_SPAMBOX;
+               }
+               break;
+               case ACC_MAILBOX_TYPE_TRASH:
+               {
+                       mailbox_type = EMAIL_MAILBOX_TYPE_TRASH;
+               }
+               break;
+               default:
+               {
+                       mailbox_type = EMAIL_MAILBOX_TYPE_INBOX;
+               }
+                       break;
+       }
+
+       service_h service;
+       if (SERVICE_ERROR_NONE != service_create(&service))
+       {
+               debug_log("creating service handle failed");
+               return;
+       }
+       debug_log("box_type: [%d], mailbox_type: [%d]", box_type, mailbox_type);
+
+       char id[NUM_STR_LEN] = {0,};
+       snprintf(id, sizeof(id), "%d", 0);
+
+       char is_null[NUM_STR_LEN] = {0,};
+       snprintf(is_null, sizeof(is_null), "%d", true);
+
+       char ch_boxtype[NUM_STR_LEN] = {0,};
+       snprintf(ch_boxtype, sizeof(ch_boxtype), "%d", mailbox_type);
+
+       service_add_extra_data(service, EMAIL_BUNDLE_KEY_ACCOUNT_ID, id);
+       service_add_extra_data(service, EMAIL_BUNDLE_KEY_IS_NULL, is_null);
+       service_add_extra_data(service, EMAIL_BUNDLE_KEY_MAILBOX_TYPE, ch_boxtype);
+       ug_send_result(ug_data->ug, service);
+
+       ug_data->block_item_click = 1;
+
+       service_destroy(service);
+}
+
+static void _edit_item_check_changed_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       if (!data) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       Elm_Object_Item *it = event_info;
+
+       Item_Data *item_data = (Item_Data *) data;
+       email_account_list *alist = item_data->alist;
+       if (item_data == NULL) {
+               debug_log("item_data is NULL");
+               return;
+       }
+       if (alist->ug_data == NULL) {
+               debug_log("ugd is NULL");
+               return;
+       }
+
+       elm_genlist_item_selected_set(it, 0);
+
+       if (alist->ug_data->block_item_click)
+               return;
+
+       if (elm_genlist_decorate_mode_get(alist->ug_data->gl)) {
+               if(ACC_FOLDER_CREATE == alist->ug_data->folder_mode)
+               {
+                       _popup_newfolder_cb(data, obj, event_info);
+               }
+#if 0
+               else if(ACC_FOLDER_EDIT == alist->ug_data->folder_mode)
+               {
+                       _folder_edit_sel_cb(data, obj, event_info);
+               }
+#endif
+               else if(ACC_FOLDER_DELETE == alist->ug_data->folder_mode)
+               {
+                       _popup_delfolder_cb(data, obj, event_info);
+               }
+               else if(ACC_FOLDER_MOVE_FROM == alist->ug_data->folder_mode)
+               {
+                       alist->ug_data->move_from_item = it;
+                       _folder_move_cb(alist->ug_data, obj, event_info);
+               }
+               else if(ACC_FOLDER_MOVE_TO == alist->ug_data->folder_mode)
+               {
+                       _popup_movefolder_cb(data, obj, event_info);
+               }
+               else if(ACC_FOLDER_RENAME == alist->ug_data->folder_mode)
+               {
+                       _popup_rename_cb(data, obj, event_info);
+               }
+       }
+       else
+       {
+               _open_mail_list(alist, obj, event_info);
+       }
+
+       debug_log("");
+}
+
+#if 0
+static void _folder_edit_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       EmailAccountUGD *ug_data = (EmailAccountUGD *)data;
+       //int account_id = ug_data->account_id;
+       Evas_Object *genlist = ug_data->gl;
+
+       if (!elm_genlist_decorate_mode_get(genlist)) {
+       debug_log("");
+
+               ug_data->folder_mode = ACC_FOLDER_EDIT;
+               ug_data->it = NULL;
+               ug_data->move_from_item = NULL;
+               ug_data->checked_count = 0;
+               _refresh_folder_view(ug_data);
+               genlist = ug_data->gl;
+
+       debug_log("");
+
+               edje_object_signal_emit(_EDJ(ug_data->ly), "elm,bg,show,edit_mode", "elm");
+
+               elm_object_item_part_content_unset(ug_data->navibar_item, "controlbar");
+               evas_object_hide(ug_data->control_bar);
+
+               /* Set reorder and edit mode */
+               elm_genlist_reorder_mode_set(genlist, EINA_TRUE);
+               elm_genlist_decorate_mode_set(genlist, EINA_TRUE);
+
+               /* This means even if selected, every click will make the selected callbacks be called. */
+               elm_genlist_select_mode_set(genlist, ELM_OBJECT_SELECT_MODE_ALWAYS);
+               elm_object_item_disabled_set(ug_data->root_item, EINA_TRUE);
+
+               elm_object_part_text_set(ug_data->navi_title_ly, "txt_title", N_("Select folder to edit"));
+
+               elm_genlist_tree_effect_enabled_set(ug_data->gl, EINA_FALSE);
+
+               _create_controlbar(ug_data);
+       }
+       else
+       {
+               debug_log("");
+
+               ug_data->folder_mode = ACC_FOLDER_NONE;
+
+               /* Change layout background color to default background color */
+               edje_object_signal_emit(_EDJ(ug_data->ly), "elm,bg,show,default", "elm");
+
+               elm_object_item_part_content_unset(ug_data->navibar_item, "controlbar");
+               elm_object_item_part_content_set(ug_data->navibar_item, "controlbar", ug_data->control_bar);
+               evas_object_show(ug_data->control_bar);
+
+               /* Unset edit mode */
+               elm_genlist_decorate_mode_set(genlist, EINA_FALSE);
+               elm_genlist_reorder_mode_set(genlist, EINA_FALSE);
+
+               elm_genlist_select_mode_set(genlist, ELM_OBJECT_SELECT_MODE_DEFAULT);
+               elm_object_item_disabled_set(ug_data->root_item, EINA_FALSE);
+
+               /* Set the navigation bar title */
+               elm_object_part_text_set(ug_data->navi_title_ly, "txt_title", _("IDS_EMAIL_HEADER_FOLDERS"));
+
+               elm_genlist_tree_effect_enabled_set(ug_data->gl, EINA_TRUE);
+
+               _create_controlbar(ug_data);
+       }
+}
+#endif
+
+#if 0
+static void _folder_edit_sel_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       email_account_list *alist = (email_account_list *) data;
+
+       Elm_Object_Item *it = event_info;
+       Item_Data *item_data = elm_object_item_data_get((const Elm_Object_Item *)it);
+       if (item_data == NULL) {
+               debug_log("item_data is NULL");
+               return;
+       }
+       EmailAccountUGD *ug_data = alist->ug_data;
+
+       debug_log("folder_mode: %d : %d", ug_data->folder_mode, item_data->ug_data->folder_mode);
+       debug_log("it: %p, ug_data->it: %p : %p", it, ug_data->it, item_data->it);
+       debug_log("tree_item_data->checked: %d, checked_count: %d", item_data->checked, item_data->ug_data->checked_count);
+       debug_log("flip_get: %d, state_get: %d", elm_genlist_item_flip_get(it), elm_genlist_item_selected_get(it));
+
+       if (elm_genlist_item_flip_get(it))
+       {
+               debug_log("");
+               return;
+       }
+       _unset_rename(ug_data);
+
+       if (elm_genlist_decorate_mode_get(ug_data->gl)) {
+               item_data->checked = !item_data->checked;
+
+               if (item_data->checked) ug_data->checked_count++;
+               else ug_data->checked_count--;
+
+               //elm_check_state_set(it, item_data->checked);
+               elm_genlist_item_fields_update(it, "elm.edit.icon.1", ELM_GENLIST_ITEM_FIELD_CONTENT);
+
+               debug_log("folder_mode: %d : %d", ug_data->folder_mode, item_data->ug_data->folder_mode);
+               debug_log("it: %p, ug_data->it: %p : %p", it, ug_data->it, item_data->it);
+               debug_log("tree_item_data->checked: %d, checked_count: %d", item_data->checked, item_data->ug_data->checked_count);
+
+               if(ug_data->it != NULL && ug_data->checked_count > 1)
+               {
+                       Item_Data *it_tree_item_data = (Item_Data *)elm_object_item_data_get((const Elm_Object_Item *)ug_data->it);
+                       debug_log("state: %d, ug_data->it: %p, it_tree_item_data: %p, it_tree_item_data->it = %p, ug_data: %p : %p, ug_data->checked_count : %d, it: %p",
+                               elm_genlist_item_selected_get(ug_data->it), ug_data->it, it_tree_item_data, it_tree_item_data->it, ug_data, it_tree_item_data->ug_data, ug_data->checked_count, it);
+
+                       it_tree_item_data->checked = EINA_FALSE;
+                       //elm_check_state_set(it_tree_item_data->it, EINA_FALSE);
+                       elm_genlist_item_fields_update(it_tree_item_data->it, "elm.edit.icon.1", ELM_GENLIST_ITEM_FIELD_CONTENT);
+                       ug_data->checked_count--;
+               }
+
+               if (item_data->checked)
+               {
+                       debug_log("checked_count: %d", ug_data->checked_count);
+                       ug_data->it = it;
+                       ug_data->move_from_item = it;
+               }
+               else
+               {
+                       debug_log("checked_count: %d", ug_data->checked_count);
+                       ug_data->it = NULL;
+                       ug_data->move_from_item = NULL;
+               }
+
+               debug_log("folder_mode: %d : %d", ug_data->folder_mode, item_data->ug_data->folder_mode);
+               debug_log("it: %p, ug_data->it: %p : %p", it, ug_data->it, item_data->it);
+               debug_log("tree_item_data->checked: %d, checked_count: %d", item_data->checked, item_data->ug_data->checked_count);
+
+       }
+       else {
+               debug_log("");
+               elm_genlist_item_selected_set(it, EINA_FALSE);
+       }
+}
+#endif
+
+static void _folder_create_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       EmailAccountUGD *ug_data = (EmailAccountUGD *)data;
+       Evas_Object *genlist = ug_data->gl;
+
+       if (!elm_genlist_decorate_mode_get(genlist)) {
+               ug_data->folder_mode = ACC_FOLDER_CREATE;
+
+               edje_object_signal_emit(_EDJ(ug_data->ly), "elm,bg,show,edit_mode", "elm");
+
+               elm_object_item_part_content_unset(ug_data->navibar_item, "controlbar");
+               evas_object_hide(ug_data->control_bar);
+
+               /* Set reorder and edit mode */
+               elm_genlist_reorder_mode_set(genlist, EINA_TRUE);
+               elm_genlist_decorate_mode_set(genlist, EINA_TRUE);
+
+               /* This means even if selected, every click will make the selected callbacks be called. */
+               elm_genlist_select_mode_set(genlist, ELM_OBJECT_SELECT_MODE_ALWAYS);
+               elm_genlist_item_select_mode_set(ug_data->root_item, ELM_OBJECT_SELECT_MODE_ALWAYS);
+
+               //elm_object_part_text_set(ug_data->navi_title_ly, "txt_title", _("IDS_EMAIL_HEADER_SELECT_FOLDER_ABB"));
+               elm_object_item_text_set(ug_data->navibar_item, _("IDS_EMAIL_HEADER_SELECT_FOLDER_ABB"));
+
+               elm_genlist_tree_effect_enabled_set(ug_data->gl, EINA_FALSE);
+       }
+       else {
+               ug_data->folder_mode = ACC_FOLDER_NONE;
+
+               /* Change layout background color to default background color */
+               edje_object_signal_emit(_EDJ(ug_data->ly), "elm,bg,show,default", "elm");
+
+               elm_object_item_part_content_unset(ug_data->navibar_item, "controlbar");
+               elm_object_item_part_content_set(ug_data->navibar_item, "controlbar", ug_data->control_bar);
+               evas_object_show(ug_data->control_bar);
+
+               /* Unset edit mode */
+               elm_genlist_decorate_mode_set(genlist, EINA_FALSE);
+               elm_genlist_reorder_mode_set(genlist, EINA_FALSE);
+
+               elm_genlist_select_mode_set(genlist, ELM_OBJECT_SELECT_MODE_DEFAULT);
+               elm_genlist_item_select_mode_set(ug_data->root_item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+
+               /* Set the navigation bar title */
+               //elm_object_part_text_set(ug_data->navi_title_ly, "txt_title", _("IDS_EMAIL_HEADER_FOLDERS"));
+               elm_object_item_text_set(ug_data->navibar_item, _("IDS_EMAIL_HEADER_FOLDERS"));
+
+               elm_genlist_tree_effect_enabled_set(ug_data->gl, EINA_TRUE);
+       }
+
+}
+
+static void _folder_delete_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       EmailAccountUGD *ug_data = (EmailAccountUGD *)data;
+       //int account_id = ug_data->account_id;
+       Evas_Object *genlist = ug_data->gl;
+
+       if (!elm_genlist_decorate_mode_get(genlist)) {
+               ug_data->folder_mode = ACC_FOLDER_DELETE;
+
+               edje_object_signal_emit(_EDJ(ug_data->ly), "elm,bg,show,edit_mode", "elm");
+
+               elm_object_item_part_content_unset(ug_data->navibar_item, "controlbar");
+               evas_object_hide(ug_data->control_bar);
+
+               /* Set reorder and edit mode */
+               elm_genlist_reorder_mode_set(genlist, EINA_TRUE);
+               elm_genlist_decorate_mode_set(genlist, EINA_TRUE);
+
+               /* This means even if selected, every click will make the selected callbacks be called. */
+               elm_genlist_select_mode_set(genlist, ELM_OBJECT_SELECT_MODE_ALWAYS);
+               elm_object_item_disabled_set(ug_data->root_item, EINA_TRUE);
+
+               //elm_object_part_text_set(ug_data->navi_title_ly, "txt_title", N_("Select delete folder"));
+               elm_object_item_text_set(ug_data->navibar_item, N_("Select delete folder"));
+
+               elm_genlist_tree_effect_enabled_set(ug_data->gl, EINA_FALSE);
+       }
+       else {
+               ug_data->folder_mode = ACC_FOLDER_NONE;
+
+               /* Change layout background color to default background color */
+               edje_object_signal_emit(_EDJ(ug_data->ly), "elm,bg,show,default", "elm");
+
+               elm_object_item_part_content_unset(ug_data->navibar_item, "controlbar");
+               elm_object_item_part_content_set(ug_data->navibar_item, "controlbar", ug_data->control_bar);
+               evas_object_show(ug_data->control_bar);
+
+               /* Unset edit mode */
+               elm_genlist_decorate_mode_set(genlist, EINA_FALSE);
+               elm_genlist_reorder_mode_set(genlist, EINA_FALSE);
+
+               elm_genlist_select_mode_set(genlist, ELM_OBJECT_SELECT_MODE_DEFAULT);
+               elm_object_item_disabled_set(ug_data->root_item, EINA_FALSE);
+
+               /* Set the navigation bar title */
+               //elm_object_part_text_set(ug_data->navi_title_ly, "txt_title", _("IDS_EMAIL_HEADER_FOLDERS"));
+               elm_object_item_text_set(ug_data->navibar_item, _("IDS_EMAIL_HEADER_FOLDERS"));
+
+               elm_genlist_tree_effect_enabled_set(ug_data->gl, EINA_TRUE);
+
+               _create_controlbar(ug_data);
+       }
+
+}
+
+static void _folder_move_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       EmailAccountUGD *ug_data = (EmailAccountUGD *)data;
+       //int account_id = ug_data->account_id;
+       Evas_Object *genlist = ug_data->gl;
+
+       if (!elm_genlist_decorate_mode_get(genlist)) {
+               ug_data->folder_mode = ACC_FOLDER_MOVE_FROM;
+
+               edje_object_signal_emit(_EDJ(ug_data->ly), "elm,bg,show,edit_mode", "elm");
+
+               elm_object_item_part_content_unset(ug_data->navibar_item, "controlbar");
+               evas_object_hide(ug_data->control_bar);
+
+               /* Set reorder and edit mode */
+               elm_genlist_reorder_mode_set(genlist, EINA_TRUE);
+               elm_genlist_decorate_mode_set(genlist, EINA_TRUE);
+
+               /* This means even if selected, every click will make the selected callbacks be called. */
+               elm_genlist_select_mode_set(genlist, ELM_OBJECT_SELECT_MODE_ALWAYS);
+               elm_object_item_disabled_set(ug_data->root_item, EINA_TRUE);
+
+               //elm_object_part_text_set(ug_data->navi_title_ly, "txt_title", N_("Select move folder"));
+               elm_object_item_text_set(ug_data->navibar_item, N_("Select move folder"));
+
+               elm_genlist_tree_effect_enabled_set(ug_data->gl, EINA_FALSE);
+       }
+       else {
+               if(ug_data->folder_mode == ACC_FOLDER_MOVE_FROM)
+               {
+                       if(ug_data->it == NULL)
+                       {
+                               Evas_Object *popup = NULL, *btn1 = NULL;
+                               popup = elm_popup_add(ug_data->win);
+                               evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+                               elm_object_text_set(popup, dgettext("sys_string", "IDS_COM_BODY_SELECTED_DATA_NOT_FOUND"));
+                               btn1 = elm_button_add(popup);
+                               elm_object_text_set(btn1, dgettext("sys_string", "IDS_COM_SK_OK"));
+                               elm_object_part_content_set(popup, "button1", btn1);
+                               evas_object_smart_callback_add(btn1, "clicked", _popup_destroy_cb, ug_data);
+                               ug_data->popup = popup;
+
+                               evas_object_show(popup);
+                               return;
+                       }
+                       else
+                       {
+                               ug_data->folder_mode = ACC_FOLDER_MOVE_TO;
+                               ug_data->move_from_item = ug_data->it;
+
+                               elm_object_item_disabled_set(ug_data->move_from_item, EINA_TRUE);
+                               elm_object_item_disabled_set(ug_data->root_item, EINA_FALSE);
+                               elm_genlist_item_select_mode_set(ug_data->root_item, ELM_OBJECT_SELECT_MODE_ALWAYS);
+
+                               //elm_object_part_text_set(ug_data->navi_title_ly, "txt_title", N_("Select location folder"));
+                               elm_object_item_text_set(ug_data->navibar_item, N_("Select location folder"));
+                       }
+               }
+               else
+               {
+                       ug_data->folder_mode = ACC_FOLDER_NONE;
+
+                       /* Change layout background color to default background color */
+                       edje_object_signal_emit(_EDJ(ug_data->ly), "elm,bg,show,default", "elm");
+
+                       elm_object_item_part_content_unset(ug_data->navibar_item, "controlbar");
+                       elm_object_item_part_content_set(ug_data->navibar_item, "controlbar", ug_data->control_bar);
+                       evas_object_show(ug_data->control_bar);
+
+                       /* Unset edit mode */
+                       elm_genlist_decorate_mode_set(genlist, EINA_FALSE);
+                       elm_genlist_reorder_mode_set(genlist, EINA_FALSE);
+
+                       elm_genlist_select_mode_set(genlist, ELM_OBJECT_SELECT_MODE_DEFAULT);
+                       elm_object_item_disabled_set(ug_data->root_item, EINA_FALSE);
+                       elm_genlist_item_select_mode_set(ug_data->root_item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+
+                       elm_object_item_disabled_set(ug_data->move_from_item, EINA_FALSE);
+                       ug_data->move_from_item = NULL;
+
+                       /* Set the navigation bar title */
+                       //elm_object_part_text_set(ug_data->navi_title_ly, "txt_title", _("IDS_EMAIL_HEADER_FOLDERS"));
+                       elm_object_item_text_set(ug_data->navibar_item, _("IDS_EMAIL_HEADER_FOLDERS"));
+
+                       elm_genlist_tree_effect_enabled_set(ug_data->gl, EINA_TRUE);
+
+                       _create_controlbar(ug_data);
+               }
+       }
+
+}
+
+static void _folder_rename_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       EmailAccountUGD *ug_data = (EmailAccountUGD *)data;
+       //int account_id = ug_data->account_id;
+       Evas_Object *genlist = ug_data->gl;
+
+       if (!elm_genlist_decorate_mode_get(genlist)) {
+       debug_log("");
+
+               ug_data->folder_mode = ACC_FOLDER_RENAME;
+               ug_data->checked_count = 0;
+//             _refresh_folder_view(ug_data);
+//             genlist = ug_data->gl;
+
+       debug_log("");
+
+               edje_object_signal_emit(_EDJ(ug_data->ly), "elm,bg,show,edit_mode", "elm");
+
+               elm_object_item_part_content_unset(ug_data->navibar_item, "controlbar");
+               evas_object_hide(ug_data->control_bar);
+
+               /* Set reorder and edit mode */
+               elm_genlist_reorder_mode_set(genlist, EINA_TRUE);
+               elm_genlist_decorate_mode_set(genlist, EINA_TRUE);
+
+               /* This means even if selected, every click will make the selected callbacks be called. */
+               elm_genlist_select_mode_set(genlist, ELM_OBJECT_SELECT_MODE_ALWAYS);
+               elm_object_item_disabled_set(ug_data->root_item, EINA_TRUE);
+
+               //elm_object_part_text_set(ug_data->navi_title_ly, "txt_title", N_("Select rename folder"));
+               elm_object_item_text_set(ug_data->navibar_item, N_("Select rename folder"));
+
+               elm_genlist_tree_effect_enabled_set(ug_data->gl, EINA_FALSE);
+
+               _create_controlbar(ug_data);
+       }
+       else
+       {
+               debug_log("");
+
+               ug_data->folder_mode = ACC_FOLDER_NONE;
+
+               /* Change layout background color to default background color */
+               edje_object_signal_emit(_EDJ(ug_data->ly), "elm,bg,show,default", "elm");
+
+               elm_object_item_part_content_unset(ug_data->navibar_item, "controlbar");
+               elm_object_item_part_content_set(ug_data->navibar_item, "controlbar", ug_data->control_bar);
+               evas_object_show(ug_data->control_bar);
+
+               /* Unset edit mode */
+               elm_genlist_decorate_mode_set(genlist, EINA_FALSE);
+               elm_genlist_reorder_mode_set(genlist, EINA_FALSE);
+
+               elm_genlist_select_mode_set(genlist, ELM_OBJECT_SELECT_MODE_DEFAULT);
+               elm_object_item_disabled_set(ug_data->root_item, EINA_FALSE);
+
+               /* Set the navigation bar title */
+               //elm_object_part_text_set(ug_data->navi_title_ly, "txt_title", _("IDS_EMAIL_HEADER_FOLDERS"));
+               elm_object_item_text_set(ug_data->navibar_item, _("IDS_EMAIL_HEADER_FOLDERS"));
+
+               elm_genlist_tree_effect_enabled_set(ug_data->gl, EINA_TRUE);
+
+               _create_controlbar(ug_data);
+       }
+}
+
+static void _delete_con_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       if (!data) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       EmailAccountUGD *ug_data = (EmailAccountUGD *) data;
+       if (ug_data == NULL) {
+               debug_log("item_data is NULL");
+               return;
+       }
+
+       Elm_Object_Item *it = ug_data->it;
+       Item_Data *item_data = elm_object_item_data_get((const Elm_Object_Item *)it);
+       if (item_data == NULL) {
+               debug_log("item_data is NULL");
+               return;
+       }
+       GNode *node = (GNode *)item_data->child;
+       email_mailbox_t *mlist = (email_mailbox_t *)(node->data);
+       email_mailbox_t mbox = { 0, };
+       int err_code = EMAIL_ERROR_NONE;
+       unsigned handle;
+       int on_server = (EMAIL_SERVER_TYPE_POP3 == GET_ACCOUNT_SERVER_TYPE(ug_data->account_id)?0:1);
+
+       memset(&mbox, 0x00, sizeof(email_mailbox_t));
+       mbox.mailbox_id = mlist->mailbox_id;
+       mbox.mailbox_name = strdup(mlist->mailbox_name);
+       mbox.account_id = ug_data->account_id;
+
+       debug_log("delfolder name[%s], account_id[%d], on_server[%d]", mbox.mailbox_name, mbox.account_id, on_server);
+
+       err_code = email_delete_mailbox(mbox.mailbox_id, on_server, &handle);
+
+       if (err_code < 0) {
+               debug_log("\n email_delete_mailbox failed");
+               _popup_fail_cb(ug_data, obj, event_info);
+       }
+       else {
+               debug_log("\n email_delete_mailbox succeed : handle[%d]\n", handle);
+               ug_data->emf_handle = handle;
+               if(ug_data->emf_handle == 0)
+               {
+                       _popup_success_cb(ug_data, NULL, NULL);
+               }
+               else
+               {
+                       _popup_progress_cb(ug_data, obj, event_info);
+               }
+       }
+}
+
+static void _popup_delfolder_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       if (!data) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       Item_Data *item_data = (Item_Data *) data;
+       EmailAccountUGD *ug_data = item_data->ug_data;
+       if (ug_data == NULL) {
+               debug_log("item_data is NULL");
+               return;
+       }
+       Elm_Object_Item *it = event_info;
+//     Item_Data *item_data = elm_object_item_data_get((const Elm_Object_Item *)it);
+//     GNode *node = (GNode *)item_data;
+//     email_mailbox_t *mlist = (email_mailbox_t *)(node->data);
+
+       ug_data ->it = it;
+
+       if (ug_data->conformant) {
+               evas_object_del(ug_data->conformant);
+               ug_data->conformant = NULL;
+       }
+       if (ug_data->popup)
+       {
+               evas_object_del(ug_data->popup);
+               ug_data->popup = NULL;
+       }
+
+       if(ug_data ->it == NULL)
+       {
+               Evas_Object *popup = NULL, *btn1 = NULL;
+               popup = elm_popup_add(ug_data->win);
+               evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+               elm_object_text_set(popup, dgettext("sys_string", "IDS_COM_BODY_SELECTED_DATA_NOT_FOUND"));
+               btn1 = elm_button_add(popup);
+               elm_object_text_set(btn1, dgettext("sys_string", "IDS_COM_SK_OK"));
+               elm_object_part_content_set(popup, "button1", btn1);
+               evas_object_smart_callback_add(btn1, "clicked", _popup_destroy_cb, ug_data);
+               ug_data->popup = popup;
+
+               evas_object_show(popup);
+       }
+       else
+       {
+               ug_data->folder_mode = ACC_FOLDER_DELETE;
+
+               Evas_Object *notify = elm_popup_add(ug_data->win);
+               evas_object_size_hint_weight_set(notify, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+               elm_object_text_set(notify, dgettext("sys_string", "IDS_COM_POP_DELETE_Q"));
+
+               Evas_Object *btn1 = elm_button_add(notify);
+               elm_object_style_set(btn1, "popup_button/default");
+               elm_object_text_set(btn1, dgettext("sys_string", "IDS_COM_SK_DELETE"));
+               elm_object_part_content_set(notify, "button1", btn1);
+               evas_object_smart_callback_add(btn1, "clicked", _delete_con_cb, ug_data);
+
+               Evas_Object *btn2 = elm_button_add(notify);
+               elm_object_style_set(btn2, "popup_button/default");
+               elm_object_text_set(btn2, dgettext("sys_string", "IDS_COM_SK_CANCEL"));
+               elm_object_part_content_set(notify, "button2", btn2);
+               evas_object_smart_callback_add(btn2, "clicked", _back_button_cb, ug_data);
+               ug_data->popup = notify;
+
+               evas_object_show(notify);
+       }
+}
+
+static void _create_con_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       if (!data) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       Item_Data *item_data = (Item_Data *) data;
+       email_account_list *alist = item_data->alist;
+       if (alist->ug_data == NULL) {
+               debug_log("ugd is NULL");
+               return;
+       }
+
+       Elm_Object_Item *it = alist->ug_data->it;
+       Item_Data *tree_item_data = elm_object_item_data_get((const Elm_Object_Item *)it);
+       if (tree_item_data == NULL) {
+               debug_log("item_data is NULL");
+               return;
+       }
+
+       if (elm_entry_is_empty(alist->ug_data->entry))
+       {
+               debug_log("Folder name NULL");
+               return;
+       }
+
+       GNode *node = (GNode *)tree_item_data->child;
+       email_mailbox_t *mlist = (email_mailbox_t *)(node->data);
+       email_mailbox_t mbox = { 0, };
+       int err_code = EMAIL_ERROR_NONE;
+       unsigned handle;
+       char arg1[MAX_STR_LEN] = { 0, };
+       char arg2[MAX_STR_LEN] = { 0, };
+       char arg3[MAX_STR_LEN] = { 0, };
+       int on_server = (EMAIL_SERVER_TYPE_POP3 == GET_ACCOUNT_SERVER_TYPE(alist->ug_data->account_id)?0:1);
+
+       strcpy(arg1, elm_entry_markup_to_utf8(elm_object_text_get(alist->ug_data->entry)));
+       strcpy(arg2, email_util_strrtrim(arg1));
+       if(strlen(mlist->mailbox_name) > 0)
+               g_snprintf(arg3, sizeof(arg3), "%s/%s", email_util_strltrim(mlist->mailbox_name), arg2);
+       else
+               g_snprintf(arg3, sizeof(arg3), "%s", arg2);
+
+       memset(&mbox, 0x00, sizeof(email_mailbox_t));
+       mbox.mailbox_name = g_strdup(arg3);
+       mbox.alias = g_strdup(arg2);
+       mbox.local = 0;
+       mbox.mailbox_type = EMAIL_MAILBOX_TYPE_USER_DEFINED;
+       mbox.account_id = alist->ug_data->account_id;
+
+       debug_log("arg1[%s], name[%s], alias[%s], on_server[%d], mlist->name[%s]", arg1, arg3, arg2, on_server, mlist->mailbox_name);
+
+       err_code = email_add_mailbox(&mbox, on_server, &handle);
+
+       if (err_code < 0) {
+               debug_log("\n email_add_mailbox failed");
+               _popup_fail_cb(alist->ug_data, obj, event_info);
+       }
+       else {
+               debug_log("\n email_add_mailbox succeed : handle[%d]\n", handle);
+               alist->ug_data->emf_handle = handle;
+               if(alist->ug_data->emf_handle == 0)
+               {
+                       _popup_success_cb(alist->ug_data, NULL, NULL);
+               }
+               else
+               {
+                       _popup_progress_cb(alist->ug_data, obj, event_info);
+               }
+       }
+}
+
+static void _popup_newfolder_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       if (!data) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       Evas_Object *popup;
+       Evas_Object *layout, *entry;
+       Evas_Object *btn1, *btn2;
+       Evas_Object *content;
+
+       Elm_Object_Item *it = event_info;
+       Item_Data *tree_item_data = elm_object_item_data_get((const Elm_Object_Item *)it);
+       if (tree_item_data == NULL) {
+               debug_log("item_data is NULL");
+               return;
+       }
+       debug_log("tree_item_data: %p, tree_item_data->it: %p", tree_item_data, tree_item_data->it);
+       email_account_list *alist = tree_item_data->alist;
+
+       if (alist->ug_data == NULL) {
+               debug_log("ugd is NULL");
+               return;
+       }
+       alist->ug_data->it = it;
+
+       if (alist->ug_data->conformant) {
+               evas_object_del(alist->ug_data->conformant);
+               alist->ug_data->conformant = NULL;
+       }
+       if (alist->ug_data->popup) {
+               evas_object_del(alist->ug_data->popup);
+               alist->ug_data->popup = NULL;
+       }
+
+       alist->ug_data->conformant = elm_conformant_add(alist->ug_data->win);
+       elm_win_conformant_set(alist->ug_data->win, EINA_TRUE);
+       elm_win_resize_object_add(alist->ug_data->win, alist->ug_data->conformant);
+       evas_object_size_hint_weight_set(alist->ug_data->conformant, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(alist->ug_data->conformant, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(alist->ug_data->conformant);
+
+       content = elm_layout_add(alist->ug_data->conformant);
+       elm_object_content_set(alist->ug_data->conformant, content);
+       popup = elm_popup_add(content);
+//     elm_object_style_set(popup, "customstyle");
+//     evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+       elm_object_part_text_set(popup, "title,text", _("IDS_EMAIL_HEADER_CREATE_FOLDER"));
+
+       layout = elm_layout_add(popup);
+       elm_layout_theme_set(layout, "layout", "editfield", "default"); // Default editfield layout style without top title.
+
+       entry = elm_entry_add(popup);
+       elm_entry_scrollable_set(entry, EINA_TRUE); // Make entry as scrollable single line.
+       elm_entry_single_line_set(entry, EINA_TRUE);
+       evas_object_smart_callback_add(entry, "changed", _entry_changed_cb, layout);
+       evas_object_smart_callback_add(entry, "focused", _entry_focused_cb, layout);
+       evas_object_smart_callback_add(entry, "unfocused", _entry_unfocused_cb, layout);
+
+       elm_object_part_content_set(layout, "elm.swallow.content", entry);
+       elm_object_part_text_set(layout, "elm.guidetext", _("IDS_EMAIL_POP_FOLDER_NAME")); // Set guidetext.
+       elm_object_signal_callback_add(layout, "elm,eraser,clicked", "elm", _eraser_clicked_cb, entry);
+       evas_object_show(entry);
+       elm_object_part_content_set(layout, "elm.swallow.content", entry);
+       elm_object_content_set(popup, layout);
+
+       btn1 = elm_button_add(popup);
+       elm_object_style_set(btn1, "popup_button/default");
+       elm_object_text_set(btn1, dgettext("sys_string", "IDS_COM_SK_OK"));
+       elm_object_part_content_set(popup, "button1", btn1);
+       evas_object_smart_callback_add(btn1, "clicked", _create_con_cb, tree_item_data);
+       btn2 = elm_button_add(popup);
+       elm_object_style_set(btn2, "popup_button/default");
+       elm_object_text_set(btn2, dgettext("sys_string", "IDS_COM_SK_CANCEL"));
+       elm_object_part_content_set(popup, "button2", btn2);
+       evas_object_smart_callback_add(btn2, "clicked", _back_button_cb, alist->ug_data);
+       alist->ug_data->entry = entry;
+       alist->ug_data->popup = popup;
+
+       evas_object_show(popup);
+}
+
+static void _rename_con_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       if (!data) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       Item_Data *item_data = (Item_Data *) data;
+       email_account_list *alist = item_data->alist;
+       if (alist->ug_data == NULL) {
+               debug_log("ugd is NULL");
+               return;
+       }
+
+       Elm_Object_Item *it = item_data->it;
+       Item_Data *tree_item_data = elm_object_item_data_get((const Elm_Object_Item *)it);
+       if (tree_item_data == NULL) {
+               debug_log("item_data is NULL");
+               return;
+       }
+
+       if (elm_entry_is_empty(alist->ug_data->entry))
+       {
+               debug_log("Folder name NULL");
+               return;
+       }
+
+       GNode *node = (GNode *)tree_item_data->child;
+       email_mailbox_t *mlist = (email_mailbox_t *)(node->data);
+       char *parent_path = NULL;
+       char arg1[MAX_STR_LEN] = { 0, };
+       char arg2[MAX_STR_LEN] = { 0, };
+       char arg3[MAX_STR_LEN] = { 0, };
+       int err_code = EMAIL_ERROR_NONE;
+       unsigned handle;
+       int on_server = (EMAIL_SERVER_TYPE_POP3 == GET_ACCOUNT_SERVER_TYPE(alist->ug_data->account_id)?0:1);
+
+       strcpy(arg1, elm_entry_markup_to_utf8(elm_object_text_get(alist->ug_data->entry)));
+       strcpy(arg2, email_util_strrtrim(arg1));
+
+       parent_path = email_util_get_parent_folder(mlist->mailbox_name);
+
+       if(parent_path != NULL)
+       {
+               snprintf(arg3, MAX_STR_LEN, "%s/%s", parent_path, arg2);
+       }
+       else
+       {
+               snprintf(arg3, MAX_STR_LEN, "%s", arg2);
+       }
+
+       debug_log("rename_to folder from[%s], to[%s], new_name[%s], on_server[%d]", mlist->mailbox_name, arg3, arg2, on_server);
+
+       if ((err_code = email_rename_mailbox(mlist->mailbox_id, arg3, arg2, on_server, &handle)) < 0) {
+               debug_log("email_rename_mailbox failed[%d]", err_code);
+               _popup_fail_cb(alist->ug_data, obj, event_info);
+       }
+       else {
+               debug_log("email_rename_mailbox succeed[%d]", handle);
+               alist->ug_data->emf_handle = handle;
+               if(alist->ug_data->emf_handle == 0)
+               {
+                       _popup_success_cb(alist->ug_data, NULL, NULL);
+               }
+               else
+               {
+                       _popup_progress_cb(alist->ug_data, obj, event_info);
+               }
+       }
+
+       g_free(parent_path);
+       return;
+}
+
+static void _popup_rename_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       if (!data) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       Evas_Object *popup;
+       Evas_Object *layout, *entry;
+       Evas_Object *btn1, *btn2;
+       Evas_Object *content;
+
+       Elm_Object_Item *it = event_info;
+       Item_Data *tree_item_data = elm_object_item_data_get((const Elm_Object_Item *)it);
+       if (tree_item_data == NULL) {
+               debug_log("item_data is NULL");
+               return;
+       }
+       GNode *node = (GNode *)tree_item_data->child;
+       email_mailbox_t *mlist = (email_mailbox_t *)(node->data);
+
+       debug_log("tree_item_data: %p, tree_item_data->it: %p", tree_item_data, tree_item_data->it);
+       debug_log("mlist.alias: %s", mlist->alias);
+       email_account_list *alist = tree_item_data->alist;
+
+       if (alist->ug_data == NULL) {
+               debug_log("ugd is NULL");
+               return;
+       }
+       alist->ug_data->it = it;
+
+       if (alist->ug_data->conformant) {
+               evas_object_del(alist->ug_data->conformant);
+               alist->ug_data->conformant = NULL;
+       }
+       if (alist->ug_data->popup) {
+               evas_object_del(alist->ug_data->popup);
+               alist->ug_data->popup = NULL;
+       }
+
+       alist->ug_data->conformant = elm_conformant_add(alist->ug_data->win);
+       elm_win_conformant_set(alist->ug_data->win, EINA_TRUE);
+       elm_win_resize_object_add(alist->ug_data->win, alist->ug_data->conformant);
+       evas_object_size_hint_weight_set(alist->ug_data->conformant, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(alist->ug_data->conformant, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(alist->ug_data->conformant);
+
+       content = elm_layout_add(alist->ug_data->conformant);
+       elm_object_content_set(alist->ug_data->conformant, content);
+       popup = elm_popup_add(content);
+//     elm_object_style_set(popup, "customstyle");
+//     evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+       elm_object_part_text_set(popup, "title,text", dgettext("sys_string", "IDS_COM_BODY_RENAME"));
+
+       layout = elm_layout_add(popup);
+       elm_layout_theme_set(layout, "layout", "editfield", "default"); // Default editfield layout style without top title.
+
+       entry = elm_entry_add(popup);
+       elm_entry_scrollable_set(entry, EINA_TRUE); // Make entry as scrollable single line.
+       elm_entry_single_line_set(entry, EINA_TRUE);
+       elm_entry_entry_set(entry, mlist->alias);       // set current folder name
+       evas_object_smart_callback_add(entry, "changed", _entry_changed_cb, layout);
+       evas_object_smart_callback_add(entry, "focused", _entry_focused_cb, layout);
+       evas_object_smart_callback_add(entry, "unfocused", _entry_unfocused_cb, layout);
+
+       elm_object_part_content_set(layout, "elm.swallow.content", entry);
+       elm_object_part_text_set(layout, "elm.guidetext", _("IDS_EMAIL_POP_FOLDER_NAME")); // Set guidetext.
+       elm_object_signal_callback_add(layout, "elm,eraser,clicked", "elm", _eraser_clicked_cb, entry);
+       evas_object_show(entry);
+       elm_object_part_content_set(layout, "elm.swallow.content", entry);
+       elm_object_content_set(popup, layout);
+
+       btn1 = elm_button_add(popup);
+       elm_object_style_set(btn1, "popup_button/default");
+       elm_object_text_set(btn1, dgettext("sys_string", "IDS_COM_SK_OK"));
+       elm_object_part_content_set(popup, "button1", btn1);
+       evas_object_smart_callback_add(btn1, "clicked", _rename_con_cb, tree_item_data);
+       btn2 = elm_button_add(popup);
+       elm_object_style_set(btn2, "popup_button/default");
+       elm_object_text_set(btn2, dgettext("sys_string", "IDS_COM_SK_CANCEL"));
+       elm_object_part_content_set(popup, "button2", btn2);
+       evas_object_smart_callback_add(btn2, "clicked", _back_button_cb, alist->ug_data);
+       alist->ug_data->entry = entry;
+       alist->ug_data->popup = popup;
+
+       evas_object_show(popup);
+}
+
+
+static void _move_con_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       if (!data) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       email_account_list *alist = (email_account_list *) data;
+       if (alist->ug_data == NULL) {
+               debug_log("ugd is NULL");
+               return;
+       }
+
+       Elm_Object_Item *it_to = alist->ug_data->it;
+       Item_Data *item_data_to = elm_object_item_data_get((const Elm_Object_Item *)it_to);
+       if (item_data_to == NULL) {
+               debug_log("item_data is NULL");
+               return;
+       }
+
+       Elm_Object_Item *it_from = alist->ug_data->move_from_item;
+       Item_Data *item_data_from = elm_object_item_data_get((const Elm_Object_Item *)it_from);
+       if (item_data_from == NULL) {
+               debug_log("item_data is NULL");
+               return;
+       }
+
+       GNode *node_from = (GNode *)item_data_from->child;
+       email_mailbox_t *mlist_from = (email_mailbox_t *)(node_from->data);
+       GNode *node_to = (GNode *)item_data_to->child;
+       email_mailbox_t *mlist_to = (email_mailbox_t *)(node_to->data);
+       char arg1[MAX_STR_LEN] = { 0, };
+       int err_code = EMAIL_ERROR_NONE;
+       unsigned handle;
+       int on_server = (EMAIL_SERVER_TYPE_POP3 == GET_ACCOUNT_SERVER_TYPE(alist->ug_data->account_id)?0:1);
+
+       if(strlen(mlist_to->mailbox_name) > 0)
+               snprintf(arg1, sizeof(arg1), "%s/%s", mlist_to->mailbox_name, mlist_from->alias);
+       else
+               snprintf(arg1, sizeof(arg1), "%s", mlist_from->alias);
+
+       debug_log("move_to folder from[%s], to[%s], new_name[%s], on_server[%d]", mlist_from->mailbox_name, mlist_to->mailbox_name, arg1, on_server);
+
+       if ((err_code = email_rename_mailbox(mlist_from->mailbox_id, arg1, mlist_from->alias, on_server, &handle)) < 0) {
+               debug_log("email_rename_mailbox failed[%d]", err_code);
+               _popup_fail_cb(alist->ug_data, obj, event_info);
+       }
+       else {
+               debug_log("email_rename_mailbox succeed[%d]", handle);
+               alist->ug_data->emf_handle = handle;
+               if(alist->ug_data->emf_handle == 0)
+               {
+                       _popup_success_cb(alist->ug_data, NULL, NULL);
+               }
+               else
+               {
+                       _popup_progress_cb(alist->ug_data, obj, event_info);
+               }
+       }
+}
+
+static void _popup_movefolder_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       if (!data) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       email_account_list *alist = (email_account_list *) data;
+       Elm_Object_Item *it = event_info;
+       Item_Data *item_data = elm_object_item_data_get((const Elm_Object_Item *)it);
+       char arg1[MAX_STR_LEN] = { 0, };
+
+       if (item_data == NULL) {
+               debug_log("item_data is NULL");
+               return;
+       }
+
+       GNode *node = (GNode *)item_data->child;
+       email_mailbox_t *mlist = (email_mailbox_t *)(node->data);
+
+       if (alist->ug_data == NULL) {
+               debug_log("ugd is NULL");
+               return;
+       }
+       if (alist->ug_data->conformant){
+               evas_object_del(alist->ug_data->conformant);
+               alist->ug_data->conformant = NULL;
+       }
+       if (alist->ug_data->popup)
+       {
+               evas_object_del(alist->ug_data->popup);
+               alist->ug_data->popup = NULL;
+       }
+       alist->ug_data->it = it;
+
+       Elm_Object_Item *it_from = alist->ug_data->move_from_item;
+       Item_Data *item_data_from = elm_object_item_data_get((const Elm_Object_Item *)it_from);
+       if (item_data_from == NULL) {
+               debug_log("item_data is NULL");
+               return;
+       }
+       GNode *node_from = (GNode *)item_data_from->child;
+       email_mailbox_t *mlist_from = (email_mailbox_t *)(node_from->data);
+
+       snprintf(arg1, sizeof(arg1), "Move folder [%s] to [%s]", mlist_from->mailbox_name, mlist->mailbox_name);
+
+       Evas_Object *notify = elm_popup_add(alist->ug_data->win);
+       evas_object_size_hint_weight_set(notify, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       elm_object_text_set(notify, arg1);
+
+       Evas_Object *btn1 = elm_button_add(notify);
+       elm_object_style_set(btn1, "popup_button/default");
+       elm_object_text_set(btn1, dgettext("sys_string", "IDS_COM_SK_OK"));
+       elm_object_part_content_set(notify, "button1", btn1);
+       evas_object_smart_callback_add(btn1, "clicked", _move_con_cb, data);
+
+       Evas_Object *btn2 = elm_button_add(notify);
+       elm_object_style_set(btn2, "popup_button/default");
+       elm_object_text_set(btn2, dgettext("sys_string", "IDS_COM_SK_CANCEL"));
+       elm_object_part_content_set(notify, "button2", btn2);
+       evas_object_smart_callback_add(btn2, "clicked", _back_button_cb, alist->ug_data);
+       alist->ug_data->popup = notify;
+
+       evas_object_show(notify);
+}
+
+static void _back_button_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       RETURN_IF_FAIL(data != NULL);
+
+       EmailAccountUGD *ug_data = (EmailAccountUGD *) data;
+
+       if (ug_data->conformant) {
+               evas_object_del(ug_data->conformant);
+               ug_data->conformant = NULL;
+       }
+       if(ug_data->popup) {
+               evas_object_del(ug_data->popup);
+               ug_data->popup = NULL;
+       }
+
+       if (!elm_genlist_decorate_mode_get(ug_data->gl)) {
+               ug_destroy_me(ug_data->ug);
+       } else {
+               ug_data->it = NULL;
+
+               if(ACC_FOLDER_CREATE == ug_data->folder_mode)
+               {
+                       _folder_create_cb(ug_data, NULL, NULL);
+               }
+               else if(ACC_FOLDER_DELETE == ug_data->folder_mode)
+               {
+                       _folder_delete_cb(ug_data, NULL, NULL);
+               }
+               else if(ACC_FOLDER_MOVE_FROM == ug_data->folder_mode)
+               {
+                       ug_data->folder_mode = ACC_FOLDER_MOVE_TO;
+                       _folder_move_cb(ug_data, NULL, NULL);
+               }
+               else if(ACC_FOLDER_MOVE_TO == ug_data->folder_mode)
+               {
+                       _folder_move_cb(ug_data, NULL, NULL);
+               }
+               else if(ACC_FOLDER_RENAME == ug_data->folder_mode)
+               {
+                       _folder_rename_cb(ug_data, NULL, NULL);
+               }
+               /*else if(ACC_FOLDER_EDIT == ug_data->folder_mode)
+               {
+                       _folder_edit_cb(ug_data, NULL, NULL);
+               }*/
+       }
+}
+
+static void _popup_destroy_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       RETURN_IF_FAIL(data != NULL);
+
+       EmailAccountUGD *ug_data = (EmailAccountUGD *) data;
+
+       if (ug_data->conformant) {
+               evas_object_del(ug_data->conformant);
+               ug_data->conformant = NULL;
+       }
+       if(ug_data->popup) {
+               evas_object_del(ug_data->popup);
+               ug_data->popup = NULL;
+       }
+}
+
+static void _popup_success_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       if (!data) {
+               debug_log("data is NULL");
+               return;
+       }
+
+//     Evas_Object *popup;
+//     Evas_Object *btn1;
+       EmailAccountUGD *ug_data = (EmailAccountUGD *)data;
+       int ret = 1;
+
+       if (ug_data->conformant){
+               evas_object_del(ug_data->conformant);
+               ug_data->conformant = NULL;
+       }
+       if(ug_data->popup) {
+               evas_object_del(ug_data->popup);
+               ug_data->popup = NULL;
+       }
+
+       debug_log("emf_handle [%d], folder_mode[%d]", ug_data->emf_handle, ug_data->folder_mode);
+       ug_data->emf_handle = EMAIL_HANDLE_INVALID;
+
+       if(ug_data->folder_mode == ACC_FOLDER_NONE)
+       {
+               debug_log("exit func without popup");
+               return;
+       }
+
+#if 0
+       popup = elm_popup_add(ug_data->win);
+       evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+       switch(ug_data->folder_mode)
+       {
+               case ACC_FOLDER_CREATE:
+                       elm_object_text_set(popup, N_("Created"));
+                       break;
+               case ACC_FOLDER_DELETE:
+                       elm_object_text_set(popup, dgettext("sys_string", "IDS_COM_POP_DELETED"));
+                       break;
+               case ACC_FOLDER_MOVE_TO:
+                       elm_object_text_set(popup, dgettext("sys_string", "IDS_COM_POP_MOVED"));
+                       break;
+               default:
+                       elm_object_text_set(popup, dgettext("sys_string", "IDS_COM_POP_WARNING"));
+                       break;
+       }
+       btn1 = elm_button_add(popup);
+       elm_object_text_set(btn1, dgettext("sys_string", "IDS_COM_SK_OK"));
+       elm_object_part_content_set(popup, "button1", btn1);
+       evas_object_smart_callback_add(btn1, "clicked", _finish_folder_view, ug_data);
+       ug_data->popup = popup;
+       evas_object_show(popup);
+#else
+       switch(ug_data->folder_mode)
+       {
+               case ACC_FOLDER_CREATE:
+                       ret = status_message_post(N_("Created"));
+                       break;
+               case ACC_FOLDER_DELETE:
+                       ret = status_message_post(dgettext("sys_string", "IDS_COM_POP_DELETED"));
+                       break;
+               case ACC_FOLDER_MOVE_TO:
+                       ret = status_message_post(dgettext("sys_string", "IDS_COM_POP_MOVED"));
+                       break;
+               case ACC_FOLDER_RENAME:
+                       ret = status_message_post(dgettext("sys_string", "IDS_COM_POP_SAVED"));
+                       break;
+               default:
+                       debug_log("Warning...");
+                       break;
+       }
+       if (ret) {
+               debug_log("fail to status_message_post() : %d\n", ret);
+       }
+       _finish_folder_view(data, obj, event_info);
+#endif
+}
+
+static void _popup_fail_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       if (!data) {
+               debug_log("data is NULL");
+               return;
+       }
+
+//     Evas_Object *popup;
+//     Evas_Object *btn1;
+       EmailAccountUGD *ug_data = (EmailAccountUGD *)data;
+       int ret = 1;
+
+       if (ug_data->conformant){
+               evas_object_del(ug_data->conformant);
+               ug_data->conformant = NULL;
+       }
+       if(ug_data->popup) {
+               evas_object_del(ug_data->popup);
+               ug_data->popup = NULL;
+       }
+
+       debug_log("emf_handle [%d], folder_mode[%d]", ug_data->emf_handle, ug_data->folder_mode);
+       ug_data->emf_handle = EMAIL_HANDLE_INVALID;
+
+       if(ug_data->folder_mode == ACC_FOLDER_NONE)
+       {
+               debug_log("exit func without popup");
+               return;
+       }
+#if 0
+       popup = elm_popup_add(ug_data->win);
+       evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+       switch(ug_data->folder_mode)
+       {
+               case ACC_FOLDER_CREATE:
+                       elm_object_text_set(popup, _("IDS_EMAIL_POP_UNABLE_TO_CREATE_FOLDER"));
+                       break;
+               case ACC_FOLDER_DELETE:
+                       elm_object_text_set(popup, N_("Unable to delete folder"));
+                       break;
+               case ACC_FOLDER_MOVE_TO:
+                       elm_object_text_set(popup, N_("Unable to move folder"));
+                       break;
+               default:
+                       elm_object_text_set(popup, dgettext("sys_string", "IDS_COM_POP_WARNING"));
+                       break;
+       }
+       btn1 = elm_button_add(popup);
+       elm_object_text_set(btn1, dgettext("sys_string", "IDS_COM_SK_OK"));
+       elm_object_part_content_set(popup, "button1", btn1);
+       evas_object_smart_callback_add(btn1, "clicked", _back_button_cb, ug_data);
+       ug_data->popup = popup;
+       evas_object_show(popup);
+
+#else
+       switch(ug_data->folder_mode)
+       {
+               case ACC_FOLDER_CREATE:
+                       ret = status_message_post(_("IDS_EMAIL_POP_UNABLE_TO_CREATE_FOLDER"));
+                       break;
+               case ACC_FOLDER_DELETE:
+                       ret = status_message_post(N_("Unable to delete folder"));
+                       break;
+               case ACC_FOLDER_MOVE_TO:
+                       ret = status_message_post(N_("Unable to move folder"));
+                       break;
+               case ACC_FOLDER_RENAME:
+                       ret = status_message_post(N_("Unable to rename folder"));
+                       break;
+               default:
+                       debug_log("Warning...");
+                       break;
+       }
+       if (ret) {
+               debug_log("fail to status_message_post() : %d\n", ret);
+       }
+       _back_button_cb(ug_data, NULL, NULL);
+#endif
+}
+
+static void _popup_progress_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       if (!data) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       Evas_Object *popup;
+       Evas_Object *btn1;
+       Evas_Object * progressbar;
+//     Evas_Object * layout, *label;
+       EmailAccountUGD *ug_data = (EmailAccountUGD *)data;
+
+       if (ug_data->conformant){
+               evas_object_del(ug_data->conformant);
+               ug_data->conformant = NULL;
+       }
+       if(ug_data->popup) {
+               evas_object_del(ug_data->popup);
+               ug_data->popup = NULL;
+       }
+
+       popup = elm_popup_add(ug_data->win);
+       evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+       switch(ug_data->folder_mode)
+       {
+               case ACC_FOLDER_CREATE:
+                       elm_object_part_text_set(popup, "title,text", N_("Creating folder..."));
+                       break;
+               case ACC_FOLDER_DELETE:
+                       elm_object_part_text_set(popup, "title,text", N_("Deleting folder..."));
+                       break;
+               case ACC_FOLDER_MOVE_TO:
+                       elm_object_part_text_set(popup, "title,text", N_("Moving folder..."));
+                       break;
+               case ACC_FOLDER_RENAME:
+                       elm_object_part_text_set(popup, "title,text", N_("Renaming folder..."));
+                       break;
+               default:
+                       elm_object_part_text_set(popup, "title,text", dgettext("sys_string", "IDS_COM_POP_WARNING"));
+                       break;
+       }
+
+       progressbar = elm_progressbar_add(popup);
+       elm_object_style_set(progressbar, "pending_list");
+       elm_progressbar_horizontal_set(progressbar, EINA_TRUE);
+       evas_object_size_hint_align_set(progressbar, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_size_hint_weight_set(progressbar, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_show(progressbar);
+       elm_progressbar_pulse(progressbar, EINA_TRUE);
+
+       elm_object_content_set(popup, progressbar);
+
+       btn1 = elm_button_add(popup);
+       elm_object_style_set(btn1, "popup_button/default");
+       elm_object_text_set(btn1, dgettext("sys_string", "IDS_COM_SK_CANCEL"));
+       elm_object_part_content_set(popup, "button1", btn1);
+       evas_object_smart_callback_add(btn1, "clicked", _cancel_button_cb, ug_data);
+
+       ug_data->popup = popup;
+       evas_object_show(popup);
+}
+
+static void _cancel_button_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       if (!data) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       EmailAccountUGD *ug_data = (EmailAccountUGD *)data;
+
+       if (ug_data->conformant){
+               evas_object_del(ug_data->conformant);
+               ug_data->conformant = NULL;
+       }
+       if(ug_data->popup) {
+               evas_object_del(ug_data->popup);
+               ug_data->popup = NULL;
+       }
+
+       _stop_emf_job(ug_data, ug_data->emf_handle);
+
+       _back_button_cb(ug_data, NULL, NULL);
+}
+
+/*static void _go_button_clicked_cb(void *data, Evas_Object * obj, void *event_info)
+{
+       debug_log("");
+
+       char buf[PATH_MAX];
+       Evas_Object *btn = obj;
+
+       if (toggle == 0) {
+               snprintf(buf, sizeof(buf), "expand/opened");
+               toggle = 1;
+               elm_genlist_item_expanded_set(current_it, 1);
+               elm_genlist_item_selected_set(current_it, EINA_FALSE);
+       } else {
+               snprintf(buf, sizeof(buf), "expand/closed");
+               toggle = 0;
+               elm_genlist_item_expanded_set(current_it, 0);
+       }
+
+       elm_object_style_set(btn, buf);
+}*/
+
+void _dbus_receiver_setup(EmailAccountUGD *ug_data)
+{
+       debug_log("");
+       if (ug_data == NULL) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       int ret = e_dbus_init();
+       debug_log("ret: %d", ret);
+
+       DBusError derror;
+
+       if (ug_data->dbus_conn == NULL) {
+               debug_log("");
+               dbus_error_init(&derror);
+               ug_data->dbus_conn = e_dbus_bus_get(DBUS_BUS_SYSTEM);
+
+               if (ug_data->dbus_conn == NULL) {
+                       debug_log("e_dbus_bus_get return NULL");
+               }
+
+               /* storage */
+               if (e_dbus_request_name(ug_data->dbus_conn, "User.Email.StorageChange", 0, NULL, NULL) == NULL) {
+                       debug_critical("Failed to e_dbus_request_name()");
+                       return;
+               }
+
+               if (ug_data->signal_handler_storage != NULL) {
+                       debug_log("signal_handler_storage != NULL");
+               }
+
+               ug_data->signal_handler_storage = e_dbus_signal_handler_add(ug_data->dbus_conn, NULL,
+                                                                       "/User/Email/StorageChange",
+                                                                       "User.Email.StorageChange", "email",
+                                                                       _edbus_event_account_receive,
+                                                                       ug_data);
+
+               if (ug_data->signal_handler_storage == NULL) {
+                       debug_log("Failed to e_dbus_signal_handler_add()");
+                       return;
+               }
+
+               /* network */
+               if (e_dbus_request_name(ug_data->dbus_conn, "User.Email.NetworkStatus", 0, NULL, NULL) == NULL) {
+                       debug_critical("Failed to e_dbus_request_name()");
+                       return;
+               }
+               if (ug_data->signal_handler_network != NULL) {
+                       debug_log("_g_setting_signal_handler_network != NULL");
+               }
+               ug_data->signal_handler_network = e_dbus_signal_handler_add(ug_data->dbus_conn, NULL,
+                                                                       "/User/Email/NetworkStatus",
+                                                                       "User.Email.NetworkStatus", "email",
+                                                                       _edbus_event_account_receive,
+                                                                       ug_data);
+
+               if (ug_data->signal_handler_network == NULL) {
+                       debug_critical("Failed to e_dbus_signal_handler_add()");
+                       return;
+               }
+       }
+}
+
+void _remove_dbus_receiver(EmailAccountUGD *ug_data)
+{
+       debug_log("");
+       if (ug_data == NULL) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       if (ug_data->signal_handler_storage != NULL) {
+               e_dbus_signal_handler_del(ug_data->dbus_conn, ug_data->signal_handler_storage);
+               ug_data->signal_handler_storage = NULL;
+       }
+
+       if (ug_data->signal_handler_network != NULL) {
+               e_dbus_signal_handler_del(ug_data->dbus_conn, ug_data->signal_handler_network);
+               ug_data->signal_handler_network = NULL;
+       }
+
+       if (e_dbus_release_name(ug_data->dbus_conn, "User.Email.StorageChange", NULL, NULL) == NULL) {
+               debug_critical("e_dbus_release_name to failed");
+       }
+
+       if (e_dbus_release_name(ug_data->dbus_conn, "User.Email.NetworkStatus", NULL, NULL) == NULL) {
+               debug_critical("e_dbus_release_name to failed");
+       }
+
+       if (ug_data->dbus_conn != NULL) {
+               /*e_dbus_connection_close(ugd->dbus_conn);*/
+               ug_data->dbus_conn = NULL;
+       }
+}
+
+static void _edbus_event_account_receive(void *local_data, DBusMessage *message)
+{
+       debug_enter();
+       if (get_app_terminated()) {
+               debug_log("App is in terminating");
+               return;
+       }
+
+       EmailAccountUGD *ug_data = (EmailAccountUGD *)local_data;
+       DBusError error;
+
+       if (ug_data == NULL) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       debug_log("ug_mode[%d], folder_mode[%d]", ug_data->ug_mode, ug_data->folder_mode);
+       if (ug_data->ug_mode == ACC_UG_ACCOUNT_VIEW) {
+               debug_log("Account view.");
+               return;
+       }
+
+       if (dbus_message_is_signal(message, "User.Email.StorageChange", "email")) {
+               debug_log("User.Email.StorageChange");
+
+               int subtype = 0;
+               int data1 = 0;
+               int data2 = 0;
+               char *data3 = NULL;
+               int data4 = 0;
+
+               dbus_error_init(&error);
+
+               if (dbus_message_get_args(message, &error, DBUS_TYPE_INT32, &subtype,
+                       DBUS_TYPE_INT32, &data1, DBUS_TYPE_INT32, &data2,
+                       DBUS_TYPE_STRING, &data3, DBUS_TYPE_INT32, &data4, DBUS_TYPE_INVALID)) {
+                       debug_log("STORE_ENABLE: subtype: %d, data1: %d, data2: %d, data3: %s, data4: %d", subtype, data1, data2, data3, data4);
+
+                       int account_id = 0;
+                       char* mailbox_name = NULL;
+
+                       switch (subtype) {
+
+                       case NOTI_MAILBOX_ADD:
+                               account_id = data1;
+                               mailbox_name = data3;
+                               debug_log("NOTI_MAILBOX_ADD, account_id [%d]", account_id);
+
+                               debug_log("Native account folder added: emf_handle[%d]", ug_data->emf_handle);
+                               if(ug_data->emf_handle != EMAIL_HANDLE_INVALID)
+                               {
+                                       _popup_success_cb(ug_data, NULL, NULL);
+                               }
+                               break;
+
+                       case NOTI_MAILBOX_DELETE:
+                               account_id = data1;
+                               mailbox_name = data3;
+                               debug_log("NOTI_MAILBOX_DELETE");
+
+                               debug_log("Native account folder deleted: emf_handle[%d]", ug_data->emf_handle);
+                               if(ug_data->emf_handle != EMAIL_HANDLE_INVALID)
+                               {
+                                       _popup_success_cb(ug_data, NULL, NULL);
+                               }
+                               break;
+
+                       case NOTI_MAILBOX_UPDATE:
+                               account_id = data1;
+                               mailbox_name = data3;
+                               debug_log("NOTI_MAILBOX_UPDATE");
+
+                               debug_log("Native account folder moved: emf_handle[%d]", ug_data->emf_handle);
+                               if(ug_data->emf_handle != EMAIL_HANDLE_INVALID)
+                               {
+                                       _popup_success_cb(ug_data, NULL, NULL);
+                               }
+                               break;
+
+                       default:
+                               debug_log("Uninterested notification");
+                               break;
+                       }
+               }
+               else {
+                       debug_critical("receive data error: %s", error.message);
+                       dbus_error_free(&error);
+               }
+       }else if (dbus_message_is_signal(message, "User.Email.NetworkStatus", "email")) {
+               debug_log("User.Email.NetworkStatus");
+
+               int subtype = 0;
+               int data1 = 0;
+               char *data2 = NULL;
+               int data3 = 0;
+               int data4 = 0;
+
+               dbus_error_init(&error);
+
+               if (dbus_message_get_args(message, &error, DBUS_TYPE_INT32, &subtype,
+                       DBUS_TYPE_INT32, &data1, DBUS_TYPE_STRING, &data2,
+                       DBUS_TYPE_INT32, &data3, DBUS_TYPE_INT32, &data4, DBUS_TYPE_INVALID)) {
+                       debug_log("subtype: %d, data1: %d, data2: %s, data3: %d, data4: %d", subtype, data1, data2, data3, data4);
+
+                       int account_id = 0;
+                       int email_handle = 0;
+                       int err_msg = 0;
+
+                       switch (subtype) {
+                       // EAS
+                               account_id = data1;
+                               email_handle = data3;
+                               err_msg = data4;
+
+                       case NOTI_ADD_MAILBOX_START:
+                               debug_log("NOTI_ADD_MAILBOX_START");
+                               break;
+
+                       case NOTI_ADD_MAILBOX_CANCEL:
+                               debug_log("NOTI_ADD_MAILBOX_CANCEL");
+                               break;
+
+                       case NOTI_ADD_MAILBOX_FINISH:
+                               debug_log("NOTI_ADD_MAILBOX_FINISH");
+                               _popup_success_cb(ug_data, NULL, NULL);
+                               break;
+
+                       case NOTI_ADD_MAILBOX_FAIL:
+                               debug_log("NOTI_ADD_MAILBOX_FAIL");
+                               _popup_fail_cb(ug_data, NULL, NULL);
+                               break;
+
+                       case NOTI_DELETE_MAILBOX_START:
+                               debug_log("NOTI_DELETE_MAILBOX_START");
+                               break;
+
+                       case NOTI_DELETE_MAILBOX_CANCEL:
+                               debug_log("NOTI_DELETE_MAILBOX_CANCEL");
+                               break;
+
+                       case NOTI_DELETE_MAILBOX_FINISH:
+                               debug_log("NOTI_DELETE_MAILBOX_FINISH");
+                               _popup_success_cb(ug_data, NULL, NULL);
+                               break;
+
+                       case NOTI_DELETE_MAILBOX_FAIL:
+                               debug_log("NOTI_DELETE_MAILBOX_FAIL");
+                               _popup_fail_cb(ug_data, NULL, NULL);
+                               break;
+
+                       case NOTI_RENAME_MAILBOX_START:
+                               debug_log("NOTI_RENAME_MAILBOX_START");
+                               break;
+
+                       case NOTI_RENAME_MAILBOX_FINISH:
+                               debug_log("NOTI_RENAME_MAILBOX_FINISH");
+                               _popup_success_cb(ug_data, NULL, NULL);
+                               break;
+
+                       case NOTI_RENAME_MAILBOX_FAIL:
+                               debug_log("NOTI_RENAME_MAILBOX_FAIL");
+                               _popup_fail_cb(ug_data, NULL, NULL);
+                               break;
+
+                       case NOTI_RENAME_MAILBOX_CANCEL:
+                               debug_log("NOTI_RENAME_MAILBOX_CANCEL");
+                               break;
+
+                       default:
+                               debug_warning("unknown type");
+                               break;
+                       }
+               }
+               else {
+                       debug_critical("receive data error: %s", error.message);
+                       dbus_error_free(&error);
+               }
+       }
+       else {
+               debug_warning("We receive dbus message, but we can't do anything");
+       }
+       debug_leave();
+}
+
+static void _stop_emf_job(EmailAccountUGD *ug_data, unsigned handle)
+{
+       debug_log("");
+       if (!ug_data) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       gint account_id = ug_data->account_id;
+
+       if (handle > 0) {
+               debug_log("stop job - handle (%d)", handle);
+               email_engine_stop_working(account_id, handle);
+       } else {
+               debug_warning("handle1 is %d. so we can't call email_engine_stop_working()", handle);
+       }
+
+       ug_data->emf_handle = EMAIL_HANDLE_INVALID;
+}
+
+static void _entry_changed_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       if (!data || !obj) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       if (elm_object_focus_get(data)) {
+               if (elm_entry_is_empty(obj))
+                       elm_object_signal_emit(data, "elm,state,eraser,hide", "elm");
+               else
+                       elm_object_signal_emit(data, "elm,state,eraser,show", "elm");
+       }
+}
+
+static void _entry_focused_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       if (!data || !obj) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       if (!elm_entry_is_empty(obj))
+               elm_object_signal_emit(data, "elm,state,eraser,show", "elm");
+       elm_object_signal_emit(data, "elm,state,guidetext,hide", "elm");
+}
+
+static void _entry_unfocused_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       if (!data || !obj) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       if (elm_entry_is_empty(obj))
+               elm_object_signal_emit(data, "elm,state,guidetext,show", "elm");
+       elm_object_signal_emit(data, "elm,state,eraser,hide", "elm");
+}
+
+static void _eraser_clicked_cb(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+       debug_log("");
+       if (!data || !obj) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       elm_entry_entry_set(data, "");
+}
+
+// Codes for removing elm_editfield : START
+/*
+static void _changed_cb(void *data, Evas_Object *obj, void *event_info) // This callback is for showing(hiding) X marked button.
+{
+       debug_log("");
+       if (elm_object_focus_get(data)) {
+               if (elm_entry_is_empty(obj))
+                       elm_object_signal_emit(data, "elm,state,eraser,hide", "elm");
+               else
+                       elm_object_signal_emit(data, "elm,state,eraser,show", "elm");
+       }
+}
+
+static void _focused_cb(void *data, Evas_Object *obj, void *event_info) // Focused callback will show X marked button and hide guidetext.
+{
+       debug_log("");
+       if (!elm_entry_is_empty(obj))
+               elm_object_signal_emit(data, "elm,state,eraser,show", "elm");
+       elm_object_signal_emit(data, "elm,state,guidetext,hide", "elm");
+}
+
+static void _unfocused_cb(void *data, Evas_Object *obj, void *event_info) // Unfocused callback will show guidetext and hide X marked button.
+{
+       debug_log("");
+       if (elm_entry_is_empty(obj))
+               elm_object_signal_emit(data, "elm,state,guidetext,show", "elm");
+       elm_object_signal_emit(data, "elm,state,eraser,hide", "elm");
+}
+
+static Evas_Object *_singleline_editfield_add(Evas_Object *parent) // For single lined editfield without top title.
+{
+       debug_log("");
+       Evas_Object *layout, *entry;
+
+       layout = elm_layout_add(parent);
+       elm_layout_theme_set(layout, "layout", "editfield", "default"); // Default editfield layout style without top title.
+       evas_object_show(layout);
+
+       entry = elm_entry_add(parent);
+       elm_entry_scrollable_set(entry, EINA_TRUE); // Make entry as scrollable single line.
+       elm_entry_single_line_set(entry, EINA_TRUE);
+       evas_object_smart_callback_add(entry, "changed", _changed_cb, layout);
+       evas_object_smart_callback_add(entry, "preedit,changed", _changed_cb, layout);
+       evas_object_smart_callback_add(entry, "focused", _focused_cb, layout);
+       evas_object_smart_callback_add(entry, "unfocused", _unfocused_cb, layout);
+       evas_object_show(entry);
+
+       elm_object_part_content_set(layout, "elm.swallow.content", entry);
+       elm_object_signal_callback_add(layout, "elm,eraser,clicked", "elm", _eraser_clicked_cb, entry);
+
+       return layout;
+}
+// Codes for removing elm_editfield : END
+*/
+/**************************** Rename && Entry Handling Routines ******************************/
+// Unfocus callback for edit field.
+// This is called when edit field lost its focus.
+/*static void _maxlength_reached_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       debug_log("Maxlength reached!");
+}
+
+static void _rename_entry_changed_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+
+       //Item_Data *item_data = (Item_Data *)data;
+       GNode *node = (GNode *)data;
+       email_mailbox_t *mlist = (email_mailbox_t *)(node->data);
+
+       Evas_Object *entry = obj;
+
+       strcpy(mlist->alias, elm_entry_entry_get(entry));
+}
+
+// Unset rename mode if any item is in rename mode.
+static void _unset_rename(EmailAccountUGD *ug_data)
+{
+       debug_log("");
+
+       if ((ug_data) && (ug_data->renamed_it) && (elm_genlist_item_flip_get(ug_data->renamed_it)))
+               elm_genlist_item_flip_set(ug_data->renamed_it, EINA_FALSE);
+}
+
+static void _rename_unfocused_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       //_unset_rename(data);
+}
+
+static void _rename_button_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       //View_Data *vd = (View_Data *)evas_object_data_get(elm_object_item_widget_get(data), "view_data");
+       Item_Data *tree_item_data = (Item_Data *)data;
+
+       debug_log("it: %p, alist: %p, item_data: %p", tree_item_data->it, tree_item_data->alist, tree_item_data);
+
+       if ((tree_item_data) && (tree_item_data->ug_data)) {
+               tree_item_data->ug_data->renamed_it = tree_item_data->it;
+               elm_genlist_item_flip_set(tree_item_data->it, EINA_TRUE);
+
+               elm_genlist_item_fields_update(tree_item_data->it, "elm.flip.content", ELM_GENLIST_ITEM_FIELD_CONTENT);
+       }
+}
+*/
+/* EOF */
diff --git a/account/src/email-account.c b/account/src/email-account.c
new file mode 100755 (executable)
index 0000000..f70751d
--- /dev/null
@@ -0,0 +1,1328 @@
+/*
+ * Copyright 2012  Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *    http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef UG_MODULE_API
+#define UG_MODULE_API __attribute__ ((visibility("default")))
+#endif
+
+#include <Ecore_X.h>
+#include "email-account.h"
+#include "email-account-folder.h"
+
+#include <unicode/uloc.h>
+#include <unicode/ucal.h>
+#include <unicode/udat.h>
+#include <unicode/udatpg.h>
+#include <unicode/ustring.h>
+
+/* appcore */
+static void *on_create(ui_gadget_h ug, enum ug_mode mode, service_h service, void *priv);
+static void on_start(ui_gadget_h ug, service_h service, void *priv);
+static void on_pause(ui_gadget_h ug, service_h service, void *priv);
+static void on_resume(ui_gadget_h ug, service_h service, void *priv);
+static void on_destroy(ui_gadget_h ug, service_h services, void *priv);
+static void on_message(ui_gadget_h ug, service_h msg, service_h service, void *priv);
+static void on_event(ui_gadget_h ug, enum ug_event event, service_h service, void *priv);
+static void on_key_event(ui_gadget_h ug, enum ug_key_event event, service_h service, void *priv);
+
+static void _win_profile_changed_cb(void *data, Evas_Object *obj, void *event);
+
+/* view logic */
+static Evas_Object *create_frameview(EmailAccountUGD *ugd);
+
+static void layout_cb(ui_gadget_h ug, enum ug_mode mode, void *priv);
+static void result_cb(ui_gadget_h ug, service_h service, void *priv);
+static void destroy_cb(ui_gadget_h ug, void *priv);
+static ui_gadget_h create_ug(char *ug_name, service_h service, void *data);
+
+/* genlist cb */
+static void _gl_del(void *data, Evas_Object *obj);
+static char *_gl_label_get_for_4text(void *data, Evas_Object *obj, const char *part);
+static char *_gl_label_get_for_all_emails(void *data, Evas_Object *obj, const char *part);
+static Evas_Object *_gl_icon_get_for_all_emails(void *data, Evas_Object *obj, const char *part);
+static char *_gl_label_get_for_add_account(void *data, Evas_Object *obj, const char *part);
+static Evas_Object *_gl_icon_get_for_add_account(void *data, Evas_Object *obj, const char *part);
+static Evas_Object *_gl_icon_get(void *data, Evas_Object *obj, const char *part);
+static Eina_Bool _gl_state_get(void *data, Evas_Object *obj, const char *part);
+static void _open_all_emails(void *data, Evas_Object *obj, void *event_info);
+
+static void _get_icu_formatter(void);
+static void _close_icu_formatter(void);
+static void _get_date_text_with_formatter(time_t time, char *formatted_str);
+
+/* other cb */
+static void _add_account_cb(void *data, Evas_Object *obj, void *event_info);
+
+//static int _emf_account_init(EmailAccountUGD *ug_data);
+//static void _gl_con(void *data, Evas_Object *obj, void *event_info);
+//static void _gl_exp_req(void *data, Evas_Object *obj, void *event_info);
+//static void _gl_con_req(void *data, Evas_Object *obj, void *event_info);
+//static void _gl_exp(void *data, Evas_Object *obj, void *event_info);
+//static char *_gl_label_get(void *data, Evas_Object *obj, const char *part);
+//static char *_gl_group_text_get(void *data, Evas_Object *obj, const char *part);
+//static void _launch_composer_cb(void *data, Evas_Object *obj, void *event_info);
+//static Elm_Genlist_Item_Class itc_group;
+
+EmailAccountUGD *g_account_ugd;
+
+static Elm_Genlist_Item_Class itc_item;
+static Elm_Genlist_Item_Class itc_item_for_add_accounts;
+static Elm_Genlist_Item_Class itc_item_for_all_emails;
+
+bool g_isRotate = false;
+
+static UDateTimePatternGenerator *icu_pg = NULL;
+static UDateFormat *icu_formatter = NULL;
+static enum appcore_time_format icu_timeformat;
+
+/*static Elm_Object_Item *current_it = NULL;*/
+
+static void *on_create(ui_gadget_h ug, enum ug_mode mode, service_h service, void *priv)
+{
+       debug_log("");
+       EmailAccountUGD *ug_data;
+       char *argv[2] = { 0, };
+
+       if (!ug || !priv)
+               return NULL;
+
+       ug_data = priv;
+       ug_data->ug = ug;
+       g_account_ugd = ug_data;
+
+       ug_data->win = ug_get_window();
+       if (!(ug_data->win))
+               return NULL;
+
+       email_engine_initialize();
+       /*ret = _emf_account_init(ug_data);*/
+
+       int w, h;
+       ecore_x_window_size_get(ecore_x_window_root_first_get(), &w, &h);
+       debug_log("WINDOW W[%d] H[%d]", w, h);
+       ug_data->main_w = w;
+       ug_data->main_h = h;
+
+       // parsing bundle data
+       service_get_extra_data(service, EMAIL_BUNDLE_KEY_ACCOUNT_ID, &(argv[0]));
+       service_get_extra_data(service, EMAIL_BUNDLE_KEY_MAILBOX, &(argv[1]));
+
+       if (argv[0])
+       {
+               ug_data->account_id = atoi(argv[0]);
+               g_free(argv[0]);
+       }
+       if (argv[1])
+       {
+               ug_data->folder_id = atoi(argv[1]);
+               g_free(argv[1]);
+       }
+       debug_log("account_id:%d, folder_id: %d", ug_data->account_id, ug_data->folder_id);
+
+       _get_icu_formatter();
+
+       if (mode == UG_MODE_FULLVIEW)   // folder view
+       {
+               /* DBUS */
+               _dbus_receiver_setup(ug_data);
+
+               ug_data->ug_mode = ACC_UG_FOLDER_VIEW;
+               ug_data->folder_mode = ACC_FOLDER_NONE;
+               ug_data->base = create_fullview(ug_data);
+       }
+       else            // account view
+       {
+               ug_data->ug_mode = ACC_UG_ACCOUNT_VIEW;
+               ug_data->folder_mode = ACC_FOLDER_NONE;
+               ug_data->base = create_frameview(ug_data);
+       }
+
+       evas_object_smart_callback_add(ug_data->win, "profile,changed", _win_profile_changed_cb, ug_data);
+
+       return ug_data->base;
+}
+
+static void on_start(ui_gadget_h ug, service_h service, void *priv)
+{
+       debug_log("");
+}
+
+static void on_pause(ui_gadget_h ug, service_h service, void *priv)
+{
+       debug_log("");
+}
+
+static void on_resume(ui_gadget_h ug, service_h service, void *priv)
+{
+       debug_log("");
+       EmailAccountUGD *ug_data;
+
+       if (!ug || !priv)
+               return;
+
+       ug_data = priv;
+
+       /*_refresh_account_list(ug_data);*/
+}
+
+static void on_destroy(ui_gadget_h ug, service_h service, void *priv)
+{
+       debug_log("");
+       EmailAccountUGD *ug_data;
+
+       if (!ug || !priv)
+               return;
+
+       ug_data = priv;
+
+       if (ug_data->ug_composer) {
+               ug_destroy(ug_data->ug_composer);
+       }
+
+       if (ug_data->ug_setting) {
+               ug_destroy(ug_data->ug_setting);
+       }
+
+       if (ug_data->ug_mode == ACC_UG_FOLDER_VIEW)     // folder view
+       {
+               /* DBUS */
+               _remove_dbus_receiver(ug_data);
+
+               int ret = e_dbus_shutdown();
+               debug_log("ret: %d", ret);
+       }
+
+       _destroy_view(ug_data);
+
+       email_engine_finalize();
+
+       _close_icu_formatter();
+
+       if (ug_data->ly) {
+               evas_object_del(ug_data->ly);
+               ug_data->ly = NULL;
+               ug_data->base = NULL;
+       }
+}
+
+static void on_message(ui_gadget_h ug, service_h msg, service_h service, void *priv)
+{
+       debug_log("");
+}
+
+static void on_event(ui_gadget_h ug, enum ug_event event, service_h service, void *priv)
+{
+       debug_log("");
+
+       switch (event) {
+       case UG_EVENT_LOW_MEMORY:
+               break;
+       case UG_EVENT_LOW_BATTERY:
+               break;
+       case UG_EVENT_LANG_CHANGE:
+               /*bindtextdomain(PACKAGE, LOCALEDIR);
+               textdomain(PACKAGE);*/
+               break;
+       case UG_EVENT_ROTATE_PORTRAIT:
+               debug_log("UG_EVENT_ROTATE_PORTRAIT");
+               g_isRotate = false;
+               break;
+       case UG_EVENT_ROTATE_PORTRAIT_UPSIDEDOWN:
+               debug_log("UG_EVENT_ROTATE_PORTRAIT_UPSIDEDOWN");
+               g_isRotate = false;
+               break;
+       case UG_EVENT_ROTATE_LANDSCAPE:
+               debug_log("UG_EVENT_ROTATE_LANDSCAPE");
+               g_isRotate = true;
+               break;
+       case UG_EVENT_ROTATE_LANDSCAPE_UPSIDEDOWN:
+               debug_log("UG_EVENT_ROTATE_LANDSCAPE_UPSIDEDOWN");
+               g_isRotate = true;
+               break;
+       case UG_EVENT_REGION_CHANGE:
+               break;
+       default:
+               break;
+       }
+}
+
+static void on_key_event(ui_gadget_h ug, enum ug_key_event event, service_h service, void *priv)
+{
+       debug_log("");
+
+       if (!ug)
+               return;
+
+       switch (event) {
+       case UG_KEY_EVENT_END:
+               ug_destroy_me(ug);
+               break;
+
+       default:
+               break;
+       }
+}
+
+UG_MODULE_API int UG_MODULE_INIT(struct ug_module_ops *ops)
+{
+       debug_log("");
+       EmailAccountUGD *ug_data;
+
+       if (!ops)
+               return -1;
+
+       ug_data = calloc(1, sizeof(EmailAccountUGD));
+       if (!ug_data)
+               return -1;
+
+       ops->create = on_create;
+       ops->start = on_start;
+       ops->pause = on_pause;
+       ops->resume = on_resume;
+       ops->destroy = on_destroy;
+       ops->message = on_message;
+       ops->event = on_event;
+       ops->key_event = on_key_event;
+       ops->priv = ug_data;
+       ops->opt = UG_OPT_INDICATOR_ENABLE;
+
+       return 0;
+}
+
+UG_MODULE_API void UG_MODULE_EXIT(struct ug_module_ops *ops)
+{
+       debug_log("");
+       EmailAccountUGD *ug_data;
+
+       if (!ops)
+               return;
+
+       ug_data = ops->priv;
+       if (ug_data)
+               free(ug_data);
+}
+
+static Evas_Object *create_frameview(EmailAccountUGD * ug_data)
+{
+       debug_log("");
+
+       ug_data->evas = evas_object_evas_get(ug_data->win);
+
+       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);
+       if (ug_data->ly == NULL) {
+               debug_log("ug_data->ly == NULL");
+               return NULL;
+       }
+       elm_layout_theme_set(ug_data->ly, "layout", "application", "noindicator");
+       //evas_object_size_hint_weight_set(ug_data->ly, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       //elm_win_resize_object_add(ug_data->win, ug_data->ly);
+       evas_object_show(ug_data->ly);
+
+       elm_object_part_content_set(ug_data->ly, "elm.swallow.bg", ug_data->bg);
+
+       /* contents */
+       _create_account_view(ug_data);
+       elm_object_part_content_set(ug_data->ly, "elm.swallow.content", ug_data->gl);
+
+       return ug_data->ly;
+}
+
+static void _win_profile_changed_cb(void *data, Evas_Object *obj, void *event)
+{
+       debug_log("");
+       if (!data) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       EmailAccountUGD *ug_data = (EmailAccountUGD *)data;
+
+       const char *profile = elm_config_profile_get();
+       if (!g_strcmp0(profile, "desktop"))
+               elm_layout_theme_set(ug_data->ly, "layout", "application", "noindicator");
+       else
+               elm_layout_theme_set(ug_data->ly, "layout", "application", "default");
+
+       evas_object_size_hint_weight_set(ug_data->ly, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       elm_win_resize_object_add(ug_data->win, ug_data->ly);
+       evas_object_show(ug_data->ly);
+}
+
+void _create_account_view(EmailAccountUGD *ug_data)
+{
+       debug_log("");
+       Evas_Object *gl;
+
+       _destroy_view(ug_data);
+
+       /* accounts list */
+       if (ug_data->gl) {
+               gl = ug_data->gl;
+       } else {
+               gl = elm_genlist_add(ug_data->ly);
+               elm_genlist_tree_effect_enabled_set(gl, 1);
+               elm_genlist_block_count_set(gl, 36);
+               ug_data->gl = gl;
+       }
+
+       email_account_t *account_list = NULL;
+       int account_count = 0;
+       int err = 0;
+       int i = 0;
+       int j = 0;
+
+       ug_data->all_unread_count = 0;
+       ug_data->all_read_count = 0;
+
+       err = email_engine_get_account_list(&account_count, &account_list);
+
+       if (err == 0) {
+               debug_critical("fail to get account list - err(%d)", err);
+               if (ug_data->gl) {
+                       evas_object_del(ug_data->gl);
+                       ug_data->gl = NULL;
+               }
+               ug_data->gl = _add_emtpy_list(ug_data);
+               return;
+       }
+
+       if (account_list == NULL || account_count == 0) {
+               debug_critical("account info is @niL");
+               if (ug_data->gl) {
+                       evas_object_del(ug_data->gl);
+                       ug_data->gl = NULL;
+               }
+               ug_data->gl = _add_emtpy_list(ug_data);
+               return;
+       }
+       ug_data->n_account_list = account_count;
+
+       /* If user make 2 more accounts, we will show `All emails` */
+       if (account_count > 1) {
+               itc_item_for_all_emails.item_style = "2text.1icon";
+               itc_item_for_all_emails.func.text_get = _gl_label_get_for_all_emails;
+               itc_item_for_all_emails.func.content_get = _gl_icon_get_for_all_emails;
+               itc_item_for_all_emails.func.state_get = _gl_state_get;
+               itc_item_for_all_emails.func.del = _gl_del;
+
+               elm_genlist_item_append(gl, &itc_item_for_all_emails, ug_data, NULL,
+                               ELM_GENLIST_ITEM_NONE, _open_all_emails, NULL);
+
+               /*itc_group.item_style = "grouptitle";
+               itc_group.func.text_get = _gl_group_text_get;
+               itc_group.func.content_get = NULL;
+               itc_group.func.state_get = NULL;
+               itc_group.func.del = NULL;
+
+               Elm_Object_Item *git = elm_genlist_item_append(gl, &itc_group, NULL,
+                               NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+               elm_genlist_item_select_mode_set(git, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);*/
+       }
+
+       itc_item.item_style = "4text.1icon.3";
+       itc_item.func.text_get = _gl_label_get_for_4text;
+       itc_item.func.content_get = _gl_icon_get;
+       itc_item.func.state_get = _gl_state_get;
+       itc_item.func.del = _gl_del;
+
+       email_account_list *alist = (email_account_list *)
+                       calloc(account_count, sizeof(email_account_list));
+
+       for (i = 0; i < account_count; i++) {
+               alist[i].ug_data = ug_data;
+               alist[i].account_info = &account_list[i];
+
+               int err = 0;
+               int mailbox_list_count = 0;
+               email_mailbox_t *mailbox_list = NULL;
+
+               err = email_get_mailbox_list_ex(account_list[i].account_id, -1, 1,
+                               &mailbox_list, &mailbox_list_count);
+               if (err != EMAIL_ERROR_NONE) {
+                       debug_critical("email_get_mailbox_list return error");
+                       continue;
+               }
+
+               alist[i].mailbox_list = mailbox_list;
+               alist[i].n_mailbox_list = mailbox_list_count;
+
+               if (mailbox_list_count > 0) {
+                       for (j = 0; j < mailbox_list_count; j++) {
+                               alist[i].read_count += mailbox_list[j].total_mail_count_on_local;
+                               alist[i].unread_count += mailbox_list[j].unread_count;
+                       }
+
+                       ug_data->all_read_count += alist[i].read_count;
+                       ug_data->all_unread_count += alist[i].unread_count;
+               }
+
+//             _make_folder_tree(alist + i, ug_data);
+       }
+
+       ug_data->alist = alist;
+
+       for (i = 0; i < account_count; i++) {
+               elm_genlist_item_append(gl, &itc_item, &alist[i], NULL,
+                               ELM_GENLIST_ITEM_NONE, _open_mail_list, &alist[i]);
+       }
+/*
+       evas_object_smart_callback_add(gl, "expand,request", _gl_exp_req, gl);
+       evas_object_smart_callback_add(gl, "contract,request", _gl_con_req, gl);
+       evas_object_smart_callback_add(gl, "expanded", _gl_exp, ug_data);
+       evas_object_smart_callback_add(gl, "contracted", _gl_con, gl);
+*/
+
+       /* If user make 2 more accounts, we will show `Add account` */
+       itc_item_for_add_accounts.item_style = "2text.1icon";
+       itc_item_for_add_accounts.func.text_get = _gl_label_get_for_add_account;
+       itc_item_for_add_accounts.func.content_get = _gl_icon_get_for_add_account;
+       itc_item_for_add_accounts.func.state_get = _gl_state_get;
+       itc_item_for_add_accounts.func.del = _gl_del;
+
+       elm_genlist_item_append(gl, &itc_item_for_add_accounts, ug_data, NULL,
+                       ELM_GENLIST_ITEM_NONE, _add_account_cb, ug_data);
+
+       return;
+}
+
+void _destroy_view(EmailAccountUGD *ug_data)
+{
+       debug_log("");
+
+       RETURN_IF_FAIL(ug_data != NULL);
+
+       int i = 0;
+       int err = 0;
+       email_account_list *alist = ug_data->alist;
+
+       if (ug_data->conformant) {
+               evas_object_del(ug_data->conformant);
+               ug_data->conformant = NULL;
+       }
+       if(ug_data->popup) {
+               evas_object_del(ug_data->popup);
+               ug_data->popup = NULL;
+       }
+
+       if (alist) {
+
+               if(ug_data->ug_mode == ACC_UG_ACCOUNT_VIEW
+                       || (ug_data->ug_mode == ACC_UG_FOLDER_VIEW && ug_data->account_id == 0))
+               {
+                       debug_log("account view: count_of_account_list: %d", ug_data->n_account_list);
+                       err = email_engine_free_account_list(&(alist[0].account_info), ug_data->n_account_list);
+                       if (err == 0) {
+                               debug_critical("fail to free account - err(%d)", err);
+                       }
+
+                       for (i = 0; i < ug_data->n_account_list; i++) {
+                               err = email_free_mailbox(&(alist[i].mailbox_list), alist[i].n_mailbox_list);
+                               if (err != EMAIL_ERROR_NONE) {
+                                       debug_critical("fail to free mailbox list - err(%d)", err);
+                               }
+
+                               alist[i].mailbox_list = NULL;
+                               alist[i].n_mailbox_list = 0;
+                               alist[i].account_info = NULL;
+
+                               g_node_destroy(alist[i].folder_root);
+                               alist[i].folder_root = NULL;
+                       }
+
+                       g_free(alist);
+                       alist = NULL;
+                       ug_data->alist = NULL;
+               }
+               else            // One account folder view.
+               {
+                       debug_log("folder view: count_of_account_list: %d, account_id: %d", ug_data->n_account_list, ug_data->account_id);
+                       if(ug_data->account_id > 0)
+                       {
+                               err = email_engine_free_account_list(&(alist->account_info), 1);
+                               if (err == 0) {
+                                       debug_critical("fail to free account - err(%d)", err);
+                               }
+
+                               err = email_free_mailbox(&(alist->mailbox_list), alist->n_mailbox_list);
+                               if (err != EMAIL_ERROR_NONE) {
+                                       debug_critical("fail to free mailbox list - err(%d)", err);
+                               }
+
+                               alist->mailbox_list = NULL;
+                               alist->n_mailbox_list = 0;
+                               alist->account_info = NULL;
+
+                               g_node_destroy(alist->folder_root);
+                               alist->folder_root = NULL;
+
+                               debug_log("folder view");
+
+                               g_free(alist);
+                               alist = NULL;
+                               ug_data->alist = NULL;
+                       }
+               }
+               debug_log("folder view");
+       }
+}
+
+static char *_gl_label_get_for_4text(void *data, Evas_Object *obj, const char *part)
+{
+       email_account_list *alist = (email_account_list *) data;
+       char tmp[MAX_STR_LEN] = { 0, }; /*account_name has no limitation on size*/
+
+       if (alist == NULL) {
+               debug_log("alist is NULL !!");
+               goto FINISH;
+       }
+
+       if (!strcmp(part, "elm.text.1")) {
+               if (alist->account_info->account_name != NULL) {
+                       debug_log("account_name: %s", alist->account_info->account_name);
+                       snprintf(tmp, sizeof(tmp), "%s", alist->account_info->account_name);
+                       return g_strdup(tmp);
+               }
+       } else if (!strcmp(part, "elm.text.2")) {
+               char buf[MAX_STR_LEN] = { 0, };
+               email_mailbox_t *mailbox = NULL;
+               email_get_mailbox_by_mailbox_type(alist->account_info->account_id, EMAIL_MAILBOX_TYPE_INBOX, &mailbox);
+               if (mailbox) {
+                       debug_log("alias: %s, last_sync_time: %d", mailbox->alias, mailbox->last_sync_time);
+                       time_t req_time = time(NULL);   //mailbox->last_sync_time;
+                       _get_date_text_with_formatter(req_time, buf);
+               }
+               return g_strdup(buf);
+       } else if (!strcmp(part, "elm.text.3")) {
+               if (alist->account_info->user_email_address != NULL) {
+                       debug_log("user_email_addr: %s", alist->account_info->user_email_address);
+                       return g_strdup(alist->account_info->user_email_address);
+               }
+       } else if (!strcmp(part, "elm.text.4")) {
+               int total_cnt = alist->unread_count;
+               if (total_cnt >= 0) {
+                       debug_log("total_cnt: %d, unread_count: %d, read_count: %d", total_cnt, alist->unread_count, alist->read_count);
+                       snprintf(tmp, sizeof(tmp), "%d", total_cnt);
+                       return g_strdup(tmp);
+               }
+       } else {
+               debug_log("part is invalid");
+       }
+
+FINISH:
+       snprintf(tmp, sizeof(tmp), _("IDS_EMAIL_BODY_NO_TEXT"));
+       return g_strdup(tmp);
+}
+
+static char *_gl_label_get_for_all_emails(void *data, Evas_Object *obj, const char *part)
+{
+       debug_log("");
+       EmailAccountUGD *ug_data = (EmailAccountUGD *) data;
+       char tmp[MAX_STR_LEN] = { 0, };
+
+       if (!strcmp(part, "elm.text.1")) {
+               snprintf(tmp, sizeof(tmp), "%s", _("IDS_EMAIL_BODY_ALL_EMAILS"));
+               return g_strdup(tmp);
+       } else if (!strcmp(part, "elm.text.2")) {
+               snprintf(tmp, sizeof(tmp), "[%d/%d]", ug_data->all_unread_count, ug_data->all_read_count);
+               return g_strdup(tmp);
+       } else {
+               debug_log("part is invalid");
+       }
+
+       snprintf(tmp, sizeof(tmp), _("IDS_EMAIL_BODY_NO_TEXT"));
+       return g_strdup(tmp);
+}
+
+static Evas_Object *_gl_icon_get_for_all_emails(void *data, Evas_Object *obj, const char *part)
+{
+       debug_log("");
+       if (!data) {
+               debug_log("data is NULL");
+               return NULL;
+       }
+//     EmailAccountUGD *ug_data = (EmailAccountUGD *) data;
+
+       if (!strcmp(part, "elm.icon"))
+       {
+               Evas_Object *icon = elm_icon_add(obj);
+               elm_icon_file_set(icon, ACCOUNT_ICON_ALLACCOUNT, NULL);
+               evas_object_size_hint_aspect_set(icon, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
+               return icon;
+       }
+       else
+       {
+               debug_log("part is invalid");
+       }
+
+       return NULL;
+}
+
+static char *_gl_label_get_for_add_account(void *data, Evas_Object *obj, const char *part)
+{
+       debug_log("");
+//     EmailAccountUGD *ug_data = (EmailAccountUGD *) data;
+       char tmp[MAX_STR_LEN] = { 0, };
+
+       if (!strcmp(part, "elm.text.1")) {
+               snprintf(tmp, sizeof(tmp), "%s", _("IDS_EMAIL_POP_ADD_ACCOUNTS"));
+               return g_strdup(tmp);
+       }else if (!strcmp(part, "elm.text.2")) {
+               memset(tmp, 0, sizeof(char) * MAX_STR_LEN);
+               return g_strdup(tmp);
+       } else {
+               debug_log("part is invalid");
+       }
+
+       snprintf(tmp, sizeof(tmp), _("IDS_EMAIL_BODY_NO_TEXT"));
+       return g_strdup(tmp);
+}
+
+static Evas_Object *_gl_icon_get_for_add_account(void *data, Evas_Object *obj, const char *part)
+{
+       debug_log("");
+       if (!data) {
+               debug_log("data is NULL");
+               return NULL;
+       }
+//     EmailAccountUGD *ug_data = (EmailAccountUGD *) data;
+
+       if (!strcmp(part, "elm.icon"))
+       {
+               Evas_Object *icon = elm_icon_add(obj);
+               elm_icon_file_set(icon, ACCOUNT_ICON_ADDACCOUNT, NULL);
+               evas_object_size_hint_aspect_set(icon, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
+               return icon;
+       }
+       else
+       {
+               debug_log("part is invalid");
+       }
+
+       return NULL;
+}
+
+static Evas_Object *_gl_icon_get(void *data, Evas_Object *obj, const char *part)
+{
+       debug_log("");
+       if (!data) {
+               debug_log("data is NULL");
+               return NULL;
+       }
+
+       email_account_list *alist = (email_account_list *) data;
+#if 0  //check box
+       Evas_Object *check= NULL;
+
+       if (elm_genlist_decorate_mode_get(obj)) {
+               if (!strcmp(part, "elm.edit.icon.1")) {
+                       check = elm_check_add(obj);
+                       //elm_check_state_pointer_set(check, &alist->checked);
+                       evas_object_smart_callback_add(check, "changed", _edit_item_check_changed_cb, data);
+                       return check;
+               }
+       }
+#endif
+
+       if (!strcmp(part, "elm.icon") || !strcmp(part, "elm.icon.1") )
+       {
+               Evas_Object *icon = elm_icon_add(obj);
+
+               // setting/include/email-setting.h
+               typedef enum {
+                       HOTMAIL = 1,
+                       GMAIL,
+                       YAHOOMAIL,
+                       AOL,
+                       OTHERS
+               } AccountInfo;
+
+               account_user_data_t *user_data = (account_user_data_t *)alist->account_info->user_data;
+               debug_log("is_preset_account:%d", user_data->is_preset_account);
+
+               switch (user_data->is_preset_account) {
+               case GMAIL:
+                       elm_icon_file_set(icon, ACCOUNT_ICON_GMAIL, NULL);
+                       break;
+               case HOTMAIL:
+                       elm_icon_file_set(icon, ACCOUNT_ICON_HOTMAIL, NULL);
+                       break;
+               case YAHOOMAIL:
+                       elm_icon_file_set(icon, ACCOUNT_ICON_YAHOO, NULL);
+                       break;
+               case AOL:
+                       elm_icon_file_set(icon, ACCOUNT_ICON_AOL, NULL);
+                       break;
+               case OTHERS:
+               default:
+                       elm_icon_file_set(icon, ACCOUNT_ICON_OTHERS, NULL);
+                       break;
+               }
+               evas_object_size_hint_aspect_set(icon, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
+
+               return icon;
+       }
+       else if (!strcmp(part, "elm.swallow.colorbar"))
+       {
+               account_user_data_t *user_data = (account_user_data_t *)alist->account_info->user_data;
+               unsigned int val = user_data->index_color;
+               int r = (val & 0xff000000) >> 24;
+               int g = (val & 0x00ff0000) >> 16;
+               int b = (val & 0x0000ff00) >> 8;
+               int a = val & 0x000000ff;
+
+               Evas_Object *color_bar = evas_object_rectangle_add(evas_object_evas_get(obj));
+               evas_object_size_hint_fill_set(color_bar, EVAS_HINT_FILL, EVAS_HINT_FILL);
+               evas_object_color_set(color_bar, r, g, b, a);
+
+               return color_bar;
+       }
+       else
+       {
+               debug_log("part is invalid");
+       }
+
+       return NULL;
+}
+
+static void _gl_del(void *data, Evas_Object *obj)
+{
+       debug_log("");
+}
+
+static Eina_Bool _gl_state_get(void *data, Evas_Object *obj, const char *part)
+{
+       debug_log("");
+       return EINA_FALSE;
+}
+
+void _open_mail_list(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       if (data == NULL) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       email_account_list *alist = (email_account_list *)data;
+       Elm_Object_Item *item = (Elm_Object_Item *)event_info;
+       elm_genlist_item_selected_set(item, 0);
+
+       Evas_Coord x, y = 0;
+       evas_pointer_canvas_xy_get(evas_object_evas_get(obj), &x, &y);
+       debug_log("X = %d, Y = %d", x, y);
+
+/*
+       int main_w = alist->ug_data->main_w;
+       int main_h = alist->ug_data->main_h;
+       debug_log("g_isRotate = %d", g_isRotate);
+
+       if (g_isRotate == false) {
+               debug_log("Potrait Mode");
+               if (x > main_w-80 && x < main_w) {
+                       return;
+               }
+       } else {
+               debug_log("Landscape Mode");
+               if (x > main_h-80 && x < main_h) {
+                       return;
+               }
+       }
+*/
+       if (alist->ug_data->block_item_click)
+               return;
+
+       int account_id = alist->account_info->account_id;
+       debug_log("account_id: %d", account_id);
+
+       elm_genlist_item_update(item);
+
+       service_h service;
+       if (SERVICE_ERROR_NONE != service_create(&service))
+       {
+               debug_log("creating service handle failed");
+               return;
+       }
+
+       char id[NUM_STR_LEN] = {0,};
+       snprintf(id, sizeof(id), "%d", account_id);
+
+       char is_null[NUM_STR_LEN] = {0,};
+       snprintf(is_null, sizeof(is_null), "%d", true);
+
+       service_add_extra_data(service, EMAIL_BUNDLE_KEY_ACCOUNT_ID, id);
+       service_add_extra_data(service, EMAIL_BUNDLE_KEY_IS_NULL, is_null);
+       service_add_extra_data(service, EMAIL_BUNDLE_KEY_USER_EMAIL, alist->account_info->user_email_address);
+       ug_send_result(alist->ug_data->ug, service);
+
+       alist->ug_data->block_item_click = 1;
+
+       service_destroy(service);
+}
+
+static void _open_all_emails(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+
+       email_mailbox_type_e mailbox_type = EMAIL_MAILBOX_TYPE_INBOX;
+       Elm_Object_Item *item = (Elm_Object_Item *)event_info;
+       const void *item_data = elm_object_item_data_get((const Elm_Object_Item *)item);
+       RETURN_IF_FAIL(item_data != NULL);
+       EmailAccountUGD *ug_data = (EmailAccountUGD *) item_data;
+
+       elm_genlist_item_selected_set(item, 0);
+
+       if (ug_data->block_item_click)
+               return;
+       elm_genlist_item_update(item);
+
+       service_h service;
+       if (SERVICE_ERROR_NONE != service_create(&service))
+       {
+               debug_log("creating service handle failed");
+               return;
+       }
+
+       char id[NUM_STR_LEN] = {0,};
+       snprintf(id, sizeof(id), "%d", 0);
+
+       char is_null[NUM_STR_LEN] = {0,};
+       snprintf(is_null, sizeof(is_null), "%d", true);
+
+       char ch_boxtype[NUM_STR_LEN] = {0,};
+       snprintf(ch_boxtype, sizeof(ch_boxtype), "%d", mailbox_type);
+
+       service_add_extra_data(service, EMAIL_BUNDLE_KEY_ACCOUNT_ID, id);
+       service_add_extra_data(service, EMAIL_BUNDLE_KEY_IS_NULL, is_null);
+       service_add_extra_data(service, EMAIL_BUNDLE_KEY_MAILBOX_TYPE, ch_boxtype);
+       ug_send_result(ug_data->ug, service);
+
+       ug_data->block_item_click = 1;
+
+       service_destroy(service);
+}
+
+static void _add_account_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       EmailAccountUGD *ug_data = (EmailAccountUGD *)data;
+       Elm_Object_Item *item = (Elm_Object_Item *)event_info;
+
+       elm_genlist_item_selected_set(item, 0);
+
+       service_h service;
+       if (SERVICE_ERROR_NONE != service_create(&service))
+       {
+               debug_log("creating service handle failed");
+               return;
+       }
+
+       service_add_extra_data(service, EMAIL_BUNDLE_KEY_VIEW_TYPE, EMAIL_BUNDLE_VAL_VIEW_SELECT_ACCOUNT);
+       ug_data->ug_setting = create_ug(UG_NAME_EMAIL_SETTING, service, ug_data);
+       service_destroy(service);
+}
+
+static void layout_cb(ui_gadget_h ug, enum ug_mode mode, void *priv)
+{
+       debug_log("");
+       Evas_Object *base, *win;
+
+       if (!ug || !priv)
+               return;
+
+       base = ug_get_layout(ug);
+       if (!base)
+               return;
+
+       win = ug_get_window();
+
+       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:
+               break;
+       }
+}
+
+static void result_cb(ui_gadget_h ug, service_h service, void *priv)
+{
+       debug_log("");
+
+       if (!ug || !priv)
+               return;
+
+       EmailAccountUGD *ug_data = (EmailAccountUGD *) priv;
+
+       if (ug == ug_data->ug_setting) {
+               ug_data->ug_setting = NULL;
+
+               char *val = NULL;
+               service_get_extra_data(service, EMAIL_BUNDLE_KEY_REFRESH_ACCOUNT, &val);
+               if (STR_VALID(val)) {
+                       if (g_strcmp0(val, EMAIL_BUNDLE_KEY_REFRESH_ACCOUNT) == 0) {
+                               ug_destroy(ug);
+                               ug_destroy_me(ug_data->ug);
+                               g_free(val);
+                               return;
+                       }
+               }
+       }
+
+FINISH:
+       ug_destroy(ug);
+}
+
+static void destroy_cb(ui_gadget_h ug, void *priv)
+{
+       debug_log("");
+
+       if (!ug || !priv)
+               return;
+
+       ug_destroy(ug);
+
+       EmailAccountUGD *ug_data = (EmailAccountUGD *) priv;
+
+       if (ug == ug_data->ug_setting) {
+               ug_data->ug_setting = NULL;
+       } else if (ug == ug_data->ug_composer) {
+               ug_data->ug_composer = NULL;
+       }
+}
+
+static ui_gadget_h create_ug(char *ug_name, service_h service, void *data)
+{
+       debug_log("");
+       ui_gadget_h ug;
+       struct ug_cbs cbs = { 0, };
+       EmailAccountUGD *ug_data = (EmailAccountUGD *) data;
+
+       cbs.layout_cb = layout_cb;
+       cbs.result_cb = result_cb;
+       cbs.destroy_cb = destroy_cb;
+       cbs.priv = ug_data;
+
+       ug = ug_create(ug_data->ug, ug_name, UG_MODE_FULLVIEW, service, &cbs);
+
+       return ug;
+}
+
+Evas_Object *_add_emtpy_list(void *data)
+{
+       debug_log("");
+       EmailAccountUGD *ug_data = (EmailAccountUGD *) data;
+
+       Evas_Object *list = elm_list_add(ug_data->win);
+       elm_list_mode_set(list, ELM_LIST_COMPRESS);
+
+       elm_list_item_append(list, dgettext("sys_string", "IDS_COM_POP_EMPTY"), NULL, NULL, NULL, ug_data);
+       elm_list_go(list);
+
+       return list;
+}
+
+static void _get_icu_formatter(void)
+{
+       debug_log("");
+       UErrorCode status = U_ZERO_ERROR;
+       char *icu_locale = NULL;
+
+       uloc_setDefault(getenv("LC_TIME"), &status);
+       if (U_FAILURE(status)) {
+               debug_critical("uloc_setDefault() failed: %s\n", u_errorName(status));
+               return;
+       }
+
+       icu_locale = (char *)uloc_getDefault();
+       debug_log("uloc_getDefault: %s", icu_locale);
+       appcore_get_timeformat(&icu_timeformat);
+
+       status = U_ZERO_ERROR;
+       icu_pg = udatpg_open(icu_locale, &status);
+       if (!icu_pg) {
+               debug_log("udatpg_open() failed: %s", u_errorName(status));
+               return;
+       }
+
+       char *skeleton = NULL;
+       if (icu_timeformat == APPCORE_TIME_FORMAT_12) {
+               skeleton = "EEEMMMddhmma";
+       } else {
+               skeleton = "EEEMMMddHmm";
+       }
+
+       UChar bestPattern[64] = { 0, };
+       UChar customSkeleton[64] = { 0, };
+       int32_t bestPatternCapacity;
+       int32_t bestPatternLength;
+       int skeletonLength = strlen(skeleton);
+
+       u_uastrncpy(customSkeleton, skeleton, skeletonLength);
+
+       status = U_ZERO_ERROR;
+       bestPatternCapacity = (int32_t) (sizeof(bestPattern) / sizeof(bestPattern[0]));
+       bestPatternLength = udatpg_getBestPattern(icu_pg, customSkeleton, u_strlen(customSkeleton), bestPattern, bestPatternCapacity, &status);
+
+       status = U_ZERO_ERROR;
+       icu_formatter = udat_open(UDAT_IGNORE, UDAT_IGNORE, icu_locale, NULL, -1, bestPattern, -1, &status);
+}
+
+static void _close_icu_formatter(void)
+{
+       debug_log("");
+
+       if (icu_pg) {
+               udatpg_close(icu_pg);
+               icu_pg = NULL;
+       }
+
+       if (icu_formatter) {
+               udat_close(icu_formatter);
+               icu_formatter = NULL;
+       }
+}
+
+static void _get_date_text_with_formatter(time_t time, char *formatted_str)
+{
+       debug_log("");
+       UErrorCode status = U_ZERO_ERROR;
+       UDate date = 0;
+       UChar formatted[64] = { 0, };
+       int32_t formattedCapacity;
+       int32_t formattedLength;
+
+       formattedCapacity = (int32_t) (sizeof(formatted) / sizeof(formatted[0]));
+       time_t msg_time = time;
+       date = (UDate)msg_time * 1000;
+
+       formattedLength = udat_format(icu_formatter, date, formatted, formattedCapacity, NULL, &status);
+       u_austrncpy(formatted_str, formatted, 127);
+       debug_log("time_t: %d", time);
+       debug_log("formatted time: %s", formatted_str);
+}
+
+#if 0
+static int _emf_account_init(EmailAccountUGD *ug_data)
+{
+       debug_log("");
+       int r;
+
+       /* Get Email Account List Info */
+       ug_data->account_list = NULL;
+       r = email_engine_get_account_list(&ug_data->account_count, &ug_data->account_list);
+       return r;
+}
+#endif
+#if 0
+static char *_gl_label_get(void *data, Evas_Object *obj, const char *part)
+{
+       email_account_list *alist = (email_account_list *) data;
+       char tmp[MAX_STR_LEN] = { 0, }; /*account_name has no limitation on size*/
+
+       if (alist == NULL) {
+               debug_log("alist is NULL !!");
+               goto FINISH;
+       }
+
+       if (!strcmp(part, "elm.text.1")) {
+               if (alist->account_info->account_name != NULL) {
+                       debug_log("account_name: %s", alist->account_info->account_name);
+                       snprintf(tmp, sizeof(tmp), "%s  [%d/%d]",
+                                       alist->account_info->account_name, alist->unread_count, alist->read_count);
+                       return g_strdup(tmp);
+               }
+       } else if (!strcmp(part, "elm.text.2")) {
+               if (alist->account_info->user_email_address != NULL) {
+                       debug_log("user_email_addr: %s", alist->account_info->user_email_address);
+                       return g_strdup(alist->account_info->user_email_address);
+               }
+       } else {
+               debug_log("part is invalid");
+       }
+
+FINISH:
+       snprintf(tmp, sizeof(tmp), _("IDS_EMAIL_BODY_NO_TEXT"));
+       return g_strdup(tmp);
+}
+#endif
+
+/*static char *_gl_group_text_get(void *data, Evas_Object *obj, const char *part)
+{
+       debug_log("");
+       if (!strcmp(part, "elm.text")) {
+               return strdup(dgettext("sys_string", "IDS_COM_BODY_ACCOUNTS"));
+       }
+       return NULL;
+}*/
+
+#if 0
+static void _gl_con(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       Elm_Object_Item *it = event_info;
+
+       elm_genlist_item_selected_set(it, 0);
+       elm_genlist_item_subitems_clear(it);
+}
+
+static void _gl_exp_req(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       Elm_Object_Item *it = event_info;
+       elm_genlist_item_expanded_set(it, 1);
+       elm_genlist_item_selected_set(it, EINA_FALSE);
+
+       /*current_it = it;*/
+}
+
+static void _gl_con_req(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       Elm_Object_Item *it = event_info;
+       elm_genlist_item_expanded_set(it, 0);
+
+       /*current_it = it;*/
+}
+
+static void _gl_exp(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+
+       Elm_Object_Item *it = event_info;
+       /*elm_genlist_item_selected_set(it, 0);*/
+       Evas_Object *gl = elm_object_item_widget_get(it);
+
+       itc_subtree.item_style = "1text.1/expandable_n_depth";
+       itc_subtree.func.text_get = _gl_label_get_for_subitem;
+       itc_subtree.func.content_get = _gl_icon_get;
+       itc_subtree.func.state_get = _gl_state_get;
+       itc_subtree.func.del = _gl_del;
+//     itc_subtree.decorate_all_item_style = "edit_default2";
+       itc_subtree.decorate_all_item_style = NULL;
+
+       itc_subtree2.item_style = "1text.2/expandable_n_depth";
+       itc_subtree2.func.text_get = _gl_label_get_for_subitem;
+       itc_subtree2.func.content_get = _gl_icon_get;
+       itc_subtree2.func.state_get = _gl_state_get;
+       itc_subtree2.func.del = _gl_del;
+//     itc_subtree2.decorate_all_item_style = "edit_default2";
+       itc_subtree2.decorate_all_item_style = NULL;
+
+       int i = 0;
+       int depth = elm_genlist_item_expanded_depth_get(it);
+       Elm_Object_Item *sub_it = NULL;
+
+       debug_log("depth: %d", depth);
+
+       if (depth == 0) {
+               const void *item_data = elm_object_item_data_get((const Elm_Object_Item *)it);
+               if (item_data == NULL) {
+                       debug_log("item data is NULL");
+                       return;
+               }
+               email_account_list *alist = (email_account_list *) item_data;
+
+               int n_children = g_node_n_children(alist->folder_root);
+               debug_log("n_children of root: %d", n_children);
+
+               for (i = 0; i < n_children; i++) {
+                       GNode *child = g_node_nth_child(alist->folder_root, i);
+                       if (g_node_n_children(child) > 0) {
+                               sub_it = elm_genlist_item_append(gl, &itc_subtree, child, it,
+                                                       ELM_GENLIST_ITEM_TREE, _gl_exp_sel, alist);
+                       } else {
+                               elm_genlist_item_append(gl, &itc_subtree2, child, it,
+                                                       ELM_GENLIST_ITEM_NONE, _gl_sel, alist);
+                       }
+               }
+       }
+       else if (depth > 0) {
+               const void *item_data = elm_object_item_data_get((const Elm_Object_Item *)it);
+               if (item_data == NULL) {
+                       debug_log("item data is NULL");
+                       return;
+               }
+               GNode *sub_root = (GNode *)item_data;
+
+               int n_children = g_node_n_children(sub_root);
+               debug_log("n_children of sub_root depth[%d]: %d", depth, n_children);
+
+               Elm_Object_Item *parent_it =it;
+               for (i = 0; i < depth; i++)
+                       parent_it = elm_genlist_item_parent_get(parent_it);
+
+               const void *parent_item_data = elm_object_item_data_get((const Elm_Object_Item *)parent_it);
+               if (parent_item_data == NULL) {
+                       debug_log("parent item data is NULL");
+                       return;
+               }
+               email_account_list *alist = (email_account_list *) parent_item_data;
+
+               for (i = 0; i < n_children; i++) {
+                       GNode *child = g_node_nth_child(sub_root, i);
+                       if (g_node_n_children(child) > 0) {
+                               sub_it = elm_genlist_item_append(gl, &itc_subtree, child, it,
+                                                       ELM_GENLIST_ITEM_TREE, _gl_exp_sel, alist);
+                       } else {
+                               elm_genlist_item_append(gl, &itc_subtree2, child, it,
+                                                       ELM_GENLIST_ITEM_NONE, _gl_sel, alist);
+                       }
+               }
+       }
+}
+#endif
+/*static void _launch_composer_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       EmailAccountUGD *ug_data = (EmailAccountUGD *)data;
+       int composer_type = RUN_COMPOSER_NEW;
+       int account_id = 0;
+       email_engine_get_default_account(&account_id);
+
+       debug_log("composer type: %d", composer_type);
+       debug_log("account id: %d", account_id);
+
+       if (account_id <= 0) {
+               return;
+       }
+
+       char type[14] = { 0, };
+       char id[14] = { 0, };
+       snprintf(type, sizeof(type), "%d", composer_type);
+       snprintf(id, sizeof(id), "%d", account_id);
+
+       service_h service;
+       if (SERVICE_ERROR_NONE != service_create(&service))
+       {
+               debug_log("creating service handle failed");
+               return;
+       }
+
+       service_add_extra_data(service, EMAIL_BUNDLE_KEY_RUN_TYPE, type);
+       service_add_extra_data(service, EMAIL_BUNDLE_KEY_ACCOUNT_ID, id);
+       ug_data->ug_composer = create_ug(UG_NAME_EMAIL_COMPOSER, service, ug_data);
+
+       service_destroy(service);
+}*/
+/* EOF */
diff --git a/account/theme/email_account_theme.edc b/account/theme/email_account_theme.edc
new file mode 100755 (executable)
index 0000000..21c528b
--- /dev/null
@@ -0,0 +1,1638 @@
+/*
+ * Copyright 2012  Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *    http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+// box list layout
+#define BOX_LIST_H     110
+
+collections {
+
+       group { name: "elm/genlist/item/dummy/default";
+               alias: "elm/genlist/item_odd/dummy/default";
+               data.item: "stacking" "above";
+               data.item: "selectraise" "on";
+               data.item: "texts" "elm.text";
+               data.item: "treesize" "20";
+               parts {
+                       part { name: "rect";
+                               type: RECT;
+                               description {
+                                       min: 0 BOX_LIST_H;
+                                       state: "default" 0.0;
+                                       color: 0 0 0 0;
+                               }
+                       }
+                       part { name: "base";
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 (BOX_LIST_H-2);
+                               }
+                       }
+                       part { name: "bg";
+                               mouse_events: 0;
+                               description { state: "default" 0.0;
+                                       min: 0 (BOX_LIST_H-2);
+                                       visible: 0;
+                                       color: 255 255 255 0;
+                                       rel1 {
+                                               relative: 0.0 0.0;
+                                               offset: -5 -5;
+                                       }
+                                       rel2 {
+                                               relative: 1.0 1.0;
+                                               offset: 4 4;
+                                       }
+                               }
+                               description { state: "selected" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                                       color: 255 255 255 255;
+                                       rel1 {
+                                               relative: 0.0 0.0;
+                                               offset: -2 -2;
+                                       }
+                                       rel2 {
+                                               relative: 1.0 1.0;
+                                               offset: 1 1;
+                                       }
+                               }
+                       }
+               }
+               programs {
+                       program {
+                               name: "go_active";
+                               signal: "elm,state,selected";
+                               source: "elm";
+                               action: STATE_SET "selected" 0.0;
+                               target: "bg";
+                               transition: LINEAR 0.5;
+                               after: "go_passive";
+                       }
+                       program {
+                               name: "go_passive";
+                               source: "elm";
+                               action: STATE_SET "default" 0.0;
+                               target: "bg";
+                               transition: LINEAR 0.5;
+                       }
+               }
+       }
+
+#if 0
+       group { name: "title";
+               images {
+                       image: "00_winset_title_line.png" COMP;
+                       image: "optionheader_arrow.png" COMP;
+               }
+
+               script {
+                       public more_show = 0;
+               }
+
+               parts
+               {
+                       part {
+                               name: "bg";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 108;
+                                       rel1 { relative: 0.0 0.0; }
+                                       rel2 { relative: 1.0 1.0; }
+                                       color: 0 0 0 0;
+                                       align: 0.0 0.5;
+                               }
+                       }
+
+                       part { name: "top_padding";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 11;
+                                       fixed: 0 1;
+                                       visible: 0;
+                                       rel1 { to: "bg"; relative: 0 0; }
+                                       rel2 { to: "bg"; relative: 1 0; }
+                                       align: 0.0 0.0;
+                               }
+                       }
+
+                       part { name: "bottom_padding";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 11;
+                                       fixed: 0 1;
+                                       visible: 0;
+                                       rel1 { to: "bg"; relative: 0 1; }
+                                       rel2 { to: "bg"; relative: 1 1; }
+                                       align: 0.0 1.0;
+                               }
+                       }
+
+                       part { name: "left_padding";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 5 0;
+                                       fixed: 1 0;
+                                       visible: 0;
+                                       rel1 { to: "bg"; relative: 0 0; }
+                                       rel2 { to: "bg"; relative: 0 1; }
+                                       align: 0.0 0.0;
+                               }
+                       }
+
+                       part { name: "right_padding";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 5 0;
+                                       fixed: 1 0;
+                                       visible: 0;
+                                       rel1 { to: "bg"; relative: 1 0; }
+                                       rel2 { to: "bg"; relative: 1 1; }
+                                       align: 1.0 0.0;
+                               }
+                       }
+
+                       part {
+                               name: "title_area";
+                               type: RECT;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 {
+                                               relative: 1.0 1.0;
+                                               to_x: "left_padding";
+                                               to_y: "top_padding";
+                                       }
+                                       rel2 {
+                                               relative: (440/720) 0.0;
+                                               to_x: "bg";
+                                               to_y: "bottom_padding";
+                                       }
+                                       color: 0 0 0 0;
+                               }
+                       }
+
+                       part {
+                               name: "txt_title";
+                               type: TEXT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: (16/440) 0.0; to: "title_area";}
+                                       rel2 { relative: (424/440) (52/88); to: "title_area";}
+                                       color : 249 249 249 255;
+                                       text { font: "SLP:style=Medium";
+                                               size: 40;
+                                               min: 0 0;
+                                               max: 1 0;
+                                               align: 0.0 0.5;
+                                               text_class: "slp";
+                                       }
+                                       align: 0.0 0.0;
+                                       fixed: 1 1;
+                                       min: 0 48;
+                               }
+                       }
+
+                       part { name: "sub_left_padding";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 21 0;
+                                       fixed: 1 0;
+                                       visible: 0;
+                                       rel1 {
+                                               relative: 1.0 1.0;
+                                               to_x: "left_padding";
+                                               to_y: "txt_title";
+                                       }
+                                       rel2 {
+                                               relative: 1.0 0.0;
+                                               to_x: "left_padding";
+                                               to_y: "bottom_padding";
+                                       }
+                                       align: 0.0 0.0;
+                               }
+                       }
+
+                       part {
+                               name: "sub_left_icon";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       fixed: 1 1;
+                                       min: 32 32;
+                                       max: 32 32;
+                                       rel1 {
+                                               relative: 1.0 1.0;
+                                               to_x: "sub_left_padding";
+                                               to_y: "txt_title";
+                                       }
+                                       rel2 {
+                                               relative: 1.0 0.0;
+                                               to_x: "sub_left_padding";
+                                               to_y: "bottom_padding";
+                                       }
+                                       align: 0.0 0.5;
+                               }
+                       }
+
+                       part { name: "sub_mid_padding";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 10 0;
+                                       fixed: 1 0;
+                                       visible: 0;
+                                       rel1 {
+                                               relative: 1.0 1.0;
+                                               to_x: "sub_left_icon";
+                                               to_y: "txt_title";
+                                       }
+                                       rel2 {
+                                               relative: 1.0 0.0;
+                                               to_x: "sub_left_icon";
+                                               to_y: "bottom_padding";
+                                       }
+                                       align: 0.0 0.0;
+                               }
+                       }
+
+                       part {
+                               name: "sub_right_icon";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       fixed: 1 1;
+                                       min: 32 32;
+                                       max: 32 32;
+                                       rel1 {
+                                               relative: 1.0 1.0;
+                                               to_x: "title_area";
+                                               to_y: "txt_title";
+                                       }
+                                       rel2 {
+                                               relative: 1.0 0.0;
+                                               to_x: "title_area";
+                                               to_y: "bottom_padding";
+                                       }
+                                       align: 1.0 0.0;
+                               }
+                       }
+
+                       part {
+                               name: "txt_sub";
+                               type: TEXT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 {
+                                               relative: 1.0 1.0;
+                                               to_x: "sub_mid_padding";
+                                               to_y: "txt_title";
+                                       }
+                                       rel2 {
+                                               relative: 0.0 0.0;
+                                               to_x: "sub_right_icon";
+                                               to_y: "bottom_padding";
+                                       }
+                                       color : 249 249 249 255;
+                                       text { font: "SLP:style=Medium";
+                                               size: 32;
+                                               min: 0 0;
+                                               max: 1 0;
+                                               align: 0.0 0.5;
+                                               text_class: "slp";
+                                       }
+                                       align: 0.0 0.0;
+                                       fixed: 1 1;
+                                       min: 0 40;
+                               }
+                       }
+
+                       part {
+                               name: "right_btn";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       fixed: 1 0;
+                                       min: 120 78;
+                                       max: 120 78;
+                                       align: 1.0 0.5;
+                                       rel1 {
+                                               relative: 0.0 1.0;
+                                               to_x: "right_padding";
+                                               to_y: "top_padding";
+                                       }
+                                       rel2 {
+                                               relative: 0.0 0.0;
+                                               to_x: "right_padding";
+                                               to_y: "bottom_padding";
+                                       }
+                               }
+                       }
+
+                       part {
+                               name: "seperator1";
+                               type: IMAGE;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       fixed: 1 1;
+                                       min: 2 48;
+                                       max: 2 48;
+                                       align: 1.0 0.5;
+                                       rel1 {
+                                               relative: 0.0 1.0;
+                                               to_x: "right_btn";
+                                               to_y: "top_padding";
+                                       }
+                                       rel2 {
+                                               relative: 0.0 0.0;
+                                               to_x: "right_btn";
+                                               to_y: "bottom_padding";
+                                       }
+                                       image.normal: "00_winset_title_line.png";
+                               }
+                       }
+/*
+                       part {
+                               name: "left_btn";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       fixed: 1 0;
+                                       min: 120 78;
+                                       max: 120 78;
+                                       align: 1.0 0.5;
+                                       rel1 {
+                                               relative: 0.0 1.0;
+                                               to_x: "seperator1";
+                                               to_y: "top_padding";
+                                       }
+                                       rel2 {
+                                               relative: 0.0 0.0;
+                                               to_x: "seperator1";
+                                               to_y: "bottom_padding";
+                                       }
+                               }
+                       }
+
+                       part {
+                               name: "seperator2";
+                               type: IMAGE;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       fixed: 1 1;
+                                       min: 2 48;
+                                       max: 2 48;
+                                       align: 1.0 0.5;
+                                       rel1 {
+                                               relative: 0.0 1.0;
+                                               to_x: "left_btn";
+                                               to_y: "top_padding";
+                                       }
+                                       rel2 {
+                                               relative: 0.0 0.0;
+                                               to_x: "left_btn";
+                                               to_y: "bottom_padding";
+                                       }
+                                       image.normal: "00_winset_title_line.png";
+                               }
+                       }
+*/
+                       part {
+                               name: "event_area";
+                               ignore_flags: ON_HOLD;
+                               repeat_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { to: "title_area"; relative: 0 0; }
+                                       rel2 { to: "title_area"; relative: 1 1; }
+                               }
+                       }
+
+                       part {
+                               name: "arrow";
+                               type: IMAGE;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 28 24;
+                                       max: 28 24;
+                                       fixed: 1 1;
+                                       align: 0.0 0.0;
+                                       rel1 {
+                                               relative: 1.0 1.0;
+                                               to_x: "title_area";
+                                               to_y: "top_padding";
+                                       }
+                                       rel2 {
+                                               relative: 1.0 0.0;
+                                               to_x: "title_area";
+                                               to_y: "bottom_padding";
+                                       }
+                                       image.normal: "optionheader_arrow.png";
+                                       visible: 0;
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+               }
+
+               programs {
+                       program {
+                               name: "title_clicked";
+                               signal: "mouse,clicked,1";
+                               source: "event_area";
+                               action: SIGNAL_EMIT "elm,action,title,clicked" "";
+                       }
+
+                       program {
+                               name: "more_show";
+                               signal: "elm,state,more,show";
+                               source: "";
+                               script {
+                                       set_int(more_show, 1);
+                                       set_state(PART:"arrow", "show", 0.0);
+                               }
+                       }
+
+                       program {
+                               name: "more_hide";
+                               signal: "elm,state,more,hide";
+                               source: "";
+                               script {
+                                       set_int(more_show, 0);
+                                       set_state(PART:"arrow", "default", 0.0);
+                               }
+                       }
+               }
+       }
+#endif
+
+#if 0
+       group {
+               name: "elm/genlist/item/emaillisttree/title/default";
+               alias: "elm/genlist/item_odd/emaillisttree/title/default";
+               data.item: "stacking" "above";
+               data.item: "selectraise" "on";
+               data.item: "texts" "elm.text.title elm.text.count";
+               images {
+                       image: "00_list_bar_press_1x80.png" COMP;
+               }
+               parts {
+                       BEAT_GENLIST_PART_BASE( 90 )
+                       BEAT_GENLIST_PART_BG_IMAGE
+                       BEAT_GENLIST_PART_PADDING_TOP( 20 )
+                       BEAT_GENLIST_PART_PADDING_BOTTOM( 20 )
+                       BEAT_GENLIST_PART_PADDING_LEFT( 20 )
+                       BEAT_GENLIST_PART_PADDING_RIGHT( 20 )
+                       part { name: "elm.text.title";
+                               clip_to: "disclip";
+                               type: TEXT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 50;
+                                       fixed: 0 1;
+                                       align: 1 0.5;
+                                       rel1 { to_x: "elm.padding.left"; to_y: "elm.padding.top"; relative: 1 1; }
+                                       rel2 { to_x: "elm.padding.right"; to_y: "elm.padding.bottom"; relative: 0 0; }
+                                       color: 0 0 0 255;
+                                       text {
+                                               font: FONT_ROM;
+                                               size: 32;
+                                               min: 0 1;
+                                               align: 0.0 0.5;
+                                       }
+                               }
+                               description {
+                                       state: "selected" 0.0;
+                                       inherit: "default" 0.0;
+                                       color: 225 225 225 255;
+                               }
+                       }
+                       part {
+                               name: "elm.text.count";
+                               clip_to: "disclip";
+                               type: TEXT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 40;
+                                       fixed: 1 1;
+                                       rel1 { to_x: "elm.padding.left"; to_y: "elm.padding.top"; relative: 1 1; }
+                                       rel2 { to_x: "elm.padding.right"; to_y: "elm.padding.bottom"; relative: 0 0; }
+                                       color: 0 0 0 255;
+                                       text {
+                                               font: FONT_ROM;
+                                               size: 18;
+                                               min: 1 1;
+                                               align: 1.0 0.5;
+                                       }
+                               }
+                               description {
+                                       state: "selected" 0.0;
+                                       inherit: "default" 0.0;
+                                       color: 225 225 225 255;
+                               }
+                       }
+                       part { name: "bottom_line";
+                               type: RECT;
+                               clip_to: "disclip";
+                               mouse_events: 0;
+                               description {
+                                       min: 0 1;
+                                       fixed: 0 1;
+                                       rel1 { relative: 0.0 1.0; offset: 0 -1; }
+                                       color: 199 195 183 255;
+                               }
+                       }
+                       BEAT_GENLIST_PART_DISCLIP
+               }
+               programs {
+                       program { name: "go_active";
+                               signal: "elm,state,selected";
+                               source: "elm";
+                               action: STATE_SET "selected" 0.0;
+                               target: "bg_image";
+                               target: "elm.text.count";
+                               target: "elm.text.title";
+                       }
+                       program { name: "go_passive";
+                               signal: "elm,state,unselected";
+                               source: "elm";
+                               action: STATE_SET "default" 0.0;
+                               target: "bg_image";
+                               target: "elm.text.count";
+                               target: "elm.text.title";
+                               transition: LINEAR 0.1;
+                       }
+                       program { name: "go_disabled";
+                               signal: "elm,state,disabled";
+                               source: "elm";
+                               action: STATE_SET "disabled" 0.0;
+                               target: "disclip";
+                       }
+                       program { name: "go_enabled";
+                               signal: "elm,state,enabled";
+                               source: "elm";
+                               action: STATE_SET "default" 0.0;
+                               target: "disclip";
+                       }
+               }
+       }
+
+       group {
+               name: "elm/genlist/tree/emaillisttree/email/default";
+               alias: "elm/genlist/tree_odd/emaillisttree/email/default";
+               data.item: "stacking" "above";
+               data.item: "selectraise" "on";
+               data.item: "texts" "elm.text.email elm.text.account elm.text.count";
+               data.item: "contents" "elm.icon.bar elm.icon.email";
+               data.item: "treesize" "0";
+               images {
+                       image: "00_list_bar_press_1x80.png" COMP;
+                       image: "M02_button_expand_closed.png" COMP;
+                       image: "M02_button_expand_closed_press.png" COMP;
+                       image: "M02_button_expand_opened.png" COMP;
+                       image: "M02_button_expand_opened_press.png" COMP;
+               }
+               parts {
+                       BEAT_GENLIST_PART_BASE( 90 )
+                       BEAT_GENLIST_PART_BG_IMAGE
+                       BEAT_GENLIST_PART_PADDING_LEFT( 15 )
+                       BEAT_GENLIST_PART_PADDING_RIGHT( 15 )
+                       BEAT_GENLIST_PART_PADDING_TOP( 10 )
+                       BEAT_GENLIST_PART_PADDING_BOTTOM( 10 )
+                       part { name: "touch_arrow";
+                               type: RECT;
+                               clip_to: "disclip";
+                               ignore_flags: ON_HOLD;
+                               scale: 1;
+                               description { state: "default" 0.0;
+                                       min: 70 80;
+                                       fixed: 1 1;
+                                       align: 0.5 0.5;
+                                       rel1 {
+                                               relative: 0.5 0.5;
+                                               to: "arrow";
+                                       }
+                                       rel2 {
+                                               relative: 0.5 0.5;
+                                               to: "arrow";
+                                       }
+                                       color: 0 0 0 0;
+                               }
+                       }
+                       part {
+                               name: "arrow";
+                               clip_to: "disclip";
+                               ignore_flags: ON_HOLD;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 40 40;
+                                       max: 40 40;
+                                       fixed: 1 1;
+                                       align: 0.0 0.5;
+                                       aspect: 1.0 1.0; // needed?
+                                       rel1 { to_x: "elm.padding.left"; relative: 1 0; }
+                                       image.normal: "M02_button_expand_closed.png";
+                               }
+                               description {
+                                       state: "selected" 1.0;
+                                       inherit: "default" 0.0;
+                                       image.normal: "M02_button_expand_closed_press.png";
+                               }
+                               description {
+                                       state: "active" 0.0;
+                                       inherit: "default" 0.0;
+                                       image.normal: "M02_button_expand_opened.png";
+                               }
+                               description {
+                                       state: "active" 1.0;
+                                       inherit: "default" 0.0;
+                                       image.normal: "M02_button_expand_opened_press.png";
+                               }
+                       }
+                       part {
+                               name: "arrow_right_padding";
+                               clip_to: "disclip";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 0;
+                               description {
+                                       min: 15 0;
+                                       fixed: 1 0;
+                                       visible: 0;
+                                       align: 0 0;
+                                       rel1 { to: "arrow"; relative: 1 0; }
+                                       rel2 { to: "arrow"; relative: 1 0; }
+                               }
+                       }
+                       part {
+                               name: "elm.icon.bar";
+                               clip_to: "disclip";
+                               type: SWALLOW;
+                               scale: 1;
+                               mouse_events: 0;
+                               description {
+                                       min: 5 1;
+                                       max: 5 90;
+                                       fixed: 1 1;
+                                       rel1 { to_x: "arrow_right_padding"; to_y: "elm.padding.top"; relative: 1 1; }
+                                       rel2 { to_x: "arrow_right_padding"; to_y: "elm.padding.bottom"; relative: 1 0; }
+                               }
+                       }
+                       part {
+                               name: "iconbar_right_padding";
+                               clip_to: "disclip";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 0;
+                               description {
+                                       min: 15 0;
+                                       fixed: 1 0;
+                                       visible: 0;
+                                       align: 0 0;
+                                       rel1 { to: "elm.icon.bar"; relative: 1 0; }
+                                       rel2 { to: "elm.icon.bar"; relative: 1 0; }
+                               }
+                       }
+                       part { name: "elm.icon.email";
+                               clip_to: "disclip";
+                               type: SWALLOW;
+                               scale: 1;
+                               description { state: "default" 0.0;
+                                       min: 50 50;
+                                       max: 50 50;
+                                       fixed: 1 1;
+                                       align: 0.0 0.5;
+                                       rel1 { to_x: "iconbar_right_padding"; relative: 1.0 0; }
+                                       rel2 { to_x: "iconbar_right_padding"; relative: 1.0 1; }
+                               }
+                       }
+                       part {
+                               name: "icon_right_padding";
+                               clip_to: "disclip";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 0;
+                               description {
+                                       min: 15 0;
+                                       fixed: 1 0;
+                                       visible: 0;
+                                       align: 0 0;
+                                       rel1 { to: "elm.icon.email"; relative: 1 0; }
+                                       rel2 { to: "elm.icon.email"; relative: 1 0; }
+                               }
+                       }
+                       part { name: "elm.text.email";
+                               clip_to: "disclip";
+                               type: TEXT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.5 0;
+                                       min: 1 40;
+                                       fixed: 0 1;
+                                       rel1 { relative: 1 1; to_x: "icon_right_padding"; to_y: "elm.padding.top"; }
+                                       rel2 { relative: 0 1; to_x: "elm.padding.right"; to_y: "elm.padding.top"; }
+                                       color: 0 0 0 255;
+                                       text {
+                                               font: FONT_ROM;
+                                               size: 32;
+                                               min: 0 1;
+                                               align: 0.0 0.5;
+                                       }
+                               }
+                               description {
+                                       state: "selected" 0.0;
+                                       inherit: "default" 0.0;
+                                       color: 225 225 225 255;
+                               }
+                       }
+                       part { name: "elm.text.account";
+                               clip_to: "disclip";
+                               type: TEXT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0 0;
+                                       rel1 { relative: 0 1; to: "elm.text.email"; }
+                                       color: 0 0 0 255;
+                                       text {
+                                               font: FONT_ROM;
+                                               size: 24;
+                                               min: 0 1;
+                                               align: 0.0 0.5;
+                                       }
+                               }
+                               description {
+                                       state: "selected" 0.0;
+                                       inherit: "default" 0.0;
+                                       color: 225 225 225 255;
+                               }
+                       }
+                       part {
+                               name: "elm.text.count";
+                               clip_to: "disclip";
+                               type: TEXT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 40;
+                                       fixed: 1 1;
+                                       rel1 { to_x: "elm.padding.left"; to_y: "elm.padding.top"; relative: 1 1; }
+                                       rel2 { to_x: "elm.padding.right"; to_y: "elm.padding.bottom"; relative: 0 0; }
+                                       color: 0 0 0 255;
+                                       text {
+                                               font: FONT_ROM;
+                                               size: 18;
+                                               min: 1 1;
+                                               align: 1.0 0.5;
+                                       }
+                               }
+                               description {
+                                       state: "selected" 0.0;
+                                       inherit: "default" 0.0;
+                                       color: 225 225 225 255;
+                               }
+                       }
+                       part { name: "bottom_line";
+                               type: RECT;
+                               clip_to: "disclip";
+                               mouse_events: 0;
+                               description {
+                                       min: 0 1;
+                                       fixed: 0 1;
+                                       rel1 { relative: 0.0 1.0; offset: 0 -1; }
+                                       color: 199 195 183 255;
+                               }
+                       }
+                       BEAT_GENLIST_PART_DISCLIP
+               }
+               programs {
+                       // signal: elm,state,%s,active
+                       // a "check" item named %s went active
+                       // signal: elm,state,%s,passive
+                       //a "check" item named %s went passive
+                       // default is passive
+                       program {
+                               name: "go_active";
+                               signal: "elm,state,selected";
+                               source: "elm";
+                               action: STATE_SET "selected" 0.0;
+                               target: "bg_image";
+                               target: "elm.text.email";
+                               target: "elm.text.account";
+                               target: "elm.text.count";
+                               target: "arrow";
+                       }
+                       program {
+                               name: "go_passive";
+                               signal: "elm,state,unselected";
+                               source: "elm";
+                               action: STATE_SET "default" 0.0;
+                               target: "bg_image";
+                               target: "elm.text.email";
+                               target: "elm.text.account";
+                               target: "elm.text.count";
+                               target: "arrow";
+                               transition: LINEAR 0.1;
+                       }
+                       program {
+                               name: "go_disabled";
+                               signal: "elm,state,disabled";
+                               source: "elm";
+                               action: STATE_SET "disabled" 0.0;
+                               target: "disclip";
+                       }
+                       program {
+                               name: "go_enabled";
+                               signal: "elm,state,enabled";
+                               source: "elm";
+                               action: STATE_SET "default" 0.0;
+                               target: "disclip";
+                       }
+                       program {
+                               name: "expand";
+                               signal: "mouse,up,1";
+                               source: "touch_arrow";
+                               action: SIGNAL_EMIT "elm,action,expand,toggle" "elm";
+                       }
+                       program {
+                               name: "arrow_down";
+                               signal: "mouse,down,1";
+                               source: "touch_arrow";
+                               script {
+                                       new st[31];
+                                       new Float:vl;
+                                       get_state(PART:"arrow", st, 30, vl)
+                                       if (vl == 0.0)
+                                               set_state(PART:"arrow", st, 1.0);
+                                       else
+                                               set_state(PART:"arrow", st, 0.0);
+                               }
+                       }
+                       program {
+                               name: "go_expanded";
+                               signal: "elm,state,expanded";
+                               source: "elm";
+                               action: STATE_SET "active" 0.0;
+                               target: "arrow";
+                       }
+                       program {
+                               name: "go_contracted";
+                               signal: "elm,state,contracted";
+                               source: "elm";
+                               action: STATE_SET "default" 0.0;
+                               target: "arrow";
+                       }
+               }
+       }
+
+       group {
+               name: "elm/genlist/tree/emaillisttree/sub_title/default";
+               alias: "elm/genlist/tree_odd/emaillisttree/sub_title/default";
+               data.item: "stacking" "above";
+               data.item: "selectraise" "on";
+               data.item: "texts" "elm.text.title elm.text.count";
+               data.item: "treesize" "15";
+               images {
+                       image: "00_list_bar_press_1x80.png" COMP;
+                       image: "M02_button_expand_closed.png" COMP;
+                       image: "M02_button_expand_closed_press.png" COMP;
+                       image: "M02_button_expand_opened.png" COMP;
+                       image: "M02_button_expand_opened_press.png" COMP;
+                       image: "00_list_expandable_bg.png" COMP;
+               }
+               parts {
+                       BEAT_GENLIST_PART_BASE( 90 )
+                       BEAT_GENLIST_PART_BG_IMAGE
+                       BEAT_GENLIST_PART_PADDING_LEFT( 15 )
+                       BEAT_GENLIST_PART_PADDING_RIGHT( 15 )
+                       BEAT_GENLIST_PART_PADDING_TOP( 10 )
+                       BEAT_GENLIST_PART_PADDING_BOTTOM( 10 )
+                       part { name: "elm.swallow.pad";
+                               type: SWALLOW;
+                               description { state: "default" 0.0;
+                                       fixed: 1 0;
+                                       align: 0.0 0.5;
+                                       rel1 {
+                                               relative: 1.0 0.0;
+                                               to_x: "elm.padding.left";
+                                       }
+                                       rel2 {
+                                               relative: 1.0 1.0;
+                                               to_x: "elm.padding.left";
+                                       }
+                               }
+                       }
+                       part { name: "touch_arrow";
+                               type: RECT;
+                               clip_to: "disclip";
+                               ignore_flags: ON_HOLD;
+                               scale: 1;
+                               description { state: "default" 0.0;
+                                       min: 70 80;
+                                       fixed: 1 1;
+                                       align: 0.5 0.5;
+                                       rel1 {
+                                               relative: 0.5 0.5;
+                                               to: "arrow";
+                                       }
+                                       rel2 {
+                                               relative: 0.5 0.5;
+                                               to: "arrow";
+                                       }
+                                       color: 0 0 0 0;
+                               }
+                       }
+                       part {
+                               name: "arrow";
+                               clip_to: "disclip";
+                               ignore_flags: ON_HOLD;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 40 40;
+                                       max: 40 40;
+                                       fixed: 1 1;
+                                       align: 0.0 0.5;
+                                       aspect: 1.0 1.0; // needed?
+                                       rel1 { to_x: "elm.swallow.pad"; relative: 1 0; }
+                                       image.normal: "M02_button_expand_closed.png";
+                               }
+                               description {
+                                       state: "selected" 1.0;
+                                       inherit: "default" 0.0;
+                                       image.normal: "M02_button_expand_closed_press.png";
+                               }
+                               description {
+                                       state: "active" 0.0;
+                                       inherit: "default" 0.0;
+                                       image.normal: "M02_button_expand_opened.png";
+                               }
+                               description {
+                                       state: "active" 1.0;
+                                       inherit: "default" 0.0;
+                                       image.normal: "M02_button_expand_opened_press.png";
+                               }
+                       }
+                       part {
+                               name: "arrow_right_padding";
+                               clip_to: "disclip";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 0;
+                               description {
+                                       min: 15 0;
+                                       fixed: 1 0;
+                                       visible: 0;
+                                       align: 0 0;
+                                       rel1 { to: "arrow"; relative: 1 0; }
+                                       rel2 { to: "arrow"; relative: 1 0; }
+                               }
+                       }
+                       part { name: "elm.text.title";
+                               clip_to: "disclip";
+                               type: TEXT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.5 0.5;
+                                       min: 1 40;
+                                       fixed: 0 1;
+                                       rel1 { relative: 1 1; to_x: "arrow_right_padding"; to_y: "elm.padding.top"; }
+                                       rel2 { relative: 0 0; to_x: "elm.padding.right"; to_y: "elm.padding.bottom"; }
+                                       color: 0 0 0 255;
+                                       text {
+                                               font: FONT_ROM;
+                                               size: 32;
+                                               min: 0 1;
+                                               align: 0.0 0.5;
+                                       }
+                               }
+                               description {
+                                       state: "selected" 0.0;
+                                       inherit: "default" 0.0;
+                                       color: 225 225 225 255;
+                               }
+                       }
+                       part {
+                               name: "elm.text.count";
+                               clip_to: "disclip";
+                               type: TEXT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 40;
+                                       fixed: 1 1;
+                                       rel1 { to_x: "elm.padding.left"; to_y: "elm.padding.top"; relative: 1 1; }
+                                       rel2 { to_x: "elm.padding.right"; to_y: "elm.padding.bottom"; relative: 0 0; }
+                                       color: 0 0 0 255;
+                                       text {
+                                               font: FONT_ROM;
+                                               size: 18;
+                                               min: 1 1;
+                                               align: 1.0 0.5;
+                                       }
+                               }
+                               description {
+                                       state: "selected" 0.0;
+                                       inherit: "default" 0.0;
+                                       color: 225 225 225 255;
+                               }
+                       }
+                       part { name: "bottom_line";
+                               type: RECT;
+                               clip_to: "disclip";
+                               mouse_events: 0;
+                               description {
+                                       min: 0 1;
+                                       fixed: 0 1;
+                                       rel1 { relative: 0.0 1.0; offset: 0 -1; }
+                                       color: 199 195 183 255;
+                               }
+                       }
+                       BEAT_GENLIST_PART_DISCLIP
+               }
+               programs {
+                       // signal: elm,state,%s,active
+                       // a "check" item named %s went active
+                       // signal: elm,state,%s,passive
+                       // a "check" item named %s went passive
+                       // default is passive
+                       program {
+                               name: "go_active";
+                               signal: "elm,state,selected";
+                               source: "elm";
+                               action: STATE_SET "selected" 0.0;
+                               target: "bg_image";
+                               target: "elm.text.title";
+                               target: "elm.text.count";
+                               target: "arrow";
+                       }
+                       program {
+                               name: "go_passive";
+                               signal: "elm,state,unselected";
+                               source: "elm";
+                               action: STATE_SET "default" 0.0;
+                               target: "bg_image";
+                               target: "elm.text.title";
+                               target: "elm.text.count";
+                               target: "arrow";
+                               transition: LINEAR 0.1;
+                       }
+                       program {
+                               name: "go_disabled";
+                               signal: "elm,state,disabled";
+                               source: "elm";
+                               action: STATE_SET "disabled" 0.0;
+                               target: "disclip";
+                       }
+                       program {
+                               name: "go_enabled";
+                               signal: "elm,state,enabled";
+                               source: "elm";
+                               action: STATE_SET "default" 0.0;
+                               target: "disclip";
+                       }
+                       program {
+                               name: "expand";
+                               signal: "mouse,up,1";
+                               source: "touch_arrow";
+                               action: SIGNAL_EMIT "elm,action,expand,toggle" "elm";
+                       }
+                       program {
+                               name: "arrow_down";
+                               signal: "mouse,down,1";
+                               source: "touch_arrow";
+                               script {
+                                       new st[31];
+                                       new Float:vl;
+                                       get_state(PART:"arrow", st, 30, vl)
+                                       if (vl == 0.0)
+                                               set_state(PART:"arrow", st, 1.0);
+                                       else
+                                               set_state(PART:"arrow", st, 0.0);
+                               }
+                       }
+                       program {
+                               name: "go_expanded";
+                               signal: "elm,state,expanded";
+                               source: "elm";
+                               action: STATE_SET "active" 0.0;
+                               target: "arrow";
+                       }
+                       program {
+                               name: "go_contracted";
+                               signal: "elm,state,contracted";
+                               source: "elm";
+                               action: STATE_SET "default" 0.0;
+                               target: "arrow";
+                       }
+               }
+       }
+
+       group {
+               name: "elm/genlist/item/emaillisttree/content/default";
+               alias: "elm/genlist/item_odd/emaillisttree/content/default";
+               data.item: "stacking" "above";
+               data.item: "selectraise" "on";
+               data.item: "texts" "elm.text.content elm.text.count";
+               data.item: "treesize" "15";
+               images {
+                       image: "00_list_bar_press_1x80.png" COMP;
+                       image: "00_list_expandable_2_bg.png" COMP;
+               }
+               parts {
+                       BEAT_GENLIST_PART_BASE( 90 )
+                       BEAT_GENLIST_PART_BG_IMAGE
+                       BEAT_GENLIST_PART_PADDING_TOP( 20 )
+                       BEAT_GENLIST_PART_PADDING_BOTTOM( 20 )
+                       BEAT_GENLIST_PART_PADDING_LEFT( 20 )
+                       BEAT_GENLIST_PART_PADDING_RIGHT( 20 )
+                       part { name: "elm.swallow.pad";
+                               type: SWALLOW;
+                               description { state: "default" 0.0;
+                                       fixed: 1 0;
+                                       align: 0.0 0.5;
+                                       rel1 {
+                                               relative: 1.0 0.0;
+                                               to_x: "elm.padding.left";
+                                       }
+                                       rel2 {
+                                               relative: 1.0 1.0;
+                                               to_x: "elm.padding.left";
+                                       }
+                               }
+                       }
+                       part { name: "elm.text.content";
+                               clip_to: "disclip";
+                               type: TEXT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 50;
+                                       fixed: 0 1;
+                                       align: 1 0.5;
+                                       rel1 { to_x: "elm.swallow.pad"; to_y: "elm.padding.top"; relative: 1 1; }
+                                       rel2 { to_x: "elm.padding.right"; to_y: "elm.padding.bottom"; relative: 0 0; }
+                                       color: 0 0 0 255;
+                                       text {
+                                               font: FONT_ROM;
+                                               size: 32;
+                                               min: 0 1;
+                                               align: 0.0 0.5;
+                                       }
+                               }
+                               description {
+                                       state: "selected" 0.0;
+                                       inherit: "default" 0.0;
+                                       color: 225 225 225 255;
+                               }
+                       }
+                       part {
+                               name: "elm.text.count";
+                               clip_to: "disclip";
+                               type: TEXT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 40;
+                                       fixed: 1 1;
+                                       rel1 { to_x: "elm.padding.left"; to_y: "elm.padding.top"; relative: 1 1; }
+                                       rel2 { to_x: "elm.padding.right"; to_y: "elm.padding.bottom"; relative: 0 0; }
+                                       color: 0 0 0 255;
+                                       text {
+                                               font: FONT_ROM;
+                                               size: 18;
+                                               min: 1 1;
+                                               align: 1.0 0.5;
+                                       }
+                               }
+                               description {
+                                       state: "selected" 0.0;
+                                       inherit: "default" 0.0;
+                                       color: 225 225 225 255;
+                               }
+                       }
+                       part { name: "bottom_line";
+                               type: RECT;
+                               clip_to: "disclip";
+                               mouse_events: 0;
+                               description {
+                                       min: 0 1;
+                                       fixed: 0 1;
+                                       rel1 { relative: 0.0 1.0; offset: 0 -1; }
+                                       color: 199 195 183 255;
+                               }
+                       }
+                       BEAT_GENLIST_PART_DISCLIP
+               }
+               programs {
+                       program { name: "go_active";
+                               signal: "elm,state,selected";
+                               source: "elm";
+                               action: STATE_SET "selected" 0.0;
+                               target: "bg_image";
+                               target: "elm.text.count";
+                               target: "elm.text.content";
+                       }
+                       program { name: "go_passive";
+                               signal: "elm,state,unselected";
+                               source: "elm";
+                               action: STATE_SET "default" 0.0;
+                               target: "bg_image";
+                               target: "elm.text.count";
+                               target: "elm.text.content";
+                               transition: LINEAR 0.1;
+                       }
+                       program { name: "go_disabled";
+                               signal: "elm,state,disabled";
+                               source: "elm";
+                               action: STATE_SET "disabled" 0.0;
+                               target: "disclip";
+                       }
+                       program { name: "go_enabled";
+                               signal: "elm,state,enabled";
+                               source: "elm";
+                               action: STATE_SET "default" 0.0;
+                               target: "disclip";
+                       }
+               }
+       }
+
+       group {
+               name: "elm/genlist/tree/emaillisttree/email_nbeat/default";
+               alias: "elm/genlist/tree_odd/emaillisttree/email_nbeat/default";
+               data.item: "stacking" "above";
+               data.item: "selectraise" "on";
+               data.item: "texts" "elm.text.1 elm.text.2";
+               data.item: "contents" "elm.icon.1 elm.icon.2 elm.swallow.colorbar elm.swallow.icon elm.swallow.end";
+               data.item: "treesize" "20";
+
+               images {
+                       image: "00_list_bar_press_1x80.png" COMP;
+               }
+
+               parts {
+                       GENLIST_EXPANDABLE_PART_PERSPECTIVE_POINT()
+                       GENLIST_EXPANDABLE_PART_BASE( 80, GENLIST_EXPANDABLE_PART_BG_COLOR_INC )
+                       BEAT_GENLIST_PART_BOTTOM_EFFECT_LINE
+                       BEAT_GENLIST_PART_PADDING_TOP( 6 )
+                       BEAT_GENLIST_PART_PADDING_BOTTOM( 6 )
+                       BEAT_GENLIST_PART_PADDING_LEFT( 10 )
+                       BEAT_GENLIST_PART_PADDING_RIGHT( 10 )
+                       BEAT_GENLIST_PART_EXPANDABLE_SWALLOW_PADDING
+
+                       part { name: "elm.swallow.colorbar";
+                               clip_to: "disclip";
+                               type: SWALLOW;
+                               scale: 1;
+                               description { state: "default" 0.0;
+                                       min: 6 13;
+                                       fixed: 1 1;
+                                       align: 0.0 0.0;
+                                       rel1 {
+                                               relative: 0.0 0.0;
+                                       }
+                                       rel2 {
+                                               relative: 0.0 0.0;
+                                       }
+                               }
+                       }
+
+                       part { name: "elm.padding.icon1.right";
+                               type: RECT;
+                               scale: 1;
+                               description { state: "default" 0.0;
+                                       min: 10 0;
+                                       fixed: 1 0;
+                                       visible: 0;
+                                       rel1 {
+                                               relative: 1.0 0.0;
+                                               to_x: "elm.icon.1";
+                                       }
+                                       rel2.to_x: "elm.icon.1";
+                                       align: 0.0 0.0;
+                               }
+                       }
+
+                       part { name: "elm.icon.1";
+                               clip_to: "disclip";
+                               type: SWALLOW;
+                               scale: 1;
+                               description { state: "default" 0.0;
+                                       min: 40 40;
+                                       max: 40 40;
+                                       fixed: 1 1;
+                                       align: 0.0 0.5;
+                                       rel1 {
+                                               relative: 1.0 1.0;
+                                               offset: 0 0;
+                                               to_x: "elm.padding.left";
+                                               to_y: "elm.padding.top";
+                                       }
+                                       rel2 {
+                                               relative: 1.0 0.0;
+                                               offset: 0 0;
+                                               to_x: "elm.padding.left";
+                                               to_y: "elm.padding.bottom";
+                                       }
+                               }
+                       }
+
+                       part { name: "elm.icon.2";
+                               clip_to: "disclip";
+                               ignore_flags: ON_HOLD;
+                               type: SWALLOW;
+                               scale: 1;
+                               description { state: "default" 0.0;
+                                       min: 40 40;
+                                       max: 40 40;
+                                       fixed: 1 1;
+                                       rel1 {
+                                               relative: 0.0 1.0;
+                                               to_x: "elm.padding.right";
+                                               to_y: "elm.padding.top";
+                                       }
+                                       rel2 {
+                                               relative: 0.0 1.0;
+                                               to_x: "elm.padding.right";
+                                               to_y: "elm.padding.bottom";
+                                       }
+                                       align: 1.0 0.5;
+                               }
+
+                               BEAT_GENLIST_PART_MAP_START(-90.0, 0.0, 0.0)
+                               BEAT_GENLIST_PART_MAP_FINISH(0.0, 0.0, 0.0)
+                       }
+                       part { name: "elm.padding.icon2.left";
+                               clip_to: "disclip";
+                               type: RECT;
+                               scale: 1;
+                               description { state: "default" 0.0;
+                                       min: 10 0;
+                                       fixed: 1 0;
+                                       rel1 {
+                                               relative: 0.0 0.0;
+                                               to_x: "elm.icon.2";
+                                       }
+                                       rel2.to_x: "elm.icon.2";
+                                       align: 1.0 0.0;
+                                       visible: 0;
+                               }
+                       }
+
+                       part { name: "elm.text.1";
+                               clip_to: "disclip";
+                               type: TEXT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description { state: "default" 0.0;
+                                       min: 0 38;
+                                       fixed: 0 1;
+                                       align: 0 0;
+                                       rel1 {
+                                               relative: 1.0 1.0;
+                                               to_x: "elm.padding.icon1.right";
+                                               to_y: "elm.padding.top";
+                                       }
+                                       rel2 {
+                                               relative: 0.0 1.0;
+                                               to_x: "elm.padding.icon2.left";
+                                               to_y: "elm.padding.top";
+                                       }
+                                       color: GENLIST_PART_TEXT_COLOR_INC;
+                                       text {
+                                               font: "SLP:style=Roman";
+                                               size: 28;
+                                               min: 0 1;
+                                               align: 0.0 0.5;
+                                       }
+                               }
+                               description { state: "selected" 0.0;
+                                       inherit: "default" 0.0;
+                                       color: GENLIST_PART_TEXT_SELECTED_COLOR_INC;
+                               }
+                       }
+
+                       part { name: "elm.text.2";
+                               clip_to: "disclip";
+                               type: TEXT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description { state: "default" 0.0;
+                                       rel1 {
+                                               relative: 1.0 1.0;
+                                               to_x: "elm.padding.icon1.right";
+                                               to_y: "elm.text.1";
+                                       }
+                                       rel2 {
+                                               relative: 0.0 0.0;
+                                               offset: 0 0;
+                                               to_x: "elm.padding.icon2.left";
+                                               to_y: "elm.padding.bottom";
+                                       }
+                                       color: GENLIST_PART_SUB_TEXT_COLOR_INC;
+                                       text {
+                                               font: "SLP:style=Medium";
+                                               size: 20;
+                                               min: 0 1;
+                                               align: 0.0 0.5;
+                                       }
+                               }
+                               description { state: "selected" 0.0;
+                                       inherit: "default" 0.0;
+                                       color: GENLIST_PART_TEXT_SELECTED_COLOR_INC;
+                               }
+                       }
+                       BEAT_GENLIST_PART_DISCLIP
+               }
+               programs {
+                       // signal: elm,state,%s,active
+                       // a "check" item named %s went active
+                       // signal: elm,state,%s,passive
+                       // a "check" item named %s went passive
+                       // default is passive
+                       program { name: "go_active";
+                               signal: "elm,state,selected";
+                               source: "elm";
+                               action: STATE_SET "selected" 0.0;
+                               target: "base";
+                               target: "elm.text.1";
+                               target: "elm.text.2";
+                       }
+                       program { name: "go_passive";
+                               signal: "elm,state,unselected";
+                               source: "elm";
+                               action: STATE_SET "default" 0.0;
+                               target: "base";
+                               target: "elm.text.1";
+                               target: "elm.text.2";
+                               transition: LINEAR 0.1;
+                       }
+                       program { name: "go_disabled";
+                               signal: "elm,state,disabled";
+                               source: "elm";
+                               action: STATE_SET "disabled" 0.0;
+                               target: "disclip";
+                       }
+                       program { name: "go_enabled";
+                               signal: "elm,state,enabled";
+                               source: "elm";
+                               action: STATE_SET "default" 0.0;
+                               target: "disclip";
+                       }
+
+                       program {
+                               name: "expand";
+                               signal: "mouse,up,1";
+                               source: "elm.icon.2";
+                               action: SIGNAL_EMIT "elm,action,expand,toggle" "elm";
+                       }
+
+                       program {
+                               BEAT_GENLIST_PROGRAM_MAP_ROTATE_START()
+                               target: "base";
+                               target: "elm.text.1";
+                               target: "elm.text.2";
+                               target: "elm.icon.1";
+                               target: "elm.icon.2";
+                               target: "elm.swallow.colorbar";
+                               target: "elm.swallow.pad";
+                               target: "bottom_line";
+                       }
+                       program {
+                               BEAT_GENLIST_PROGRAM_MAP_ROTATE_FINISH( 0.4 )
+                               target: "base";
+                               target: "elm.text.1";
+                               target: "elm.text.2";
+                               target: "elm.icon.1";
+                               target: "elm.icon.2";
+                               target: "elm.swallow.colorbar";
+                               target: "elm.swallow.pad";
+                               target: "bottom_line";
+                       }
+                       program {
+                               BEAT_GENLIST_PROGRAM_MAP_END()
+                               target: "base";
+                               target: "elm.text.1";
+                               target: "elm.text.2";
+                               target: "elm.icon.1";
+                               target: "elm.icon.2";
+                               target: "elm.swallow.colorbar";
+                               target: "elm.swallow.pad";
+                               target: "bottom_line";
+                       }
+                       program {
+                               BEAT_GENLIST_PROGRAM_MAP_ROTATE_START2()
+                               target: "base";
+                               target: "elm.text.1";
+                               target: "elm.text.2";
+                               target: "elm.icon.1";
+                               target: "elm.icon.2";
+                               target: "elm.swallow.colorbar";
+                               target: "elm.swallow.pad";
+                               target: "bottom_line";
+                       }
+                       program {
+                               BEAT_GENLIST_PROGRAM_MAP_ROTATE_FINISH2( 0.4 )
+                               target: "base";
+                               target: "elm.text.1";
+                               target: "elm.text.2";
+                               target: "elm.icon.1";
+                               target: "elm.icon.2";
+                               target: "elm.swallow.colorbar";
+                               target: "elm.swallow.pad";
+                               target: "bottom_line";
+                       }
+                       program {
+                               BEAT_GENLIST_PROGRAM_MAP_END2()
+                               target: "base";
+                               target: "elm.text.1";
+                               target: "elm.text.2";
+                               target: "elm.icon.1";
+                               target: "elm.icon.2";
+                               target: "elm.swallow.colorbar";
+                               target: "elm.swallow.pad";
+                               target: "bottom_line";
+                       }
+                       program {
+                               name: "show";
+                               signal: "elm,state,show";
+                               action: STATE_SET "default" 0.0;
+                               target: "base";
+                               target: "elm.text.1";
+                               target: "elm.text.2";
+                               target: "elm.icon.1";
+                               target: "elm.icon.2";
+                               target: "elm.swallow.colorbar";
+                               target: "elm.swallow.pad";
+                               target: "bottom_line";
+                       }
+                       program {
+                               name: "hide";
+                               signal: "elm,state,hide";
+                               action: STATE_SET "hide" 0.0;
+                               target: "base";
+                               target: "elm.text.1";
+                               target: "elm.text.2";
+                               target: "elm.icon.1";
+                               target: "elm.icon.2";
+                               target: "elm.swallow.colorbar";
+                               target: "elm.swallow.pad";
+                               target: "bottom_line";
+                       }
+               }
+       }
+#endif
+}
+
diff --git a/account/theme/email_effect_layout.edc b/account/theme/email_effect_layout.edc
new file mode 100755 (executable)
index 0000000..c58661a
--- /dev/null
@@ -0,0 +1,106 @@
+/*
+ * Copyright 2012  Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *    http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+collections {
+       group {
+               name: "ug_effect_sample";
+               parts {
+                       part {
+                               name: "clip";
+                               type: RECT;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 1 0; }
+                                       rel2 { relative: 2 1; }
+                                       color: 255 255 255 0;
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       rel1 { relative: 0 0; }
+                                       rel2 { relative: 1 1; }
+                                       color: 255 255 255 255;
+                               }
+                       }
+                       part {
+                               name: "elm.swallow.content";
+                               type: SWALLOW;
+                               clip_to: "clip";
+                               description {
+                                       rel1.to: "clip";
+                                       rel2.to: "clip";
+                               }
+                       }
+                       part {
+                               name: "event_blocker";
+                               description {
+                                       state: "default" 0.0;
+                                       rel1.to: "clip";
+                                       rel2.to: "clip";
+                                       visible: 1;
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                               }
+                               description {
+                                       state: "disabled" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+               }
+               programs {
+                       program {
+                               name: "show";
+                               signal: "elm,state,show";
+                               action: STATE_SET "show" 0.0;
+                               target: "clip";
+                               target: "event_blocker";
+                               transition: "DECELERATE" 0.5;
+                               after: "show_end";
+                       }
+                       program {
+                               name: "hide";
+                               signal: "elm,state,hide";
+                               action: STATE_SET "default" 0.0;
+                               target: "clip";
+                               target: "event_blocker";
+                               transition: "DECELERATE" 0.5;
+                               after: "hide_end";
+                       }
+                       program {
+                               name: "disable_event_blocker";
+                               signal: "elm,state,blocker,disabled";
+                               action: STATE_SET "disabled" 0.0;
+                               target: "event_blocker";
+                       }
+                       program {
+                               name: "disable_blocker";
+                               action: SIGNAL_EMIT "elm,state,blocker,disabled" "";
+                       }
+                       program {
+                               name: "show_end";
+                               action: SIGNAL_EMIT "elm,action,show,finished" "";
+                               after: "disable_blocker";
+                       }
+                       program {
+                               name: "hide_end";
+                               action: SIGNAL_EMIT "elm,action,hide,finished" "";
+                               after: "disable_blocker";
+                       }
+               }
+       }
+}
diff --git a/block/CMakeLists.txt b/block/CMakeLists.txt
new file mode 100755 (executable)
index 0000000..4ceca17
--- /dev/null
@@ -0,0 +1,55 @@
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+PROJECT(ug-email-block-efl C)
+
+SET(SRCS
+       ./src/email-block.c
+)
+SET(CMAKE_SKIP_BUILD_RPATH TRUE)
+
+IF("${CMAKE_BUILD_TYPE}" STREQUAL "")
+       SET(CMAKE_BUILD_TYPE "Release")
+ENDIF("${CMAKE_BUILD_TYPE}" STREQUAL "")
+MESSAGE("Build type: ${CMAKE_BUILD_TYPE}")
+
+SET(CMAKE_MAILBLOCK_SOURCE_DIR "${CMAKE_SOURCE_DIR}/block")
+SET(CMAKE_MAILBLOCK_BINARY_DIR "${CMAKE_BINARY_DIR}/block")
+INCLUDE_DIRECTORIES(${CMAKE_MAILBLOCK_SOURCE_DIR}/include)
+INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/common/include)
+
+INCLUDE(FindPkgConfig)
+pkg_check_modules(pkgs-block REQUIRED appcore-efl contacts-service ui-gadget-1 elementary gobject-2.0 email-service dlog capi-appfw-application)
+
+FOREACH(flag ${pkgs-block_CFLAGS})
+       SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
+ENDFOREACH(flag)
+#SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -finstrument-functions")
+
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
+SET(CMAKE_C_FLAGS_DEBUG "-O0 -g")
+
+FIND_PROGRAM(UNAME NAMES uname)
+EXEC_PROGRAM("${UNAME}" ARGS "-m" OUTPUT_VARIABLE "ARCH")
+IF("${ARCH}" STREQUAL "arm")
+       ADD_DEFINITIONS("-DTARGET")
+       MESSAGE("add -DTARGET")
+       SET(CMAKE_C_FLAGS_RELEASE "-mabi=aapcs-linux -msoft-float -O2")
+ENDIF("${ARCH}" STREQUAL "arm")
+
+ADD_DEFINITIONS("-DPREFIX=\"${CMAKE_INSTALL_PREFIX}\"")
+ADD_DEFINITIONS("-DDEBUG")
+ADD_DEFINITIONS("-DFACTORYFS=\"$ENV{FACTORYFS}\"")
+ADD_DEFINITIONS("-DDATAFS=\"$ENV{DATAFS}\"")
+
+ADD_LIBRARY(${PROJECT_NAME} SHARED ${SRCS})
+TARGET_LINK_LIBRARIES(${PROJECT_NAME} email-common ${pkgs-block_LDFLAGS})
+
+ADD_CUSTOM_TARGET(email-block-theme.edj
+               COMMAND edje_cc -id ${CMAKE_SOURCE_DIR}/images
+               ${CMAKE_MAILBLOCK_SOURCE_DIR}/theme/email-block-theme.edc ${CMAKE_MAILBLOCK_BINARY_DIR}/email-block-theme.edj
+               DEPENDS ${CMAKE_MAILBLOCK_SOURCE_DIR}/theme/email-block-theme.edc
+)
+ADD_DEPENDENCIES(${PROJECT_NAME} email-block-theme.edj)
+
+INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${UGDIR})
+INSTALL(FILES ${CMAKE_MAILBLOCK_BINARY_DIR}/email-block-theme.edj DESTINATION ${EDJDIR})
+
diff --git a/block/include/email-block.h b/block/include/email-block.h
new file mode 100755 (executable)
index 0000000..60d925c
--- /dev/null
@@ -0,0 +1,251 @@
+/*
+ * Copyright 2012  Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *    http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __DEF_email_block_H_
+#define __DEF_email_block_H_
+
+#include <Edje.h>
+#include <Elementary.h>
+#include <appcore-efl.h>
+#include <libintl.h>
+#undef _
+#include <ui-gadget-module.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <glib.h>
+#include <glib-object.h>
+#include <Ecore_IMF.h>
+
+#include "email-api.h"
+#include "email-types.h"
+
+#include "email-engine.h"
+#include "email-debug.h"
+#include "email-locale.h"
+
+#define _EDJ(o) elm_layout_edje_get(o)
+
+#define MAX_RECIPIENT_ADDRESS_LEN 234
+#define MAX_RECIPIENT_COUNT 50
+#define MAX_RECENT_CNT 100
+#define MAX_RECENT_MAIL_TO_RETRIEVE 10
+
+#define ICON_PATH IMGDIR
+#define EDJ_PATH EDJDIR
+#define THEME_PATH EDJ_PATH"/email-setting-theme.edj"
+#define EMAIL_BLOCK_THEME_PATH EDJ_PATH"/email-block-theme.edj"
+
+typedef struct ug_data EmailBlockAppData;
+struct ug_data {
+       Evas *evas;
+       Evas_Object *win_main;
+
+       Evas_Object *layout_main;
+       Evas_Object *layout_add;
+       Evas_Object *layout_crt;
+       Evas_Object *layout_edit;
+       Evas_Object *timeout_popup;
+       Evas_Object *bg;
+       Elm_Theme *theme;
+       int account_id;
+       int mailbox_id;
+       char *str_filter_name;
+
+       ui_gadget_h ug;
+       ui_gadget_h ug_contact;
+       ui_gadget_h ug_group;
+       struct ug_cbs cbs;
+
+       Evas_Object *main_box;
+       Evas_Object *gl_addrs;
+       Evas_Object *gl_subject;
+       Evas_Object *gl_string;
+       Evas_Object *gl_edit;
+       Evas_Object *gl_add_filter;
+       Evas_Object *navi_bar;
+       Evas_Object *control_bar;
+       Evas_Object *control_bar_add;
+       Evas_Object *control_bar_edit;
+       Evas_Object *segment;
+       Evas_Object *segment_layout;
+       Evas_Object *noc;
+       Evas_Object *noc_ly;
+       Evas_Object *sub_ly;
+
+       email_rule_t *rule_list;
+       Elm_Genlist_Item_Class itc_block;
+       Elm_Genlist_Item_Class itc_del;
+       Elm_Genlist_Item_Class itc1;
+       Elm_Genlist_Item_Class itc2;
+       Elm_Genlist_Item_Class itc3;
+       Elm_Genlist_Item_Class itc4;
+       Elm_Genlist_Item_Class itc5;
+
+       int match_crt;
+       int update_filter_id;
+       int delete_filter_id;
+
+       Evas_Object *l_button;
+       Evas_Object *r_button;
+       Evas_Object *l_button2;
+       Evas_Object *r_button2;
+       Evas_Object *l_button3;
+       Evas_Object *r_button3;
+       Evas_Object *l_button4;
+       Evas_Object *r_button4;
+       Evas_Object *add_button;
+       Evas_Object *edit_button;
+       Evas_Object *del_button;
+       Evas_Object *back_btn_add;
+       Evas_Object *add_icon;
+       Evas_Object *edit_icon;
+       Evas_Object *del_icon;
+       Evas_Object *select_all_layout;
+       Evas_Object *select_all_checkbox;
+       Evas_Object *recent_lbutton;
+
+       Evas_Object *scr_add;
+       Evas_Object *scr_crt;
+       Evas_Object *filter_box;
+       Evas_Object *box_crt;
+       Evas_Object *dg_crt;
+       Evas_Object *df_filter_name;
+       Evas_Object *df_match;
+       Evas_Object *ef_match;
+       Evas_Object *ef_filter_name;
+       Evas_Object *entry_filter_name;
+       Evas_Object *di_btns;
+       Evas_Object *layout_btn;
+       Evas_Object *group_btn;
+       Evas_Object *contact_btn;
+       Evas_Object *recent_btn;
+       Evas_Object *waiting_popup;
+       email_mail_list_item_t *recent_mail_data;
+       Ecore_Timer *recent_timer;
+       Evas_Object *di_crt1;
+       Evas_Object *di_crt2;
+       Evas_Object *di_crt_rd1;
+       Evas_Object *di_crt_rd2;
+       Evas_Object *sp1;
+       Evas_Object *sp2;
+       Evas_Object *sp_crt;
+       Evas_Object *popup_empty;
+       Evas_Object *recent_genlist;
+       Evas_Object *block_recent_select_all_layout;
+       Evas_Object *recent_box;
+       Evas_Object *block_recent_select_all_checkbox;
+       Evas_Object *block_select_all_layout;
+       Evas_Object *no_content;
+       Evas_Object *recent_select_info;
+       Evas_Object *edit_select_info;
+       Evas_Object *recent_select_info_ly;
+       Evas_Object *edit_select_info_ly;
+       Eina_Bool block_recent_select_all_checked;
+
+       int checked_count;
+       int total_count;
+       int mode;
+       int block_type;
+       int edit_filter_id;
+       int address_rule_count;
+       int subject_rule_count;
+       int selected_segment;
+       int view_type;
+       int b_btn_layout_show;
+       int edit_total_count;
+       int edit_checked_count;
+       Eina_Bool select_all_checked;
+
+       Elm_Object_Item *selected_item;
+       Elm_Object_Item * c_item[4];
+       Elm_Object_Item * c_item_add[4];
+       Elm_Object_Item * c_item_edit[4];
+       Elm_Object_Item *del_btn_item;
+       Elm_Object_Item *empty_btn_item;
+
+       Elm_Object_Item *navi_main_it;
+};
+
+typedef struct {
+       gchar email_addr[MAX_RECIPIENT_ADDRESS_LEN];
+} EmailList;
+
+typedef struct {
+       int selected_email_idx;
+       int email_cnt;
+       bool is_contact_info;
+       gchar *display_name;
+       EmailList email_list[MAX_RECIPIENT_COUNT];
+} EmailRecipientInfo;
+
+typedef struct {
+       email_rule_t *rule;
+       Elm_Object_Item *it;
+       Eina_Bool checked;
+       Evas_Object *genlist;
+} ListItemData;
+
+enum {
+       TYPE_BLOCK_ADDRESS = 1,
+       TYPE_BLOCK_SUBJECT,
+       TYPE_BLOCK_STRING,
+       TYPE_BLOCK_MAX
+};
+
+enum {
+       TYPE_MATCH_CRT_INC_ON = 1,
+       TYPE_MATCH_CRT_WHOLE_ON,
+       TYPE_MATCH_CRT_MAX
+};
+
+enum {
+       BLOCK_MODE_ADD = 1,
+       BLOCK_MODE_EDIT,
+       BLOCK_MODE_MAX
+};
+
+enum {
+       VIEW_BLOCK_MAIN = 1,
+       VIEW_BLOCK_FILTER_DATA_SET,
+       VIEW_BLOCK_CRITERIA_SET,
+       VIEW_BLOCK_EDIT_FILTER_LIST,
+       VIEW_BLOCK_RECENT_ADD,
+       VIEW_BLOCK_CONTACT_ADD,
+       VIEW_BLOCK_MAX
+};
+
+typedef struct _Item_Data Item_Data;
+typedef struct _View_Data View_Data;
+
+struct _View_Data {
+       Evas_Object *select_all_layout;
+       Evas_Object *select_all_checkbox;
+       Eina_Bool select_all_checked;
+       int total_count;
+       int checked_count;
+};
+
+struct _Item_Data {
+       Elm_Object_Item *it;    /* Genlist Item pointer */
+       Eina_Bool checked;      /* Check status */
+       char *address;
+};
+
+#endif /* __DEF_email_block_H__ */
+
+/* EOF */
diff --git a/block/src/email-block.c b/block/src/email-block.c
new file mode 100755 (executable)
index 0000000..bb4bd9a
--- /dev/null
@@ -0,0 +1,2572 @@
+/*
+ * Copyright 2012  Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *    http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef UG_MODULE_API
+#define UG_MODULE_API __attribute__ ((visibility("default")))
+#endif
+
+#include "email-block.h"
+#include "email-utils.h"
+#include <contacts-svc.h>
+#include <contacts-ug.h>
+#include <vconf.h>
+#include <vconf-keys.h>
+#include <string.h>
+#include <stdlib.h>
+
+Evas_Object *g_delete_btn = NULL;
+char *block_addr = NULL;
+static EmailBlockAppData *_g_eb_ug_data = NULL;
+static Elm_Genlist_Item_Class itc;
+
+#define EMAIL_VCONF_KEY_BLOCK_RULE_CHANGED     "file/private/org.tizen.email/spam_rule_changed"
+
+/* appcore */
+static void *on_create(ui_gadget_h ug, enum ug_mode mode, service_h service, void *priv);
+static void on_start(ui_gadget_h ug, service_h service, void *priv);
+static void on_pause(ui_gadget_h ug, service_h service, void *priv);
+static void on_resume(ui_gadget_h ug, service_h service, void *priv);
+static void on_destroy(ui_gadget_h ug, service_h service, void *priv);
+static void on_message(ui_gadget_h ug, service_h msg, service_h service, void *priv);
+static void on_event(ui_gadget_h ug, enum ug_event event, service_h service, void *priv);
+static void on_key_event(ui_gadget_h ug, enum ug_key_event event, service_h service, void *priv);
+
+static void layout_cb(ui_gadget_h ug, enum ug_mode mode, void *priv);
+static void result_cb(ui_gadget_h ug, service_h service, void *priv);
+static void destroy_cb(ui_gadget_h ug, void *priv);
+static ui_gadget_h create_ug(char *ug_name, service_h service, void *data);
+static void _win_profile_changed_cb(void *data, Evas_Object *obj, void *event);
+
+static void eb_create_view(EmailBlockAppData *ug_data);
+static void eb_add_navigation_bar(EmailBlockAppData *ug_data);
+static void eb_add_control_bar(EmailBlockAppData *ug_data);
+static void eb_create_first_view(EmailBlockAppData *ug_data);
+static void eb_create_list(EmailBlockAppData *ug_data);
+static void eb_free_list(EmailBlockAppData *ug_data);
+static void eb_create_noc(EmailBlockAppData *ug_data);
+static void eb_free_noc(EmailBlockAppData *ug_data);
+static void eb_destroy_main_view(EmailBlockAppData *ug_data);
+static void eb_destroy_filter_add_view(EmailBlockAppData *ug_data);
+
+static void _add_filter_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+static void _add_filter_cancel_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+static void _add_one_rule(EmailBlockAppData *ug_data, char *buf);
+static void _changed_filter_type_cb(void *data, Evas_Object *obj, void *event_info);
+static void _back_cb(void *data, Evas_Object *obj, void *event_info);
+static void _edit_cb(void *data, Evas_Object *obj, void *event_info);
+static void _back_prev_view_cb(void *data, Evas_Object *obj, void *event_info);
+static void _delete_rule_cb(void *data, Evas_Object *obj, void *event_info);
+static void _rule_save_cb(void *data, Evas_Object *obj, void *event_info);
+static void _contact_button_cb(void *data, Evas_Object *obj, void *event_info);
+static void _recent_button_cb(void *data, Evas_Object *obj, void *event_info);
+static void _block_rule_vconf_key_changed_cb(keynode_t *key, void *data);
+static void _get_contact_email_list(const char *val, char **result, EmailBlockAppData *ug_data);
+
+static void _popup_block_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+static void _del_button_state_set(EmailBlockAppData *ug_data);
+static void _show_selection_info(EmailBlockAppData *ugd);
+
+static void _block_recent_create_view(void *data);
+static void _block_recent_init(EmailBlockAppData *ugd);
+static Evas_Object *_block_recent_create_genlist_top_half(void *data);
+static Eina_Bool _block_recent_create_genlist_bottom_half(void *data);
+static bool _block_recent_check_addr_is_duplicated(const char *addr, Evas_Object *recent_list);
+static void _block_recent_back_cb(void *data, Evas_Object *obj, void *event_info);
+static Evas_Object *_block_recent_create_no_content_view(Evas_Object *parent, void *data);
+static void _block_recent_show_selection_info(EmailBlockAppData *ugd);
+static void _block_recent_done_cb(void *data, Evas_Object *obj, void *event_info);
+static void _block_recent_item_check_changed_cb(void *data, Evas_Object *obj, void *event_info);
+static Evas_Object *_block_recent_create_layout(EmailBlockAppData *ugd);
+static void _block_recent_set_editmode(void *data);
+static void _block_recent_select_all_layout_mouse_down_cb(void *data, Evas * evas, Evas_Object *obj, void *event_info);
+static void _block_recent_select_all_check_changed_cb(void *data, Evas_Object *obj, void *event_info);
+static void _block_recent_check_select_all(EmailBlockAppData *ugd);
+static void _block_recent_set_genlist_item_style(EmailBlockAppData *ugd);
+static void _block_recent_gl_sel(void *data, Evas_Object *obj, void *event_info);
+static char *_block_recent_gl_label_get(void *data, Evas_Object *obj, const char *part);
+static Evas_Object *_block_recent_gl_icon_get(void *data, Evas_Object *obj, const char *part);
+
+static void _edit_item_check_changed_cb(void *data, Evas_Object *obj, void *event_info);
+static void _check_select_all(EmailBlockAppData *ug_data);
+static void _select_all_layout_mouse_down_cb(void *data, Evas * evas, Evas_Object *obj, void *event_info);
+static void _select_all_check_changed_cb(void *data, Evas_Object *obj, void *event_info);
+static char *_eb_gl_label_get(void *data, Evas_Object *obj, const char *part);
+static void _eb_gl_sel_cb(void *data, Evas_Object *obj, void *event_info);
+static void _eb_gl_del(void *data, Evas_Object *obj);
+static Evas_Object *_eb_gl_add_ef_icon_get(void *data, Evas_Object *obj, const char *part);
+/*static Evas_Object *_eb_gl_add_btn_icon_get(void *data, Evas_Object *obj, const char *part);*/
+static void _cb_backup_input(void *data, Evas_Object *obj, void *event_info);
+static void _cb_entry_focused(void *data, Evas_Object *obj, void *event_info);
+static void _cb_entry_unfocused(void *data, Evas_Object *obj, void *event_info);
+static void _cb_eraser_clicked(void *data, Evas_Object *obj, const char *emission, const char *source);
+
+/* Call back function to get the information of buttons of underlying layer in sweep menu */
+static Evas_Object *_eb_gl_icon_get(void *data, Evas_Object *obj, const char *part);
+static void _eb_sweep_edit_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+static void _eb_sweep_delete_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+static void _my_gl_mode_right(void *data, Evas_Object *obj, void *event_info);
+static void _my_gl_mode_left(void *data, Evas_Object *obj, void *event_info);
+static void _my_gl_mode_cancel(void *data, Evas_Object *obj, void *event_info);
+
+static void *on_create(ui_gadget_h ug, enum ug_mode mode, service_h service, void *priv)
+{
+       debug_log("");
+
+       Evas_Object *win;
+       EmailBlockAppData *ug_data;
+
+       if (!ug || !priv)
+               return NULL;
+
+       ug_data = priv;
+       ug_data->ug = ug;
+
+       win = ug_get_window();
+       if (!win)
+               return NULL;
+
+       ug_data->win_main = win;
+       ug_data->evas = evas_object_evas_get(win);
+
+       char *id = NULL;
+       service_get_extra_data(service, EMAIL_BUNDLE_KEY_ACCOUNT_ID, &id);
+       ug_data->account_id = atoi(id);
+       g_free(id);
+
+       char *mailbox_id = NULL;
+       service_get_extra_data(service, EMAIL_BUNDLE_KEY_MAILBOX, &mailbox_id);
+       ug_data->mailbox_id = atoi(mailbox_id);
+       g_free(mailbox_id);
+
+       debug_log("ACCOUNT_ID:%d", ug_data->account_id);
+       debug_log("MAILBOX_ID:%d", ug_data->mailbox_id);
+
+       ug_data->cbs.layout_cb = layout_cb;
+       ug_data->cbs.result_cb = result_cb;
+       ug_data->cbs.destroy_cb = destroy_cb;
+       ug_data->cbs.priv = (void *)ug_data;
+
+       /* theme extension */
+       ug_data->theme = elm_theme_new();
+       elm_theme_ref_set(ug_data->theme, NULL);
+       elm_theme_extension_add(ug_data->theme, EMAIL_BLOCK_THEME_PATH);
+
+       eb_create_view(ug_data);
+
+       int vconf_ret = -1;
+       vconf_ret = vconf_notify_key_changed(EMAIL_VCONF_KEY_BLOCK_RULE_CHANGED, _block_rule_vconf_key_changed_cb, ug_data);
+       if (vconf_ret == -1) {
+               debug_log("vconf_notify_key_changed failed");
+       }
+
+       return ug_data->layout_main;
+}
+
+static void on_start(ui_gadget_h ug, service_h service, void *priv)
+{
+       debug_log("");
+}
+
+static void on_pause(ui_gadget_h ug, service_h service, void *priv)
+{
+       debug_log("");
+}
+
+static void on_resume(ui_gadget_h ug, service_h service, void *priv)
+{
+       debug_log("");
+}
+
+static void on_destroy(ui_gadget_h ug, service_h service, void *priv)
+{
+       debug_log("");
+       EmailBlockAppData *ug_data;
+
+       if (!ug || !priv)
+               return;
+
+       ug_data = priv;
+
+       /* theme extension */
+       elm_theme_extension_del(ug_data->theme, EMAIL_BLOCK_THEME_PATH);
+       elm_theme_free(ug_data->theme);
+
+       int vconf_ret = -1;
+       vconf_ret = vconf_ignore_key_changed(EMAIL_VCONF_KEY_BLOCK_RULE_CHANGED, _block_rule_vconf_key_changed_cb);
+       if (vconf_ret == -1) {
+               debug_log("vconf_ignore_key_changed failed");
+       }
+
+       vconf_ret = vconf_unset(EMAIL_VCONF_KEY_BLOCK_RULE_CHANGED);
+       if (vconf_ret == -1) {
+               debug_log("vconf_unset failed");
+       }
+
+       eb_destroy_main_view(ug_data);
+}
+
+static void on_message(ui_gadget_h ug, service_h msg, service_h service, void *priv)
+{
+       debug_log("");
+}
+
+static void on_event(ui_gadget_h ug, enum ug_event event, service_h service, void *priv)
+{
+       debug_log("");
+
+       switch (event) {
+       case UG_EVENT_LOW_MEMORY:
+               break;
+       case UG_EVENT_LOW_BATTERY:
+               break;
+       case UG_EVENT_LANG_CHANGE:
+               break;
+       case UG_EVENT_ROTATE_PORTRAIT:
+               break;
+       case UG_EVENT_ROTATE_PORTRAIT_UPSIDEDOWN:
+               break;
+       case UG_EVENT_ROTATE_LANDSCAPE:
+               break;
+       case UG_EVENT_ROTATE_LANDSCAPE_UPSIDEDOWN:
+               break;
+       case UG_EVENT_REGION_CHANGE:
+               break;
+       default:
+               break;
+       }
+}
+
+static void on_key_event(ui_gadget_h ug, enum ug_key_event event, service_h service, void *priv)
+{
+       debug_log("");
+
+       if (!ug || !priv)
+               return;
+
+       EmailBlockAppData *ug_data;
+       ug_data = priv;
+
+       switch (event) {
+       case UG_KEY_EVENT_END:
+               if (elm_naviframe_top_item_get(ug_data->navi_bar) == elm_naviframe_bottom_item_get(ug_data->navi_bar))
+                       ug_destroy_me(ug);
+               else
+                       _back_prev_view_cb(ug_data, NULL, NULL);
+               break;
+
+       default:
+               break;
+       }
+}
+
+static void layout_cb(ui_gadget_h ug, enum ug_mode mode, void *priv)
+{
+       debug_log("");
+       Evas_Object *base, *win;
+
+       if (!ug || !priv)
+               return;
+
+       base = ug_get_layout(ug);
+       if (!base)
+               return;
+
+       win = ug_get_window();
+
+       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:
+               break;
+       }
+}
+
+static void result_cb(ui_gadget_h ug, service_h service, void *priv)
+{
+       debug_log("");
+
+       if (!ug || !priv)
+               return;
+
+       EmailBlockAppData *ug_data = (EmailBlockAppData *)priv;
+
+       if (ug != ug_data->ug_contact) {
+               goto FINISH;
+       }
+
+       char *val = NULL;
+       service_get_extra_data(service, CT_UG_BUNDLE_RESULT_EMAIL_ID_LIST, &val);
+
+       if (!val) {
+               debug_log("service_get_extra_data return NULL");
+               goto FINISH;
+       }
+
+       char *result_address = NULL;
+       _get_contact_email_list(val, &result_address, ug_data);
+       g_free(val);
+
+       if (!result_address) {
+               ug_data->popup_empty = elm_popup_add(ug_data->layout_main);
+               evas_object_size_hint_weight_set(ug_data->popup_empty, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+               elm_popup_timeout_set(ug_data->popup_empty, 1);
+               elm_object_text_set(ug_data->popup_empty, _("IDS_EMAIL_POP_NO_EMAIL_ADDRESS"));
+               elm_object_part_text_set(ug_data->popup_empty, "title,text", _("IDS_EMAIL_POP_ALERT"));
+               evas_object_smart_callback_add(ug_data->popup_empty, "block,clicked", _popup_block_clicked_cb, ug_data);
+               evas_object_show(ug_data->popup_empty);
+               goto FINISH;
+       }
+
+       if (!block_addr) {
+               block_addr = g_strdup(result_address);
+               debug_log("Null block_addr = %s", block_addr);
+               elm_entry_entry_set(ug_data->entry_filter_name, block_addr);
+       } else {
+               char *addr_tmp = block_addr;
+               block_addr = g_strconcat(block_addr, ";", result_address, NULL);
+               debug_log("Not Null block_addr = %s", block_addr);
+               elm_entry_entry_set(ug_data->entry_filter_name, block_addr);
+               g_free(addr_tmp);
+       }
+
+       g_free(result_address);
+
+FINISH:
+       evas_object_show(ug_data->entry_filter_name);
+       elm_object_focus_set(ug_data->entry_filter_name, EINA_TRUE);
+       ug_data->view_type = VIEW_BLOCK_FILTER_DATA_SET;
+       ug_destroy(ug);
+}
+
+static void destroy_cb(ui_gadget_h ug, void *priv)
+{
+       debug_log("");
+
+       if (!ug || !priv)
+               return;
+
+       EmailBlockAppData *ug_data = (EmailBlockAppData *)priv;
+
+       if (ug == ug_data->ug_contact) {
+               ug_data->view_type = VIEW_BLOCK_FILTER_DATA_SET;
+               /*elm_object_signal_emit(ug_data->ef_filter_name, "clicked", "elm");*/
+               evas_object_show(ug_data->entry_filter_name);
+               elm_object_focus_set(ug_data->entry_filter_name, EINA_TRUE);
+       }
+
+       ug_destroy(ug);
+}
+
+UG_MODULE_API int UG_MODULE_INIT(struct ug_module_ops *ops)
+{
+       debug_log("");
+       EmailBlockAppData *ug_data;
+
+       if (!ops)
+               return -1;
+
+       ug_data = calloc(1, sizeof(EmailBlockAppData));
+       if (!ug_data)
+               return -1;
+
+       ops->create = on_create;
+       ops->start = on_start;
+       ops->pause = on_pause;
+       ops->resume = on_resume;
+       ops->destroy = on_destroy;
+       ops->message = on_message;
+       ops->event = on_event;
+       ops->key_event = on_key_event;
+       ops->priv = ug_data;
+       ops->opt = UG_OPT_INDICATOR_ENABLE;
+
+       _g_eb_ug_data = ug_data;
+
+       return 0;
+}
+
+UG_MODULE_API void UG_MODULE_EXIT(struct ug_module_ops *ops)
+{
+       debug_log("");
+       EmailBlockAppData *ug_data;
+
+       if (!ops)
+               return;
+
+       ug_data = ops->priv;
+       if (ug_data)
+               free(ug_data);
+
+       _g_eb_ug_data = NULL;
+}
+
+static ui_gadget_h create_ug(char *ug_name, service_h service, void *data)
+{
+       debug_log("");
+       ui_gadget_h ug;
+       struct ug_cbs cbs = { 0, };
+
+       EmailBlockAppData *ug_data = (EmailBlockAppData *)data;
+
+       cbs.layout_cb = layout_cb;
+       cbs.result_cb = result_cb;
+       cbs.destroy_cb = destroy_cb;
+       cbs.priv = data;
+
+       ug = ug_create(ug_data->ug, ug_name, UG_MODE_FULLVIEW, service, &cbs);
+
+       return ug;
+}
+
+static void eb_create_view(EmailBlockAppData *ug_data)
+{
+       debug_log("");
+
+       Evas_Object *layout;
+
+       ug_data->bg = elm_bg_add(ug_data->win_main);
+       evas_object_size_hint_weight_set(ug_data->bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       elm_win_resize_object_add(ug_data->win_main, ug_data->bg);
+       evas_object_show(ug_data->bg);
+
+       layout = elm_layout_add(ug_data->win_main);
+       elm_layout_theme_set(layout, "layout", "application", "default");
+       evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       elm_win_resize_object_add(ug_data->win_main, layout);
+       evas_object_show(layout);
+       ug_data->layout_main = layout;
+       elm_object_part_content_set(ug_data->layout_main, "elm.swallow.bg", ug_data->bg);
+
+       evas_object_smart_callback_add(ug_data->win_main, "profile,changed", _win_profile_changed_cb, ug_data);
+
+       ug_data->selected_segment = 0;
+       eb_add_navigation_bar(ug_data);
+       eb_add_control_bar(ug_data);
+       eb_create_first_view(ug_data);
+}
+
+static void _win_profile_changed_cb(void *data, Evas_Object *obj, void *event)
+{
+       debug_log("");
+       if (!data) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       EmailBlockAppData *ug_data = (EmailBlockAppData *)data;
+
+       const char *profile = elm_config_profile_get();
+       if (!g_strcmp0(profile, "desktop"))
+               elm_layout_theme_set(ug_data->layout_main, "layout", "application", "noindicator");
+       else
+               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 eb_add_navigation_bar(EmailBlockAppData *ug_data)
+{
+       debug_log("");
+       Evas_Object *navi_bar;
+
+       navi_bar = elm_naviframe_add(ug_data->layout_main);
+       elm_object_part_content_set(ug_data->layout_main, "elm.swallow.content", navi_bar);
+       evas_object_show(navi_bar);
+
+       ug_data->navi_bar = navi_bar;
+}
+
+static void eb_add_control_bar(EmailBlockAppData *ug_data)
+{
+       debug_log("");
+       Elm_Object_Item *it1, *it2;
+
+       if (ug_data == NULL)
+               return;
+
+       ug_data->control_bar = elm_toolbar_add(ug_data->navi_bar);
+       elm_toolbar_shrink_mode_set(ug_data->control_bar, ELM_TOOLBAR_SHRINK_EXPAND);
+       elm_object_style_set(ug_data->control_bar, "naviframe");
+       evas_object_show(ug_data->control_bar);
+
+       ug_data->c_item[0] = elm_toolbar_item_append(ug_data->control_bar, NULL,
+                       dgettext("sys_string", "IDS_COM_SK_DELETE"), _edit_cb, ug_data);
+       elm_object_item_disabled_set(elm_toolbar_item_append(ug_data->control_bar, NULL, "", NULL, NULL), EINA_TRUE);
+       ug_data->c_item[1] = elm_toolbar_item_append(ug_data->control_bar, NULL,
+                       dgettext("sys_string", "IDS_COM_SK_ADD"), _add_filter_clicked_cb, ug_data);
+
+       ug_data->segment = elm_segment_control_add(ug_data->navi_bar);
+       it1 = elm_segment_control_item_add(ug_data->segment, NULL, _("IDS_EMAIL_BODY_ADDRESS"));
+       it2 = elm_segment_control_item_add(ug_data->segment, NULL, dgettext("sys_string", "IDS_COM_BODY_SUBJECT"));
+       evas_object_smart_callback_add(ug_data->segment, "changed", _changed_filter_type_cb, ug_data);
+       evas_object_show(ug_data->segment);
+
+       debug_log("selected segment: %d", ug_data->selected_segment);
+       if (ug_data->selected_segment == 0) {
+               ug_data->block_type = TYPE_BLOCK_ADDRESS;
+               elm_segment_control_item_selected_set(it1, TRUE);
+       } else if (ug_data->selected_segment == 1) {
+               ug_data->block_type = TYPE_BLOCK_SUBJECT;
+               elm_segment_control_item_selected_set(it2, TRUE);
+       }
+}
+
+static void eb_create_first_view(EmailBlockAppData *ug_data)
+{
+       debug_log("");
+
+       ug_data->view_type = VIEW_BLOCK_MAIN;
+
+       ug_data->sub_ly = elm_layout_add(ug_data->navi_bar);
+       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);
+       evas_object_show(ug_data->sub_ly);
+
+       ug_data->l_button = elm_button_add(ug_data->navi_bar);
+       evas_object_smart_callback_add(ug_data->l_button, "clicked", _back_cb, ug_data);
+       elm_object_style_set(ug_data->l_button, "naviframe/back_btn/default");
+       evas_object_show(ug_data->l_button);
+
+       ug_data->navi_main_it = elm_naviframe_item_push(ug_data->navi_bar, _("IDS_EMAIL_HEADER_BLOCK_EMAILS"), ug_data->l_button, NULL, ug_data->sub_ly, NULL);
+       elm_naviframe_item_style_set(ug_data->navi_main_it, "segment");
+       elm_object_item_part_content_set(ug_data->navi_main_it, "segment", ug_data->segment);
+       elm_object_item_part_content_set(ug_data->navi_main_it, "controlbar", ug_data->control_bar);
+
+       _changed_filter_type_cb(ug_data, ug_data->segment, NULL);
+}
+
+static void eb_create_list(EmailBlockAppData *ug_data)
+{
+       debug_log("");
+       int count, i;
+       email_rule_t *rule_list = NULL;
+
+       ug_data->main_box = elm_box_add(ug_data->navi_bar);
+       evas_object_size_hint_weight_set(ug_data->main_box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_show(ug_data->main_box);
+       elm_object_part_content_set(ug_data->sub_ly, "elm.swallow.content", ug_data->main_box);
+
+       ug_data->gl_addrs = elm_genlist_add(ug_data->navi_bar);
+       elm_genlist_block_count_set(ug_data->gl_addrs, 25);
+       evas_object_size_hint_weight_set(ug_data->gl_addrs, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(ug_data->gl_addrs, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_smart_callback_add(ug_data->gl_addrs, "drag,start,right", _my_gl_mode_right, NULL); /* sweep right */
+       evas_object_smart_callback_add(ug_data->gl_addrs, "drag,start,left", _my_gl_mode_left, NULL);   /* sweep left */
+       evas_object_smart_callback_add(ug_data->gl_addrs, "drag,start,up", _my_gl_mode_cancel, NULL);   /* flick */
+       evas_object_smart_callback_add(ug_data->gl_addrs, "drag,start,down", _my_gl_mode_cancel, NULL); /* flick */
+
+       ug_data->gl_subject = elm_genlist_add(ug_data->navi_bar);
+       elm_genlist_block_count_set(ug_data->gl_subject, 25);
+       evas_object_size_hint_weight_set(ug_data->gl_subject, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(ug_data->gl_subject, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_smart_callback_add(ug_data->gl_subject, "drag,start,right", _my_gl_mode_right, NULL);       /* sweep right */
+       evas_object_smart_callback_add(ug_data->gl_subject, "drag,start,left", _my_gl_mode_left, NULL);         /* sweep left */
+       evas_object_smart_callback_add(ug_data->gl_subject, "drag,start,up", _my_gl_mode_cancel, NULL);         /* flick */
+       evas_object_smart_callback_add(ug_data->gl_subject, "drag,start,down", _my_gl_mode_cancel, NULL);       /* flick */
+
+       elm_object_style_set(ug_data->gl_addrs, "1text");
+       elm_object_style_set(ug_data->gl_subject, "1text");
+
+       ug_data->itc_block.item_style = "1text";        /* for upper layer */
+       ug_data->itc_block.decorate_item_style = "mode/slide2"; /* for lower layer */
+       ug_data->itc_block.func.text_get = _eb_gl_label_get;
+       ug_data->itc_block.func.del = _eb_gl_del;
+       ug_data->itc_block.func.content_get = _eb_gl_icon_get;
+       ug_data->itc_block.decorate_all_item_style = "edit_default";
+
+       /* get the rule list from service */
+       if (email_get_rule_list(&rule_list, &count) < 0) {
+               debug_log("email_get_rule_list failed");
+       }
+
+       if (count > 0) {
+               /* copy rule list */
+               if (ug_data->rule_list != NULL) {
+                       free(ug_data->rule_list);
+                       ug_data->rule_list = NULL;
+               }
+
+               ug_data->rule_list = (email_rule_t *) malloc(sizeof(email_rule_t)*count);
+               if (ug_data->rule_list && rule_list)
+                       memcpy(ug_data->rule_list, rule_list, sizeof(email_rule_t)*count);
+               else
+                       goto FINISH_OFF;
+
+               for (i = 0; i < count; i++) {
+                       ListItemData *item_data = NULL;
+                       if (ug_data->rule_list[i].type == EMAIL_FILTER_FROM) {
+                               item_data = calloc(1, sizeof(ListItemData));
+                               item_data->rule = &(ug_data->rule_list[i]);
+                               item_data->rule->value = g_strdup(item_data->rule->value);
+                               item_data->genlist = ug_data->gl_addrs;
+                               item_data->it = elm_genlist_item_append(ug_data->gl_addrs, &(ug_data->itc_block), (void *)item_data, NULL, ELM_GENLIST_ITEM_NONE, _eb_gl_sel_cb, (void *)item_data);
+                               ug_data->address_rule_count++;
+                       } else if (ug_data->rule_list[i].type == EMAIL_FILTER_SUBJECT) {
+                               item_data = calloc(1, sizeof(ListItemData));
+                               item_data->rule = &(ug_data->rule_list[i]);
+                               item_data->rule->value = g_strdup(item_data->rule->value);
+                               item_data->genlist = ug_data->gl_subject;
+                               item_data->it = elm_genlist_item_append(ug_data->gl_subject, &(ug_data->itc_block), (void *)item_data, NULL, ELM_GENLIST_ITEM_NONE, _eb_gl_sel_cb, (void *)item_data);
+                               ug_data->subject_rule_count++;
+                       } else {
+                               debug_log("undefined rule type");
+                       }
+
+                       debug_log("ug_data->address_rule_count %d n ug_data->subject_rule_count %d", ug_data->address_rule_count, ug_data->subject_rule_count);
+               }
+       }
+
+FINISH_OFF:
+       /* free emf rule_list */
+       email_free_rule(&rule_list, count);
+}
+
+static void _my_gl_mode_right(void *data, Evas_Object *obj, void *event_info)
+{
+       if (!event_info)
+               return;
+
+       /* Start genlist sweep */
+       elm_genlist_item_decorate_mode_set(event_info, "slide", EINA_TRUE);
+}
+
+static void _my_gl_mode_left(void *data, Evas_Object *obj, void *event_info)
+{
+       if (!event_info)
+               return;
+
+       /* Finish genlist sweep */
+       elm_genlist_item_decorate_mode_set(event_info, "slide", EINA_FALSE);
+}
+
+static void _my_gl_mode_cancel(void *data, Evas_Object *obj, void *event_info)
+{
+       if (!obj)
+               return;
+
+       /* Get sweeped item */
+       Elm_Object_Item *it = (Elm_Object_Item *)elm_genlist_decorated_item_get(obj);
+       /* Finish genlist sweep */
+       if (it)
+               elm_genlist_item_decorate_mode_set(it, "slide", EINA_FALSE);
+}
+
+static void eb_free_list(EmailBlockAppData *ug_data)
+{
+       debug_log("");
+       if (ug_data->gl_addrs != NULL) {
+               elm_genlist_clear(ug_data->gl_addrs);
+               evas_object_del(ug_data->gl_addrs);
+               ug_data->gl_addrs = NULL;
+       }
+       if (ug_data->gl_subject != NULL) {
+               elm_genlist_clear(ug_data->gl_subject);
+               evas_object_del(ug_data->gl_subject);
+               ug_data->gl_subject = NULL;
+       }
+       if (ug_data->gl_string != NULL) {
+               elm_genlist_clear(ug_data->gl_string);
+               evas_object_del(ug_data->gl_string);
+               ug_data->gl_string = NULL;
+       }
+       ug_data->address_rule_count = 0;
+       ug_data->subject_rule_count = 0;
+
+       if (ug_data->main_box) {
+               evas_object_del(ug_data->main_box);
+               ug_data->main_box = NULL;
+       }
+}
+
+static void eb_create_noc(EmailBlockAppData *ug_data)
+{
+       debug_log("");
+
+       ug_data->noc = elm_layout_add(ug_data->navi_bar);
+       elm_layout_theme_set(ug_data->noc, "layout", "nocontents", "text");
+       elm_object_part_text_set(ug_data->noc, "elm.text", dgettext("sys_string", "IDS_COM_BODY_NO_CONTENTS"));
+
+       ug_data->noc_ly = elm_layout_add(ug_data->navi_bar);
+       elm_layout_file_set(ug_data->noc_ly, THEME_PATH, "email_block_noc");
+       evas_object_size_hint_weight_set(ug_data->noc_ly, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+       elm_object_part_content_set(ug_data->noc_ly, "contents", ug_data->noc);
+}
+
+static void eb_free_noc(EmailBlockAppData *ug_data)
+{
+       debug_log("");
+
+       elm_object_part_content_unset(ug_data->noc_ly, "contents");
+       if (ug_data->noc) {
+               evas_object_del(ug_data->noc);
+               ug_data->noc = NULL;
+       }
+
+       if (ug_data->noc_ly) {
+               evas_object_del(ug_data->noc_ly);
+               ug_data->noc_ly = NULL;
+       }
+}
+
+static void eb_destroy_main_view(EmailBlockAppData *ug_data)
+{
+       debug_log("");
+
+       eb_free_list(ug_data);
+       eb_free_noc(ug_data);
+
+       if (ug_data->popup_empty) {
+               evas_object_del(ug_data->popup_empty);
+               ug_data->popup_empty = NULL;
+       }
+
+       if (ug_data->timeout_popup) {
+               evas_object_del(ug_data->timeout_popup);
+               ug_data->timeout_popup = NULL;
+       }
+
+       if (ug_data->segment) {
+               evas_object_del(ug_data->segment);
+               ug_data->segment = NULL;
+       }
+
+       if (ug_data->control_bar) {
+               evas_object_del(ug_data->control_bar);
+               ug_data->control_bar = NULL;
+       }
+
+       if (ug_data->navi_bar) {
+               evas_object_del(ug_data->navi_bar);
+               ug_data->navi_bar = NULL;
+       }
+
+       if (ug_data->sub_ly) {
+               evas_object_del(ug_data->sub_ly);
+               ug_data->sub_ly = NULL;
+       }
+
+       if (ug_data->layout_main) {
+               evas_object_del(ug_data->layout_main);
+               ug_data->layout_main = NULL;
+       }
+}
+
+static void eb_destroy_filter_add_view(EmailBlockAppData *ug_data)
+{
+       debug_log("");
+
+       if (ug_data->str_filter_name) {
+               g_free(ug_data->str_filter_name);
+               ug_data->str_filter_name = NULL;
+       }
+}
+
+static void eb_create_add_filter_view(EmailBlockAppData *ug_data, email_rule_t * rule)
+{
+       debug_log("");
+       ug_data->view_type = VIEW_BLOCK_FILTER_DATA_SET;
+
+       Elm_Object_Item *item = NULL;
+       Elm_Object_Item *git = NULL;
+
+       ug_data->gl_add_filter = elm_genlist_add(ug_data->navi_bar);
+       elm_object_style_set(ug_data->gl_add_filter, "dialogue");
+       elm_genlist_bounce_set(ug_data->gl_add_filter, EINA_FALSE, EINA_FALSE);
+       elm_object_theme_set(ug_data->gl_add_filter, ug_data->theme);
+
+       ug_data->itc1.item_style = "dialogue/1icon";
+       ug_data->itc1.func.text_get = NULL;
+       ug_data->itc1.func.content_get = _eb_gl_add_ef_icon_get;
+       ug_data->itc1.func.state_get = NULL;
+       ug_data->itc1.func.del = NULL;
+
+       ug_data->itc2.item_style = "dialogue/email.2icon";
+       ug_data->itc2.func.text_get = NULL;
+       ug_data->itc2.func.content_get = _eb_gl_add_ef_icon_get;
+       ug_data->itc2.func.state_get = NULL;
+       ug_data->itc2.func.del = NULL;
+
+       ug_data->itc3.item_style = "dialogue/separator/21/with_line";
+       ug_data->itc3.func.text_get = NULL;
+       ug_data->itc3.func.content_get = NULL;
+       ug_data->itc3.func.state_get = NULL;
+       ug_data->itc3.func.del = NULL;
+
+       ug_data->itc4.item_style = "dialogue/separator/20";
+       ug_data->itc4.func.text_get = NULL;
+       ug_data->itc4.func.content_get = NULL;
+       ug_data->itc4.func.state_get = NULL;
+       ug_data->itc4.func.del = NULL;
+
+       git = elm_genlist_item_append(ug_data->gl_add_filter, &ug_data->itc3, NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+       elm_genlist_item_select_mode_set(git, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+
+       if (ug_data->block_type == TYPE_BLOCK_ADDRESS && ug_data->mode == BLOCK_MODE_ADD) {
+               item = elm_genlist_item_append(ug_data->gl_add_filter, &ug_data->itc2, NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+       } else {
+               item = elm_genlist_item_append(ug_data->gl_add_filter, &ug_data->itc1, (void *)rule, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+       }
+
+       ug_data->match_crt = TYPE_MATCH_CRT_INC_ON;
+
+       Evas_Object *conform;
+       elm_win_conformant_set(ug_data->win_main, 1);
+       conform = elm_conformant_add(ug_data->win_main);
+       elm_object_style_set(conform, "internal_layout");
+       evas_object_show(conform);
+
+       ug_data->layout_add = elm_layout_add(ug_data->navi_bar);
+       elm_layout_theme_set(ug_data->layout_add, "layout", "application", "noindicator");
+       evas_object_size_hint_weight_set(ug_data->layout_add, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+       elm_object_content_set(conform, ug_data->gl_add_filter);
+       elm_object_part_content_set(ug_data->layout_add, "elm.swallow.content", conform);
+
+       ug_data->r_button2 = elm_button_add(ug_data->navi_bar);
+       elm_object_style_set(ug_data->r_button2, "naviframe/title/default");
+       elm_object_text_set(ug_data->r_button2, dgettext("sys_string", "IDS_COM_SK_DONE"));
+       evas_object_smart_callback_add(ug_data->r_button2, "clicked", _rule_save_cb, ug_data);
+       evas_object_show(ug_data->r_button2);
+
+       ug_data->l_button2 = elm_button_add(ug_data->navi_bar);
+       elm_object_style_set(ug_data->l_button2, "naviframe/title/default");
+       elm_object_text_set(ug_data->l_button2, dgettext("sys_string", "IDS_COM_SK_CANCEL"));
+       evas_object_smart_callback_add(ug_data->l_button2, "clicked", _back_prev_view_cb, ug_data);
+       evas_object_show(ug_data->l_button2);
+
+       Elm_Object_Item *navi_it = NULL;
+       if (rule) {
+               navi_it = elm_naviframe_item_push(ug_data->navi_bar, _("IDS_EMAIL_HEADER_EDIT_RULES"), NULL, NULL, ug_data->layout_add, NULL);
+       } else {
+               elm_object_disabled_set(ug_data->r_button2, EINA_TRUE);
+
+               if (ug_data->block_type == TYPE_BLOCK_ADDRESS) {
+                       navi_it = elm_naviframe_item_push(ug_data->navi_bar, _("IDS_EMAIL_BODY_ADD_ADDRESS"), NULL, NULL, ug_data->layout_add, NULL);
+               } else if (ug_data->block_type == TYPE_BLOCK_SUBJECT) {
+                       navi_it = elm_naviframe_item_push(ug_data->navi_bar, N_("Add subject"), NULL, NULL, ug_data->layout_add, NULL);
+               }
+       }
+
+       elm_object_item_part_content_set(navi_it, "title_right_btn", ug_data->l_button2);
+       elm_object_item_part_content_set(navi_it, "title_left_btn", ug_data->r_button2);
+
+       ug_data->back_btn_add = elm_object_item_part_content_get(navi_it, "prev_btn");
+       if (ug_data->back_btn_add)
+               evas_object_smart_callback_add(ug_data->back_btn_add, "clicked", _add_filter_cancel_clicked_cb, ug_data);
+}
+
+static void _rule_save_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+
+       EmailBlockAppData *ug_data = (EmailBlockAppData *)data;
+
+       if (block_addr) {
+               g_free(block_addr);
+               block_addr = NULL;
+       }
+
+       elm_object_disabled_set(ug_data->r_button2, EINA_TRUE);
+       elm_object_disabled_set(ug_data->l_button2, EINA_TRUE);
+       elm_object_disabled_set(ug_data->back_btn_add, EINA_TRUE);
+
+       char *buf_ = (char *)elm_entry_entry_get(ug_data->entry_filter_name);
+       char *buf = elm_entry_markup_to_utf8(buf_);
+
+       if (!buf || !strlen(buf)) {
+               ug_data->popup_empty = elm_popup_add(ug_data->layout_main);
+               evas_object_size_hint_weight_set(ug_data->popup_empty, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+               elm_popup_timeout_set(ug_data->popup_empty, 2);
+               elm_object_text_set(ug_data->popup_empty, _("IDS_EMAIL_POP_PLEASE_FILL_ALL_THE_MANDATORY_FIELDS"));
+               elm_object_part_text_set(ug_data->popup_empty, "title,text", _("IDS_EMAIL_POP_ALERT"));
+               evas_object_smart_callback_add(ug_data->popup_empty, "block,clicked", _popup_block_clicked_cb, ug_data);
+               evas_object_show(ug_data->popup_empty);
+               goto FINISH_OFF;
+       }
+
+       gchar **vector;
+       char *item_str;
+       int i = 0;
+       int valid_vector_cnt = 0;
+       vector = g_strsplit_set(buf, ";", -1);
+       guint str_cnt = g_strv_length(vector);
+       debug_log("addr_cnt: %d", str_cnt);
+
+       if (ug_data->block_type == TYPE_BLOCK_ADDRESS) {
+               for (i = 0; i < str_cnt; i++) {
+                       /* check if valid address */
+                       if (vector[i] != NULL && strlen(vector[i]) > 0) {
+                               if (email_get_address_validation(vector[i]) == FALSE) {
+                                       valid_vector_cnt = 0;
+                                       break;
+                               }
+
+                               valid_vector_cnt++;
+                       }
+               }
+
+               if (valid_vector_cnt == 0) {
+                       ug_data->popup_empty = elm_popup_add(ug_data->layout_main);
+                       evas_object_size_hint_weight_set(ug_data->popup_empty, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+                       elm_popup_timeout_set(ug_data->popup_empty, 2);
+                       elm_object_text_set(ug_data->popup_empty, _("IDS_EMAIL_POP_INVALID_EMAIL_ADDRESS"));
+                       elm_object_part_text_set(ug_data->popup_empty, "title,text", _("IDS_EMAIL_POP_ALERT"));
+                       evas_object_smart_callback_add(ug_data->popup_empty, "block,clicked", _popup_block_clicked_cb, ug_data);
+                       evas_object_show(ug_data->popup_empty);
+
+                       g_strfreev(vector);
+                       goto FINISH_OFF;
+               }
+
+               for (i = 0; i < str_cnt; i++) {
+                       if (vector[i] != NULL && strlen(vector[i]) > 0) {
+                               item_str = g_strdup(vector[i]);
+                               _add_one_rule(ug_data, item_str);
+                               g_free(item_str);
+                       }
+               }
+       } else { /* subject */
+               int empty = 1;
+               debug_log("subject: [%s] %d", buf, strlen(buf));
+               for (i = 0; i < strlen(buf); i++)
+                       if (buf[i] != ' ') {
+                               empty = 0;
+                               break;
+                       }
+
+               if (empty == 0)
+                       _add_one_rule(ug_data, (char *)buf);
+               else {
+                       ug_data->popup_empty = elm_popup_add(ug_data->layout_main);
+                       evas_object_size_hint_weight_set(ug_data->popup_empty, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+                       elm_popup_timeout_set(ug_data->popup_empty, 2);
+                       elm_object_text_set(ug_data->popup_empty, _("IDS_EMAIL_POP_UNABLE_TO_SAVE_SUBJECT_EMPTY"));
+                       elm_object_part_text_set(ug_data->popup_empty, "title,text", _("IDS_EMAIL_POP_ALERT"));
+                       evas_object_smart_callback_add(ug_data->popup_empty, "block,clicked", _popup_block_clicked_cb, ug_data);
+                       evas_object_show(ug_data->popup_empty);
+
+                       g_strfreev(vector);
+                       goto FINISH_OFF;
+               }
+       }
+
+       g_strfreev(vector);
+
+       _changed_filter_type_cb(ug_data, ug_data->segment, NULL);
+
+       _back_prev_view_cb(ug_data, NULL, NULL);
+
+ FINISH_OFF:
+       elm_object_disabled_set(ug_data->r_button2, EINA_FALSE);
+       elm_object_disabled_set(ug_data->l_button2, EINA_FALSE);
+       elm_object_disabled_set(ug_data->back_btn_add, EINA_FALSE);
+       g_free(buf);
+}
+
+static void _add_one_rule(EmailBlockAppData *ug_data, char *buf)
+{
+       int ret = EMAIL_ERROR_NONE;
+       email_rule_t *rule = NULL;
+
+       /* add filtering rule */
+       rule = malloc(sizeof(email_rule_t));
+       if (!rule)
+               return;
+       rule->account_id = ug_data->account_id;
+       rule->type = ug_data->block_type;
+       rule->value = g_strdup(buf);
+       rule->faction = 2;      /* BLOCK */
+       rule->target_mailbox_id = ug_data->mailbox_id;
+       rule->flag1 = 1;        /* on */
+       rule->flag2 = 1;
+
+       debug_log("priv->type_crt %d value %s", ug_data->block_type, rule->value);
+
+       if (ug_data->mode == BLOCK_MODE_ADD) {
+               ret = email_add_rule(rule);
+               if (ret < 0)
+                       debug_log("email_add_rule failed %d", ret);
+       }
+
+       else if (ug_data->mode == BLOCK_MODE_EDIT) {
+               ret = email_update_rule(ug_data->edit_filter_id, rule);
+               if (ret < 0)
+                       debug_log("email_update_rule failed");
+       }
+
+       if (ret == EMAIL_ERROR_ALREADY_EXISTS) {
+               /* Should display error popup */
+               ug_data->timeout_popup = elm_popup_add(ug_data->layout_main);
+               evas_object_size_hint_weight_set(ug_data->timeout_popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+               elm_popup_timeout_set(ug_data->timeout_popup, 2);
+               if (rule->type == EMAIL_FILTER_FROM)
+                       elm_object_text_set(ug_data->timeout_popup, _("IDS_EMAIL_POP_ALREADY_BLOCKED"));
+               else
+                       elm_object_text_set(ug_data->timeout_popup, _("IDS_EMAIL_POP_ALREADY_BLOCKED"));
+               elm_object_part_text_set(ug_data->timeout_popup, "title,text", _("IDS_EMAIL_POP_ALERT"));
+               evas_object_smart_callback_add(ug_data->timeout_popup, "block,clicked", _popup_block_clicked_cb, ug_data);
+               evas_object_show(ug_data->timeout_popup);
+       }
+
+       email_free_rule(&rule, 1);
+       g_free(rule);
+}
+
+static void _add_filter_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       EmailBlockAppData *ug_data = (EmailBlockAppData *)data;
+
+       ug_data->mode = BLOCK_MODE_ADD;
+       eb_create_add_filter_view(ug_data, NULL);
+}
+
+static void _changed_filter_type_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       EmailBlockAppData *ug_data = (EmailBlockAppData *)data;
+       Elm_Object_Item *it;
+       char *label_str = NULL;
+       int value;
+
+       it = elm_segment_control_item_selected_get(obj);
+       value = elm_segment_control_item_index_get(it);
+       debug_log("index is value %d", value);
+
+       if (value < 0 || value >= 2) {
+               debug_log("invalid index, return");
+               return;
+       }
+
+       label_str = (char *)elm_segment_control_item_label_get(obj, value);
+       debug_log("label:%s", label_str);
+
+       if (label_str == NULL) {
+               debug_log("label str is NULL, return");
+               return;
+       }
+
+       ug_data->selected_segment = value;
+
+       elm_object_part_content_unset(ug_data->sub_ly, "elm.swallow.content");
+       eb_free_list(ug_data);
+       eb_free_noc(ug_data);
+
+       eb_create_list(ug_data);
+
+       if (g_strcmp0(label_str, dgettext("sys_string", "IDS_COM_BODY_SUBJECT")) == 0) {
+               if (ug_data->subject_rule_count > 0) {
+                       elm_box_pack_end(ug_data->main_box, ug_data->gl_subject);
+                       evas_object_show(ug_data->gl_subject);
+                       elm_object_item_disabled_set(ug_data->c_item[0], EINA_FALSE);
+               } else {
+                       eb_create_noc(ug_data);
+                       elm_object_part_text_set(ug_data->noc, "elm.text", _("IDS_EMAIL_BODY_NO_SUBJECT"));
+                       elm_box_pack_end(ug_data->main_box, ug_data->noc_ly);
+                       evas_object_show(ug_data->noc_ly);
+                       elm_object_item_disabled_set(ug_data->c_item[0], EINA_TRUE);
+               }
+
+               ug_data->block_type = TYPE_BLOCK_SUBJECT;
+       } else if (g_strcmp0(label_str, _("IDS_EMAIL_BODY_ADDRESS")) == 0) {
+               if (ug_data->address_rule_count > 0) {
+                       elm_box_pack_end(ug_data->main_box, ug_data->gl_addrs);
+                       evas_object_show(ug_data->gl_addrs);
+                       elm_object_item_disabled_set(ug_data->c_item[0], EINA_FALSE);
+               } else {
+                       eb_create_noc(ug_data);
+                       elm_object_part_text_set(ug_data->noc, "elm.text", _("IDS_EMAIL_BODY_NO_ADDRESS"));
+                       elm_box_pack_end(ug_data->main_box, ug_data->noc_ly);
+                       evas_object_show(ug_data->noc_ly);
+                       elm_object_item_disabled_set(ug_data->c_item[0], EINA_TRUE);
+               }
+
+               ug_data->block_type = TYPE_BLOCK_ADDRESS;
+       }
+}
+
+static void _back_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       EmailBlockAppData *ug_data = (EmailBlockAppData *)data;
+
+       /* This avoids moving back to Email settings screen */
+       Evas_Object *genlist = NULL;
+
+       if (ug_data->block_type == TYPE_BLOCK_SUBJECT) {
+               genlist = ug_data->gl_subject;
+       } else if (ug_data->block_type == TYPE_BLOCK_ADDRESS) {
+               genlist = ug_data->gl_addrs;
+       }
+
+       if (!elm_genlist_decorate_mode_get(genlist)) {
+               ug_destroy_me(ug_data->ug);
+       } else {
+               _edit_cb(ug_data, NULL, NULL);
+       }
+}
+
+static void _edit_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       EmailBlockAppData *ug_data = (EmailBlockAppData *)data;
+
+       Evas_Object *genlist = NULL;
+
+       if (ug_data->block_type == TYPE_BLOCK_SUBJECT) {
+               genlist = ug_data->gl_subject;
+               ug_data->edit_total_count = ug_data->subject_rule_count;
+       } else if (ug_data->block_type == TYPE_BLOCK_ADDRESS) {
+               genlist = ug_data->gl_addrs;
+               ug_data->edit_total_count = ug_data->address_rule_count;
+       }
+
+       if (!elm_genlist_decorate_mode_get(genlist)) {
+               ug_data->edit_checked_count = 0;
+               /* Change layout background color to edit_mode color */
+               edje_object_signal_emit(_EDJ(ug_data->layout_main), "elm,bg,show,edit_mode", "elm");
+
+               elm_object_item_part_content_unset(ug_data->navi_main_it, "segment");
+               elm_object_item_part_content_unset(ug_data->navi_main_it, "controlbar");
+               evas_object_hide(ug_data->segment);
+               evas_object_hide(ug_data->control_bar);
+               elm_naviframe_item_style_set(ug_data->navi_main_it, "basic");
+
+               ug_data->control_bar_edit = elm_toolbar_add(ug_data->navi_bar);
+               elm_toolbar_shrink_mode_set(ug_data->control_bar_edit, ELM_TOOLBAR_SHRINK_EXPAND);
+               elm_object_style_set(ug_data->control_bar_edit, "naviframe");
+               evas_object_show(ug_data->control_bar_edit);
+
+               ug_data->c_item[2] = elm_toolbar_item_append(ug_data->control_bar_edit, NULL,
+                               dgettext("sys_string", "IDS_COM_SK_DELETE"), _delete_rule_cb, ug_data);
+               elm_object_item_disabled_set(ug_data->c_item[2], EINA_TRUE);
+               elm_object_item_disabled_set(elm_toolbar_item_append(ug_data->control_bar_edit, NULL, "", NULL, NULL), EINA_TRUE);
+               elm_object_item_disabled_set(elm_toolbar_item_append(ug_data->control_bar_edit, NULL, "", NULL, NULL), EINA_TRUE);
+               elm_object_item_part_content_set(ug_data->navi_main_it, "controlbar", ug_data->control_bar_edit);
+
+               /* Append 'Select All' layout */
+               ug_data->select_all_layout = elm_layout_add(ug_data->main_box);
+               elm_layout_theme_set(ug_data->select_all_layout, "genlist", "item", "select_all/default");
+               evas_object_size_hint_weight_set(ug_data->select_all_layout, EVAS_HINT_EXPAND, EVAS_HINT_FILL);
+               evas_object_size_hint_align_set(ug_data->select_all_layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+               evas_object_event_callback_add(ug_data->select_all_layout, EVAS_CALLBACK_MOUSE_DOWN, _select_all_layout_mouse_down_cb, ug_data);
+
+               ug_data->select_all_checkbox = elm_check_add(ug_data->select_all_layout);
+               elm_check_state_pointer_set(ug_data->select_all_checkbox, &ug_data->select_all_checked);
+               evas_object_smart_callback_add(ug_data->select_all_checkbox, "changed", _select_all_check_changed_cb, ug_data);
+               evas_object_propagate_events_set(ug_data->select_all_checkbox, EINA_FALSE);
+               elm_object_part_content_set(ug_data->select_all_layout, "elm.icon", ug_data->select_all_checkbox);
+
+               elm_object_part_text_set(ug_data->select_all_layout, "elm.text", dgettext("sys_string", "IDS_COM_BODY_SELECT_ALL"));
+               elm_box_pack_start(ug_data->main_box, ug_data->select_all_layout);
+               evas_object_show(ug_data->select_all_layout);
+
+               /* Set reorder and edit mode */
+               elm_genlist_reorder_mode_set(genlist, EINA_TRUE);
+               elm_genlist_decorate_mode_set(genlist, EINA_TRUE);
+
+               /* This means even if selected, every click will make the selected callbacks be called. */
+               elm_genlist_select_mode_set(genlist, ELM_OBJECT_SELECT_MODE_ALWAYS);
+
+               /* This disables sweep menu in edit mode */
+               ug_data->itc_block.decorate_item_style = NULL;  /* for lower layer */
+
+               elm_object_item_text_set(ug_data->navi_main_it, _("IDS_EMAIL_HEADER_DELETE"));
+       } else {
+               /* Change layout background color to default background color */
+               edje_object_signal_emit(_EDJ(ug_data->layout_main), "elm,bg,show,default", "elm");
+
+               elm_object_item_part_content_unset(ug_data->navi_main_it, "controlbar");
+               if (ug_data->control_bar_edit) {
+                       evas_object_del(ug_data->control_bar_edit);
+                       ug_data->control_bar_edit = NULL;
+               }
+
+               elm_naviframe_item_style_set(ug_data->navi_main_it, "segment");
+               elm_object_item_part_content_set(ug_data->navi_main_it, "segment", ug_data->segment);
+               elm_object_item_part_content_set(ug_data->navi_main_it, "controlbar", ug_data->control_bar);
+               evas_object_show(ug_data->segment);
+               evas_object_show(ug_data->control_bar);
+
+               /* Remove 'Select All' layout. */
+               elm_box_unpack(ug_data->main_box, ug_data->select_all_layout);
+               evas_object_del(ug_data->select_all_layout);
+               ug_data->select_all_layout = NULL;
+
+               if (ug_data->edit_select_info) {
+                       evas_object_del(ug_data->edit_select_info);
+                       ug_data->edit_select_info = NULL;
+               }
+
+               /* Unset edit mode */
+               elm_genlist_decorate_mode_set(genlist, EINA_FALSE);
+               elm_genlist_reorder_mode_set(genlist, EINA_FALSE);
+               elm_genlist_select_mode_set(genlist, ELM_OBJECT_SELECT_MODE_DEFAULT);
+
+               ug_data->select_all_checked = EINA_FALSE;
+               elm_check_state_pointer_set(ug_data->select_all_checkbox, &ug_data->select_all_checked);
+               _changed_filter_type_cb(ug_data, ug_data->segment, NULL);
+
+               /* Set the navigation bar title */
+               elm_object_item_text_set(ug_data->navi_main_it, _("IDS_EMAIL_HEADER_BLOCK_EMAILS"));
+       }
+}
+
+static void _back_prev_view_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       EmailBlockAppData *ug_data = (EmailBlockAppData *)data;
+
+       if (ug_data->view_type != VIEW_BLOCK_FILTER_DATA_SET) {
+               debug_log("**double clicked**");
+               return;
+       }
+
+       elm_object_disabled_set(ug_data->r_button2, EINA_TRUE);
+       elm_object_disabled_set(ug_data->l_button2, EINA_TRUE);
+       elm_object_disabled_set(ug_data->back_btn_add, EINA_TRUE);
+
+       debug_log("view type is %d", ug_data->view_type);
+       elm_naviframe_item_pop(ug_data->navi_bar);
+
+       if (block_addr) {
+               g_free(block_addr);
+               block_addr = NULL;
+       }
+
+       switch (ug_data->view_type) {
+       case VIEW_BLOCK_EDIT_FILTER_LIST:
+               /*eb_destroy_edit_view(ug_data);*/
+               ug_data->gl_edit = NULL;
+               ug_data->view_type = VIEW_BLOCK_MAIN;
+               break;
+
+       case VIEW_BLOCK_CRITERIA_SET:
+               /*eb_destroy_criterion_view(ug_data);*/
+               ug_data->view_type = VIEW_BLOCK_FILTER_DATA_SET;
+               break;
+
+       case VIEW_BLOCK_FILTER_DATA_SET:
+               eb_destroy_filter_add_view(ug_data);
+               ug_data->view_type = VIEW_BLOCK_MAIN;
+               _changed_filter_type_cb(ug_data, ug_data->segment, NULL);
+               break;
+       }
+}
+
+static void _add_filter_cancel_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       EmailBlockAppData *ug_data = (EmailBlockAppData *)data;
+
+       if (ug_data->view_type != VIEW_BLOCK_FILTER_DATA_SET) {
+               debug_log("**double clicked**");
+               return;
+       }
+
+       elm_object_disabled_set(ug_data->r_button2, EINA_TRUE);
+       elm_object_disabled_set(ug_data->l_button2, EINA_TRUE);
+       elm_object_disabled_set(ug_data->back_btn_add, EINA_TRUE);
+
+       debug_log("view type is %d", ug_data->view_type);
+
+       if (block_addr) {
+               g_free(block_addr);
+               block_addr = NULL;
+       }
+
+       switch (ug_data->view_type) {
+       case VIEW_BLOCK_EDIT_FILTER_LIST:
+               /*eb_destroy_edit_view(ug_data);*/
+               ug_data->gl_edit = NULL;
+               ug_data->view_type = VIEW_BLOCK_MAIN;
+               break;
+
+       case VIEW_BLOCK_CRITERIA_SET:
+               /*eb_destroy_criterion_view(ug_data);*/
+               ug_data->view_type = VIEW_BLOCK_FILTER_DATA_SET;
+               break;
+
+       case VIEW_BLOCK_FILTER_DATA_SET:
+               eb_destroy_filter_add_view(ug_data);
+               ug_data->view_type = VIEW_BLOCK_MAIN;
+               _changed_filter_type_cb(ug_data, ug_data->segment, NULL);
+               break;
+       }
+}
+
+static void _check_select_all(EmailBlockAppData *ug_data)
+{
+       debug_log("");
+       ListItemData *it_data;
+       Elm_Object_Item *it;
+
+       Evas_Object *genlist = NULL;
+
+       if (ug_data->block_type == TYPE_BLOCK_SUBJECT) {
+               genlist = ug_data->gl_subject;
+       } else if (ug_data->block_type == TYPE_BLOCK_ADDRESS) {
+               genlist = ug_data->gl_addrs;
+       }
+
+       if (ug_data->select_all_checked)
+               ug_data->edit_checked_count = ug_data->edit_total_count;
+       else
+               ug_data->edit_checked_count = 0;
+
+       it = elm_genlist_first_item_get(genlist);
+       while (it) {
+               it_data = elm_object_item_data_get(it);
+               if (it_data)
+                       it_data->checked = ug_data->select_all_checked;
+               it = elm_genlist_item_next_get(it);
+       }
+
+       _del_button_state_set(ug_data);
+       _show_selection_info(ug_data);
+
+       /* Update all realized items */
+       elm_genlist_realized_items_update(genlist);
+}
+
+static void _select_all_layout_mouse_down_cb(void *data, Evas * evas, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       EmailBlockAppData *ug_data = (EmailBlockAppData *)data;
+
+       ug_data->select_all_checked = !ug_data->select_all_checked;
+       elm_check_state_pointer_set(ug_data->select_all_checkbox, &ug_data->select_all_checked);
+
+       _check_select_all(ug_data);
+}
+
+static void _select_all_check_changed_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       _check_select_all(data);
+}
+
+static void _delete_rule_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       EmailBlockAppData *ug_data = (EmailBlockAppData *)data;
+       Elm_Object_Item *it;
+       ListItemData *item_data = NULL;
+       Evas_Object *genlist = NULL;
+
+       if (ug_data->block_type == TYPE_BLOCK_SUBJECT) {
+               genlist = ug_data->gl_subject;
+       } else if (ug_data->block_type == TYPE_BLOCK_ADDRESS) {
+               genlist = ug_data->gl_addrs;
+       }
+
+       it = elm_genlist_first_item_get(genlist);
+       while (it) {
+               item_data = (ListItemData *) elm_object_item_data_get(it);
+               it = elm_genlist_item_next_get(it);
+
+               if ((item_data) && (item_data->checked)) {
+                       email_delete_rule(item_data->rule->filter_id);
+                       elm_object_item_del(item_data->it);
+                       ug_data->edit_total_count--;
+                       ug_data->edit_checked_count--;
+               }
+       }
+
+       if (ug_data->edit_select_info) {
+               evas_object_del(ug_data->edit_select_info);
+               ug_data->edit_select_info = NULL;
+       }
+
+       _del_button_state_set(ug_data);
+
+       if (ug_data->edit_total_count == 0) {
+               ug_data->select_all_checked = EINA_FALSE;
+               elm_check_state_pointer_set(ug_data->select_all_checkbox, &ug_data->select_all_checked);
+
+               _edit_cb(ug_data, NULL, NULL);
+       }
+}
+
+static void _get_contact_email_list(const char *val, char **result, EmailBlockAppData *ug_data)
+{
+       debug_log("");
+
+       int i = 0;
+       int j = 0;
+       int c_id = 0;
+       int *c_id_list = NULL;
+       int error_code = 0;
+       gsize c_id_list_len = 0;
+
+       char *result_address = NULL;
+       char *result_address_ = NULL;
+       char *email_addr = NULL;
+       char *tmp_addr = NULL;
+
+       CTSstruct *email_contact = NULL;
+       GSList *email_list = NULL;
+       GSList *li = NULL;
+       CTSvalue *email = NULL;
+
+       c_id_list = (int *)g_base64_decode(val, &c_id_list_len);
+
+       for (j = 0; j < c_id_list_len / sizeof(int); j++) {
+               c_id = c_id_list[j];
+               debug_log("selected contact id: %d", c_id);
+
+               error_code = contacts_svc_get_contact_value(CTS_GET_EMAIL_VALUE, c_id, &email);
+               tmp_addr = g_strdup(contacts_svc_value_get_str(email, CTS_EMAIL_VAL_ADDR_STR));
+               contacts_svc_value_free(email);
+
+               if (!tmp_addr) {
+                       debug_log("addr is NULL");
+                       continue;
+               }
+               debug_log("addr = %s", tmp_addr);
+
+               int ct_idx = contacts_svc_find_contact_by(CTS_FIND_BY_EMAIL, tmp_addr);
+               debug_log("ct_idx = %d", ct_idx);
+
+               if (ct_idx < 0) {
+                       debug_log("CT ID is not valid");
+                       continue;
+               }
+
+               error_code = contacts_svc_get_contact(ct_idx, &email_contact);
+               error_code = contacts_svc_struct_get_list(email_contact, CTS_CF_EMAIL_LIST, &email_list);
+
+               if (email_list != NULL && g_slist_length(email_list) > 0) {
+                       int cnt = 0;
+                       EmailRecipientInfo *ri = (EmailRecipientInfo *) calloc(1, sizeof(EmailRecipientInfo));
+
+                       for (li = email_list; li != NULL; li = g_slist_next(li)) {
+                               email_addr = (char *)contacts_svc_value_get_str(li->data, CTS_EMAIL_VAL_ADDR_STR);
+                               if (email_addr && strlen(email_addr) > 0) {
+                                       debug_log("email: %s", email_addr);
+                                       debug_log("dest buf size (%d)", sizeof(ri->email_list[cnt].email_addr));
+                                       snprintf(ri->email_list[cnt].email_addr, sizeof(ri->email_list[cnt].email_addr), "%s", email_addr);
+                                       cnt++;
+                               }
+                       }
+
+                       for (i = 0; i < cnt; i++) {
+                               debug_log("ri->email_list[i].email_addr : [%s]", ri->email_list[i].email_addr);
+                               if (result_address)
+                                       result_address_ = g_strconcat(result_address, ";", ri->email_list[i].email_addr, NULL);
+                               else
+                                       result_address_ = g_strdup(ri->email_list[i].email_addr);
+
+                               if (result_address)
+                                       g_free(result_address);
+                               result_address = result_address_;
+                       }
+
+                       debug_log("result address : [%s]", result_address);
+                       contacts_svc_struct_free(email_contact);
+                       free(ri);
+               }
+       }
+
+       g_free(c_id_list);
+       *result = result_address;
+}
+
+static void _contact_button_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       EmailBlockAppData *ug_data = (EmailBlockAppData *)data;
+
+       if (g_strcmp0("", ug_data->str_filter_name) == 0) {
+               g_free(block_addr);
+               block_addr = NULL;
+       } else if (g_strcmp0(block_addr, ug_data->str_filter_name) != 0) {
+               g_free(block_addr);
+               block_addr = g_strdup(ug_data->str_filter_name);
+       }
+
+       ug_data->view_type = VIEW_BLOCK_CONTACT_ADD;
+
+       /*struct ug_cbs cbs = { 0, };
+
+       cbs.layout_cb = layout_cb;
+       cbs.result_cb = result_cb;
+       cbs.destroy_cb = destroy_cb;
+       cbs.priv = (void *)ug_data;*/
+
+       int ret;
+       service_h service = NULL;
+
+       ret = service_create(&service);
+
+       if (service) {
+               char contact_ug[255] = { 0, };
+               snprintf(contact_ug, sizeof(contact_ug), "%d", CT_UG_REQUEST_CHECK_FOR_EMAIL);
+
+               ret = service_add_extra_data(service, EMAIL_BUNDLE_KEY_CONTACT_TYPE, contact_ug);
+               //ug_data->ug_contact = ug_create(ug_data->ug, UG_NAME_CONTACT, UG_MODE_FULLVIEW, service, &cbs);
+               ug_data->ug_contact = create_ug(UG_NAME_CONTACT, service, data);
+               ret = service_destroy(service);
+       }
+}
+
+static void _recent_button_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       EmailBlockAppData *ugd = (EmailBlockAppData *)data;
+
+       if (ugd == NULL) {
+               debug_log("ugd is NULL");
+               return;
+       }
+
+       if (g_strcmp0("", ugd->str_filter_name) == 0)
+               block_addr = NULL;
+       else if (g_strcmp0(block_addr, ugd->str_filter_name) != 0)
+               block_addr = g_strdup(ugd->str_filter_name);
+
+       _block_recent_create_view(ugd);
+}
+
+static void _block_rule_vconf_key_changed_cb(keynode_t *key, void *data)
+{
+       debug_log("");
+       EmailBlockAppData *ug_data = (EmailBlockAppData *)data;
+
+       if (!ug_data) return;
+
+       if (ug_data->view_type != VIEW_BLOCK_MAIN) {
+               debug_log("not in block main view");
+               return;
+       }
+
+       if (ug_data->block_type == TYPE_BLOCK_ADDRESS) {
+               if (!elm_genlist_decorate_mode_get(ug_data->gl_addrs)) {
+                       debug_log("TYPE_BLOCK_ADDRESS");
+                       elm_object_part_content_unset(ug_data->sub_ly, "elm.swallow.content");
+                       eb_free_list(ug_data);
+                       eb_free_noc(ug_data);
+                       eb_create_list(ug_data);
+
+                       if (ug_data->address_rule_count > 0) {
+                               elm_box_pack_end(ug_data->main_box, ug_data->gl_addrs);
+                               evas_object_show(ug_data->gl_addrs);
+                               elm_object_item_disabled_set(ug_data->c_item[0], EINA_FALSE);
+                       } else {
+                               eb_create_noc(ug_data);
+                               elm_object_part_text_set(ug_data->noc, "elm.text", _("IDS_EMAIL_BODY_NO_ADDRESS"));
+                               elm_box_pack_end(ug_data->main_box, ug_data->noc_ly);
+                               evas_object_show(ug_data->noc_ly);
+                               elm_object_item_disabled_set(ug_data->c_item[0], EINA_TRUE);
+                       }
+               }
+       }
+}
+
+static void _popup_block_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       EmailBlockAppData *ugd = (EmailBlockAppData *)data;
+
+       if (ugd->popup_empty) {
+               evas_object_del(ugd->popup_empty);
+               ugd->popup_empty = NULL;
+       }
+
+       if (ugd->timeout_popup) {
+               evas_object_del(ugd->timeout_popup);
+               ugd->timeout_popup = NULL;
+       }
+}
+
+static char *_eb_gl_label_get(void *data, Evas_Object *obj, const char *part)
+{
+       debug_log("");
+       ListItemData *item_data = (ListItemData *) data;
+
+       email_rule_t *rule = NULL;
+       char buf[256];
+       memset(buf, 0x00, 256);
+
+       rule = item_data->rule;
+       snprintf(buf, sizeof(buf), "%s", rule->value);
+
+       return strdup(buf);
+}
+
+static Evas_Object *_eb_gl_icon_get(void *data, Evas_Object *obj, const char *part)
+{
+       debug_log("");
+       ListItemData *item_data = (ListItemData *) data;
+       Evas_Object *button;
+       Evas_Object *check;
+
+       if (elm_genlist_decorate_mode_get(obj)) {
+               if (!strcmp(part, "elm.edit.icon.1")) {
+                       check = elm_check_add(obj);
+                       elm_check_state_pointer_set(check, &item_data->checked);
+                       evas_object_smart_callback_add(check, "changed", _edit_item_check_changed_cb, item_data);
+                       return check;
+               }
+       } else {
+               if (0 == strcmp(part, "elm.slide.swallow.1")) {
+                       button = elm_button_add(obj);
+                       elm_object_style_set(button, "text_only/sweep");
+                       elm_object_text_set(button, dgettext("sys_string", "IDS_COM_SK_EDIT"));
+                       evas_object_smart_callback_add(button, "clicked", _eb_sweep_edit_clicked_cb, (void *)data);
+                       return button;
+               } else if (0 == strcmp(part, "elm.slide.swallow.2")) {
+                       button = elm_button_add(obj);
+                       elm_object_style_set(button, "text_only/sweep");
+                       elm_object_text_set(button, dgettext("sys_string", "IDS_COM_SK_DELETE"));
+                       evas_object_smart_callback_add(button, "clicked", _eb_sweep_delete_clicked_cb, (void *)data);
+                       return button;
+               }
+       }
+
+       return NULL;
+}
+
+static Evas_Object *_eb_gl_add_ef_icon_get(void *data, Evas_Object *obj, const char *part)
+{
+       debug_log("");
+
+       EmailBlockAppData *ug_data = _g_eb_ug_data;
+       email_rule_t *rule = (email_rule_t *) data;
+
+       if (!strcmp(part, "elm.icon")) {
+               ug_data->ef_filter_name = elm_layout_add(obj);
+               elm_layout_theme_set(ug_data->ef_filter_name, "layout", "editfield", "title");
+               ug_data->entry_filter_name = elm_entry_add(obj);
+               elm_entry_scrollable_set(ug_data->entry_filter_name, EINA_TRUE);
+               elm_entry_single_line_set(ug_data->entry_filter_name, TRUE);
+               elm_entry_cnp_mode_set(ug_data->entry_filter_name, ELM_CNP_MODE_PLAINTEXT);
+               if (ug_data->block_type == TYPE_BLOCK_ADDRESS) {
+                       elm_entry_input_panel_layout_set(ug_data->entry_filter_name, ELM_INPUT_PANEL_LAYOUT_EMAIL);
+               } else if (ug_data->block_type == TYPE_BLOCK_SUBJECT) {
+                       elm_entry_input_panel_layout_set(ug_data->entry_filter_name, ELM_INPUT_PANEL_LAYOUT_NORMAL);
+               }
+               evas_object_smart_callback_add(ug_data->entry_filter_name, "preedit,changed", _cb_backup_input, ug_data->ef_filter_name);
+               evas_object_smart_callback_add(ug_data->entry_filter_name, "changed", _cb_backup_input, ug_data->ef_filter_name);
+               evas_object_smart_callback_add(ug_data->entry_filter_name, "focused", _cb_entry_focused, ug_data->ef_filter_name);
+               evas_object_smart_callback_add(ug_data->entry_filter_name, "unfocused", _cb_entry_unfocused, ug_data->ef_filter_name);
+               evas_object_show(ug_data->entry_filter_name);
+
+               elm_object_part_content_set(ug_data->ef_filter_name, "elm.swallow.content", ug_data->entry_filter_name);
+               if (ug_data->block_type == TYPE_BLOCK_ADDRESS) {
+                       elm_object_part_text_set(ug_data->ef_filter_name, "elm.text", _("IDS_EMAIL_BODY_ADDRESS"));
+               } else if (ug_data->block_type == TYPE_BLOCK_SUBJECT) {
+                       elm_object_part_text_set(ug_data->ef_filter_name, "elm.text", dgettext("sys_string", "IDS_COM_BODY_SUBJECT"));
+               }
+               elm_object_signal_callback_add(ug_data->ef_filter_name, "elm,eraser,clicked", "elm", _cb_eraser_clicked, ug_data->entry_filter_name);
+
+               evas_object_size_hint_weight_set(ug_data->ef_filter_name, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+               evas_object_show(ug_data->ef_filter_name);
+
+               if (ug_data->str_filter_name)
+                       elm_entry_entry_set(ug_data->entry_filter_name, ug_data->str_filter_name);
+
+               if (rule) {
+                       elm_entry_entry_set(ug_data->entry_filter_name, rule->value);
+                       if (ug_data->block_type == TYPE_BLOCK_ADDRESS) {
+                               block_addr = realloc(block_addr, strlen(rule->value) + 1);
+                               sprintf(block_addr, "%s", rule->value);
+                       }
+
+                       ug_data->edit_filter_id = rule->filter_id;
+               }
+
+               if (ug_data->view_type == VIEW_BLOCK_FILTER_DATA_SET) {
+                       evas_object_show(ug_data->entry_filter_name);
+                       elm_object_focus_set(ug_data->entry_filter_name, EINA_TRUE);
+               }
+
+               return ug_data->ef_filter_name;
+       } else if (!strcmp(part, "elm.icon2")) {
+               char buf[MAX_STR_LEN] = { 0, };
+               Evas_Object *btn = elm_button_add(obj);
+               Evas_Object *ic = elm_icon_add(obj);
+               snprintf(buf, sizeof(buf), "%s/M02_function_ccbcc.png", IMGDIR);
+               elm_icon_file_set(ic, buf, NULL);
+               elm_icon_resizable_set(ic, EINA_TRUE, EINA_TRUE);
+               evas_object_show(ic);
+               elm_object_style_set(btn, "circle/empty");
+               evas_object_show(btn);
+               elm_object_part_content_set(btn, "icon", ic);
+               evas_object_smart_callback_add(btn, "clicked", _contact_button_cb, ug_data);
+               return btn;
+       }
+
+       return NULL;
+}
+
+/*static Evas_Object *_eb_gl_add_btn_icon_get(void *data, Evas_Object *obj, const char *part)
+{
+       debug_log("");
+
+       EmailBlockAppData *ug_data = _g_eb_ug_data;
+
+       if (!strcmp(part, "elm.icon.1")) {
+               ug_data->recent_btn = elm_button_add(obj);
+               elm_object_text_set(ug_data->recent_btn, dgettext("sys_string", "IDS_COM_BUTTON_RECENT"));
+               evas_object_show(ug_data->recent_btn);
+               evas_object_smart_callback_add(ug_data->recent_btn, "clicked", _recent_button_cb, ug_data);
+               return ug_data->recent_btn;
+       } else if (!strcmp(part, "elm.icon.2")) {
+               ug_data->contact_btn = elm_button_add(obj);
+               elm_object_text_set(ug_data->contact_btn, dgettext("sys_string", "IDS_COM_BODY_CONTACTS"));
+               evas_object_smart_callback_add(ug_data->contact_btn, "clicked", _contact_button_cb, ug_data);
+               evas_object_show(ug_data->contact_btn);
+               return ug_data->contact_btn;
+       }
+
+       return NULL;
+}*/
+
+static void _eb_sweep_edit_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       ListItemData *item_data = (ListItemData *) data;
+       email_rule_t *rule = item_data->rule;
+
+       EmailBlockAppData *ug_data = _g_eb_ug_data;
+       ug_data->mode = BLOCK_MODE_EDIT;
+       eb_create_add_filter_view(ug_data, rule);
+}
+
+static void _eb_sweep_delete_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       ListItemData *item_data = (ListItemData *) data;
+       email_rule_t *rule = item_data->rule;
+
+       EmailBlockAppData *ug_data = _g_eb_ug_data;
+
+       if (EMAIL_ERROR_NONE != email_delete_rule(rule->filter_id)) {
+               debug_critical("email_delete_rule fails");
+       }
+
+       _changed_filter_type_cb(ug_data, ug_data->segment, NULL);
+}
+
+static void _eb_gl_sel_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       Elm_Object_Item *item = (Elm_Object_Item *)event_info;
+       elm_genlist_item_selected_set(item, EINA_FALSE);
+       EmailBlockAppData *ug_data = _g_eb_ug_data;
+       ListItemData *item_data = (ListItemData *) data;
+
+       if (elm_genlist_decorate_mode_get(item_data->genlist)) {
+               item_data->checked = !item_data->checked;
+
+               if (item_data->checked)
+                       ug_data->edit_checked_count++;
+               else
+                       ug_data->edit_checked_count--;
+
+               if (ug_data->select_all_layout) {
+                       if (ug_data->edit_total_count == ug_data->edit_checked_count)
+                               ug_data->select_all_checked = EINA_TRUE;
+                       else
+                               ug_data->select_all_checked = EINA_FALSE;
+
+                       elm_check_state_pointer_set(ug_data->select_all_checkbox, &ug_data->select_all_checked);
+               }
+
+               elm_genlist_item_update(item_data->it);
+               _del_button_state_set(ug_data);
+               _show_selection_info(ug_data);
+
+       } else {
+               email_rule_t *rule = NULL;
+               ug_data->selected_item = elm_genlist_selected_item_get(obj);
+               ug_data->mode = BLOCK_MODE_EDIT;
+
+               if (item_data) {
+                       rule = item_data->rule;
+               }
+               eb_create_add_filter_view(ug_data, rule);
+               elm_genlist_item_selected_set(ug_data->selected_item, EINA_FALSE);
+       }
+}
+
+static void _eb_gl_del(void *data, Evas_Object *obj)
+{
+       debug_log("");
+       ListItemData *item_data = (ListItemData *) data;
+
+       if (item_data)
+               g_free(item_data);
+}
+
+static void _cb_backup_input(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       EmailBlockAppData *ug_data = _g_eb_ug_data;
+       Evas_Object *eo = (Evas_Object *)obj;
+
+       if (elm_object_focus_get(data)) {
+               if (elm_entry_is_empty(obj))
+                       elm_object_signal_emit(data, "elm,state,eraser,hide", "elm");
+               else
+                       elm_object_signal_emit(data, "elm,state,eraser,show", "elm");
+       }
+
+       if (eo == ug_data->entry_filter_name) {
+               if (ug_data->str_filter_name) {
+                       g_free(ug_data->str_filter_name);
+                       ug_data->str_filter_name = NULL;
+               }
+
+               ug_data->str_filter_name = g_strdup(elm_entry_entry_get(eo));
+
+               if (!g_strcmp0(ug_data->str_filter_name, "")) {
+                       elm_object_disabled_set(ug_data->r_button2, EINA_TRUE);
+               } else {
+                       elm_object_disabled_set(ug_data->r_button2, EINA_FALSE);
+               }
+       }
+}
+
+static void _cb_entry_focused(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+
+       if (!data || !obj) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       if (!elm_entry_is_empty(obj))
+               elm_object_signal_emit(data, "elm,state,eraser,show", "elm");
+       elm_object_signal_emit(data, "elm,state,guidetext,hide", "elm");
+}
+
+static void _cb_entry_unfocused(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+
+       if (!data || !obj) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       if (elm_entry_is_empty(obj))
+               elm_object_signal_emit(data, "elm,state,guidetext,show", "elm");
+       elm_object_signal_emit(data, "elm,state,eraser,hide", "elm");
+}
+
+static void _cb_eraser_clicked(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+       debug_log("");
+
+       if (!data || !obj) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       elm_entry_entry_set(data, "");
+}
+
+static void _edit_item_check_changed_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       ListItemData *item_data = (ListItemData *) data;
+       EmailBlockAppData *ug_data = _g_eb_ug_data;
+
+       if (item_data->checked)
+               ug_data->edit_checked_count++;
+       else
+               ug_data->edit_checked_count--;
+
+       /* update select all check button */
+       if (ug_data->select_all_layout) {
+               if (ug_data->edit_total_count == ug_data->edit_checked_count)
+                       ug_data->select_all_checked = EINA_TRUE;
+               else
+                       ug_data->select_all_checked = EINA_FALSE;
+
+               elm_check_state_pointer_set(ug_data->select_all_checkbox, &ug_data->select_all_checked);
+       }
+       _del_button_state_set(ug_data);
+       _show_selection_info(ug_data);
+}
+
+static void _del_button_state_set(EmailBlockAppData *ug_data)
+{
+       if (ug_data->edit_checked_count > 0)
+               elm_object_item_disabled_set(ug_data->c_item[2], EINA_FALSE);
+       else
+               elm_object_item_disabled_set(ug_data->c_item[2], EINA_TRUE);
+}
+
+static void _show_selection_info(EmailBlockAppData *ugd)
+{
+       if (!ugd->edit_select_info) {
+               ugd->edit_select_info = elm_notify_add(ugd->layout_main);
+               elm_notify_orient_set(ugd->edit_select_info, ELM_NOTIFY_ORIENT_BOTTOM);
+               ugd->edit_select_info_ly = elm_layout_add(ugd->layout_main);
+               elm_layout_theme_set(ugd->edit_select_info_ly, "standard", "selectioninfo", "vertical/bottom_64");
+               elm_object_content_set(ugd->edit_select_info, ugd->edit_select_info_ly);
+       }
+       if (ugd->edit_checked_count == 0)
+               evas_object_hide(ugd->edit_select_info);
+       else {
+               char text[128] = { '0', };
+               if (ugd->block_type == TYPE_BLOCK_ADDRESS) {
+                       if (ugd->edit_checked_count == 1)
+                               snprintf(text, 127, "%s (%d)", dgettext("sys_string", "IDS_COM_POP_SELECTED"), ugd->edit_checked_count);
+                       else
+                               snprintf(text, 127, "%s (%d)", dgettext("sys_string", "IDS_COM_POP_SELECTED"), ugd->edit_checked_count);
+               } else {
+                       if (ugd->edit_checked_count == 1)
+                               snprintf(text, 127, "%s (%d)", dgettext("sys_string", "IDS_COM_POP_SELECTED"), ugd->edit_checked_count);
+                       else
+                               snprintf(text, 127, "%s (%d)", dgettext("sys_string", "IDS_COM_POP_SELECTED"), ugd->edit_checked_count);
+               }
+               edje_object_part_text_set(_EDJ(ugd->edit_select_info_ly), "elm.text", text);
+               /*elm_notify_timeout_set(select_info, 1);*/
+               evas_object_show(ugd->edit_select_info);
+       }
+}
+
+static void _block_recent_create_view(void *data)
+{
+       debug_log("");
+
+       EmailBlockAppData *ugd = (EmailBlockAppData *)data;
+
+       Evas_Object *recent_layout;
+       Evas_Object *l_button;
+       Evas_Object *cbar;
+
+       _block_recent_init(ugd);
+
+       ugd->view_type = VIEW_BLOCK_RECENT_ADD;
+
+       _block_recent_set_genlist_item_style(ugd);
+
+       ugd->recent_genlist = _block_recent_create_genlist_top_half(ugd);
+
+       if (ugd->total_count > 0)
+               evas_object_data_set(ugd->recent_genlist, "view_data", ugd);
+
+       l_button = elm_button_add(ugd->navi_bar);
+       evas_object_smart_callback_add(l_button, "clicked", _block_recent_back_cb, ugd);
+       elm_object_style_set(l_button, "naviframe/back_btn/default");
+       ugd->recent_lbutton = l_button;
+
+       Elm_Object_Item *navi_it = NULL;
+
+       if (ugd->total_count > 0) {
+               recent_layout = _block_recent_create_layout(ugd);
+               _block_recent_set_editmode(ugd);
+
+               navi_it = elm_naviframe_item_push(ugd->navi_bar, _("IDS_EMAIL_HEADER_RECENT_T_HEADER"), l_button, NULL, recent_layout, NULL);
+
+               cbar = elm_toolbar_add(ugd->navi_bar);
+               elm_toolbar_shrink_mode_set(cbar, ELM_TOOLBAR_SHRINK_EXPAND);
+               elm_object_style_set(cbar, "naviframe");
+               evas_object_show(cbar);
+
+               elm_object_item_disabled_set(elm_toolbar_item_append(cbar, NULL, "", NULL, NULL), EINA_TRUE);
+               ugd->c_item[3] = elm_toolbar_item_append(cbar, NULL,
+                               dgettext("sys_string", "IDS_COM_SK_DONE"), _block_recent_done_cb, ugd);
+
+               elm_object_item_part_content_set(navi_it, "controlbar", cbar);
+               elm_object_item_disabled_set(ugd->c_item[3], EINA_TRUE);
+
+               evas_object_show(recent_layout);
+               evas_object_show(ugd->recent_genlist);
+
+               Evas_Object *waiting_popup = elm_popup_add(ugd->win_main);
+               evas_object_size_hint_weight_set(waiting_popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+               elm_object_text_set(waiting_popup, _("IDS_EMAIL_POP_RETRIEVING_ADDRESS_LIST_ING"));
+               elm_object_part_text_set(waiting_popup, "title,text", _("IDS_EMAIL_HEADER_RECENT_T_HEADER"));
+               evas_object_smart_callback_add(waiting_popup, "block,clicked", _popup_block_clicked_cb, ugd);
+               evas_object_show(waiting_popup);
+               ugd->waiting_popup = waiting_popup;
+
+               elm_object_disabled_set(l_button, EINA_TRUE);
+               ugd->recent_timer = ecore_timer_add(0.5, _block_recent_create_genlist_bottom_half, ugd);
+
+       } else {
+               ugd->no_content = _block_recent_create_no_content_view(ugd->navi_bar, ugd);
+               navi_it = elm_naviframe_item_push(ugd->navi_bar, _("IDS_EMAIL_HEADER_RECENT_T_HEADER"), l_button, NULL, ugd->no_content, NULL);
+               evas_object_show(ugd->no_content);
+       }
+}
+
+static void _block_recent_init(EmailBlockAppData *ugd)
+{
+       elm_object_content_unset(ugd->recent_box);
+
+       elm_box_unpack(ugd->recent_box,ugd->block_select_all_layout);
+       elm_box_unpack(ugd->recent_box,ugd->recent_genlist);
+
+       if (ugd->recent_genlist!= NULL) {
+               elm_genlist_clear(ugd->recent_genlist);
+               evas_object_del(ugd->recent_genlist);
+               ugd->recent_genlist = NULL;
+       }
+       if (ugd->block_select_all_layout != NULL) {
+               debug_log("delete layout");
+               evas_object_del(ugd->block_select_all_layout);
+               ugd->block_select_all_layout = NULL;
+       }
+       if (ugd->no_content != NULL) {
+               evas_object_del(ugd->no_content);
+               ugd->no_content = NULL;
+       }
+       if (ugd->recent_box!= NULL) {
+               evas_object_del(ugd->recent_box);
+               ugd->recent_box = NULL;
+       }
+
+       edje_object_signal_emit(_EDJ(ugd->layout_main), "elm,bg,show,default", "elm");
+}
+
+static void _block_recent_set_editmode(void *data)
+{
+       debug_log("");
+
+       EmailBlockAppData *ugd = (EmailBlockAppData *)data;
+
+       Evas_Object *genlist = ugd->recent_genlist;
+       Evas_Object *layout, *check;
+
+       if (!elm_genlist_decorate_mode_get(genlist)) {
+               edje_object_signal_emit(_EDJ(ugd->layout_main), "elm,bg,show,edit_mode", "elm");
+
+               layout = ugd->block_select_all_layout = elm_layout_add(ugd->recent_box);
+               elm_layout_theme_set(layout, "genlist", "item", "select_all/default");
+               evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_FILL);
+               evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+               evas_object_event_callback_add(layout, EVAS_CALLBACK_MOUSE_DOWN, _block_recent_select_all_layout_mouse_down_cb, ugd);
+
+               check = ugd->select_all_checkbox = elm_check_add(ugd->block_select_all_layout);
+               elm_check_state_pointer_set(check, &ugd->block_recent_select_all_checked);
+               evas_object_smart_callback_add(check, "changed", _block_recent_select_all_check_changed_cb, ugd);
+               evas_object_propagate_events_set(check, EINA_FALSE);
+               elm_object_part_content_set(layout, "elm.icon", check);
+
+               elm_object_part_text_set(ugd->block_select_all_layout, "elm.text", dgettext("sys_string", "IDS_COM_BODY_SELECT_ALL"));
+               elm_box_pack_start(ugd->recent_box, ugd->block_select_all_layout);
+               evas_object_show(ugd->block_select_all_layout);
+
+               elm_genlist_reorder_mode_set(genlist, EINA_FALSE);
+               elm_genlist_decorate_mode_set(genlist, EINA_TRUE);
+               elm_genlist_select_mode_set(genlist, ELM_OBJECT_SELECT_MODE_ALWAYS);
+       }
+}
+
+static void _block_recent_select_all_layout_mouse_down_cb(void *data, Evas * evas, Evas_Object *obj, void *event_info)
+{
+       EmailBlockAppData *ugd = (EmailBlockAppData *)data;
+
+       ugd->block_recent_select_all_checked = !ugd->block_recent_select_all_checked;
+       elm_check_state_pointer_set(ugd->select_all_checkbox, &ugd->block_recent_select_all_checked);
+
+       _block_recent_check_select_all(ugd);
+
+       if (ugd->checked_count > 0)
+               elm_object_item_disabled_set(ugd->c_item[3], EINA_FALSE);
+       else
+               elm_object_item_disabled_set(ugd->c_item[3], EINA_TRUE);
+}
+
+static void _block_recent_select_all_check_changed_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       EmailBlockAppData *ugd = (EmailBlockAppData *)data;
+
+       _block_recent_check_select_all(data);
+
+       if (ugd->checked_count > 0)
+               elm_object_item_disabled_set(ugd->c_item[3], EINA_FALSE);
+       else
+               elm_object_item_disabled_set(ugd->c_item[3], EINA_TRUE);
+}
+
+static void _block_recent_check_select_all(EmailBlockAppData *ugd)
+{
+       debug_log("");
+       Item_Data *it_data;
+       Elm_Object_Item *it;
+
+       if (ugd->block_recent_select_all_checked)
+               ugd->checked_count = ugd->total_count;
+       else
+               ugd->checked_count = 0;
+
+       it = elm_genlist_first_item_get(ugd->recent_genlist);
+       while (it) {
+               it_data = elm_object_item_data_get(it);
+               if (it_data)
+                       it_data->checked = ugd->block_recent_select_all_checked;
+               it = elm_genlist_item_next_get(it);
+       }
+       elm_genlist_realized_items_update(ugd->recent_genlist);
+
+       _block_recent_show_selection_info(ugd);
+}
+
+static Evas_Object *_block_recent_create_genlist_top_half(void *data)
+{
+       debug_log("");
+
+       EmailBlockAppData *ugd = (EmailBlockAppData *)data;
+
+       int mail_cnt = 0;
+       int err;
+
+       Evas_Object *recent_list = NULL;
+       recent_list = elm_genlist_add(ugd->navi_bar);
+
+       elm_genlist_homogeneous_set(recent_list, EINA_TRUE);
+       elm_genlist_tree_effect_enabled_set(recent_list, EINA_TRUE);
+       evas_object_size_hint_weight_set(recent_list, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(recent_list, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+       email_mail_list_item_t *mail_data = NULL;
+       email_mailbox_t *mail_box = NULL;
+
+       err = email_get_mailbox_by_mailbox_type(ugd->account_id, EMAIL_MAILBOX_TYPE_INBOX, &mail_box);
+
+       if (err != EMAIL_ERROR_NONE || mail_box == NULL) {
+               debug_log("[FAILED] email_get_mailbox_by_mailbox_type:%d", err);
+               goto FINISH_OFF;
+       }
+
+       debug_log("mailbox_id = %d", mail_box->mailbox_id);
+
+       err = email_get_mail_list(ugd->account_id,
+                                       mail_box->mailbox_id, EMAIL_LIST_TYPE_NORMAL, -1,
+                                       10,
+                                       EMAIL_SORT_DATETIME_HIGH, &mail_data, &mail_cnt);
+
+       if (mail_box) {
+               email_free_mailbox(&mail_box, 1);
+               mail_box = NULL;
+       }
+
+       if (err < 0 || mail_cnt < 0) {
+               debug_log("Get mail address list failed : [%d]", err);
+               goto FINISH_OFF;
+       }
+
+       ugd->recent_mail_data = mail_data;
+
+FINISH_OFF:
+       ugd->total_count = mail_cnt;
+       return recent_list;
+}
+
+static Eina_Bool _block_recent_create_genlist_bottom_half(void *data)
+{
+       debug_log("");
+
+       EmailBlockAppData *ugd = (EmailBlockAppData *)data;
+
+       int index;
+       int total_cnt = 0;
+
+       Evas_Object *recent_list = ugd->recent_genlist;
+       Item_Data *item_data = NULL;
+
+       email_address_info_list_t *addrs_info_list = NULL;
+       email_mail_list_item_t *mail_data = ugd->recent_mail_data;
+
+       if (!mail_data) {
+               debug_log("mail_data is NULL");
+               goto FINISH_OFF;
+       }
+
+       if (ugd->total_count > MAX_RECENT_MAIL_TO_RETRIEVE)
+               ugd->total_count = MAX_RECENT_MAIL_TO_RETRIEVE;
+
+       for (index = 0; index < ugd->total_count; index++, mail_data++) {
+
+               if (mail_data->mail_id <= 0) {
+                       debug_log("Invalid mail ID");
+                       goto FINISH_OFF;
+               }
+
+               email_get_address_info_list(mail_data->mail_id, &addrs_info_list);
+
+               if (!addrs_info_list || !(addrs_info_list->from)) {
+                       debug_log("address info is NULL");
+                       goto FINISH_OFF;
+               }
+
+               int n_to_list = g_list_length(addrs_info_list->from);
+               int i = 0;
+
+               for (i = 0; i < n_to_list; i++) {
+                       email_address_info_t *addrs_info = NULL;
+
+                       addrs_info = (email_address_info_t *) g_list_nth_data(addrs_info_list->from, i);
+
+                       if (addrs_info && addrs_info->address) {
+                               if (total_cnt == MAX_RECENT_CNT)
+                                       break;
+
+                               item_data = calloc(1, sizeof(Item_Data));
+                               item_data->address = g_strdup(addrs_info->address);
+                               if (!_block_recent_check_addr_is_duplicated(addrs_info->address, recent_list)) {
+                                       item_data->it = elm_genlist_item_append(recent_list,
+                                                                               &itc,
+                                                                               item_data,
+                                                                               NULL, ELM_GENLIST_ITEM_NONE, _block_recent_gl_sel, item_data);
+
+                                       total_cnt++;
+                               }
+                       }
+               }
+       }
+
+       if (addrs_info_list) {
+               email_free_address_info_list(&addrs_info_list);
+               addrs_info_list = NULL;
+       }
+
+FINISH_OFF:
+
+       if (ugd->waiting_popup) {
+               evas_object_del(ugd->waiting_popup);
+               ugd->waiting_popup = NULL;
+       }
+
+       if (ugd->recent_mail_data) {
+               g_free(ugd->recent_mail_data);
+               ugd->recent_mail_data = NULL;
+       }
+
+       elm_object_disabled_set(ugd->recent_lbutton, EINA_FALSE);
+       ugd->total_count = total_cnt;
+       return EINA_FALSE;
+}
+
+static Evas_Object *_block_recent_create_layout(EmailBlockAppData *ugd)
+{
+       Evas_Object *genlist = ugd->recent_genlist;
+       Evas_Object *box, *conform;
+
+       elm_win_conformant_set(ugd->win_main, EINA_TRUE);
+
+       conform = elm_conformant_add(ugd->navi_bar);
+       elm_object_style_set(conform, "internal_layout");
+       evas_object_size_hint_weight_set(conform, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_show(conform);
+
+       box = elm_box_add(ugd->navi_bar);
+       ugd->recent_box = box;
+       evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_show(box);
+
+       evas_object_show(genlist);
+       elm_box_pack_end(box, genlist);
+
+       elm_object_content_set(conform, box);
+
+       return conform;
+}
+
+static void _block_recent_set_genlist_item_style(EmailBlockAppData *ugd)
+{
+       itc.item_style = "1text";
+       itc.func.text_get = _block_recent_gl_label_get;
+       itc.func.content_get = _block_recent_gl_icon_get;
+       itc.func.state_get = NULL;
+       itc.func.del = NULL;
+       itc.decorate_all_item_style = "edit_default";
+}
+
+static void _block_recent_gl_sel(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       Elm_Object_Item *item = (Elm_Object_Item *)event_info;
+       elm_genlist_item_selected_set(item, EINA_FALSE);
+
+       Item_Data *item_data = (Item_Data *) data;
+       EmailBlockAppData *ugd = (EmailBlockAppData *)evas_object_data_get(obj, "view_data");
+
+       if (elm_genlist_decorate_mode_get(ugd->recent_genlist)) {
+               item_data->checked = !item_data->checked;
+
+               if (item_data->checked)
+                       ugd->checked_count++;
+               else
+                       ugd->checked_count--;
+
+               if (ugd->block_select_all_layout) {
+                       if (ugd->total_count == ugd->checked_count)
+                               ugd->block_recent_select_all_checked = EINA_TRUE;
+                       else
+                               ugd->block_recent_select_all_checked = EINA_FALSE;
+
+                       elm_check_state_pointer_set(ugd->select_all_checkbox, &ugd->block_recent_select_all_checked);
+               }
+
+               elm_genlist_item_update(item_data->it);
+
+               if (ugd->checked_count > 0)
+                       elm_object_item_disabled_set(ugd->c_item[3], EINA_FALSE);
+               else
+                       elm_object_item_disabled_set(ugd->c_item[3], EINA_TRUE);
+
+               _block_recent_show_selection_info(ugd);
+       }
+}
+
+static char *_block_recent_gl_label_get(void *data, Evas_Object *obj, const char *part)
+{
+       debug_log("");
+
+       Item_Data *item_data = (Item_Data *) data;
+       if (!item_data)
+               return NULL;
+
+       debug_log("addr = %s", item_data->address);
+
+       if (!g_strcmp0(part, "elm.text"))
+               return strdup(item_data->address);
+
+       return NULL;
+}
+
+static Evas_Object *_block_recent_gl_icon_get(void *data, Evas_Object *obj, const char *part)
+{
+       debug_log("");
+       Evas_Object *check = NULL;
+       Item_Data *item_data = (Item_Data *) data;
+
+       if (elm_genlist_decorate_mode_get(obj)) {
+               if (!strcmp(part, "elm.edit.icon.1")) {
+                       check = elm_check_add(obj);
+                       elm_check_state_pointer_set(check, &item_data->checked);
+                       evas_object_smart_callback_add(check, "changed", _block_recent_item_check_changed_cb, item_data);
+                       return check;
+               }
+       }
+
+       return NULL;
+}
+
+static void _block_recent_item_check_changed_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       Item_Data *item_data = (Item_Data *) data;
+       EmailBlockAppData *ugd = (EmailBlockAppData *)evas_object_data_get(elm_object_item_widget_get(item_data->it), "view_data");
+
+       if (item_data->checked)
+               ugd->checked_count++;
+       else
+               ugd->checked_count--;
+
+       if (ugd->block_select_all_layout) {
+               if (ugd->total_count == ugd->checked_count)
+                       ugd->block_recent_select_all_checked = EINA_TRUE;
+               else
+                       ugd->block_recent_select_all_checked = EINA_FALSE;
+
+               elm_check_state_pointer_set(ugd->select_all_checkbox, &ugd->block_recent_select_all_checked);
+       }
+
+       if (ugd->checked_count > 0)
+               elm_object_item_disabled_set(ugd->c_item[3], EINA_FALSE);
+       else
+               elm_object_item_disabled_set(ugd->c_item[3], EINA_TRUE);
+
+       _block_recent_show_selection_info(ugd);
+}
+
+static bool _block_recent_check_addr_is_duplicated(const char *addr, Evas_Object *recent_list)
+{
+       debug_log("");
+
+       Elm_Object_Item *item;
+       Item_Data *it_data;
+
+       debug_log("addr = %s", addr);
+
+       item = elm_genlist_first_item_get(recent_list);
+
+       while (item) {
+               it_data = (Item_Data *) elm_object_item_data_get(item);
+
+               debug_log("str = %s", it_data->address);
+
+               if (g_strcmp0(addr, it_data->address) == 0)
+                       return true;
+
+               item = elm_genlist_item_next_get(item);
+       }
+
+       return false;
+}
+
+static void _block_recent_back_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+
+       EmailBlockAppData *ugd = (EmailBlockAppData *)data;
+
+       if (ugd->view_type != VIEW_BLOCK_RECENT_ADD) {
+               debug_log("**double clicked**");
+               return;
+       }
+
+       elm_object_disabled_set(ugd->recent_lbutton, EINA_TRUE);
+       elm_object_item_disabled_set(ugd->c_item[3], EINA_TRUE);
+
+       if (ugd->recent_select_info) {
+               evas_object_del(ugd->recent_select_info);
+               ugd->recent_select_info = NULL;
+       }
+
+       ugd->block_recent_select_all_checked = EINA_FALSE;
+
+       ugd->checked_count = 0;
+
+       ugd->view_type = VIEW_BLOCK_FILTER_DATA_SET;
+
+       /*elm_object_signal_emit(ugd->ef_filter_name, "clicked", "elm");*/
+       evas_object_show(ugd->entry_filter_name);
+       elm_object_focus_set(ugd->entry_filter_name, EINA_TRUE);
+
+       elm_naviframe_item_pop(ugd->navi_bar);
+}
+
+static void _block_recent_done_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       EmailBlockAppData *ugd = (EmailBlockAppData *)data;
+
+       char *result_address = NULL;
+       char *result_address_ = NULL;
+
+       elm_object_disabled_set(ugd->recent_lbutton, EINA_TRUE);
+       elm_object_item_disabled_set(ugd->c_item[3], EINA_TRUE);
+
+       if (ugd->recent_select_info) {
+               evas_object_del(ugd->recent_select_info);
+               ugd->recent_select_info = NULL;
+       }
+
+       Item_Data *item_data;
+       Elm_Object_Item *it;
+
+       it = elm_genlist_first_item_get(ugd->recent_genlist);
+
+       while (it) {
+               item_data = elm_object_item_data_get(it);
+               it = elm_genlist_item_next_get(it);
+
+               if ((item_data) && (item_data->checked)) {
+                       char *email_addr = item_data->address;
+                       if (email_addr) {
+                               if (result_address)
+                                       result_address_ = g_strconcat(result_address, ";", email_addr, NULL);
+                               else
+                                       result_address_ = g_strdup(email_addr);
+
+                               if (result_address)
+                                       g_free(result_address);
+
+                               result_address = result_address_;
+                       }
+               }
+               debug_log("result address : [%s]", result_address);
+       }
+
+       if (!block_addr) {
+               block_addr = g_strdup(result_address);
+               debug_log("Null block_addr = %s", block_addr);
+               elm_entry_entry_set(ugd->entry_filter_name, block_addr);
+               ugd->str_filter_name = g_strdup(block_addr);
+       } else {
+               char *addr_tmp = block_addr;
+               block_addr = g_strconcat(block_addr, ";", result_address, NULL);
+               debug_log("Not Null block_addr = %s", block_addr);
+               elm_entry_entry_set(ugd->entry_filter_name, block_addr);
+               g_free(addr_tmp);
+               ugd->str_filter_name = g_strdup(block_addr);
+       }
+
+       ugd->block_recent_select_all_checked = EINA_FALSE;
+
+       ugd->checked_count = 0;
+
+       ugd->view_type = VIEW_BLOCK_FILTER_DATA_SET;
+
+       g_free(result_address);
+
+       elm_genlist_decorate_mode_set(ugd->recent_genlist, EINA_FALSE);
+       elm_genlist_select_mode_set(ugd->recent_genlist, ELM_OBJECT_SELECT_MODE_DEFAULT);
+
+       /*elm_object_signal_emit(ugd->ef_filter_name, "clicked", "elm");*/
+       evas_object_show(ugd->entry_filter_name);
+       elm_object_focus_set(ugd->entry_filter_name, EINA_TRUE);
+
+       elm_naviframe_item_pop(ugd->navi_bar);
+}
+
+static Evas_Object *_block_recent_create_no_content_view(Evas_Object *parent, void *data)
+{
+       debug_log("");
+
+       Evas_Object *no_content = elm_layout_add(parent);
+       elm_layout_theme_set(no_content, "layout", "nocontents", "full");
+       elm_object_part_text_set(no_content, "elm.text", dgettext("sys_string", "IDS_COM_BODY_NO_CONTENTS"));
+
+       evas_object_show(no_content);
+
+       return no_content;
+}
+
+static void _block_recent_show_selection_info(EmailBlockAppData *ugd)
+{
+       if (!ugd->recent_select_info) {
+               ugd->recent_select_info = elm_notify_add(ugd->layout_main);
+               elm_notify_orient_set(ugd->recent_select_info, ELM_NOTIFY_ORIENT_BOTTOM);
+               ugd->recent_select_info_ly = elm_layout_add(ugd->layout_main);
+               elm_layout_theme_set(ugd->recent_select_info_ly, "standard", "selectioninfo", "vertical/bottom_64");
+               elm_object_content_set(ugd->recent_select_info, ugd->recent_select_info_ly);
+       }
+
+       if (ugd->checked_count == 0)
+               evas_object_hide(ugd->recent_select_info);
+       else {
+               char text[128] = { '0', };
+               if (ugd->checked_count == 1)
+                       snprintf(text, 127, "%s (%d)", dgettext("sys_string", "IDS_COM_POP_SELECTED"), ugd->checked_count);
+               else
+                       snprintf(text, 127, "%s (%d)", dgettext("sys_string", "IDS_COM_POP_SELECTED"), ugd->checked_count);
+               edje_object_part_text_set(_EDJ(ugd->recent_select_info_ly), "elm.text", text);
+               /*elm_notify_timeout_set(select_info, 1);*/
+               evas_object_show(ugd->recent_select_info);
+       }
+}
+
+/* EOF */
diff --git a/block/theme/email-block-theme-macro.edc b/block/theme/email-block-theme-macro.edc
new file mode 100755 (executable)
index 0000000..968cf7b
--- /dev/null
@@ -0,0 +1,1410 @@
+/*
+ * Copyright 2012  Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *    http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#define GENLIST_HEIGHT_1_INC 1
+#define GENLIST_HEIGHT_16_INC 16
+#define GENLIST_HEIGHT_33_INC 33
+#define GENLIST_HEIGHT_49_INC 49
+#define GENLIST_HEIGHT_62_INC 62
+#define GENLIST_HEIGHT_65_INC 65
+#define GENLIST_HEIGHT_73_INC 73
+#define GENLIST_HEIGHT_77_INC 77
+#define GENLIST_HEIGHT_89_INC 89
+#define GENLIST_HEIGHT_93_INC 93
+#define GENLIST_HEIGHT_97_INC 97
+#define GENLIST_HEIGHT_129_INC 129
+#define GENLIST_HEIGHT_161_INC 161
+#define GENLIST_HEIGHT_163_INC 163
+#define GENLIST_HEIGHT_164_INC 164
+#define GENLIST_HEIGHT_165_INC 165
+#define GENLIST_HEIGHT_177_INC 177
+#define GENLIST_HEIGHT_182_INC 182
+#define GENLIST_HEIGHT_190_INC 190
+#define GENLIST_HEIGHT_207_INC 207
+#define GENLIST_HEIGHT_260_INC 260
+#define GENLIST_HEIGHT_291_INC 291
+#define GENLIST_HEIGHT_454_INC 454
+#define GENLIST_HEIGHT_566_INC 566
+
+#define GENLIST_PADDING_4_INC 4
+#define GENLIST_PADDING_5_INC 5
+#define GENLIST_PADDING_6_INC 6
+#define GENLIST_PADDING_8_INC 8
+#define GENLIST_PADDING_10_INC 10
+#define GENLIST_PADDING_11_INC 11
+#define GENLIST_PADDING_12_INC 12
+#define GENLIST_PADDING_13_INC 13
+#define GENLIST_PADDING_14_INC 14
+#define GENLIST_PADDING_16_INC 16
+#define GENLIST_PADDING_18_INC 18
+#define GENLIST_PADDING_21_INC 21
+#define GENLIST_PADDING_22_INC 22
+#define GENLIST_PADDING_24_INC 24
+#define GENLIST_PADDING_27_INC 27
+#define GENLIST_PADDING_32_INC 32
+#define GENLIST_PADDING_34_INC 34
+#define GENLIST_PADDING_46_INC 46
+#define GENLIST_PADDING_48_INC 48
+#define GENLIST_PADDING_64_INC 64
+#define GENLIST_PADDING_74_INC 74
+#define GENLIST_PADDING_88_INC 88
+#define GENLIST_PADDING_124_INC 124
+
+#define GENLIST_TEXT_SIZE_LIST_MAIN_TEXT 44
+#define GENLIST_TEXT_SIZE_LIST_BUBBLE_TEXT 32
+#define GENLIST_TEXT_SIZE_NAME_TEXT 32
+#define GENLIST_TEXT_SIZE_LIST_MESSAGE_TEXT 32
+#define GENLIST_FONT_27_INC 27
+#define GENLIST_FONT_28_INC 28
+#define GENLIST_FONT_30_INC 30
+#define GENLIST_FONT_32_INC 32
+#define GENLIST_FONT_STYLE_32_INC "32"
+#define GENLIST_FONT_36_INC 36
+#define GENLIST_FONT_STYLE_36_INC "36"
+#define GENLIST_FONT_40_INC 40
+#define GENLIST_FONT_STYLE_40_INC "40"
+#define GENLIST_FONT_42_INC 42
+#define GENLIST_FONT_STYLE_42_INC "42"
+#define GENLIST_FONT_48_INC 48
+#define GENLIST_FONT_STYLE_48_INC "48"
+
+#define GENLIST_SIZE_4_INC 4
+#define GENLIST_SIZE_6_INC 6
+#define GENLIST_SIZE_8_INC 8
+#define GENLIST_SIZE_10_INC 10
+#define GENLIST_SIZE_13_INC 13
+#define GENLIST_SIZE_16_INC 16
+#define GENLIST_SIZE_18_INC 18
+#define GENLIST_SIZE_21_INC 21
+#define GENLIST_SIZE_28_INC 28
+#define GENLIST_SIZE_35_INC 35
+#define GENLIST_SIZE_38_INC 38
+#define GENLIST_SIZE_40_INC 40
+#define GENLIST_SIZE_42_INC 42
+#define GENLIST_SIZE_44_INC 44
+#define GENLIST_SIZE_45_INC 45
+#define GENLIST_SIZE_46_INC 46
+#define GENLIST_SIZE_48_INC 48
+#define GENLIST_SIZE_54_INC 54
+#define GENLIST_SIZE_56_INC 56
+#define GENLIST_SIZE_57_INC 57
+#define GENLIST_SIZE_60_INC 60
+#define GENLIST_SIZE_61_INC 61
+#define GENLIST_SIZE_SLIDE_60_INC 60
+#define GENLIST_SIZE_66_INC 66
+#define GENLIST_SIZE_74_INC 74
+#define GENLIST_SIZE_SLIDE_74_INC 74
+#define GENLIST_SIZE_80_INC 80
+#define GENLIST_SIZE_88_INC 88
+#define GENLIST_SIZE_90_INC 90
+#define GENLIST_SIZE_96_INC 96
+#define GENLIST_SIZE_112_INC 112
+#define GENLIST_SIZE_116_INC 116
+#define GENLIST_SIZE_128_INC 128
+#define GENLIST_SIZE_133_INC 133
+#define GENLIST_SIZE_141_INC 141
+#define GENLIST_SIZE_144_INC 144
+#define GENLIST_SIZE_154_INC 154
+#define GENLIST_SIZE_160_INC 160
+#define GENLIST_SIZE_163_INC 163
+#define GENLIST_SIZE_168_INC 168
+#define GENLIST_SIZE_174_INC 174
+#define GENLIST_SIZE_SLIDE_165_INC 165
+#define GENLIST_SIZE_176_INC 176
+#define GENLIST_SIZE_177_INC 177
+#define GENLIST_SIZE_192_INC 192
+#define GENLIST_SIZE_195_INC 195
+#define GENLIST_SIZE_197_INC 197
+#define GENLIST_SIZE_206_INC 206
+#define GENLIST_SIZE_234_INC 234
+#define GENLIST_SIZE_235_INC 235
+#define GENLIST_SIZE_SLIDE_220_INC 220
+#define GENLIST_SIZE_304_INC 304
+#define GENLIST_SIZE_390_INC 390
+#define GENLIST_SIZE_448_INC 448
+#define GENLIST_SIZE_560_INC 560
+#define GENLIST_SIZE_576_INC 576
+#define GENLIST_SIZE_672_INC 672
+
+#define GENLIST_TREESIZE_16_INC 16
+#define GENLIST_TREESIZE_20_INC 20
+
+// ----------- TEXT COLOR ---------------- //
+#define GENLIST_TEXT_COLOR_LIST_MAIN_TEXT_READ    124 124 124 255
+#define GENLIST_TEXT_COLOR_LIST_MAIN_TEXT_UNREAD  0 0 0 255
+#define GENLIST_TEXT_COLOR_LIST_MAIN_TEXT_FOCUS   249 249 249 255
+
+#define GENLIST_TEXT_COLOR_LIST_SUB_TEXT_DEFAULT  124 124 124 255
+#define GENLIST_TEXT_COLOR_LIST_SUB_TEXT_SETTINGS 42 137 194 204
+#define GENLIST_TEXT_COLOR_LIST_SUB_TEXT_FOCUS    249 249 249 255
+
+#define GENLIST_TEXT_COLOR_FLEXIBLE_TEXT_MAIN     0 0 0 255
+#define GENLIST_TEXT_COLOR_FLEXIBLE_TEXT_SUB      149 149 149 255
+
+#define GENLIST_TEXT_COLOR_EDITFIELD_TEXT         158 187 205 255
+#define GENLIST_TEXT_COLOR_EDITFIELD_TEXT_CURSOR  42 137 194 255
+
+#define GENLIST_TEXT_COLOR_MULTILINE_TEXT 124 124 124 255
+
+#define GENLIST_TEXT_COLOR_INDEX_LIST              29 100 149 255
+#define GENLIST_TEXT_COLOR_3LINE_MAIN_TEXT_01_READ 124 124 124 255
+#define GENLIST_TEXT_COLOR_3LINE_MAIN_TEXT_01_UNREAD 0 0 0 255
+#define GENLIST_TEXT_COLOR_3LINE_MAIN_TEXT_01_FOCUS 249 249 249 255
+
+#define GENLIST_TEXT_COLOR_3LINE_MAIN_TEXT_02 124 124 124 255
+#define GENLIST_TEXT_COLOR_3LINE_MAIN_TEXT_02_FOCUS 249 249 249 255
+
+#define GENLIST_TEXT_COLOR_3LINE_MAIN_TEXT_03 124 124 124 255
+#define GENLIST_TEXT_COLOR_3LINE_MAIN_TEXT_03_FOCUS 249 249 249 255
+
+#define GENLIST_TEXT_COLOR_CONVERTOR_STYLE 249 249 249 255
+#define GENLIST_TEXT_COLOR_CONVERTOR_STYLE_FOCUS 249 249 249 255
+
+#define GENLIST_TEXT_COLOR_UNREAD_EMAIL 0 0 0 255
+#define GENLIST_TEXT_COLOR_CONTENTS_TEXT 210 210 210 255
+#define GENLIST_TEXT_COLOR_NAME_TEXT 128 128 128 255
+#define GENLIST_TEXT_COLOR_NAME_TEXT_DIM 42 137 194 255
+#define GENLIST_TEXT_COLOR_LIST_BUBBLE_TEXT 249 249 249 255
+#define GENLIST_TEXT_COLOR_LIST_MESSAGE_TEXT 0 0 0 255
+
+#define GENLIST_TEXT_COLOR_BUBBLE_READ_MESSAGE 0 0 0 255
+#define GENLIST_TEXT_COLOR_BUBBLE_MESSAGE_TIME 0 0 0 255
+#define GENLIST_TEXT_COLOR_BUBBLE_SENT_MESSAGE 0 0 0 255
+#define GENLIST_TEXT_COLOR_BUBBLE_SOS_MESSAGE 192 23 23 255
+#define GENLIST_TEXT_COLOR_BUBBLE_MESSAGE_DATE 128 128 128 255
+#define GENLIST_TEXT_COLOR_BUBBLE_LINK_MESSAGE 34 129 157 255
+#define GENLIST_TEXT_COLOR_BUBBLE_MESSAGE_FAILED 211 0 0 255
+#define GENLIST_TEXT_COLOR_BUBBLE_READ_MESSAGE_NAME 57 166 215 255
+#define GENLIST_TEXT_COLOR_BUBBLE_MESSAGE_HELP 146 146 146 255
+#define GENLIST_TEXT_COLOR_SWEEP_STYLE 118 118 118 255
+
+#define GENLIST_TEXT_COLOR_STYLE_NAME_TEXT "#808080FF"
+#define GENLIST_TEXT_COLOR_STYLE_LIST_MAIN_TEXT_READ "#000000FF"
+#define GENLIST_TEXT_COLOR_STYLE_LIST_SUB_TEXT "#7C7C7CFF"
+#define GENLIST_TEXT_COLOR_LIST_MESSAGE_TEXT_STYLE "#000000FF"
+#define GENLIST_PART_FONT_FLEXIBLE_TEXT_MAIN_STYLE_COLOR_INC "#000000FF"
+#define GENLIST_PART_FONT_FLEXIBLE_TEXT_SUB_STYLE_COLOR_INC "#959595FF"
+#define GENLIST_PART_FONT_MULTILINE_TEXT_STYLE_COLOR_INC "#959595FF"
+#define GENLIST_PART_FONT_3LINE_MAIN_TEXT_READ_STYLE_COLOR_INC "#7C7C7CFF"
+#define GENLIST_PART_FONT_3LINE_MAIN_TEXT_UNREAD_STYLE_COLOR_INC "#000000FF"
+#define GENLIST_PART_FONT_3LINE_MAIN_TEXT_FOCUS_STYLE_COLOR_INC "#F9F9F9FF"
+#define GENLIST_PART_FONT_3LINE_MAIN_TEXT_2_STYLE_COLOR_INC "#7C7C7CFF"
+#define GENLIST_PART_FONT_3LINE_MAIN_TEXT_2_FOCUS_STYLE_COLOR_INC "#F9F9F9FF"
+#define GENLIST_PART_FONT_HELP_TEXT_STYLE_COLOR_INC "#7C7C7CFF"
+#define GENLIST_TEXT_COLOR_LIST_BUBBLE_TEXT_STYLE "#F9F9F9FF"
+
+#define GENLIST_PART_DISCLIP_COLOR_INC 255 255 255 110 // alpha was 64 [???]
+#define GENLIST_PART_BG_COLOR_INC 236 240 242 255
+#define GENLIST_PART_LIST_BG_COLOR_INC 249 249 249 255
+#define GENLIST_PART_LIST_LINE_COLOR_INC 169 169 169 255
+#define GENLIST_PART_LIST_PRESS_COLOR_INC 42 137 194 255
+#define GENLIST_PART_TEXT_PRESS_COLOR_INC 249 249 249 255
+#define GENLIST_PART_EXPANDABLE_2ND_DEPTH_BG_COLOR_INC 215 225 232 255
+#define GENLIST_PART_EXPANDABLE_3ND_DEPTH_BG_COLOR_INC 215 225 232 255
+#define GENLIST_PART_EDIT_SELECT_ALL_BG_COLOR_INC 215 225 232 255
+#define GENLIST_PART_EDIT_REORDER_BG_COLOR_INC 215 225 232 255
+#define GENLIST_PART_EDIT_1PIXEL_LINE_COLOR_INC 169 169 169 255
+#define GENLIST_PART_BUBBLE_DATE_BG_COLOR_INC 56 69 90 255
+#define GENLIST_PART_BUBBLE_1PIXEL_LINE_COLOR_INC 153 153 153 255
+//
+// Remove this, use GENLIST_PART_BASE_EVENT_OFF instead
+#define GENLIST_PART_INDEX_LIST_BASE_EVENT_INC \
+         part { name: "base_event";\
+            type: RECT;\
+            repeat_events: 0;\
+            description { state: "default" 0.0;\
+               color: 0 0 0 0;\
+            }\
+         }
+#define GENLIST_PART_INDEX_LIST_BASE_IMAGE_INC \
+         part { name: "base_image";\
+            repeat_events: 1;\
+            description { state: "default" 0.0;\
+               rel1.to: "rect";\
+               rel2.to: "rect";\
+               image {\
+                  normal: "00_index list_bg.png";\
+                  border: 0 0 2 2;\
+               }\
+            }\
+         }
+
+#define GENLIST_PART_TEXT_PRESS_STYLE_COLOR_INC "#F9F9F9FF"
+#define GENLIST_PART_MATCH_TAG_COLOR_INC "+ color=#3F8DAD"
+
+#define GENLIST_DIALOGUE_GT_TEXT_COLOR 102 102 102 255
+#define GENLIST_DIALOGUE_FONT_EDIT_MODE_TEXT_01_COLOR_INC 100 100 100 255
+#define GENLIST_DIALOGUE_FONT_EDIT_MODE_TEXT_01_FOCUS_COLOR_INC 249 249 249 255
+#define GENLIST_DIALOGUE_FONT_EDIT_MODE_TEXT_02_COLOR_INC 249 249 249 255
+#define GENLIST_DIALOGUE_FONT_EDIT_MODE_TEXT_02_DIM_COLOR_INC 7 180 211 255
+#define GENLIST_DIALOGUE_FONT_EDIT_MODE_TEXT_02_FOCUS_COLOR_INC 249 249 249 255
+#define GENLIST_DIALOGUE_FONT_DETAIL_TEXT_MAIN_COLOR_INC 0 0 0 255
+#define GENLIST_DIALOGUE_FONT_DETAIL_TEXT_SUB_COLOR_INC 124 124 124 255
+#define GENLIST_DIALOGUE_FONT_APPS_NAME_COLOR_INC 0 0 0 255
+#define GENLIST_DIALOGUE_FONT_APPS_INC_COLOR_INC 124 124 124 255
+#define GENLIST_DIALOGUE_FONT_APPS_RATING_COLOR_INC 124 124 124 255
+#define GENLIST_DIALOGUE_FONT_APPS_PRICE_ORIGINAL_COLOR_INC 7 180 211 255
+#define GENLIST_DIALOGUE_FONT_APPS_PRICE_SALE_COLOR_INC 221 134 21 255
+#define GENLIST_DIALOGUE_FONT_APPS_PRICE_FREE_COLOR_INC 7 180 211 255
+#define GENLIST_DIALOGUE_FONT_PASSWORD_TITLE_COLOR_INC 124 124 124 255
+#define GENLIST_DIALOGUE_FONT_PASSWORD_INPUT_TEXT_COLOR_INC 0 0 0 255
+#define GENLIST_DIALOGUE_FONT_DETAIL_WORD_COLOR_INC 249 249 249 255
+#define GENLIST_DIALOGUE_FONT_DETAIL_PRONUNCIATION_COLOR_INC 7 180 211 255
+#define GENLIST_DIALOGUE_FONT_DETAIL_NATION_COLOR_INC 146 146 146 255
+#define GENLIST_DIALOGUE_FONT_DETAIL_INFO_01_COLOR_INC 249 249 249 255
+#define GENLIST_DIALOGUE_FONT_DETAIL_INFO_02_COLOR_INC 146 146 146 255
+
+#define GENLIST_DIALOGUE_GROUP_BG_COLOR_INC 236 240 242 255
+#define GENLIST_DIALOGUE_GROUP_LIST_BG_COLOR_INC 249 249 249 255
+#define GENLIST_DIALOGUE_GROUP_LEFT_BG_COLOR_INC 108 168 199 255
+#define GENLIST_DIALOGUE_1PIXEL_LINE_COLOR_INC 142 154 163 255
+#define GENLIST_DIALOGUE_ICON_1PIXEL_LINE_COLOR_INC 68 68 68 255
+#define GENLIST_DIALOGUE_PHOTO_ID_1PIXEL_LINE_COLOR_INC 68 68 68 255
+#define GENLIST_DIALOGUE_BG_IMAGE_COLOR_INC 236 240 242 255
+
+#define GENLIST_SWEEP_BG_COLOR_INC 236 240 242 255
+
+#define GENLIST_PART_EMAIL_MSGCOUNT_TEXT_COLOR_INC 255 255 255 255
+#define GENLIST_PART_TEXTBLOCK_STYLE_COLOR_INC "#a8a8a8FF"
+#define GENLIST_PART_TEXTBLOCK_STYLE_SELECTED_COLOR_INC "#646464"
+#define GENLIST_PART_TEXTBLOCK_READ_STYLE_COLOR_INC "#9E9E9EFF"
+#define GENLIST_PART_TEXTBLOCK_UNREAD_STYLE_COLOR_INC "#000000FF"
+#define GENLIST_PART_TEXTBLOCK_SUB_STYLE_COLOR_INC "#a8a8a8"
+#define GENLIST_PART_TEXTBLOCK_URGENCY_READ_STYLE_COLOR_INC "#AB5252"
+#define GENLIST_PART_TEXTBLOCK_URGENCY_UNREAD_STYLE_COLOR_INC "#CF2525"
+
+#define GENLIST_HEIGHT_1LINE 113  // excep bottom 1 line
+//FIXME: Change from GENLIST_TREESIZE_DEFAULT to below macro
+#define GENLIST_TREESIZE_DEFAULT 32
+
+#define GENLIST_PADDING_SIZE_DEFAULT   16
+#define GENLIST_PADDING_SIZE_LEFT      GENLIST_PADDING_SIZE_DEFAULT
+#define GENLIST_PADDING_SIZE_RIGHT     GENLIST_PADDING_SIZE_DEFAULT
+#define GENLIST_PADDING_SIZE_TOP       10
+#define GENLIST_PADDING_SIZE_BOTTOM    10
+
+#define GENLIST_TEXT2_WIDTH_MIN 150
+
+#define GENLIST_SIZE_PASSWORD_ICON 114
+
+#define GENLIST_TEXT_BTN_HEIGHT   72
+#define GENLIST_ICON_SMALL_SIZE   32
+#define GENLIST_ICON_MEDIUM_SIZE  48
+#define GENLIST_ICON_BIG_SIZE     64
+#define GENLIST_ICON_ONOFF_HEIGHT 80
+#define GENLIST_ICON_ONOFF_WIDTH  60
+#define GENLIST_ICON_CHECK_SIZE   60
+#define GENLIST_ICON_RADIO_SIZE   60
+
+// Group Title
+#define GENLIST_GT_PAD_T_H 36
+#define GENLIST_GT_PAD_B_H 10
+#define GENLIST_GT_TEXT_H  36
+#define GENLIST_GT_PAD_L_W 16
+#define GENLIST_GT_PAD_R_W 36
+#define GENLIST_GT_PAD_M_W 16
+#define GENLIST_GT_H       GENLIST_GT_PAD_T_H + GENLIST_GT_PAD_B_H + GENLIST_GT_TEXT_H
+
+#define GENLIST_DIALOGUE_SEPARATOR_DEFAULT_HEIGHT 40
+
+
+#define GENLIST_DESCRIPT_DEFAULT( left, right, top, bottom ) \
+      description { state: "default" 0.0;\
+         rel1 { \
+            relative: 1 1; \
+            to_x: left; \
+            to_y: top; \
+         }\
+         rel2 {\
+            relative: 0 0;\
+            to_x: right;\
+            to_y: bottom;\
+         }\
+
+#define GENLIST_DESCRIPT_DOT_LT( left, top ) \
+      description { state: "default" 0.0;\
+         align: 0 0;\
+         rel1 { \
+            relative: 1 1; \
+            to_x: left; \
+            to_y: top; \
+         }\
+         rel2 {\
+            relative: 1 1;\
+            to_x: left;\
+            to_y: top;\
+         }\
+
+#define GENLIST_DESCRIPT_DOT_RT( right, top ) \
+      description { state: "default" 0.0;\
+         align: 1 0;\
+         rel1 { \
+            relative: 0 1; \
+            to_x: right; \
+            to_y: top; \
+         }\
+         rel2 {\
+            relative: 0 1;\
+            to_x: right;\
+            to_y: top;\
+         }\
+
+#define GENLIST_DESCRIPT_DOT_LB( left, bottom ) \
+      description { state: "default" 0.0;\
+         align: 0 1;\
+         rel1 { \
+            relative: 1 0; \
+            to_x: left; \
+            to_y: bottom; \
+         }\
+         rel2 {\
+            relative: 1 0;\
+            to_x: left;\
+            to_y: bottom;\
+         }\
+
+#define GENLIST_DESCRIPT_DOT_RB( right, bottom ) \
+      description { state: "default" 0.0;\
+         align: 1 1;\
+         rel1 { \
+            relative: 0 0; \
+            to_x: right; \
+            to_y: bottom; \
+         }\
+         rel2 {\
+            relative: 0 0;\
+            to_x: right;\
+            to_y: bottom;\
+         }\
+
+#define GENLIST_DESCRIPT_LINE_LEFT( left, top, bottom ) \
+      description { state: "default" 0.0;\
+         align: 0 0.5;\
+         rel1 { \
+            relative: 1 1; \
+            to_x: left; \
+            to_y: top; \
+         }\
+         rel2 {\
+            relative: 1 0;\
+            to_x: left;\
+            to_y: bottom;\
+         }\
+
+#define GENLIST_DESCRIPT_LINE_RIGHT( right, top, bottom ) \
+      description { state: "default" 0.0;\
+         align: 1 0.5;\
+         rel1 { \
+            relative: 0 1; \
+            to_x: right; \
+            to_y: top; \
+         }\
+         rel2 {\
+            relative: 0 0;\
+            to_x: right;\
+            to_y: bottom;\
+         }\
+
+#define GENLIST_DESCRIPT_LINE_TOP( left,  right, top ) \
+      description { state: "default" 0.0;\
+         align: 0.5 0;\
+         rel1 { \
+            relative: 1 1; \
+            to_x: left; \
+            to_y: top; \
+         }\
+         rel2 {\
+            relative: 0 1;\
+            to_x: right;\
+            to_y: top;\
+         }\
+
+#define GENLIST_DESCRIPT_LINE_BOTTOM( left,  right, bottom ) \
+      description { state: "default" 0.0;\
+         align: 0.5 1;\
+         rel1 { \
+            relative: 1 0; \
+            to_x: left; \
+            to_y: bottom; \
+         }\
+         rel2 {\
+            relative: 0 0;\
+            to_x: right;\
+            to_y: bottom;\
+         }\
+
+#define GENLIST_PADDING(NAME, SIZE_X, SIZE_Y, DESCRIPT) \
+       part { name: NAME; \
+            type: RECT; \
+            scale: 1; \
+            DESCRIPT \
+               min: SIZE_X SIZE_Y; \
+               fixed: 1 1; \
+               visible: 0; \
+            }\
+       } \
+
+
+// *************** Function Macro ******************* //
+#define GENLIST_PART_BASE( param_item_height ) \
+         part { name: "base"; \
+            type: RECT; \
+            repeat_events: 1; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               min: 0 param_item_height; \
+               color: GENLIST_PART_BG_COLOR_INC; \
+            } \
+         }
+
+#define GENLIST_PART_BASE_BG( param_item_height ) \
+         part { name: "base"; \
+            type: RECT; \
+            repeat_events: 1; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               min: 0 param_item_height; \
+               color: GENLIST_PART_BG_COLOR_INC; \
+            } \
+         }
+
+/// This block events
+#define GENLIST_PART_BASE_EVENT_OFF \
+         part { name: "base_event";\
+            type: RECT;\
+            repeat_events: 0;\
+            description { state: "default" 0.0;\
+               color: 0 0 0 0;\
+            }\
+         }
+
+#define GENLIST_PART_BG \
+         part { name: "bg"; \
+            type: RECT; \
+            clip_to: "disclip"; \
+            mouse_events: 0; \
+            description { state: "default" 0.0; \
+               color: GENLIST_PART_BG_COLOR_INC; \
+            } \
+            description { state: "hide" 0.0; \
+               inherit: "default" 0.0; \
+               rel1 { relative: 0.025 0.0; } \
+               rel2 { relative: 1.025 1.0; } \
+            } \
+            description { state: "hide" 0.1;  \
+               inherit: "default" 0.0; \
+               rel1 { relative: 0.13 0.0; } \
+               rel2 { relative: 1.13 1.0; } \
+            } \
+            description { state: "hide" 0.2; \
+               inherit: "default" 0.0; \
+               rel1 { relative: 0.5 0.0; } \
+               rel2 { relative: 1.5 1.0; } \
+            } \
+            description { state: "hide" 0.3; \
+               inherit: "default" 0.0; \
+               rel1 { relative: 1.0 0.0; } \
+               rel2 { relative: 2.0 1.0; } \
+            } \
+         }
+
+#define GENLIST_PART_BG_IMAGE \
+         part { name: "bg_image"; \
+            type: RECT; \
+            clip_to: "disclip"; \
+            mouse_events: 0; \
+            description { state: "default" 0.0; \
+               color: GENLIST_PART_LIST_BG_COLOR_INC; \
+            } \
+            description { state: "selected" 0.0; \
+               inherit: "default" 0.0; \
+               color: GENLIST_PART_LIST_PRESS_COLOR_INC; \
+            } \
+         }
+
+#define GENLIST_PART_BOTTOM_LINE \
+         part { name: "bottom_line"; \
+            type: RECT; \
+            mouse_events: 0; \
+            description { state: "default" 0.0; \
+               min: 0 1; \
+               fixed: 0 1; \
+               visible: 1; \
+               color: GENLIST_PART_LIST_LINE_COLOR_INC; \
+               rel1 { \
+                  relative: 0.0 1.0; \
+                  offset: 0 -1; \
+               } \
+            } \
+         }
+
+#define GENLIST_PART_BOTTOM_EFFECT_LINE \
+         part { name: "bottom_line"; \
+            type: RECT; \
+            mouse_events: 0; \
+            description { state: "default" 0.0; \
+               min: 0 1; \
+               fixed: 0 1; \
+               visible: 1; \
+               color: GENLIST_PART_LIST_LINE_COLOR_INC; \
+               rel1 { \
+                  relative: 0.0 1.0; \
+                  offset: 0 -1; \
+               } \
+            } \
+            GENLIST_PART_MAP_START(-90.0, 0.0, 0.0) \
+            GENLIST_PART_MAP_FINISH(0.0, 0.0, 0.0) \
+         }
+
+#define GENLIST_PART_PADDING_TOP( param_padding_size ) \
+       part { name: "elm.padding.top"; \
+            type: RECT; \
+            scale: 1; \
+            description { \
+               state: "default" 0.0; \
+               min: 0 param_padding_size; \
+               fixed: 0 1; \
+               visible: 0; \
+               rel2.relative: 1.0 0.0; \
+               align: 0.0 0.0; \
+            } \
+         }
+
+#define GENLIST_PART_PADDING_TEXT_TOP( param_padding_size ) \
+       part { name: "elm.padding.text.top"; \
+            type: RECT; \
+            scale: 1; \
+            description { \
+               state: "default" 0.0; \
+               min: 0 param_padding_size; \
+               fixed: 0 1; \
+               visible: 0; \
+               rel2.relative: 1.0 0.0; \
+               align: 0.0 0.0; \
+            } \
+         }
+
+#define GENLIST_PART_PADDING_BOTTOM( param_padding_size ) \
+       part { name: "elm.padding.bottom"; \
+            type: RECT; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               min: 0 param_padding_size; \
+               fixed: 0 1; \
+               visible: 0; \
+               rel1.relative: 0.0 1.0; \
+               align: 1.0 1.0; \
+            } \
+         }
+
+#define GENLIST_PART_PADDING_LEFT( param_padding_size ) \
+         part { name: "elm.padding.left"; \
+            type: RECT; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               min: param_padding_size 0; \
+               fixed: 1 0; \
+               visible: 0; \
+               rel2.relative: 0.0 1.0; \
+               align: 0.0 0.0; \
+            } \
+         }
+
+#define GENLIST_PART_PADDING_RIGHT( param_padding_size ) \
+       part { name: "elm.padding.right"; \
+            type: RECT; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               min: param_padding_size 0; \
+               fixed: 1 0; \
+               visible: 0; \
+               rel1.relative: 1.0  0.0; \
+               align: 1.0 0.0; \
+            } \
+         }
+
+#define GENLIST_DIALOGUE_PART_BASE( param_item_height ) \
+         part { name: "base_part"; \
+            type: RECT; \
+            clip_to: "disclip"; \
+            repeat_events: 1; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               min: 0 param_item_height; \
+               color: LAYOUT_GROUP_LIST_BG_COLOR_INC; \
+            } \
+         }
+
+// FIXME: Use above instead
+#define GENLIST_PART_DIALOGUE_BASE( param_item_height ) \
+         part { name: "base"; \
+            type: RECT; \
+            clip_to: "disclip"; \
+            repeat_events: 1; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               min: 0 param_item_height; \
+               color: LAYOUT_GROUP_LIST_BG_COLOR_INC; \
+            } \
+         }
+
+#define GENLIST_PART_DIALOGUE_BG_IMAGE \
+         part { name: "bg_image"; \
+            type: RECT; \
+            clip_to: "disclip"; \
+            mouse_events: 0; \
+            description { state: "default" 0.0; \
+               color: GENLIST_DIALOGUE_BG_IMAGE_COLOR_INC; \
+            } \
+            description { state: "selected" 0.0; \
+               inherit: "default" 0.0; \
+               color: GENLIST_PART_LIST_PRESS_COLOR_INC; \
+            } \
+         }
+
+#define GENLIST_PART_DIALOGUE_ITEM \
+         part { name: "elm.rect.dialogue"; \
+            type: RECT; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               min: GENLIST_PADDING_12_INC 0; \
+               fixed: 1 0; \
+               color: GENLIST_DIALOGUE_GROUP_LEFT_BG_COLOR_INC; \
+               rel2.relative: 0.0 1.0; \
+               align: 0.0 0.0; \
+            } \
+         }
+
+#define GENLIST_PART_DIALOGUE_RIGHT_LINE \
+         part { name: "elm.rect.dialogue.right.line"; \
+            type: RECT; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               min: 1 0; \
+               fixed: 1 0; \
+               visible: 1; \
+               rel1 { \
+                  relative: 1.0  0.0; \
+                  offset: -1 0; \
+               } \
+               align: 1.0 0.0; \
+               color: GENLIST_PART_LIST_LINE_COLOR_INC; \
+            } \
+         }
+
+#define GENLIST_PART_DIALOGUE_EXPANDABLE_ITEM \
+         part { name: "elm.rect.dialogue"; \
+            type: RECT; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               min: GENLIST_PADDING_12_INC 0; \
+               fixed: 1 0; \
+               color: GENLIST_DIALOGUE_GROUP_LEFT_BG_COLOR_INC; \
+               rel2.relative: 0.0 1.0; \
+               align: 0.0 0.0; \
+            } \
+            GENLIST_PART_MAP_START(-90.0, 0.0, 0.0) \
+            GENLIST_PART_MAP_FINISH(0.0, 0.0, 0.0) \
+         }
+
+#define GENLIST_PART_SWALLOW_END( param_padding_size ) \
+         part { name: "elm.padding.left.swallow.end";\
+            clip_to: "disclip"; \
+            type: RECT;\
+            scale: 1;\
+            description { state: "default" 0.0;\
+               min: param_padding_size 0;\
+               fixed: 1 0;\
+               visible: 0; \
+               rel1.to_x: "elm.swallow.end";\
+               rel2 {\
+                  relative: 0.0  1.0;\
+                  to_x: "elm.swallow.end";\
+               }\
+               align: 1.0 0.5;\
+            }\
+         }\
+         part { name: "elm.swallow.end";\
+            clip_to: "disclip"; \
+            type: SWALLOW;\
+            scale: 1;\
+            description { state: "default" 0.0;\
+               fixed: 1 0;\
+               align: 1.0 0.5;\
+               rel1.to_x: "elm.padding.right";\
+               rel2 {\
+                  relative: 0.0  1.0;\
+                  to_x: "elm.padding.right";\
+               }\
+            }\
+         }
+
+// When rotating, sometimes item size is expaned.
+#define GENLIST_PART_DISCLIP \
+        part { name: "disclip"; \
+            type: RECT; \
+            description { state: "default" 0.0; \
+            } \
+            description { state: "disabled" 0.0; \
+               inherit: "default" 0.0; \
+               color: GENLIST_PART_DISCLIP_COLOR_INC; \
+            } \
+         }
+
+#define GENLIST_EXPANDABLE_PART_PERSPECTIVE_POINT() \
+               part { name: "point"; \
+                       type: RECT; \
+                       scale: 1; \
+                        description { \
+                                state: "default" 0.0; \
+                                color: 0 0 0 0; \
+                                rel1 { relative: 0.0 0.0; } \
+                                rel2 { relative: 1.0 0.0; } \
+                        } \
+                }
+
+#define GENLIST_PART_MAP_START( param_x, param_y, param_z ) \
+               description { state: "map_transition" 0.0; \
+                   inherit: "default" 0.0; \
+                   color: 50 50 50 100; \
+                   map { \
+                      perspective: "point"; \
+                      on: 1; \
+                      smooth: 1; \
+                      perspective_on: 1; \
+                      backface_cull: 1; \
+                      rotation { \
+                         center: "point"; \
+                         x: param_x; \
+                         y: param_y; \
+                         z: param_z; \
+                      } \
+                  } \
+                } \
+                description { \
+                        state: "hide" 0.0; \
+                        inherit: "default" 0.0; \
+                        visible: 0; \
+                }
+
+#define GENLIST_PART_MAP_FINISH( param_x, param_y, param_z ) \
+                description { \
+                        state: "map_rotate" 0.0; \
+                        inherit: "default" 0.0; \
+                        map { \
+                                perspective: "point"; \
+                                on: 1; \
+                                smooth: 1; \
+                                perspective_on: 1; \
+                                backface_cull: 1; \
+                                rotation { \
+                                        center: "point"; \
+                                        x: param_x; \
+                                        y: param_y; \
+                                        z: param_z; \
+                                } \
+                       } \
+               } \
+
+#define GENLIST_PART_MAP_BASE( param_item_height ) \
+         part { name: "base"; \
+            type: RECT; \
+            repeat_events: 1; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               min: 0 param_item_height; \
+               color: GENLIST_PART_BG_COLOR_INC; \
+            } \
+            GENLIST_PART_MAP_START(-90.0, 0.0, 0.0) \
+            GENLIST_PART_MAP_FINISH(0.0, 0.0, 0.0) \
+         }
+
+#define GENLIST_EXPANDABLE_PART_BASE( GE_HEIGHT , GE_COLOR ) \
+         part { name: "base"; \
+            type: RECT; \
+            repeat_events: 1; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               min: 0 GE_HEIGHT; \
+               color: GE_COLOR; \
+            } \
+            description { state: "selected" 0.0; \
+               inherit: "default" 0.0; \
+               color: GENLIST_PART_LIST_PRESS_COLOR_INC; \
+            } \
+            GENLIST_PART_MAP_START(-90.0, 0.0, 0.0) \
+            GENLIST_PART_MAP_FINISH(0.0, 0.0, 0.0) \
+         }
+
+/* XXX: refactor expandable edc first.
+        and use GENLIST_EXPANDABLE_PART_BASE_NEW as GENLIST_EXPANDABLE_PART_BASE.
+*/
+#define GENLIST_EXPANDABLE_PART_BASE_NEW( GE_HEIGHT , GE_COLOR ) \
+         part { name: "base"; \
+            type: RECT; \
+            repeat_events: 1; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               min: 0 GE_HEIGHT; \
+               color: GE_COLOR; \
+            } \
+            description { state: "selected" 0.0; \
+               inherit: "default" 0.0; \
+               color: GENLIST_PART_LIST_PRESS_COLOR_INC; \
+            } \
+         }
+
+#define GENLIST_PROGRAM_MAP_ROTATE_EXPAND_START() \
+                name: "rotaion_transition"; \
+                signal: "flip_item"; \
+                action: STATE_SET "map_transition" 0.0; \
+                after: "rotation";
+
+#define GENLIST_PROGRAM_MAP_ROTATE_EXPAND_FINISH( second ) \
+                name: "rotation"; \
+                action: STATE_SET "map_rotate" 0.0; \
+                transition: LINEAR second; \
+                after: "rotation_end";
+
+#define GENLIST_PROGRAM_MAP_EXPAND_END() \
+                name: "rotation_end"; \
+                action: STATE_SET "default" 0.0;
+
+#define GENLIST_PROGRAM_MAP_ROTATE_CONTRACT_START() \
+                name: "rotation_transition2"; \
+                signal: "elm,state,contract_flip"; \
+                action: STATE_SET "map_rotate" 0.0; \
+                after: "rotation2";
+
+#define GENLIST_PROGRAM_MAP_ROTATE_CONTRACT_FINISH( second ) \
+                name: "rotation2"; \
+                action: STATE_SET "map_transition" 0.0; \
+                transition: LINEAR second; \
+                after: "rotation3";
+
+#define GENLIST_PROGRAM_MAP_CONTRACT_END() \
+                name: "rotation3"; \
+                action: STATE_SET "hide" 0.0;
+
+#define GENLIST_PART_EXPANDABLE2_NOSHADOW_BASE( param_item_height ) \
+         part { name: "base"; \
+            type: RECT; \
+            repeat_events: 1; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               min: 0 param_item_height; \
+               color: GENLIST_PART_EXPANDABLE_2ND_DEPTH_BG_COLOR_INC; \
+            } \
+            GENLIST_PART_MAP_START(-90.0, 0.0, 0.0) \
+            GENLIST_PART_MAP_FINISH(0.0, 0.0, 0.0) \
+         }
+
+#define GENLIST_PART_EXPANDABLE_SWALLOW_PADDING \
+         part { name: "elm.swallow.pad"; \
+            type: SWALLOW; \
+            description { state: "default" 0.0; \
+               fixed: 1 0; \
+               align: 0.0 0.5; \
+               rel1 { \
+                  relative: 1.0 0.0;\
+                  to_x: "elm.padding.left"; \
+               } \
+               rel2.to_x: "elm.padding.left"; \
+            } \
+            GENLIST_PART_MAP_START(-90.0, 0.0, 0.0) \
+            GENLIST_PART_MAP_FINISH(0.0, 0.0, 0.0) \
+         } \
+
+#define GENLIST_PART_PADDING_LEFT_SLIDE( param_padding_size ) \
+         part { name: "elm.padding.left"; \
+            type: RECT; \
+            scale: 1; \
+            description { \
+               state: "default" 0.0; \
+               min: param_padding_size 0; \
+               fixed: 1 0; \
+               visible: 0; \
+               rel1 { relative: 0.0 0.0; to: "bg"; } \
+               rel2 { relative: 0.0 1.0; to: "bg"; } \
+               align: 0.0 0.0; \
+            } \
+         }
+
+/* only for demo */
+#define GENLIST_PART_BUTTON( param_name, param_text_name, param_text, param_left, param_right, param_top, param_bottom ) \
+       part { name: param_name; \
+         mouse_events: 1; \
+         description { state: "default" 0.0; \
+            visible: 1; \
+            rel1 { relative: param_left param_top; offset: 0 0; } \
+            rel2 { relative: param_right param_bottom; offset: -1 -1; } \
+            image { \
+               normal: "btn_normal.png"; \
+               border: 10 10 10 10; \
+               border_scale: 1; \
+            } \
+            image.middle: SOLID; \
+            fill.smooth: 0; \
+         } \
+         description { state: "selected" 0.0;  \
+            inherit: "default" 0.0;  \
+            image { \
+               normal: "btn_selected.png"; \
+            } \
+         } \
+      } \
+      part { name: param_text_name;  \
+         type: TEXT;  \
+         mouse_events: 0; \
+         scale: 1; \
+         description {  \
+            align: 0.0 0.0; \
+            state: "default" 0.0;  \
+            color: 0 0 0 255;  \
+            rel1 { relative: 0.0 0.0; to: param_name; } \
+            rel2 { relative: 1.0 1.0; to: param_name; } \
+            text {  \
+               text: param_text; \
+               font: "SLP:style=Roman"; \
+               size: 24;  \
+               min: 1 1;  \
+               align: 0.5 0.5;  \
+               text_class: "list_item"; \
+            }  \
+         }  \
+      }
+
+/* only for demo */
+#define GENLIST_PROGRAM_BUTTON( param_name_focused, param_name_normal, param_part_name ) \
+      program { name: param_name_focused; \
+         source: param_part_name; \
+         signal: "mouse,down,1"; \
+         action:  STATE_SET "selected" 0.0;  \
+         target: param_part_name; \
+      } \
+      program { name: param_name_normal; \
+         source: param_part_name; \
+         signal: "mouse,up,1"; \
+         action:  STATE_SET "default" 0.0;  \
+         target: param_part_name; \
+      }
+
+#define GENLIST_PROGRAM_SLIDE_WITH_AFTER( param_name, param_state, param_next ) \
+      program { name: param_name; \
+         action:  STATE_SET "hide" param_state; \
+         target: "bg"; \
+         transition: LINEAR 0.3; \
+         after: param_next; \
+      }
+
+#define GENLIST_PROGRAM_SLIDE( param_name, param_state_name, param_state_value ) \
+      program { name: param_name; \
+         action:  STATE_SET param_state_name param_state_value; \
+         target: "bg"; \
+         transition: LINEAR 0.3; \
+      }
+
+#define DESC_FLIP_IMAGE( param_state_value, param_image_file_name ) \
+      description { state: "flipping" param_state_value; \
+         inherit: "default" 0.0; \
+         image { normal: param_image_file_name; } \
+      }
+
+#define DESC_TEXT_HIDE( param_state_value ) \
+   description { state: "hide" param_state_value; \
+      inherit: "default" 0.0; \
+      color: 0 0 0 (255*(1-param_state_value/0.20)); \
+   }
+
+#define GENLIST_EDIT_PART_BASE( param_item_height ) \
+         part { name: "base"; \
+            type: RECT; \
+            repeat_events: 0; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               min: 0 param_item_height; \
+               color: 0 0 0 0; \
+            } \
+         }
+
+#define GENLIST_PART_FLIP \
+         part { name: "elm.flip.icon"; \
+            clip_to: "disclip"; \
+            type: SWALLOW; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               visible: 0; \
+               fixed: 1 1; \
+               align: 1 0; \
+               min: 80 0; \
+               rel1 { \
+                  relative: 0.0  0.0; \
+                  to_x: "elm.padding.right"; \
+               } \
+               rel2 { \
+                  relative: 0.0  1.0; \
+                  to_x: "elm.padding.right"; \
+               } \
+            } \
+            description { state: "flip_enabled" 0.0; \
+               inherit: "default" 0.0; \
+               visible: 1; \
+            } \
+         } \
+         part { name: "elm.flip.content"; \
+            clip_to: "disclip"; \
+            type: SWALLOW; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               visible: 0; \
+               fixed: 1 1; \
+               rel1 { \
+                  relative: 1.0  0.5; \
+                  to_x: "elm.padding.left"; \
+               } \
+               rel2 { \
+                  relative: 0.0  0.5; \
+                  to_x: "elm.flip.icon"; \
+               } \
+            } \
+            description { state: "flip_enabled" 0.0; \
+               inherit: "default" 0.0; \
+               visible: 1; \
+            } \
+         }
+
+#define GENLIST_DESCRIPTION_INVISIBLE_SELECTED \
+            description { state: "selected" 1.0; \
+               inherit: "default" 0.0; \
+               visible: 0; \
+            }
+
+#define GENLIST_DESCRIPTION_FLIP_ENABLED \
+            description { state: "flip_enabled" 0.0; \
+               inherit: "default" 0.0; \
+               visible: 0; \
+            }
+
+#define GENLIST_PROGRAM_SCRIPT_FLIP_SELECT_1TEXT \
+            script { \
+               new st[31]; \
+               new Float:vl; \
+               get_state(PART:"elm.text", st, 30, vl); \
+               set_state(PART:"bg_image", "selected", 0.0); \
+               if (!strcmp(st, "flip_enabled")) \
+                  set_state(PART:"elm.text", "selected", 1.0); \
+               else \
+                  set_state(PART:"elm.text", "selected", 0.0); \
+            }
+
+#define GENLIST_PROGRAM_SCRIPT_FLIP_SELECT_2TEXT \
+            script { \
+               new st[31]; \
+               new Float:vl; \
+               get_state(PART:"elm.text.1", st, 30, vl); \
+               set_state(PART:"bg_image", "selected", 0.0); \
+               if (!strcmp(st, "flip_enabled")) { \
+                  set_state(PART:"elm.text.1", "selected", 1.0); \
+                  set_state(PART:"elm.text.2", "selected", 1.0); \
+               } \
+               else { \
+                  set_state(PART:"elm.text.1", "selected", 0.0); \
+                  set_state(PART:"elm.text.2", "selected", 0.0); \
+               } \
+            }
+
+#define GENLIST_PROGRAM_SCRIPT_FLIP_SELECT_3TEXT \
+            script { \
+               new st[31]; \
+               new Float:vl; \
+               get_state(PART:"elm.text.1", st, 30, vl); \
+               set_state(PART:"bg_image", "selected", 0.0); \
+               if (!strcmp(st, "flip_enabled")) { \
+                  set_state(PART:"elm.text.1", "selected", 1.0); \
+                  set_state(PART:"elm.text.2", "selected", 1.0); \
+                  set_state(PART:"elm.text.3", "selected", 1.0); \
+               } \
+               else { \
+                  set_state(PART:"elm.text.1", "selected", 0.0); \
+                  set_state(PART:"elm.text.2", "selected", 0.0); \
+                  set_state(PART:"elm.text.3", "selected", 0.0); \
+               } \
+            }
+
+#define GENLIST_PROGRAM_FLIP_1TEXT \
+         program { name: "flip_enabled"; \
+            signal: "elm,state,flip,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "flip_enabled" 0.0; \
+            target: "elm.text"; \
+            target: "elm.flip.content"; \
+         } \
+         program { name: "flip_disabled"; \
+            signal: "elm,state,flip,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "elm.text"; \
+            target: "elm.flip.content"; \
+         }
+
+#define GENLIST_PROGRAM_FLIP_1TEXT_1ICON \
+         program { name: "flip_enabled"; \
+            signal: "elm,state,flip,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "flip_enabled" 0.0; \
+            target: "elm.text"; \
+            target: "elm.icon"; \
+            target: "elm.flip.content"; \
+         } \
+         program { name: "flip_disabled"; \
+            signal: "elm,state,flip,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "elm.text"; \
+            target: "elm.icon"; \
+            target: "elm.flip.content"; \
+         }
+
+#define GENLIST_PROGRAM_FLIP_1TEXT_2ICON \
+         program { name: "flip_enabled"; \
+            signal: "elm,state,flip,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "flip_enabled" 0.0; \
+            target: "elm.text"; \
+            target: "elm.icon.1"; \
+            target: "elm.icon.2"; \
+            target: "elm.flip.content"; \
+         } \
+         program { name: "flip_disabled"; \
+            signal: "elm,state,flip,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "elm.text"; \
+            target: "elm.icon.1"; \
+            target: "elm.icon.2"; \
+            target: "elm.flip.content"; \
+         }
+
+#define GENLIST_PROGRAM_FLIP_1TEXT_3ICON \
+         program { name: "flip_enabled"; \
+            signal: "elm,state,flip,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "flip_enabled" 0.0; \
+            target: "elm.text"; \
+            target: "elm.icon.1"; \
+            target: "elm.icon.2"; \
+            target: "elm.icon.3"; \
+            target: "elm.flip.content"; \
+         } \
+         program { name: "flip_disabled"; \
+            signal: "elm,state,flip,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "elm.text"; \
+            target: "elm.icon.1"; \
+            target: "elm.icon.2"; \
+            target: "elm.icon.3"; \
+            target: "elm.flip.content"; \
+         }
+
+#define GENLIST_PROGRAM_FLIP_2TEXT \
+         program { name: "flip_enabled"; \
+            signal: "elm,state,flip,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "flip_enabled" 0.0; \
+            target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.flip.content"; \
+         } \
+         program { name: "flip_disabled"; \
+            signal: "elm,state,flip,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.flip.content"; \
+         }
+
+#define GENLIST_PROGRAM_FLIP_2TEXT_1ICON \
+         program { name: "flip_enabled"; \
+            signal: "elm,state,flip,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "flip_enabled" 0.0; \
+            target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.icon"; \
+            target: "elm.flip.content"; \
+         } \
+         program { name: "flip_disabled"; \
+            signal: "elm,state,flip,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.icon"; \
+            target: "elm.flip.content"; \
+         }
+
+#define GENLIST_PROGRAM_FLIP_2TEXT_2ICON \
+         program { name: "flip_enabled"; \
+            signal: "elm,state,flip,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "flip_enabled" 0.0; \
+            target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.icon.1"; \
+            target: "elm.icon.2"; \
+            target: "elm.flip.content"; \
+         } \
+         program { name: "flip_disabled"; \
+            signal: "elm,state,flip,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+             target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.icon.1"; \
+            target: "elm.icon.2"; \
+            target: "elm.flip.content"; \
+         }
+
+#define GENLIST_PROGRAM_FLIP_2TEXT_3ICON \
+         program { name: "flip_enabled"; \
+            signal: "elm,state,flip,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "flip_enabled" 0.0; \
+            target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.icon.1"; \
+            target: "elm.icon.2"; \
+            target: "elm.icon.3"; \
+            target: "elm.flip.content"; \
+         } \
+         program { name: "flip_disabled"; \
+            signal: "elm,state,flip,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.icon.1"; \
+            target: "elm.icon.2"; \
+            target: "elm.icon.3"; \
+            target: "elm.flip.content"; \
+         }
+
+#define GENLIST_PROGRAM_FLIP_3TEXT \
+         program { name: "flip_enabled"; \
+            signal: "elm,state,flip,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "flip_enabled" 0.0; \
+            target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.text.3"; \
+            target: "elm.flip.content"; \
+         } \
+         program { name: "flip_disabled"; \
+            signal: "elm,state,flip,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.text.3"; \
+            target: "elm.flip.content"; \
+         }
+
+#define GENLIST_PROGRAM_FLIP_3TEXT_1ICON \
+         program { name: "flip_enabled"; \
+            signal: "elm,state,flip,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "flip_enabled" 0.0; \
+            target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.text.3"; \
+            target: "elm.icon"; \
+            target: "elm.flip.content"; \
+         } \
+         program { name: "flip_disabled"; \
+            signal: "elm,state,flip,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.text.3"; \
+            target: "elm.icon"; \
+            target: "elm.flip.content"; \
+         }
+
+#define GENLIST_PROGRAM_FLIP_3TEXT_2ICON \
+         program { name: "flip_enabled"; \
+            signal: "elm,state,flip,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "flip_enabled" 0.0; \
+            target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.text.3"; \
+            target: "elm.icon.1"; \
+            target: "elm.icon.2"; \
+            target: "elm.flip.content"; \
+         } \
+         program { name: "flip_disabled"; \
+            signal: "elm,state,flip,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.text.3"; \
+            target: "elm.icon.1"; \
+            target: "elm.icon.2"; \
+            target: "elm.flip.content"; \
+         }
+
+#define GENLIST_PROGRAM_FLIP_3TEXT_3ICON \
+         program { name: "flip_enabled"; \
+            signal: "elm,state,flip,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "flip_enabled" 0.0; \
+            target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.text.3"; \
+            target: "elm.icon.1"; \
+            target: "elm.icon.2"; \
+            target: "elm.icon.3"; \
+            target: "elm.flip.content"; \
+         } \
+         program { name: "flip_disabled"; \
+            signal: "elm,state,flip,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.text.3"; \
+            target: "elm.icon.1"; \
+            target: "elm.icon.2"; \
+            target: "elm.icon.3"; \
+            target: "elm.flip.content"; \
+         }
+
+/* genlist multisense macro - start */
+#define GENLIST_PROGRAM_AFTER_PLAY_BUTTON_PRESS \
+            after: "play_button_press";
+
+#define GENLIST_PROGRAM_PLAY_BUTTON_PRESS \
+         program { name: "play_button_press"; \
+            action: PLAY_SAMPLE "button-pressed" 1.0; \
+         }
+
+
+
+/* genlist multisense macro - end */
\ No newline at end of file
diff --git a/block/theme/email-block-theme.edc b/block/theme/email-block-theme.edc
new file mode 100755 (executable)
index 0000000..a7d8e76
--- /dev/null
@@ -0,0 +1,135 @@
+/*
+ * Copyright 2012  Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *    http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "email-block-theme-macro.edc"
+
+collections {
+
+       group { name: "segment_layout";
+               parts {
+                       part { name: "bg";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+                       part { name: "segment";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 219 42;
+                                       max: 780 42;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0.0 0.0; to: "bg"; }
+                                       rel2 { relative: 1.0 1.0; to: "bg"; }
+                               }
+                       }
+               }
+       }
+
+
+       group { name: "elm/genlist/item/dialogue/email.2icon/default";
+               alias: "elm/genlist/item_odd/dialogue/email.2icon/default";
+               alias: "elm/genlist/item_compress/dialogue/email.2icon/default";
+               alias: "elm/genlist/item_compress_odd/dialogue/email.2icon/default";
+               alias: "elm/layout/dialogue/email.2icon";
+               data.item: "stacking" "above";
+               data.item: "selectraise" "on";
+               data.item: "contents" "elm.icon elm.icon2";
+               parts {
+                       GENLIST_PART_BASE( GENLIST_HEIGHT_1LINE )
+                       GENLIST_PART_DIALOGUE_BG_IMAGE
+                       GENLIST_PART_BOTTOM_LINE
+                       GENLIST_PART_PADDING_LEFT( GENLIST_PADDING_32_INC )
+                       GENLIST_PART_PADDING_RIGHT( GENLIST_PADDING_SIZE_RIGHT )
+                       GENLIST_PART_DIALOGUE_ITEM
+                       GENLIST_PART_DIALOGUE_RIGHT_LINE
+                       part { name: "elm.icon2";
+                               clip_to: "disclip";
+                               type: SWALLOW;
+                               scale: 1;
+                               description { state: "default" 0.0;
+                                       rel1 {
+                                               relative: 0.0 0.0;
+                                               to_x: "elm.padding.right";
+                                               offset: -80 0;
+                                       }
+                                       rel2 {
+                                               relative: 0.0 1.0;
+                                               to_x: "elm.padding.right";
+                                       }
+                                       align: 0.5 0.5;
+                               }
+                       }
+
+                       part { name: "elm.padding.icon2.left";
+                               clip_to: "disclip";
+                               type: RECT;
+                               scale: 1;
+                               description { state: "default" 0.0;
+                                       min: GENLIST_PADDING_16_INC 0;
+                                       fixed: 1 0;
+                                       rel1.to_x: "elm.icon2";
+                                       rel2 {
+                                               relative: 0.0 1.0;
+                                               to_x: "elm.icon2";
+                                       }
+                                       align: 1.0 0.0;
+                                       visible: 0;
+                               }
+                       }
+
+                       part { name: "elm.icon";
+                               clip_to: "disclip";
+                               type: SWALLOW;
+                               scale: 1;
+                               description { state: "default" 0.0;
+                                       rel1 {
+                                               relative: 1.0 0.0;
+                                               to_x: "elm.padding.left";
+                                       }
+                                       rel2 {
+                                               relative: 0.0 1.0;
+                                               to_x: "elm.padding.icon2.left";
+                                       }
+                                       align: 0.0 0.0;
+                               }
+                       }
+
+                       GENLIST_PART_DISCLIP
+               }
+               programs {
+                       program { name: "go_disabled";
+                               signal: "elm,state,disabled";
+                               source: "elm";
+                               action: STATE_SET "disabled" 0.0;
+                               target: "disclip";
+                       }
+                       program { name: "go_enabled";
+                               signal: "elm,state,enabled";
+                               source: "elm";
+                               action: STATE_SET "default" 0.0;
+                               target: "disclip";
+                       }
+               }
+       }
+
+}
index ec8f5a9..ca52802 100755 (executable)
@@ -5,6 +5,7 @@ SET(PROJECT_NAME "email-common")
 SET(SRCS-common
        ./src/email-debug.c
        ./src/email-engine.c
+       ./src/email-html-converter.c
        ./src/email-utils.c
 )
 
@@ -18,7 +19,7 @@ INCLUDE_DIRECTORIES(${CMAKE_COMMON_SOURCE_DIR}/include)
 
 INCLUDE(FindPkgConfig)
 pkg_check_modules(pkgs-common REQUIRED ecore ecore-imf appcore-common glib-2.0 gobject-2.0 email-service
-       dlog db-util elementary efreet-mime drm-client ecore-x sysman vconf evas eina edje icu-i18n)
+       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}")
index b531cdf..5b0e1c7 100755 (executable)
 #define MAX_URL_LEN                            1024
 #define MAX_RECPT_LEN                          (MAX_STR_LEN * 8 + 1)
 
+#define DIR_DEFAULT_MEDIA_PHONE        "/opt/media"
+
 /* define bundle key */
 #define EMAIL_BUNDLE_KEY_ACCOUNT_ID            "ACCOUNT_ID"
+#define EMAIL_BUNDLE_KEY_IS_NULL                       "IS_NULL"
 #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_SAVE_ALL                      "SAVE_ALL"
 #define EMAIL_BUNDLE_KEY_CANCEL_ALL                    "CANCEL_ALL"
 #define EMAIL_BUNDLE_KEY_VIEW_TYPE                     "VIEW_TYPE"
 #define EMAIL_BUNDLE_KEY_RUN_TYPE                      "RUN_TYPE"
 #define EMAIL_BUNDLE_KEY_MAIL_ID                       "MAIL_ID"
+#define EMAIL_BUNDLE_KEY_INTERNAL                      "bInternal"
+#define EMAIL_BUNDLE_KEY_FIRST_LANDSCAPE       "bFirstLandscape"
+#define EMAIL_BUNDLE_KEY_MSG                           "MSG"
+#define EMAIL_BUNDLE_KEY_DO_DELETE                     "DO_DELETE"
+#define EMAIL_BUNDLE_KEY_UNLOCK_LIST           "UNLOCK_LIST"
 #define EMAIL_BUNDLE_KEY_TO                            "TO"
 #define EMAIL_BUNDLE_KEY_CC                            "CC"
 #define EMAIL_BUNDLE_KEY_BCC                           "BCC"
 #define EMAIL_BUNDLE_KEY_SUBJECT                       "SUBJECT"
+#define EMAIL_BUNDLE_KEY_MAILBOX_SIZE          "MAILBOX_SIZE"
 #define EMAIL_BUNDLE_KEY_BODY                          "BODY"
 #define EMAIL_BUNDLE_KEY_ATTACHMENT            "ATTACHMENT"
+#define EMAIL_BUNDLE_KEY_THREAD_ID                     "thread_id"
 #define EMAIL_BUNDLE_KEY_ESP_NAME                      "ESP_NAME"
 #define EMAIL_BUNDLE_KEY_INITIAL_RUN           "INITIAL_RUN"
 #define EMAIL_BUNDLE_KEY_REFRESH_ACCOUNT       "REFRESH_ACCOUNT"
+#define EMAIL_BUNDLE_KEY_MAILBOX_TYPE          "MAILBOX_TYPE"
 
+#define EMAIL_BUNDLE_KEY_CONTACT_TYPE                                  "type"
+#define EMAIL_BUNDLE_KEY_CALENDAR_EDIT_ACCOUNT_ID              "account_id"
+#define EMAIL_BUNDLE_KEY_CALENDAR_EDIT_MAIL_ID                 "mail_id"
+#define EMAIL_BUNDLE_KEY_CALENDAR_EDIT_SRC_BOX                 "src_box"
+#define EMAIL_BUNDLE_KEY_CALENDAR_EDIT_INDEX                   "index"
+#define EMAIL_BUNDLE_KEY_CALENDAR_EDIT_NOTE                    "note"
 #define EMAIL_BUNDLE_KEY_VIDEO_PLAYER_LAUNCH_APP               "launching_application"
 
+/* define ug name */
+#define UG_NAME_EMAIL_MAILBOX          "email-mailbox-efl"
+#define UG_NAME_EMAIL_VIEWER           "email-viewer-efl"
+#define UG_NAME_EMAIL_BLOCK            "email-block-efl"
+#define UG_NAME_EMAIL_COMPOSER         "email-composer-efl"
+#define UG_NAME_EMAIL_SETTING          "email-setting-efl"
+#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_CALENDAR_EDIT          "calendar-edit-efl"
+
 /* define bundle value */
+#define EMAIL_BUNDLE_VAL_CALENDAR_EDIT_INDEX   "0"
+#define EMAIL_BUNDLE_VAL_END_KEY                                       "END_KEY_EVENT"
+#define EMAIL_BUNDLE_VAL_NEXT_MSG                              "NEXT_MSG"
+#define EMAIL_BUNDLE_VAL_PREV_MSG                              "PREV_MSG"
+#define EMAIL_BUNDLE_VAL_UNREAD                                        "UNREAD"
+#define EMAIL_BUNDLE_VAL_READ                                  "READ"
+
 #define EMAIL_BUNDLE_VAL_VIEW_SETTING_MAIN             "main-view"
 #define EMAIL_BUNDLE_VAL_VIEW_FIRST_SETUP              "first-setup"
 #define EMAIL_BUNDLE_VAL_VIEW_ACCOUNT_EDIT             "account-edit"
@@ -67,9 +104,60 @@ typedef enum {
        RUN_COMPOSER_REPLY_ALL, /*< Specific reply all type. this type is used to replay email to all */
        RUN_COMPOSER_FORWARD,   /*< Specific forward type. this type is used to forward email */
        RUN_COMPOSER_EXTERNAL,  /*< Specific external type. this type is used to create new email from external app except email app */
+       RUN_COMPOSER_REPLY_INTERNAL,
+       RUN_VIEWER,
+       RUN_MAILBOX_THREAD,
+       RUN_SETTING_ACCOUNT_ADD,
        RUN_TYPE_MAX
 } EmailRunType;
 
+typedef enum {
+       EMAIL_SEARCH_NONE,
+       EMAIL_SEARCH_ALL,
+       EMAIL_SEARCH_SUBJECT,
+       EMAIL_SEARCH_FROM,
+       EMAIL_SEARCH_TO,
+       EMAIL_SEARCH_DATE,
+       EMAIL_SEARCH_ADVANCED,
+       EMAIL_SEARCH_MAX
+} EmailSearchType;
+
+typedef enum {
+       EMAIL_SORT_NONE,
+       EMAIL_SORT_DATE_RECENT,
+       EMAIL_SORT_DATE_OLDEST,
+       EMAIL_SORT_SENDER_ATOZ,
+       EMAIL_SORT_SENDER_ZTOA,
+       EMAIL_SORT_RCPT_ATOZ,
+       EMAIL_SORT_RCPT_ZTOA,
+       EMAIL_SORT_UNREAD,
+       EMAIL_SORT_IMPORTANT,
+       EMAIL_SORT_PRIORITY,
+       EMAIL_SORT_ATTACHMENTS,
+       EMAIL_SORT_MAX,
+} EmailSortType;
+
+typedef enum {
+       EMAIL_GET_MAIL_THREAD = -1,
+       EMAIL_GET_MAIL_NORMAL = 0,
+} EmailGetMailType;
+
+typedef enum {
+       EMAIL_EXT_SAVE_ERR_NONE = 0,
+       EMAIL_EXT_SAVE_ERR_ALREADY_EXIST,
+       EMAIL_EXT_SAVE_ERR_UNKNOWN
+} EmailExtSaveErrType;
+
+typedef struct {
+       gchar *name;
+       gchar *alias;
+       email_mailbox_type_e mailbox_type;
+       int mailbox_id;
+       int unread_count;
+       int total_mail_count_on_local;
+       int total_mail_count_on_server;
+} EmailMailboxNameAndAlias;
+
 typedef struct {
        int is_preset_account;
        int index_color;
@@ -78,6 +166,14 @@ typedef struct {
        int pop3_deleting_option;
 } account_user_data_t;
 
+typedef struct {
+       char *subject;
+       char *sender;
+       char *recipient;
+       time_t from_time;
+       time_t to_time;
+} EmailSearchData;
+
 #endif /* _EMAIL_COMMON_TYPES_H_ */
 
 /* EOF */
index 0143c85..90f7750 100755 (executable)
@@ -32,8 +32,28 @@ G_BEGIN_DECLS
 #define RECIPIENT_LEN  100
 
 
+typedef struct {
+       gchar *account_name;
+       gchar *email_address;
+       gchar *user_name;
+       gchar *password;
+       gchar *receiving_address;
+       gchar *smtp_address;
+       gchar *smtp_user_name;
+       gchar *smtp_password;
+       gint smtp_auth;
+       gint smtp_port;
+       gint same_as;
+       gint receiving_port;
+       gint receiving_type;
+       gint smtp_ssl;
+       gint receiving_ssl;
+       gint download_mode;
+} EmailAccountInfo;
+
 gboolean email_engine_initialize(void);
 void email_engine_finalize(void);
+void email_engine_finalize_force(void);
 gboolean email_engine_add_account_with_validation(email_account_t *_account, int *account_id, unsigned *handle, int *error_code);
 gboolean email_engine_add_account(email_account_t *_account, int *account_id);
 gboolean email_engine_update_account_with_validation(gint account_id, email_account_t *_account);
@@ -48,10 +68,26 @@ gboolean email_engine_set_default_account(gint account_id);
 gboolean email_engine_sync_folder(gint account_id, int mailbox_id, unsigned *handle);
 void email_engine_stop_working(gint account_id, unsigned handle);
 
+gboolean email_engine_check_seen_mail(gint account_id, gint mail_id);
+int email_engine_check_body_download(int mail_id);
+gboolean email_engine_body_download(gint account_id, gint mail_id, unsigned *handle);
+gboolean email_engine_attachment_download(gint account_id, gint mail_id, gint index, unsigned *handle);
+
 gboolean email_engine_delete_mail(gint account_id, int mailbox_id, gint mail_id, int sync);
+gboolean email_engine_delete_all_mail(gint account_id, int mailbox_id, int sync);
+gboolean email_engine_move_mail(gint account_id, int mailbox_id, gint mail_id);
+gboolean email_engine_move_all_mail(gint account_id, int old_mailbox_id, int new_mailbox_id);
 
 gchar *email_engine_get_attachment_path(gint attach_id);       /* g_free(). */
 
+gboolean email_engine_get_account_info(gint account_id, EmailAccountInfo **account_info);
+void email_engine_free_account_info(EmailAccountInfo **account_info);
+
+GList *email_engine_get_ca_mailbox_list_using_glist(int account_id);
+void email_engine_free_ca_mailbox_list_using_glist(GList **mailbox_list);
+
+int email_engine_get_max_account_id(void);
+int email_engine_get_count_account(void);
 G_END_DECLS
 #endif /* _EMAIL_ENGINE_H_ */
 
diff --git a/common/include/email-html-converter.h b/common/include/email-html-converter.h
new file mode 100755 (executable)
index 0000000..b232f55
--- /dev/null
@@ -0,0 +1,29 @@
+/*
+ * Copyright 2012  Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *    http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _EMAIL_HTML_CONVERTER_H_
+#define _EMAIL_HTML_CONVERTER_H_
+
+#include <glib.h>
+
+G_BEGIN_DECLS
+/* g_free(). */
+gchar *email_html_converter(const gchar *plain_text, const gchar *charset);
+
+G_END_DECLS
+#endif /* _EMAIL_HTML_CONVERTER_H_ */
+
+/* EOF */
index 7c0409f..5b64ad4 100755 (executable)
@@ -33,6 +33,8 @@
 #include <unicode/udatpg.h>
 #include <unicode/ustring.h>
 
+#define MAX_DEFAULT_DIR_PATH 256
+
 G_BEGIN_DECLS
 
 /*
@@ -47,6 +49,71 @@ G_BEGIN_DECLS
 #undef STR_LEN
 #define STR_LEN(str) \
        ({ const char *s = (const char *)str; (s) ? strlen(s) : 0; })
+#undef STR_CMP
+#define STR_CMP(s1, s2) \
+       (((s1) == NULL || (s2) == NULL)? FALSE : (g_ascii_strcasecmp(s1, s2) == 0 ? TRUE : FALSE))
+
+#undef STR_NCPY
+/* note that sizeof(dest) > n. n is not array size but max num of copied char */
+/* dest requires NULL space only when src is not null terminated */
+#define STR_NCPY(dest, src, n) \
+       ({\
+               const char *_src = (const char *) src;\
+               if( n > 0 && dest && _src )     {\
+                       char *e = strncpy(dest, _src, n);\
+                       if(!e) debug_critical("strncpy error: (%s)", strerror(errno));\
+                       dest[n] = '\0';\
+               }\
+               dest;\
+       })
+
+#undef STRNDUP
+/* return heap array of size n */
+#define STRNDUP(src, n) \
+       ({\
+               char *_ret = NULL;\
+               char *_src = src;\
+               if ( _src && n > 0 ) {\
+                       _ret = strndup(_src, n);\
+                       if( !_ret ) debug_critical("strndup error: (%s)", strerror(errno));\
+               }\
+               _ret;\
+       })
+
+#undef MEM_ALLOC
+#define MEM_ALLOC(ptr, size) \
+       ({\
+               int _size = size;\
+               typeof(ptr) mem = NULL;\
+               if(_size > 0 ) {\
+                       mem = (typeof(ptr)) calloc (_size, sizeof(typeof(*ptr)));\
+                       if(!mem) debug_critical("%s: memory allocation failed", #ptr);\
+               }\
+               else\
+                       debug_critical("PARAM error(%d): must be positive", _size);\
+               mem;\
+       })
+
+#undef MEM_ALLOC_STR
+#define MEM_ALLOC_STR(size) \
+       ({\
+               int _size = size;\
+               char* mem = NULL;\
+               if( size > 1 ) {\
+                       mem = (char*) calloc (1, size);\
+                       if(!mem) debug_critical("MALLOC error: char str (%d) memory allocation failed", _size);\
+               }\
+               else\
+                       debug_critical("MALLOC error: char str size(%d) must be greater than 1", _size);\
+               mem;\
+       })
+
+#undef FREE
+#define FREE(ptr) \
+       do {\
+               if(ptr) free(ptr);\
+               ptr = NULL;\
+       } while(0)
 
 /*
  * Exported fuctions.
@@ -65,7 +132,12 @@ gchar *email_get_file_size_string(guint64 size);    /* g_free(). */
 guint64 email_get_file_size(const gchar *path);
 gboolean email_get_address_validation(const char *address);
 
+char* email_get_str_datetime(const time_t time_val);
 char *email_get_date_text(const char *locale, char *skeleton, void *time);
+char *email_get_date_text_with_formatter(UDateFormat *formatter, void *time);
+int email_get_group_title_str(const time_t time_val, gchar **group_title, gchar **group_date);
+
+int email_attachments_save_file(const gchar *path, gchar *newpath, gboolean(*copy_file_cb) (float percentage));
 
 int email_open_icu_pattern_generator(void);
 int email_close_icu_pattern_generator(void);
@@ -73,6 +145,14 @@ int email_close_icu_pattern_generator(void);
 gboolean email_drm_file_is_right(const gchar *path);
 gboolean email_drm_file_forward_lock_check(const gchar *path);
 
+void set_app_terminated();
+int get_app_terminated();
+void set_app_paused();
+void reset_app_paused();
+int get_app_paused();
+char* email_util_strrtrim(char* s);
+char* email_util_strltrim(char* s);
+char* email_util_get_parent_folder(char *s);
 G_END_DECLS
 #endif /* _EMAIL_UTILS_H_ */
 
index 0a09b39..11d1144 100755 (executable)
@@ -21,6 +21,7 @@
 #include <email-api.h>
 #include <db-util.h>
 #include <vconf.h>
+#include <ui-gadget-module.h>
 
 #include "email-common-types.h"
 #include "email-debug.h"
@@ -29,6 +30,8 @@
 
 #define ACCOUNT_MIN                                            -1
 
+ui_gadget_h _g_mailbox_ug = NULL;
+
 static guint _g_edb_ref_count = 0;
 
 
@@ -46,7 +49,6 @@ gboolean email_engine_initialize(void)
 
        debug_log("email_service_begin");
 
-       /*err = ipcEmailProxy_Initialize(0);*/
        err = email_service_begin();
        if (err != EMAIL_ERROR_NONE) {
                debug_critical("fail to email_service_begin - err(%d)", err);
@@ -90,6 +92,25 @@ void email_engine_finalize(void)
        }
 }
 
+void email_engine_finalize_force(void)
+{
+       debug_log("");
+
+       int err = 0;
+
+       err = email_close_db();
+       if (err != EMAIL_ERROR_NONE) {
+               debug_critical("fail to close db - err(%d)", err);
+       }
+
+       debug_log("email_service_end");
+
+       err = email_service_end();
+       if (err != EMAIL_ERROR_NONE) {
+               debug_critical("fail to email_service_begin - err(%d)", err);
+       }
+}
+
 gboolean email_engine_add_account(email_account_t *_account, int *account_id)
 {
        debug_log("");
@@ -103,7 +124,7 @@ gboolean email_engine_add_account(email_account_t *_account, int *account_id)
                debug_critical("Error code(%d)", err);
                return FALSE;
        }
-       debug_log("Create Succeed");
+       debug_log("Succeed in adding account");
        *account_id = _account->account_id;
        debug_log("account id is %d", _account->account_id);
 
@@ -126,7 +147,7 @@ gboolean email_engine_add_account_with_validation(email_account_t *_account, int
                return FALSE;
        }
 
-       debug_log("Create Succeed");
+       debug_log("Succeed in adding account with validation");
        *account_id = _account->account_id;
        debug_log("account id is %d", _account->account_id);
 
@@ -143,7 +164,7 @@ gboolean email_engine_update_account(gint account_id, email_account_t *_account)
 
        err = email_update_account(account_id, _account);
        if (err == EMAIL_ERROR_NONE) {
-               debug_log("email_update_account successful");
+               debug_log("Suceeded in email_update_account");
                return TRUE;
        } else {
                debug_critical("Failed to update account Err(%d)", err);
@@ -161,7 +182,7 @@ gboolean email_engine_update_account_with_validation(gint account_id, email_acco
 
        err = email_update_account_with_validation(account_id, _account);
        if (err == EMAIL_ERROR_NONE) {
-               debug_log("email_update_account_with_validation successful");
+               debug_log("Suceeded in email_update_account_with_validation");
                return TRUE;
        } else {
                debug_critical("Failed to update account with validation Err(%d)", err);
@@ -217,7 +238,7 @@ gboolean email_engine_free_account_list(email_account_t **_account_list, int cou
                debug_critical("Fail to free account list Err(%d)", err);
                return FALSE;
        } else {
-               debug_log("Success to free account list");
+               debug_log("Succeed in freeing account list");
                return TRUE;
        }
 }
@@ -323,7 +344,7 @@ gboolean email_engine_sync_folder(gint account_id, int mailbox_id, unsigned *han
        int err = 0;
 
        err = email_sync_header(account_id, mailbox_id, &email_handle);
-       debug_critical("email_handle: %d", email_handle);
+       debug_log("email_handle: %d", email_handle);
 
        if (err != EMAIL_ERROR_NONE) {
                debug_critical("fail to sync current folder - err (%d)", err);
@@ -358,6 +379,126 @@ void email_engine_stop_working(gint account_id, unsigned handle)
        }
 }
 
+gboolean email_engine_check_seen_mail(gint account_id, gint mail_id)
+{
+       debug_log("");
+       RETURN_VAL_IF_FAIL(account_id > ACCOUNT_MIN, FALSE);
+       RETURN_VAL_IF_FAIL(mail_id > 0, FALSE);
+
+       int res = 0;
+       int err = 0;
+       email_mail_data_t *mail_info = NULL;
+
+       if ((err = email_get_mail_data(mail_id, &mail_info)) != EMAIL_ERROR_NONE) {
+               debug_log("fail to get mail data - err (%d)", err);
+               return 0;
+       }
+
+       if (mail_info == NULL) {
+               debug_critical("mail_info is @niL");
+               return 0;
+       }
+
+       res = mail_info->flags_seen_field;
+       debug_log("flags_seen_field: %d", res);
+
+       err = email_free_mail_data(&mail_info, 1);
+
+       if (err != EMAIL_ERROR_NONE) {
+               debug_critical("fail to free mail info - err (%d)", err);
+       }
+
+       return res;
+}
+
+int email_engine_check_body_download(int mail_id)
+{
+       debug_log("");
+       RETURN_VAL_IF_FAIL(mail_id > 0, FALSE);
+
+       int res = 0;
+       int err = 0;
+       email_mail_data_t *mail_info = NULL;
+
+       if ((err = email_get_mail_data(mail_id, &mail_info)) != EMAIL_ERROR_NONE) {
+               debug_log("fail to get mail data - err (%d)", err);
+               return 0;
+       }
+
+       if (mail_info == NULL) {
+               debug_critical("mail_info is @niL");
+               return 0;
+       }
+
+       res = mail_info->body_download_status;
+       debug_log("body_download_yn: %d", res);
+
+       err = email_free_mail_data(&mail_info, 1);
+
+       if (err != EMAIL_ERROR_NONE) {
+               debug_critical("fail to free mail info - err (%d)", err);
+       }
+
+       return res;
+}
+
+gboolean email_engine_body_download(gint account_id, gint mail_id, unsigned *handle)
+{
+       debug_log("");
+       RETURN_VAL_IF_FAIL(account_id > ACCOUNT_MIN, FALSE);
+       RETURN_VAL_IF_FAIL(mail_id > 0, FALSE);
+
+       int err = 0;
+       unsigned email_handle = 0;
+       gboolean res = FALSE;
+
+       err = email_download_body(mail_id, 0, &email_handle);
+
+       if (err != EMAIL_ERROR_NONE) {
+               debug_warning("fail to download body - err (%d)", err);
+               goto error;
+       }
+
+       if (handle != NULL) {
+               debug_log("email_handle for body download: %d", email_handle);
+               *handle = email_handle;
+       }
+
+       res = TRUE;
+
+ error:
+       return res;
+}
+
+gboolean email_engine_attachment_download(gint account_id, gint mail_id, gint index, unsigned *handle)
+{
+       debug_log("");
+       RETURN_VAL_IF_FAIL(account_id > ACCOUNT_MIN, FALSE);
+       RETURN_VAL_IF_FAIL(mail_id > 0, FALSE);
+       RETURN_VAL_IF_FAIL(index > 0, FALSE);
+
+       int err = 0;
+       unsigned email_handle = 0;
+       gboolean res = FALSE;
+
+       err = email_download_attachment(mail_id, index, &email_handle);
+
+       if (err != EMAIL_ERROR_NONE) {
+               debug_warning("fail to download attachment - err (%d)", err);
+               goto error;
+       }
+
+       if (handle != NULL) {
+               debug_log("email_handle for attachment download: %d", email_handle);
+               *handle = email_handle;
+       }
+
+       res = TRUE;
+
+ error:
+       return res;
+}
+
 gboolean email_engine_delete_mail(gint account_id, int mailbox_id, gint mail_id, int sync)
 {
        debug_log("");
@@ -384,6 +525,69 @@ gboolean email_engine_delete_mail(gint account_id, int mailbox_id, gint mail_id,
        return res;
 }
 
+gboolean email_engine_delete_all_mail(gint account_id, int mailbox_id, int sync)
+{
+       debug_log("");
+       RETURN_VAL_IF_FAIL(account_id > ACCOUNT_MIN, FALSE);
+
+       int err = 0;
+       gboolean res = TRUE;    /* MUST BE initialized TRUE. */
+
+       err = email_delete_all_mails_in_mailbox(mailbox_id, sync);
+
+       if (err != EMAIL_ERROR_NONE) {
+               debug_warning("failed to delete all message - err (%d)", err);
+               res = FALSE;
+       }
+
+       return res;
+}
+
+gboolean email_engine_move_mail(gint account_id, int mailbox_id, gint mail_id)
+{
+       debug_log("");
+       RETURN_VAL_IF_FAIL(account_id > ACCOUNT_MIN, FALSE);
+       RETURN_VAL_IF_FAIL(mail_id > 0, FALSE);
+
+       debug_log("account_id: %d", account_id);
+       debug_log("mail_id: %d", mail_id);
+
+       int err = 0;
+       gboolean res = TRUE;    /* MUST BE initialized TRUE. */
+
+       RETURN_VAL_IF_FAIL(mailbox_id > 0, FALSE);
+
+       int mail_ids[1] = { 0 };
+       mail_ids[0] = mail_id;
+
+       err = email_move_mail_to_mailbox(mail_ids, 1, mailbox_id);
+
+       if (err != EMAIL_ERROR_NONE) {
+               debug_warning("failed to move message - err (%d)", err);
+               res = FALSE;
+       }
+
+       return res;
+}
+
+gboolean email_engine_move_all_mail(gint account_id, int old_mailbox_id, int new_mailbox_id)
+{
+       debug_log("");
+       RETURN_VAL_IF_FAIL(account_id > ACCOUNT_MIN, FALSE);
+
+       int err = 0;
+       gboolean res = TRUE;    /* MUST BE initialized TRUE. */
+
+       err = email_move_all_mails_to_mailbox(old_mailbox_id, new_mailbox_id);
+
+       if (err != EMAIL_ERROR_NONE) {
+               debug_warning("failed to move all message - err (%d)", err);
+               res = FALSE;
+       }
+
+       return res;
+}
+
 gchar *email_engine_get_attachment_path(gint attach_id)
 {
        debug_log("");
@@ -420,4 +624,266 @@ gchar *email_engine_get_attachment_path(gint attach_id)
        return attachment_path;
 }
 
+gboolean email_engine_get_account_info(gint account_id, EmailAccountInfo **account_info)
+{
+       debug_log("");
+       RETURN_VAL_IF_FAIL(account_id > ACCOUNT_MIN, FALSE);
+
+       (*account_info) = NULL;
+
+       EmailAccountInfo *info = (EmailAccountInfo *) calloc(1, sizeof(EmailAccountInfo));
+
+       if (info == NULL) {
+               debug_critical("failed to memory allocation");
+               return FALSE;
+       }
+
+       email_account_t *account = NULL;
+       int err = 0;
+
+       err = email_get_account(account_id, EMAIL_ACC_GET_OPT_FULL_DATA, &account);
+
+       if (err != EMAIL_ERROR_NONE) {
+               debug_critical("failed to get account info - err (%d)", err);
+               goto error;
+       }
+
+       if (STR_VALID(account->account_name)) {
+               info->account_name = strdup(account->account_name);
+       }
+
+       if (STR_VALID(account->user_email_address)) {
+               info->email_address = strdup(account->user_email_address);
+       }
+
+       if (STR_VALID(account->user_display_name)) {
+               info->user_name = strdup(account->user_display_name);
+       }
+
+       if (STR_VALID(account->incoming_server_password)) {
+               info->password = strdup(account->incoming_server_password);
+       }
+
+       if (STR_VALID(account->outgoing_server_address)) {
+               info->smtp_address = strdup(account->outgoing_server_address);
+       }
+
+       if (STR_VALID(account->outgoing_server_user_name)) {
+               info->smtp_user_name = strdup(account->outgoing_server_user_name);
+       }
+
+       if (STR_VALID(account->outgoing_server_password)) {
+               info->smtp_password = strdup(account->outgoing_server_password);
+       }
+
+       if (STR_VALID(account->incoming_server_address)) {
+               info->receiving_address = strdup(account->incoming_server_address);
+       }
+
+       info->smtp_auth = account->outgoing_server_need_authentication;
+       info->smtp_port = account->outgoing_server_port_number;
+       info->receiving_port = account->incoming_server_port_number;
+       info->receiving_type = account->incoming_server_type;
+       info->same_as = account->outgoing_server_use_same_authenticator;
+       info->smtp_ssl = account->outgoing_server_secure_connection;
+       info->receiving_ssl = account->incoming_server_secure_connection;
+       info->download_mode = account->auto_download_size;
+
+       err = email_free_account(&account, 1);
+
+       if (err != EMAIL_ERROR_NONE) {
+               debug_critical("failed to free account info - err (%d)", err);
+       }
+
+       (*account_info) = info;
+
+       return TRUE;
+
+ error:
+       if (info) {
+               free(info);
+       }
+       return FALSE;
+}
+
+void email_engine_free_account_info(EmailAccountInfo **account_info)
+{
+       debug_log("");
+       RETURN_IF_FAIL(*account_info != NULL);
+
+       EmailAccountInfo *info = (*account_info);
+
+       if (STR_VALID(info->account_name)) {
+               free(info->account_name);
+               info->account_name = NULL;
+       }
+
+       if (STR_VALID(info->email_address)) {
+               free(info->email_address);
+               info->email_address = NULL;
+       }
+
+       if (STR_VALID(info->user_name)) {
+               free(info->user_name);
+               info->user_name = NULL;
+       }
+
+       if (STR_VALID(info->password)) {
+               free(info->password);
+               info->password = NULL;
+       }
+
+       if (STR_VALID(info->receiving_address)) {
+               free(info->receiving_address);
+               info->receiving_address = NULL;
+       }
+
+       if (STR_VALID(info->smtp_address)) {
+               free(info->smtp_address);
+               info->smtp_address = NULL;
+       }
+
+       if (STR_VALID(info->smtp_user_name)) {
+               free(info->smtp_user_name);
+               info->smtp_user_name = NULL;
+       }
+
+       if (STR_VALID(info->smtp_password)) {
+               free(info->smtp_password);
+               info->smtp_password = NULL;
+       }
+
+       free(info);
+       info = NULL;
+}
+
+GList *email_engine_get_ca_mailbox_list_using_glist(int account_id)
+{
+       debug_log("");
+       int i, count = 0;
+       email_mailbox_t *mailbox_list = NULL;
+       GList *ret = NULL;
+       int err = 0;
+       /*
+       debug_log("account_id: %d", account_id);
+       debug_log("&mailbox_list: 0x%x", &mailbox_list);
+       */
+
+       err = email_get_mailbox_list_ex(account_id, -1, 1, &mailbox_list, &count);
+       if (err != EMAIL_ERROR_NONE) {
+               debug_critical("email_get_mailbox_list return error");
+               goto finally;
+       }
+       /*
+       debug_log("Executing email_get_mailbox_list is ended.");
+       debug_log("count: %d", count);
+       */
+
+       for (i = 0; i < count; i++) {
+               EmailMailboxNameAndAlias *nameandalias = calloc(1, sizeof(EmailMailboxNameAndAlias));
+               if (mailbox_list[i].mailbox_name == NULL) {
+                       debug_critical("mailbox_list[%d].name is null", i);
+                       free(nameandalias);
+                       continue;
+               } else {
+                       /* debug_log("mailbox_list[].name is %s", mailbox_list[i].mailbox_name); */
+               }
+               nameandalias->name = g_strdup(mailbox_list[i].mailbox_name);
+               nameandalias->mailbox_id = mailbox_list[i].mailbox_id;
+
+               if (mailbox_list[i].alias == NULL) {
+                       debug_critical("alias is NULL");
+                       nameandalias->alias = nameandalias->name;
+               } else {
+                       /* debug_log("mailbox_list[].alias is %s", mailbox_list[i].alias); */
+                       nameandalias->alias = g_strdup(mailbox_list[i].alias);
+               }
+
+               nameandalias->mailbox_type = mailbox_list[i].mailbox_type;
+               nameandalias->unread_count = mailbox_list[i].unread_count;
+               nameandalias->total_mail_count_on_local = mailbox_list[i].total_mail_count_on_local;
+               nameandalias->total_mail_count_on_server = mailbox_list[i].total_mail_count_on_server;
+
+               ret = g_list_append(ret, (gpointer)nameandalias);
+
+               /* debug_log("mailbox name: %s", mailbox_list[i].mailbox_name); */
+       }
+
+ finally:
+
+       email_free_mailbox(&mailbox_list, count);
+       return ret;
+}
+
+void email_engine_free_ca_mailbox_list_using_glist(GList **mailbox_list)
+{
+       debug_log("");
+       RETURN_IF_FAIL(mailbox_list != NULL);
+       RETURN_IF_FAIL(*mailbox_list != NULL);
+
+       GList *list = (GList *)(*mailbox_list);
+       int list_cnt = g_list_length(list);
+       int i = 0;
+
+       for (i = 0; i < list_cnt; i++) {
+               EmailMailboxNameAndAlias *nameandalias = (EmailMailboxNameAndAlias *) g_list_nth_data(list, i);
+               if (nameandalias == NULL) {
+                       debug_warning("nameandalias is NULL");
+               } else {
+                       g_free(nameandalias->name);
+                       g_free(nameandalias->alias);
+               }
+       }
+       g_list_free(list);
+       *mailbox_list = NULL;
+}
+
+int email_engine_get_max_account_id(void)
+{
+       debug_enter();
+
+       email_account_t *account_list = NULL;
+       int count = 0;
+       int e = email_get_account_list(&account_list, &count);
+       if (e != EMAIL_ERROR_NONE) {
+               debug_critical("email_get_account_list - err(%d)", e);
+               return -1;
+       }
+       debug_log("-- total account count : %d", count);
+
+       int max_account_id = 0;
+       int i = 0;
+       for (i = 0; i < count; i++) {
+               max_account_id = (account_list[i].account_id > max_account_id) ?
+                                                                       account_list[i].account_id : max_account_id;
+               debug_log("%2d) %-15s %-30s\n", account_list[i].account_id, account_list[i].account_name,
+                                                                               account_list[i].user_email_address);
+       }
+       email_free_account(&account_list, count);
+
+       debug_leave();
+       return max_account_id;
+}
+
+
+int email_engine_get_count_account(void)
+{
+       debug_enter();
+
+       email_account_t *account_list = NULL;
+       int count = 0;
+       int e = email_get_account_list(&account_list, &count);
+       if (e != EMAIL_ERROR_NONE) {
+               debug_critical("email_get_account_list - err(%d)", e);
+               return -1;
+       }
+       debug_log("-- total account count : %d", count);
+
+       email_free_account(&account_list, count);
+
+       debug_leave();
+       return count;
+}
+
+
 /* EOF */
diff --git a/common/src/email-html-converter.c b/common/src/email-html-converter.c
new file mode 100755 (executable)
index 0000000..2d79e20
--- /dev/null
@@ -0,0 +1,215 @@
+/*
+ * Copyright 2012  Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *    http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <stdio.h>
+#include <string.h>
+#include <sys/types.h>
+
+#include <glib.h>
+#include <glib/gprintf.h>
+
+#include "email-common-types.h"
+#include "email-debug.h"
+#include "email-utils.h"
+#include "email-html-converter.h"
+
+#define _USE_HTML_DUMP_                0
+
+static const gchar *_get_html_tag(const gchar char_val)
+{
+       const gchar *tag = NULL;
+
+       switch (char_val) {
+       case '\n':
+               tag = "<br>";
+               break;
+       case '\r':
+               tag = "";       /* skip. */
+               break;
+       case '<':
+               tag = "&lt";
+               break;
+       case '>':
+               tag = "&gt";
+               break;
+       default:
+               break;
+       }
+       return tag;
+}
+
+/* g_free(). */
+static gchar *_get_parse_plain_text(const gchar *text, gint size)
+{
+       RETURN_VAL_IF_FAIL(STR_VALID(text), NULL);
+       RETURN_VAL_IF_FAIL(size > 0, NULL);
+
+       gchar *html = NULL;
+       gchar *buff = NULL;
+       gchar *temp = NULL;
+       guint i = 0;
+       guint old_offset = 0, offset = 0;
+
+       for (i = 0; i < size; ++i) {
+
+               /* Get html tag. */
+               const gchar *tag = _get_html_tag(text[i]);
+
+               /* If need, convert text to html format. */
+               if (tag) {
+
+                       temp = html;
+
+                       if (i > old_offset) {
+                               offset = i - old_offset;
+                               buff = g_strndup(&text[old_offset], offset);
+                               if (temp) {
+                                       html = g_strconcat(temp, buff, tag, NULL);
+                               } else {
+                                       html = g_strconcat(buff, tag, NULL);
+                               }
+                               if (buff) {
+                                       g_free(buff);
+                                       buff = NULL;
+                               }
+                       } else {
+                               if (temp) {
+                                       html = g_strconcat(temp, tag, NULL);
+                               } else {
+                                       html = g_strconcat(tag, NULL);
+                               }
+                       }
+
+                       if (temp) {
+                               g_free(temp);
+                               temp = NULL;
+                       }
+
+                       old_offset = i + 1;
+               }
+       }
+
+       /* If not terminated. */
+       if (old_offset < size) {
+               if (html) {
+                       temp = html;
+                       buff = g_strndup(&text[old_offset], size - old_offset);
+                       html = g_strconcat(temp, buff, NULL);
+                       if (buff) {
+                               g_free(buff);
+                       }
+                       g_free(temp);
+               }
+       }
+
+       return html ? html : g_strndup(text, size);
+}
+
+static void _dump_buff(const gchar *buff)
+{
+       RETURN_IF_FAIL(STR_VALID(buff));
+
+#if _USE_HTML_DUMP_ == 1
+       tzset();                /* MUST BE. */
+       time_t now = time(NULL);
+       struct tm *t = localtime(&now);
+
+       gchar buff_path[MAX_STR_LEN] = "\0";
+
+       g_sprintf(buff_path, "%s/%04d.%02d.%02d[%02dH.%02dM].html", DIR_SRV_PREFIX, t->tm_year + 1900, t->tm_mon, t->tm_mday, t->tm_hour, t->tm_min);
+
+       debug_log("path [%s]", buff_path);
+
+       email_save_file(buff_path, buff, STR_LEN((gchar *)buff));
+#endif /* _USE_HTML_DUMP_ */
+}
+
+/* Exported API.
+ */
+gchar *email_html_converter(const gchar *plain_text, const gchar *charset)
+{
+       /*debug_time();*/
+       char meta_charset[MAX_STR_LEN] = { 0, };
+       g_snprintf(meta_charset, sizeof(meta_charset), "<html><head><meta name=\"viewport\" content=\"width=device-width, "
+                       "initial-scale=0.8, maximum-scale=2.0, minimum-scale=0.5, user-scalable=yes, target-densitydpi=medium-dpi\"/>"
+                       "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=%s\">", charset);
+       debug_log("meta charset:%s", meta_charset);
+
+       /*const char *text_css = "<STYLE type=\"text/css\"> \
+body {background-color: #1a1a1a; \
+color: #ffffff; \
+font-size: 32px; \
+margin-left: 18px; \
+margin-right: 18px; \
+margin-top: 8px; \
+margin-bottom: 8px;} \
+p {font-size: 32px;} \
+table {font-size: 32px;} \
+a:link {color: white} \
+a:visited {color: red} \
+a:active {color: red; background: #1a1a1a} \
+</STYLE></head><body>";*/
+
+       const char *text_css = "<STYLE type=\"text/css\"> \
+body {font-size: 16px; \
+margin-left: 18px; \
+margin-right: 18px; \
+margin-top: 8px; \
+margin-bottom: 8px;} \
+p {font-size: 16px;} \
+table {font-size: 16px;} \
+</STYLE></head><body>";
+
+       const gchar *html_etag = "</body></html>";
+       gchar *html_stag = NULL;
+       gchar *html = NULL;
+
+       html_stag = g_strconcat(meta_charset, text_css, NULL);
+
+       if (STR_INVALID(plain_text)) {
+               debug_log("empty file detected");
+               html = g_strconcat(html_stag, html_etag, NULL);
+               g_free(html_stag);
+               return html;
+       }
+
+       /*
+       debug_log("plain-text [%s]", plain_text);
+       */
+
+       gchar *text = NULL;
+       gchar *buff = NULL;
+
+       if (STR_INVALID(html)) {
+               debug_log("not found cut-link - convert plain/text to html");
+               text = _get_parse_plain_text(plain_text, STR_LEN((gchar *)plain_text));
+               buff = g_strconcat(html_stag, text, NULL);
+               if (text)
+                       g_free(text);
+               html = g_strconcat(buff, html_etag, NULL);
+               g_free(buff);
+       }
+       /*debug_time();*/
+
+       _dump_buff(html);
+
+       if (html_stag)
+               g_free(html_stag);
+
+       return html;
+}
+
+/* EOF */
index 741a5d1..40f6d19 100755 (executable)
@@ -37,6 +37,34 @@ static UDateFormat *icu_formatter_EEEMMMd = NULL;
 enum appcore_time_format icu_timeformat;
 
 
+enum {
+       EMAIL_GROUP_UNKNOWN = -1,
+       EMAIL_GROUP_TODAY,
+       EMAIL_GROUP_YESTERDAY,
+       EMAIL_GROUP_SUN,
+       EMAIL_GROUP_MON,
+       EMAIL_GROUP_TUE,
+       EMAIL_GROUP_WED,
+       EMAIL_GROUP_THU,
+       EMAIL_GROUP_LASTWEEK,
+       EMAIL_GROUP_TWOWEEKS_AGO,
+       EMAIL_GROUP_THREEWEEKS_AGO,
+       EMAIL_GROUP_EARLIER_THISMONTH,
+       EMAIL_GROUP_LASTMONTH,
+       EMAIL_GROUP_OLDER,
+       EMAIL_GROUP_UNREAD,
+       EMAIL_GROUP_READ,
+       EMAIL_GROUP_FAVORITES,
+       EMAIL_GROUP_ATTACHMENTS,
+       EMAIL_GROUP_OTHER,
+       EMAIL_GROUP_PRIORITY_HIGH,
+       EMAIL_GROUP_PRIORITY_NORMAL,
+       EMAIL_GROUP_PRIORITY_LOW,
+       EMAIL_GROUP_MAX,
+};
+
+
+static gboolean _copy_actual_file(const char *src_full_path, const char *dest_full_path, gboolean(*copy_file_cb) (float percentage));
 static void _generate_best_pattern(const char *locale, UChar * customSkeleton, char *formattedString, void *time);
 static int _open_icu_pattern_n_formatter(const char *locale, char *skeleton, UDateFormat **formatter);
 static int _close_icu_pattern_n_formatter(UDateFormat *formatter);
@@ -119,11 +147,6 @@ gchar *email_parse_get_filename_from_path(const gchar *path)
 
        g_strfreev(token_list); /* MUST BE. */
 
-       /*token_list = g_strsplit_set(file_name, ".", -1);
-       RETURN_VAL_IF_FAIL(token_list != NULL, NULL);
-       gchar *file_name_without_ext = g_strdup(token_list[0]);
-       g_strfreev(token_list);*/
-
        int len = 0;
        if (file_name)
                len = strlen(file_name);
@@ -163,11 +186,6 @@ void email_parse_get_filename_n_ext_from_path(const gchar *path, gchar **ret_fil
 
        g_strfreev(token_list); /* MUST BE. */
 
-       /*token_list = g_strsplit_set(file_name, ".", -1);
-       RETURN_VAL_IF_FAIL(token_list != NULL, NULL);
-       gchar *file_name_without_ext = g_strdup(token_list[0]);
-       g_strfreev(token_list);*/
-
        int len = 0;
        if (file_name)
                len = strlen(file_name);
@@ -183,6 +201,27 @@ void email_parse_get_filename_n_ext_from_path(const gchar *path, gchar **ret_fil
        g_free(file_name);
 }
 
+gchar *email_parse_get_filepath_from_path(const gchar *path)
+{
+       debug_log("");
+       RETURN_VAL_IF_FAIL(STR_VALID(path), NULL);
+
+       gchar *file_path = NULL;
+       gint i = 0;
+       gint size = STR_LEN((gchar *)path);
+
+       for (i = (size - 1); i >= 0; --i) {
+               if (path[i] == '/') {
+                       file_path = g_strndup(path, i + 1);
+                       break;
+               }
+       }
+
+       debug_log("file path (%s)", file_path);
+
+       return file_path;
+}
+
 void email_save_file(const gchar *path, const gchar *buf, gsize len)
 {
        debug_log("");
@@ -331,6 +370,215 @@ gboolean email_get_address_validation(const char *address)
        return ret;
 }
 
+gchar *email_cut_text_by_byte_len(const gchar *text, gint len)
+{
+       debug_log("");
+       RETURN_VAL_IF_FAIL(STR_VALID(text), NULL);
+       RETURN_VAL_IF_FAIL(len > 0, NULL);
+
+       gint char_len2 = g_utf8_strlen(text, len);
+       gchar *offset = g_utf8_offset_to_pointer(text, char_len2);
+
+       gchar *ret_text = (gchar *)g_malloc0(offset - text + 1);
+
+       STR_NCPY(ret_text, (gchar *)text, offset - text);
+
+       return ret_text;
+}
+
+static int is_yesterday(struct tm *req_tm, struct tm *now_tm)
+{
+       if (now_tm->tm_yday == 0) { /* It is the first day of year */
+               if (req_tm->tm_year == now_tm->tm_year-1 && req_tm->tm_mon == 12 && req_tm->tm_mday == 31)
+                       return 1;
+               else
+                       return 0;
+       } else {
+               if (req_tm->tm_year == now_tm->tm_year && req_tm->tm_yday == now_tm->tm_yday - 1)
+                       return 1;
+               else
+                       return 0;
+       }
+}
+
+static int is_today(struct tm *req_tm, struct tm *now_tm)
+{
+       if (req_tm->tm_year == now_tm->tm_year && req_tm->tm_yday == now_tm->tm_yday)
+               return 1;
+       else
+               return 0;
+}
+
+static int is_nth_weeks_ago(struct tm *req_tm, struct tm *now_tm, int num)
+{
+       time_t req = mktime(req_tm);
+       time_t now = mktime(now_tm);
+       time_t nth_begin = 0, nth_end = 0;
+       nth_end = now - (now_tm->tm_wday * 3600 * 24 + now_tm->tm_hour * 3600 + now_tm->tm_min * 60 + now_tm->tm_sec) - ((num - 1) * 7 * 3600 * 24);
+       nth_begin = now - (now_tm->tm_wday * 3600 * 24 + now_tm->tm_hour * 3600 + now_tm->tm_min * 60 + now_tm->tm_sec) - (num * 7 * 3600 * 24);
+
+       if(req > nth_begin && req < nth_end)
+               return 1;
+       else
+               return 0;
+}
+
+static int is_lastmonth(struct tm *req_tm, struct tm *now_tm)
+{
+       if((req_tm->tm_year == now_tm->tm_year - 1) && (req_tm->tm_mon == 11) && (now_tm->tm_mon == 0))
+               return 1;
+       else if((req_tm->tm_year == now_tm->tm_year) && (req_tm->tm_mon == now_tm->tm_mon - 1))
+               return 1;
+       else
+               return 0;
+}
+
+int email_get_group_title_str(const time_t req_time, gchar **group_title,
+                                                                               gchar **group_date)
+{
+       debug_log("");
+       RETURN_VAL_IF_FAIL(group_title != NULL, 0);
+       RETURN_VAL_IF_FAIL(group_date != NULL, 0);
+
+       int groupIndex = EMAIL_GROUP_UNKNOWN;
+       tzset();                /* MUST BE. */
+
+       time_t now_time = time(NULL);
+
+       struct tm *dummy = localtime(&now_time);
+       struct tm now_tm;
+       memcpy(&now_tm, dummy, sizeof(struct tm));
+
+       dummy = localtime(&req_time);
+       struct tm req_tm;
+       memcpy(&req_tm, dummy, sizeof(struct tm));
+
+       if (is_today(&req_tm, &now_tm) || req_time > now_time /*future mail :)*/) {
+               *group_title = g_strdup(dgettext("sys_string", "IDS_COM_BODY_TODAY"));
+               *group_date = email_get_date_text_with_formatter(icu_formatter_EEEMMMd, (void *)&req_time);
+               groupIndex = EMAIL_GROUP_TODAY;
+       }
+       else if (is_yesterday(&req_tm, &now_tm)) {
+               *group_title = g_strdup(dgettext("sys_string", "IDS_COM_BODY_YESTERDAY"));
+               *group_date = email_get_date_text_with_formatter(icu_formatter_EEEMMMd, (void *)&req_time);
+               groupIndex = EMAIL_GROUP_YESTERDAY;
+       }
+       else if (is_nth_weeks_ago(&req_tm, &now_tm, 0)) {
+               switch(req_tm.tm_wday)
+               {
+               case 0:
+                       *group_title = g_strdup(_("IDS_EMAIL_BODY_SUNDAY"));
+                       groupIndex = EMAIL_GROUP_SUN;
+                       break;
+               case 1:
+                       *group_title = g_strdup(_("IDS_EMAIL_BODY_MONDAY"));
+                       groupIndex = EMAIL_GROUP_MON;
+                       break;
+               case 2:
+                       *group_title = g_strdup(_("IDS_EMAIL_BODY_TUESDAY"));
+                       groupIndex = EMAIL_GROUP_TUE;
+                       break;
+               case 3:
+                       *group_title = g_strdup(_("IDS_EMAIL_BODY_WEDNESDAY"));
+                       groupIndex = EMAIL_GROUP_WED;
+                       break;
+               case 4:
+                       *group_title = g_strdup(_("IDS_EMAIL_BODY_THURSDAY"));
+                       groupIndex = EMAIL_GROUP_THU;
+                       break;
+               case 5:
+                       *group_title = g_strdup(_("IDS_EMAIL_BODY_FRIDAY"));
+                       groupIndex = EMAIL_GROUP_THU;
+                       break;
+               case 6:
+                       *group_title = g_strdup(_("IDS_EMAIL_BODY_SATURDAY"));
+                       groupIndex = EMAIL_GROUP_THU;
+                       break;
+               default:
+                       debug_log("invalid date");
+                       break;
+               }
+               *group_date = email_get_date_text_with_formatter(icu_formatter_EEEMMMd, (void *)&req_time);
+       }
+       else if(is_nth_weeks_ago(&req_tm, &now_tm, 1)) {
+               *group_title = g_strdup(_("IDS_EMAIL_BODY_LAST_WEEK"));
+               groupIndex = EMAIL_GROUP_LASTWEEK;
+               *group_date = NULL;
+       }
+       else if(is_nth_weeks_ago(&req_tm, &now_tm, 2)) {
+               char str[MAX_STR_LEN] = { 0, };
+               snprintf(str, sizeof(str), _("IDS_EMAIL_BODY_PD_WEEKS_AGO"), 2);
+               *group_title = g_strdup(str);
+               groupIndex = EMAIL_GROUP_TWOWEEKS_AGO;
+               *group_date = NULL;
+       }
+       else if(is_nth_weeks_ago(&req_tm, &now_tm, 3)) {
+               char str[MAX_STR_LEN] = { 0, };
+               snprintf(str, sizeof(str), _("IDS_EMAIL_BODY_PD_WEEKS_AGO"), 3);
+               *group_title = g_strdup(str);
+               groupIndex = EMAIL_GROUP_THREEWEEKS_AGO;
+               *group_date = NULL;
+       }
+       else if((req_tm.tm_year == now_tm.tm_year) && (req_tm.tm_mon == now_tm.tm_mon)) {
+               *group_title = g_strdup(N_("Earlier this Month"));
+               groupIndex = EMAIL_GROUP_EARLIER_THISMONTH;
+               *group_date = NULL;
+       }
+       else if(is_lastmonth(&req_tm, &now_tm)) {
+               *group_title = g_strdup(_("IDS_EMAIL_BODY_LAST_MONTH"));
+               groupIndex = EMAIL_GROUP_LASTMONTH;
+               *group_date = NULL;
+       }
+       else {
+               *group_title = g_strdup(_("IDS_EMAIL_BODY_OLDER_M_HISTORY"));
+               groupIndex = EMAIL_GROUP_OLDER;
+               *group_date = NULL;
+       }
+
+       /*debug_log("-now : %d.%d (%d)", now_tm.tm_year + 1900, now_tm.tm_yday, now_time);
+       debug_log("-req : %d.%d (%d)", req_tm.tm_year + 1900, req_tm.tm_yday, req_time);
+       debug_log("(%s) (%s)", *group_title, *group_date);*/
+
+       return groupIndex;
+}
+
+char *email_get_str_datetime(const time_t req_time)
+{
+       debug_log("");
+
+       tzset(); /* MUST BE. */
+
+       time_t now_time = time(NULL);
+
+       struct tm *dummy = localtime(&now_time);
+       struct tm now_tm;
+       memcpy(&now_tm, dummy, sizeof(struct tm));
+
+       dummy = localtime(&req_time);
+       struct tm req_tm;
+       memcpy(&req_tm, dummy, sizeof(struct tm));
+
+       /*debug_log("*now : %d.%d.%d", now_tm.tm_year + 1900, now_tm.tm_mon, now_tm.tm_mday);
+       debug_log("*req : %d.%d.%d", req_tm.tm_year + 1900, req_tm.tm_mon, req_tm.tm_mday);*/
+
+       char *datetime = ({
+                       char *_ret_str = NULL;
+                       if (is_today(&req_tm, &now_tm) || is_yesterday(&req_tm, &now_tm) ||
+                                       req_time > now_time) /* sometimes, future mail arrives :) */ {
+                               /* today or yesterday */
+                               _ret_str = (icu_timeformat == APPCORE_TIME_FORMAT_12)?
+                                       email_get_date_text_with_formatter(icu_formatter_hmm, (void *)&req_time):
+                                       email_get_date_text_with_formatter(icu_formatter_Hmm, (void *)&req_time);
+                       } else if (req_tm.tm_year < now_tm.tm_year) /* previous year */
+                               _ret_str = email_get_date_text_with_formatter(icu_formatter_MMMyyyy, (void *)&req_time);
+                       else /* days before yesterday in this year */
+                               _ret_str = email_get_date_text_with_formatter(icu_formatter_MMMd, (void *)&req_time);
+                       _ret_str;
+               });
+
+       return datetime;
+}
+
 char *email_get_date_text(const char *locale, char *skeleton, void *time)
 {
        debug_log("");
@@ -343,6 +591,27 @@ char *email_get_date_text(const char *locale, char *skeleton, void *time)
        return g_strdup(formattedString);
 }
 
+char *email_get_date_text_with_formatter(UDateFormat *formatter, void *time)
+{
+       debug_log("");
+       char formattedString[128] = { 0, };
+
+       UErrorCode status = U_ZERO_ERROR;
+       UDate date = 0;
+       UChar formatted[64] = { 0, };
+       int32_t formattedCapacity;
+       int32_t formattedLength;
+
+       formattedCapacity = (int32_t) (sizeof(formatted) / sizeof(formatted[0]));
+       if (time) {
+               time_t msg_time = *(time_t *)time;
+               date = (UDate)msg_time * 1000;  /* Equivalent to Date = ucal_getNow() in Milliseconds */
+       }
+       formattedLength = udat_format(formatter, date, formatted, formattedCapacity, NULL, &status);
+       u_austrncpy(formattedString, formatted, 128);
+       return g_strdup(formattedString);
+}
+
 int email_open_icu_pattern_generator(void)
 {
        debug_log("");
@@ -445,6 +714,227 @@ static void _generate_best_pattern(const char *locale, UChar * customSkeleton, c
        udat_close(formatter);
 }
 
+void _create_download_folder()
+{
+       debug_log("");
+
+       if (!email_check_dir_exist(DIR_DEFAULT_MEDIA_PHONE"/Downloads")) {
+               int nErr = -1;
+               nErr = mkdir(DIR_DEFAULT_MEDIA_PHONE"/Downloads", 0755);
+               debug_log("errno: %d", nErr);
+               if (nErr == -1)
+                       debug_log("Downloads folder creation failed");
+       } else
+               debug_log("Downloads folder already exists.");
+}
+
+int email_attachments_save_file(const gchar *path, gchar *newpath, gboolean(*copy_file_cb) (float percentage))
+{
+       debug_log("");
+       RETURN_VAL_IF_FAIL(STR_VALID(path), EMAIL_EXT_SAVE_ERR_UNKNOWN);
+
+       gchar new_path[MAX_DEFAULT_DIR_PATH] = { 0, };
+       gchar tmp_path[MAX_DEFAULT_DIR_PATH] = { 0, };
+       gchar new_filename[MAX_DEFAULT_DIR_PATH] = { 0, };
+       gchar prefix[MAX_DEFAULT_DIR_PATH] = { 0, };
+       gboolean saved = FALSE;
+       gint err = 0;
+       gint max_length = MAX_DEFAULT_DIR_PATH;
+
+       snprintf(prefix, sizeof(prefix), "%s", DIR_DEFAULT_MEDIA_PHONE"/Downloads");
+
+       debug_log("prefix:%s", prefix);
+
+       memset(new_path, 0, sizeof(MAX_DEFAULT_DIR_PATH));
+       memset(tmp_path, 0, sizeof(MAX_DEFAULT_DIR_PATH));
+
+       if (STR_LEN(tmp_path) == 0) {
+               g_sprintf(tmp_path, "%s", 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("");
+               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);
+               }
+       }
+
+       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);
+
+       /* Move for DRM file */
+
+       _create_download_folder();
+
+       /* Copy for non-DRM */
+       if (access(new_path, F_OK) != -1) {
+               debug_log("file existed");
+               err = EMAIL_EXT_SAVE_ERR_ALREADY_EXIST;
+       } else {
+               saved = _copy_actual_file(path, new_path, copy_file_cb);
+               debug_log("saved(%d), err(%d), errno(%d)", saved, err, errno);
+
+               if (saved)
+                       err = EMAIL_EXT_SAVE_ERR_NONE;
+               else
+                       err = EMAIL_EXT_SAVE_ERR_UNKNOWN;
+       }
+
+       snprintf(newpath, MAX_STR_LEN, "%s", new_path);
+
+       return err;
+}
+
+static gboolean _copy_actual_file(const char *src_full_path, const char *dest_full_path, gboolean(*copy_file_cb) (float percentage))
+{
+       debug_log("");
+       FILE *fs = NULL;
+       FILE *fd = NULL;
+       char buff[4096] = { 0, };
+       int n = 0;
+       gboolean result = FALSE;
+       gboolean stop_copying = FALSE;
+       int m = 0;
+       int cnt = 0;
+       struct stat statbuf = { 0 };
+       int ret = 0;
+       int total_size = 0;
+       int copied_size = 0;
+       gboolean remove_dest = FALSE;
+       clock_t begin;
+       clock_t finish;         /* consumed time to copy whole file */
+       double totaltime;
+       float percentage = 0.0;
+
+       fs = fopen(src_full_path, "rb");
+       if (fs == NULL) {
+               int err = errno;
+               debug_log("fopen error(%d)", err);
+               return FALSE;
+       }
+
+       ret = fstat(fileno(fs), &statbuf);
+       if (ret != 0) {
+               debug_log("fstat error");
+               fclose(fs);
+               return FALSE;
+       }
+
+       total_size = (int)statbuf.st_size;
+
+       fseek(fs, 0, SEEK_SET);
+
+       fd = fopen(dest_full_path, "wb");
+
+       remove_dest = TRUE;
+
+       if (fd == NULL) {
+               int err = errno;
+               debug_log("fopen error(%d)", err);
+               fclose(fs);
+               return FALSE;
+       }
+
+       fseek(fd, 0, SEEK_SET);
+
+       copied_size = 0;
+
+       begin = clock();
+
+       while (1) {
+               result = feof(fs);
+               if (!result) {
+                       n = fread(buff, sizeof(char), sizeof(buff), fs);
+                       if (n > 0) {
+                               m = fwrite(buff, sizeof(char), n, fd);
+                               if (m <= 0) {
+                                       debug_log("fwrite = %d", m);
+                                       result = FALSE;
+                                       goto CATCH;
+                               }
+
+                               cnt++;
+                               copied_size += m;
+
+                               if (cnt > 100) {
+                                       percentage = ((float)(total_size - copied_size) / (float)total_size) * 100.0;
+                                       if (copy_file_cb)
+                                               stop_copying = copy_file_cb(percentage);
+
+                                       if (stop_copying) {
+                                               result = FALSE;
+                                               remove_dest = TRUE;
+                                               goto CATCH;
+                                       }
+
+                                       cnt = 0;
+                               }
+                       } else {
+                               result = TRUE;
+                               goto CATCH;
+                       }
+               } else {
+                       result = TRUE;
+                       goto CATCH;
+               }
+       }
+
+ CATCH:
+       fflush(fd);
+       fsync(fileno(fd));
+       fclose(fd);
+       fclose(fs);
+
+       if (remove_dest && result == FALSE) {
+               remove(dest_full_path);
+               sync();
+       }
+
+       if (result) {
+               finish = clock();
+               totaltime = (double)(finish - begin) / CLOCKS_PER_SEC;
+               debug_log("takes %f s to copy %s", totaltime, src_full_path);
+       }
+
+       return result;
+}
+
 gboolean email_drm_file_is_right(const gchar *path)
 {
        RETURN_VAL_IF_FAIL(STR_VALID(path), FALSE);
@@ -482,4 +972,101 @@ gboolean email_drm_file_forward_lock_check(const gchar *path)
 
        return FALSE;
 }
+
+
+static int termination_flag = 0;
+static int pause_flag = 0;
+
+void set_app_terminated()
+{
+       termination_flag = 1;
+}
+
+int get_app_terminated()
+{
+       return termination_flag;
+}
+
+void set_app_paused()
+{
+       pause_flag = 1;
+}
+
+void reset_app_paused()
+{
+       pause_flag = 0;
+}
+
+int get_app_paused()
+{
+       return pause_flag;
+}
+
+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--;
+       }
+       *(end + 1) = '\0';
+       s = t;
+
+       debug_log("result [%s]", s);
+       return s;
+}
+
+char* email_util_strltrim(char* s)
+{
+       char* begin;
+       begin = s;
+
+       while (*begin != '\0') {
+               if (isspace(*begin))
+                       begin++;
+               else {
+                       s = begin;
+                       break;
+               }
+       }
+
+       debug_log("result [%s]", s);
+       return s;
+}
+
+char* email_util_get_parent_folder(char *s)
+{
+       gchar **vector = NULL;
+       vector = g_strsplit_set(s, "/", -1);
+       int vlen = g_strv_length(vector);
+       gchar *foler_name = g_strdup(vector[vlen-1]);
+       gchar* retval = g_strdup(s);
+       gchar* ptr = NULL;
+       ptr = g_strstr_len(retval, -1, foler_name);
+
+       debug_log("input [%s], vlen(%d)", s, vlen);
+
+       if (ptr != NULL && vlen > 1){
+               gchar* temp = g_strndup(retval, ptr-retval-1);
+               g_free(retval);
+               retval = g_strdup(temp);
+               g_free(temp);
+
+               debug_log("foler_name [%s], retval[%s]", foler_name, retval);
+
+               g_free(foler_name);
+               return retval;
+       }
+       else
+       {
+               debug_log("foler_name [%s]: parent == root. ", foler_name);
+               g_free(foler_name);
+               return NULL;
+       }
+}
+
 /* EOF */
index 4d8b6dd..6f5c276 100755 (executable)
@@ -24,8 +24,8 @@ INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/common/include)
 
 INCLUDE(FindPkgConfig)
 pkg_check_modules(pkgs-composer REQUIRED ecore ecore-file glib-2.0 gobject-2.0 edbus
-                                       appcore-common elementary capi-appfw-application
-                                       sysman dlog email-service contacts-service syspopup-caller
+                                       appcore-common elementary capi-appfw-application status
+                                       sysman dlog email-service contacts-service
                                        efreet-mime ewebkit2 ui-gadget-1 bundle mm-fileinfo mmutil-jpeg libmedia-utils ethumb ecore-x)
 
 FOREACH(flag ${pkgs-composer_CFLAGS})
@@ -50,7 +50,6 @@ ADD_DEFINITIONS("-DDEBUG")
 ADD_DEFINITIONS("-D_TEMPORARY_FIX_FOR_ROTATION_")
 ADD_DEFINITIONS("-D_POPUP_WITH_LIST")
 ADD_DEFINITIONS("-D_ALWAYS_CC_MYSELF")
-ADD_DEFINITIONS("-D_CC_BCC")
 ##ADD_DEFINITIONS("-D_LAUNCH_APP")
 
 ADD_LIBRARY(${PROJECT_NAME} SHARED ${SRCS})
@@ -66,9 +65,4 @@ ADD_DEPENDENCIES(${PROJECT_NAME} email-composer-view.edj)
 INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${UGDIR})
 INSTALL(FILES ${CMAKE_COMPOSER_BINARY_DIR}/email-composer-view.edj DESTINATION ${EDJDIR})
 INSTALL(FILES ${CMAKE_COMPOSER_SOURCE_DIR}/ug-email-composer-efl.xml DESTINATION /opt/share/packages)
-INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/images DESTINATION ${RESDIR} FILES_MATCHING PATTERN "*.png")
-INSTALL(FILES ${CMAKE_COMPOSER_SOURCE_DIR}/theme/_email_default.html DESTINATION ${DATADIR})
-
-# i18n
-#ADD_SUBDIRECTORY(po)
 
index 43d6a76..98222ef 100755 (executable)
@@ -55,9 +55,12 @@ char *_composer_from_gl_text_get(void *data, Evas_Object *obj, const char *part)
 Evas_Object *_composer_from_gl_content_get(void *data, Evas_Object *obj, const char *part);
 
 void _composer_cbar_cc_clicked(void *data, Evas_Object *obj, void *event_info);
-#ifndef _CC_BCC
-void _composer_cbar_bcc_clicked(void *data, Evas_Object *obj, void *event_info);
-#endif
+
+void _composer_cbar_add_me_clicked(void *data, Evas_Object *obj, void *event_info);
+void _composer_cbar_save_as_draft_clicked(void *data, Evas_Object *obj, void *event_info);
+void _composer_cbar_priority_clicked(void *data, Evas_Object *obj, void *event_info);
+void _composer_cbar_tracking_clicked(void *data, Evas_Object *obj, void *event_info);
+
 void _composer_cbar_send_clicked(void *data, Evas_Object *obj, void *event_info);
 
 void _composer_script_executed_cb(Evas_Object *o, const char *result, void *data);
index 0c72425..cb0fb64 100755 (executable)
 
 #define MAX_RECIPIENT_ADDRESS_LEN      234
 #define MAX_RECIPIENT_COUNT            100
-#define MAX_RECIPIENT_ADDRESSES_LEN    (MAX_RECIPIENT_ADDRESS_LEN*MAX_RECIPIENT_COUNT)
+#define MAX_RECIPIENT_ADDRESSES_LEN    (MAX_RECIPIENT_ADDRESS_LEN * MAX_RECIPIENT_COUNT)
 #define MAX_SUBJECT_LEN                        1024
 
 #define MAX_BODY_SIZE                          32763
 #define MAX_ATTACHMENT_ITEM            100
-#define MAX_ATTACHMENT_SIZE            10*1024*1024
+#define MAX_ATTACHMENT_SIZE            10 * 1024 * 1024
 #define MAX_ATTACHMENT_FILE_LEN        1024
 
 #define CONV_THUMB_WIDTH       250
index 5f3661a..eafd435 100755 (executable)
@@ -112,5 +112,8 @@ void _composer_display_position(void *data);
 void _composer_print_hit_test_result(Ewk_Hit_Test *hit_test);
 void _composer_coords_ewk_to_evas(Evas_Object *view, int ewkX, int ewkY, int *evasX, int *evasY);
 void _composer_coords_evas_to_ewk(Evas_Object *view, int evasX, int evasY, int *ewkX, int *ewkY);
+void _composer_set_option_tray_menu(int num, EmailComposerUGD *ugd);
+void _composer_unset_option_tray_menu(int num, EmailComposerUGD *ugd);
+
 
 #endif                         /* __DEF_email_composer_util_H__ */
index dc4b1fd..2fb9af9 100755 (executable)
@@ -43,7 +43,6 @@
 
 #define _ENABLE_ENDKEY_ 0
 #define MAX_RECENT_ITEM 100
-#define MB_SVC_FILE_PATH_LEN_MAX 255
 #define TEMP_BUFFER_SIZE 1024
 
 #define MAX_WEBVIEW_HEIGHT 88
@@ -62,7 +61,7 @@ struct ug_data {
        Evas *evas;
 
        Evas_Object *bg;
-       /*Elm_Theme *th;*/
+       Elm_Theme *th;
 
        /* New notify - TODO: unify the popup usage */
        Evas_Object *composer_noti;
@@ -93,6 +92,7 @@ struct ug_data {
        bool bSendBtnDisabled;
        bool cc_added;
        bool bcc_added;
+       bool me_added;
 
        int indicator_height;
        bool is_main_scroller_scrolling;
@@ -108,11 +108,22 @@ struct ug_data {
 
        int option_header_opened;
 
-#ifndef _CC_BCC
-       Elm_Object_Item *controlbar_item[2];
-#else
-       Elm_Object_Item *controlbar_item[1];
-#endif
+       Evas_Object *dummy_btn;
+       Evas_Object *add_me_btn;
+       Evas_Object *save_as_draft_btn;
+
+       int priority_option;
+       Evas_Object *priority_btn;
+       Evas_Object *priority_rdg;
+       Evas_Object *priority_rd[3];
+
+       Evas_Object *tracking_btn;
+       Eina_Bool tracking_option[2];
+
+       Evas_Object *cbar;
+       Evas_Object *cbar2;
+       Elm_Object_Item *controlbar_item[6];
+
        Evas_Object *cc_btn;
        Evas_Object *bcc_btn;
 
@@ -257,6 +268,16 @@ typedef enum {
        COMPOSER_RECIPIENT_TYPE_MAX,
 } COMPOSER_RECIPIENT_TYPE_E;
 
+enum {
+       EMAIL_COMPOSER_ADD_ME_BTN,
+       EMAIL_COMPOSER_ADD_CC_BCC_BTN,
+       EMAIL_COMPOSER_SAVE_AS_DRAFT_BTN,
+       EMAIL_COMPOSER_PRIORITY_BTN,
+       EMAIL_COMPOSER_TRACKING_BTN,
+       EMAIL_COMPOSER_DUMMY_BTN,
+       EMAIL_COMPOSER_BTN_MAX
+};
+
 /****************************************************/
 /*                     Function Declaration                    */
 /****************************************************/
index dfafbd4..f33602a 100755 (executable)
@@ -15,6 +15,7 @@
  */
 
 #include <string.h>
+#include <status.h>
 
 #include "email-composer.h"
 #include "email-composer-util.h"
 #include "email-composer-predictive-search.h"
 #include "email-composer-js.h"
 
+#define ACCOUNT_ICON_GMAIL IMGDIR"/M02_email_list_icon_gmail.png"
+#define ACCOUNT_ICON_HOTMAIL IMGDIR"/M02_email_list_icon_hotmail.png"
+#define ACCOUNT_ICON_YAHOO IMGDIR"/M02_email_list_icon_YahooMail.png"
+#define ACCOUNT_ICON_AOL IMGDIR"/M02_email_list_icon_AOL.png"
+#define ACCOUNT_ICON_OTHERS IMGDIR"/icon_email.png"
+
 static EmailComposerUGD *g_ugd = NULL;
 
 bool edit_mode = false;
@@ -35,6 +42,8 @@ EmailList email_list[MAX_RECIPIENT_COUNT];
 
 static Elm_Genlist_Item_Class itc;
 static Elm_Genlist_Item_Class from_itc;
+static Elm_Genlist_Item_Class priority_itc;
+static Elm_Genlist_Item_Class tracking_itc;
 
 static void _composer_mbe_popup_change_addr_selected_cb(void *data, Evas_Object *obj, void *event_info);
 static void _composer_from_change_response_cb(void *data, Evas_Object *obj, void *event_info);
@@ -42,9 +51,6 @@ static void _composer_from_radio_cb(void *data, Evas_Object *obj, void *event_in
 static void _composer_from_gl_sel(void *data, Evas_Object *obj, void *event_info);
 
 static Eina_Bool _composer_cc_mbe_set_focus(void *data);
-#ifndef _CC_BCC
-static Eina_Bool _composer_bcc_mbe_set_focus(void *data);
-#endif
 static void *_composer_contact_search_by_email(EmailComposerUGD *ugd, const char *search_word);
 static void _composer_delete_contacts_list(EMAIL_CONTACT_LIST_INFO_S *contacts_list_item);
 static void _composer_get_html_content_for_draft_cb(Evas_Object *o, const char *result, void *data);
@@ -99,13 +105,26 @@ void _composer_more_button_cb(void *data, Evas_Object *obj, void *event_info)
 
        debug_log("More Button Clicked");
 
-       if (ugd->option_header_opened)
+       if (ugd->option_header_opened) {
+               if (ugd->isRotated == true) {
+                       _composer_resize_body_webview(ugd, 316);
+               } else {
+                       _composer_resize_body_webview(ugd, ugd->ime_height);
+               }
                elm_object_item_signal_emit(ugd->navi_item, "elm,state,optionheader,close", "");
-       else
-               elm_object_item_signal_emit(ugd->navi_item, "elm,state,optionheader,open", "");
+       } else {
+               if (ugd->isRotated == true) {
+                       _composer_resize_body_webview(ugd, 316 + 122);
+               } else {
+                       _composer_resize_body_webview(ugd, ugd->ime_height + 122);
 
+               }
+               elm_object_item_signal_emit(ugd->navi_item, "elm,state,optionheader,open", "");
+       }
        ugd->option_header_opened = !ugd->option_header_opened;
 
+       elm_layout_sizing_eval(ugd->c_layout);
+
        _composer_mbe_set_focus(ugd);
 }
 
@@ -774,14 +793,9 @@ void _composer_mbe_popup_move_to_cc_cb(void *data, Evas_Object *obj, void *event
        if (!ugd->cc_added) {
                edje_object_signal_emit(_EDJ(ugd->c_layout), "show.cc", "*");
                email_composer_create_cc_field(ugd);
-
-#ifdef _CC_BCC
                edje_object_signal_emit(_EDJ(ugd->c_layout), "show.bcc", "*");
                email_composer_create_bcc_field(ugd);
-
                elm_object_text_set(ugd->cc_btn, N_("Remove Cc/Bcc"));
-#endif
-
                ugd->b_cc_bcc = false;
        }
 
@@ -837,14 +851,9 @@ void _composer_mbe_popup_move_to_bcc_cb(void *data, Evas_Object *obj, void *even
        if (!ugd->bcc_added) {
                edje_object_signal_emit(_EDJ(ugd->c_layout), "show.bcc", "*");
                email_composer_create_bcc_field(ugd);
-
-#ifdef _CC_BCC
                edje_object_signal_emit(_EDJ(ugd->c_layout), "show.cc", "*");
                email_composer_create_cc_field(ugd);
-
                elm_object_text_set(ugd->cc_btn, N_("Remove Cc/Bcc"));
-#endif
-
                ugd->b_cc_bcc = false;
        }
 
@@ -1307,7 +1316,7 @@ Eina_Bool _composer_mbe_create_change_addr_list(void *data)
        if (index > 5)
                index = 5;
        Evas_Object *box = elm_box_add(ugd->change_addr_noti);
-       evas_object_size_hint_min_set(box, 610 * elm_scale_get(), 113 * index * elm_scale_get());
+       evas_object_size_hint_min_set(box, 610 * elm_scale_get(), 114 * index * elm_scale_get());
        evas_object_show(genlist);
        elm_box_pack_end(box, genlist);
        elm_object_content_set(ugd->change_addr_noti, box);
@@ -1525,7 +1534,7 @@ void _composer_from_show_popup(EmailComposerUGD *ugd)
 #endif
        elm_object_focus_allow_set(ugd->composer_noti, EINA_FALSE);
 
-       from_itc.item_style = "1text.1icon.2";
+       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;
        from_itc.func.state_get = NULL;
@@ -1533,6 +1542,7 @@ void _composer_from_show_popup(EmailComposerUGD *ugd)
 
        elm_genlist_clear(ugd->account_gen_list);
        ugd->account_gen_list = elm_genlist_add(ugd->composer_noti);
+       elm_object_theme_set(ugd->account_gen_list, ugd->th);
 
        evas_object_size_hint_weight_set(ugd->account_gen_list, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
        evas_object_size_hint_align_set(ugd->account_gen_list, EVAS_HINT_FILL, EVAS_HINT_FILL);
@@ -1549,7 +1559,7 @@ void _composer_from_show_popup(EmailComposerUGD *ugd)
        if (acc_index > 5)
                acc_index = 5;
        Evas_Object *box = elm_box_add(ugd->composer_noti);
-       evas_object_size_hint_min_set(box, 610 * elm_scale_get(), 113 * acc_index * elm_scale_get());
+       evas_object_size_hint_min_set(box, 610 * elm_scale_get(), 122 * acc_index * elm_scale_get());
        evas_object_show(ugd->account_gen_list);
        elm_box_pack_end(box, ugd->account_gen_list);
        elm_object_content_set(ugd->composer_noti, box);
@@ -1563,10 +1573,15 @@ char *_composer_from_gl_text_get(void *data, Evas_Object *obj, const char *part)
        int index = (int)data;
 
        debug_log("label index = %d", index);
-       debug_log("email_addr = %s", g_ugd->account_info->account_list[index].user_email_address);
 
-       if (!g_strcmp0(part, "elm.text")) {
+       if (!strncmp(part, "elm.text.1", 10)) {
+               debug_log("email_addr = %s", g_ugd->account_info->account_list[index].account_name);
+               return g_strdup(g_ugd->account_info->account_list[index].account_name);
+       } else if (!strncmp(part, "elm.text.2", 10)) {
+               debug_log("email_addr = %s", g_ugd->account_info->account_list[index].user_email_address);
                return g_strdup(g_ugd->account_info->account_list[index].user_email_address);
+       } else {
+               debug_log("part is invalid");
        }
 
        return NULL;
@@ -1580,7 +1595,7 @@ Evas_Object *_composer_from_gl_content_get(void *data, Evas_Object *obj, const c
        debug_log("account_id = %d", g_ugd->account_info->account_list[count].account_id);
        debug_log("default account_id = %d", g_ugd->account_info->account_id);
 
-       if (!strncmp(part, "elm.icon", 8)) {
+       if (!strncmp(part, "elm.icon.1", 10)) {
                g_ugd->account_info->account_rd[count] = elm_radio_add(obj);
                elm_radio_state_value_set(g_ugd->account_info->account_rd[count], count);
 
@@ -1595,6 +1610,57 @@ Evas_Object *_composer_from_gl_content_get(void *data, Evas_Object *obj, const c
                evas_object_smart_callback_add(g_ugd->account_info->account_rd[count], "changed", _composer_from_radio_cb, g_ugd);
 
                return g_ugd->account_info->account_rd[count];
+       } else if (!strncmp(part, "elm.icon.2", 10)) {
+               Evas_Object *icon = elm_icon_add(obj);
+
+               // setting/include/email-setting.h
+               typedef enum {
+                       HOTMAIL = 1,
+                       GMAIL,
+                       YAHOOMAIL,
+                       AOL,
+                       OTHERS
+               } AccountInfo;
+
+               account_user_data_t *ud = (account_user_data_t *)g_ugd->account_info->account_list[count].user_data;
+               debug_log("is_preset_account:%d", ud->is_preset_account);
+
+               switch (ud->is_preset_account) {
+               case GMAIL:
+                       elm_icon_file_set(icon, ACCOUNT_ICON_GMAIL, NULL);
+                       break;
+               case HOTMAIL:
+                       elm_icon_file_set(icon, ACCOUNT_ICON_HOTMAIL, NULL);
+                       break;
+               case YAHOOMAIL:
+                       elm_icon_file_set(icon, ACCOUNT_ICON_YAHOO, NULL);
+                       break;
+               case AOL:
+                       elm_icon_file_set(icon, ACCOUNT_ICON_AOL, NULL);
+                       break;
+               case OTHERS:
+               default:
+                       elm_icon_file_set(icon, ACCOUNT_ICON_OTHERS, NULL);
+                       break;
+               }
+               evas_object_size_hint_aspect_set(icon, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
+
+               return icon;
+       } else if (!strncmp(part, "elm.swallow.colorbar", 20)) {
+               account_user_data_t *ud = (account_user_data_t *)g_ugd->account_info->account_list[count].user_data;
+               unsigned int val = ud->index_color;
+               int r = (val & 0xff000000) >> 24;
+               int g = (val & 0x00ff0000) >> 16;
+               int b = (val & 0x0000ff00) >> 8;
+               int a = val & 0x000000ff;
+
+               Evas_Object *color_bar = evas_object_rectangle_add(evas_object_evas_get(obj));
+               evas_object_size_hint_fill_set(color_bar, EVAS_HINT_FILL, EVAS_HINT_FILL);
+               evas_object_color_set(color_bar, r, g, b, a);
+
+               return color_bar;
+       } else {
+               debug_log("part is invalid");
        }
 
        return NULL;
@@ -1634,8 +1700,6 @@ static void _composer_from_change_response_cb(void *data, Evas_Object *obj, void
                ugd->account_info->account_name = g_strdup(ugd->account_info->account_list[set_val].user_email_address);
 
                debug_log("account_id = %d", ugd->account_info->account_id);
-               if (!email_engine_get_account_full_data(ugd->account_info->account_id, &(ugd->account_info->account)))
-                       debug_log("Failed to Get account full data");
 
                debug_log("priority = %d", (*ugd->account_info->account).options.priority);
 
@@ -1804,13 +1868,9 @@ void _composer_cbar_cc_clicked(void *data, Evas_Object *obj, void *event_info)
 
                edje_object_signal_emit(_EDJ(ugd->c_layout), "hide.cc", "*");
                email_composer_delete_cc_field(ugd);
-
-#ifdef _CC_BCC
                edje_object_signal_emit(_EDJ(ugd->c_layout), "hide.bcc", "*");
                email_composer_delete_bcc_field(ugd);
-
                elm_object_text_set(ugd->cc_btn, _("IDS_EMAIL_OPT_ADD_CC_BCC"));
-#endif
 
                if (ugd->b_cc_ps_open == true) {
                        edje_object_signal_emit(_EDJ(ugd->c_layout), "show.to", "*");
@@ -1819,6 +1879,8 @@ void _composer_cbar_cc_clicked(void *data, Evas_Object *obj, void *event_info)
 
                ugd->b_cc_bcc = false;
 
+               elm_layout_sizing_eval(ugd->c_layout);
+
                if (!_composer_check_popup_exist(ugd)) {
                        ugd->idler_set_focus = ecore_idler_add(_composer_mbe_set_focus, ugd);
                }
@@ -1834,74 +1896,531 @@ void _composer_cbar_cc_clicked(void *data, Evas_Object *obj, void *event_info)
 
                edje_object_signal_emit(_EDJ(ugd->c_layout), "show.cc", "*");
                email_composer_create_cc_field(ugd);
-
-#ifdef _CC_BCC
                edje_object_signal_emit(_EDJ(ugd->c_layout), "show.bcc", "*");
                email_composer_create_bcc_field(ugd);
-
                elm_object_text_set(ugd->cc_btn, N_("Remove Cc/Bcc"));
-#endif
+
+               elm_layout_sizing_eval(ugd->c_layout);
 
                ugd->idler_set_focus = ecore_idler_add(_composer_cc_mbe_set_focus, ugd);
        }
+}
 
-       if (ugd->isRotated == true)
-               elm_object_item_signal_emit(ugd->navi_item, "elm,state,optionheader,close", "");
+void _composer_cbar_add_me_clicked(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       EmailComposerUGD *ugd = (EmailComposerUGD *)data;
+
+       if (ugd->me_added == false) {
+               EmailRecpInfo *from_ri = NULL;
+               Elm_Object_Item *from_item = NULL;
+               from_item = elm_multibuttonentry_first_item_get(ugd->from_mbe);
+
+               if (from_item) {
+                       from_ri = elm_object_item_data_get(from_item);
+
+                       debug_log("from_ri = %s", from_ri->email_list[0].email_addr);
+               }
 
+               Elm_Object_Item *to_item = NULL;
+               to_item = elm_multibuttonentry_first_item_get(ugd->to_mbe);
+
+               while (to_item) {
+                       EmailRecpInfo *to_ri = NULL;
+                       int index = 0;
+
+                       to_ri = (EmailRecpInfo *) elm_object_item_data_get(to_item);
+
+                       index = to_ri->selected_email_idx;
+
+                       debug_log("to_ri email_addr = %s", to_ri->email_list[index].email_addr);
+
+                       if (g_strcmp0(to_ri->email_list[index].email_addr, from_ri->email_list[0].email_addr) == 0) {
+                               elm_object_item_del(to_item);
+                               break;
+                       }
+
+                       to_item = elm_multibuttonentry_item_next_get(to_item);
+               }
+
+               EmailRecpInfo *new_to_ri = (EmailRecpInfo *) calloc(1, sizeof(EmailRecpInfo));
+
+               new_to_ri->selected_email_idx = 0;
+               new_to_ri->display_name = ugd->account_info->account->user_display_name;
+               snprintf(new_to_ri->email_list[0].email_addr, MAX_RECIPIENT_ADDRESS_LEN, "%s", ugd->account_info->account->user_email_address);
+               new_to_ri->email_cnt = 1;
+               new_to_ri->is_contact_info = false;
+               new_to_ri->is_always_bcc = false;
+               new_to_ri->is_from_addr = true;
+
+               to_item = elm_multibuttonentry_first_item_get(ugd->to_mbe);
+               elm_multibuttonentry_item_insert_before(ugd->to_mbe, to_item, g_strdup(new_to_ri->display_name), NULL, new_to_ri);
+
+               elm_object_text_set(ugd->add_me_btn, N_("Remove me"));
+
+               ugd->me_added = true;
+       } else {
+               Elm_Object_Item *to_item = NULL;
+               to_item = elm_multibuttonentry_first_item_get(ugd->to_mbe);
+               if (to_item) {
+                       elm_object_item_del(to_item);
+                       ugd->me_added = false;
+                       elm_object_text_set(ugd->add_me_btn, N_("Add me"));
+               }
+       }
+
+       if (ugd->selected_entry == ugd->to_mbe_entry) {
+               elm_object_focus_set(ugd->to_mbe, EINA_TRUE);
+       }
 }
 
-#ifndef _CC_BCC
-void _composer_cbar_bcc_clicked(void *data, Evas_Object *obj, void *event_info)
+static void _composer_cbar_save_as_draft_cb(Evas_Object *o, const char *result, void *data)
 {
        debug_log("");
-
        EmailComposerUGD *ugd = (EmailComposerUGD *)data;
 
-       if (ugd->bcc_added) {
-               if (ugd->b_cc_bcc) {
-                       debug_log("b_cc_bcc is ON");
-                       return;
+       if (NULL != ugd->latest_html_content) {
+               g_free(ugd->latest_html_content);
+               ugd->latest_html_content = NULL;
+       }
+
+       ugd->latest_html_content = g_strdup(result);
+       debug_log("ugd->latest_html_content => %s", ugd->latest_html_content);
+
+       if (EINA_FALSE == ewk_view_plain_text_get(ugd->body_ewkview, _composer_plain_text_get_cb, (void *)ugd)) {
+               debug_log("ewk_view_plain_text_get Failed");
+       }
+
+       if (EINA_FALSE == ewk_view_script_execute(ugd->body_ewkview, COMPOSER_JS_GET_IMAGE_LIST, _composer_get_image_list_cb, (void *)ugd)) {
+               debug_log("COMPOSER_JS_GET_IMAGE_LIST error.");
+       }
+
+       if (ugd->timeout_noti) {
+               debug_log("delete timeout_noti");
+               evas_object_del(ugd->timeout_noti);
+               ugd->timeout_noti = NULL;
+       }
+
+       if (ugd->composer_noti) {
+               debug_log("delete composer_noti");
+               evas_object_del(ugd->composer_noti);
+               ugd->composer_noti = NULL;
+       }
+
+       if (ugd->ps_list) {
+               debug_log("ps stop");
+               _composer_ps_stop(ugd);
+               ugd->sc_timer = ecore_timer_add(0.5, _composer_ps_scroll_pop, ugd);
+       }
+
+       if (ugd->selected_entry == ugd->body_ewkview) {
+               evas_object_focus_set(ugd->body_ewkview, EINA_FALSE);
+       } else {
+               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);
+       }
+
+       if (_composer_check_mail_is_modified(ugd)) {
+               debug_log("mail is changed.");
+               ugd->save_drafts = 1;
+       } else {
+               debug_log("mail is NOT changed.");
+               ugd->save_drafts = 0;
+
+               char str[128] = { 0, };
+               snprintf(str, sizeof(str), "%s", _("IDS_EMAIL_OPT_COMPOSE_EMAIL"));
+               /*_show_select_info(ug_data, str);*/
+               int ret = status_message_post(str);
+               if (ret)
+                       debug_log("status_message_post failed: %d", ret);
+               return;
+       }
+
+       debug_log("account_type: %d", ugd->account_info->account_type);
+
+       int ret = _composer_add_mailbox_folder(ugd, EMAIL_MAILBOX_TYPE_DRAFT);
+
+       if (ret < COMPOSER_ERROR_NONE) {
+               debug_log("Failed save in Drafts(%d)", ret);
+
+               if (ugd->popup_list) {
+                       debug_log("popup count = %d", eina_list_count(ugd->popup_list));
+                       debug_log("obj: %p", o);
+                       debug_log("composer_noti: %p", ugd->composer_noti);
+
+                       ugd->popup_list = eina_list_remove(ugd->popup_list, ugd->composer_noti/*obj*/);
                }
 
-               edje_object_signal_emit(_EDJ(ugd->c_layout), "hide.bcc", "*");
-               email_composer_delete_bcc_field(ugd);
+               evas_object_del(ugd->composer_noti);
+               ugd->composer_noti = NULL;
 
-               if (ugd->b_bcc_ps_open == true) {
-                       edje_object_signal_emit(_EDJ(ugd->c_layout), "show.to", "*");
+               ugd->idler_save_draft = ecore_idler_add(_composer_show_fail_to_save, ugd);
+       } else {
+               debug_log("Success save in Drafts");
+
+               debug_log("composer_type:%d", ugd->composer_type);
+               if (ugd->composer_type == RUN_COMPOSER_EDIT) {
+                       //After a new draft mail is added, the old draft mail is deleted and synced to server
+                       debug_log("Account id [%d] mailbox id [%d] mail id [%d]", ugd->account_info->account->account_id, ugd->mailbox_info->mailbox_id, ugd->nExistingMailID);
 
-                       if (ugd->cc_added) {
-                               edje_object_signal_emit(_EDJ(ugd->c_layout), "show.cc", "*");
+                       if (!email_engine_delete_mail(ugd->account_info->account->account_id, ugd->mailbox_info->mailbox_id, ugd->nExistingMailID, EMAIL_DELETE_LOCAL_AND_SERVER)) {
+                               debug_log("Deleting email is failed.");
                        }
+               }
+
+               char str[128] = { 0, };
+               snprintf(str, sizeof(str), "%s", _("IDS_EMAIL_POP_SAVED_IN_DRAFTS"));
+               /*_show_select_info(ug_data, str);*/
+               int ret = status_message_post(str);
+               if (ret)
+                       debug_log("status_message_post failed: %d", ret);
+       }
+}
 
-                       ugd->b_bcc_ps_open = false;
+void _composer_cbar_save_as_draft_clicked(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+
+       if (!data) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       EmailComposerUGD *ugd = (EmailComposerUGD *)data;
+
+       if (EINA_FALSE == ewk_view_script_execute(ugd->body_ewkview, COMPOSER_JS_GET_HTML_CONTENT, _composer_cbar_save_as_draft_cb, (void *)ugd))
+               debug_log("COMPOSER_JS_GET_HTML_CONTENT failed.");
+}
+
+static void _composer_priority_radio_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+
+       EmailComposerUGD *ugd = (EmailComposerUGD *)data;
+       int i;
+
+       for (i = 0; i < 3; i++) {
+               if (obj == ugd->priority_rd[i]) {
+                       elm_radio_value_set(ugd->priority_rdg, i);
                }
+       }
+}
 
-               ugd->b_cc_bcc = false;
+static char *_composer_priority_gl_text_get(void *data, Evas_Object *obj, const char *part)
+{
+       int index = (int)data;
 
-               if (!_composer_check_popup_exist(ugd)) {
-                       ugd->idler_set_focus = ecore_idler_add(_composer_mbe_set_focus, ugd);
+       debug_log("\n text index = %d", index);
+
+       if (!g_strcmp0(part, "elm.text")) {
+               if (index == 0)
+                       return strdup(_("IDS_EMAIL_BODY_HIGH_M_PRIORITY"));
+               else if (index == 1)
+                       return strdup(_("IDS_EMAIL_BODY_NORMAL_M_EMAILPRIORITY"));
+               else if (index == 2)
+                       return strdup(_("IDS_EMAIL_BODY_LOW_M_EMAILPRIORITY"));
+       }
+       return NULL;
+}
+
+static Evas_Object *_composer_priority_gl_content_get(void *data, Evas_Object *obj, const char *part)
+{
+       int index = (int)data;
+
+       debug_log("\n content index = %d", index);
+
+       if (!strcmp(part, "elm.icon") || !strcmp(part, "elm.swallow.icon")) {
+               g_ugd->priority_rd[index] = elm_radio_add(obj);
+               elm_radio_state_value_set(g_ugd->priority_rd[index], index);
+
+               if (index == 0) {
+                       g_ugd->priority_rdg = g_ugd->priority_rd[index];
+               } else {
+                       elm_radio_group_add(g_ugd->priority_rd[index], g_ugd->priority_rdg);
+               }
+
+               if (g_ugd->priority_option == EMAIL_MAIL_PRIORITY_HIGH) {
+                       elm_radio_value_set(g_ugd->priority_rdg, 0);
+               } else if ( g_ugd->priority_option == EMAIL_MAIL_PRIORITY_NORMAL) {
+                       elm_radio_value_set(g_ugd->priority_rdg, 1);
+               } else if ( g_ugd->priority_option == EMAIL_MAIL_PRIORITY_LOW) {
+                       elm_radio_value_set(g_ugd->priority_rdg, 2);
+               } else {
+                       debug_log("\n g_ugd->priority_option4 = %d", g_ugd->priority_option);
                }
+
+               evas_object_smart_callback_add(g_ugd->priority_rd[index], "changed", _composer_priority_radio_cb, g_ugd);
+
+               return g_ugd->priority_rd[index];
+       }
+
+       return NULL;
+}
+
+static Eina_Bool _composer_priority_gl_state_get(void *data, Evas_Object *obj, const char *part)
+{
+       debug_log("");
+       return EINA_FALSE;
+}
+
+static void _composer_priority_gl_del(void *data, Evas_Object *obj)
+{
+       debug_log("");
+       return;
+}
+
+static void _composer_priority_gl_sel(void *data, Evas_Object *obj, void *event_info)
+{
+       int index = (int)data;
+
+       elm_radio_value_set(g_ugd->priority_rdg, index);
+
+       if (index == 0) {
+               g_ugd->priority_option = EMAIL_MAIL_PRIORITY_HIGH;
+       } else if (index == 1) {
+               g_ugd->priority_option = EMAIL_MAIL_PRIORITY_NORMAL;
+       } else if (index == 2) {
+               g_ugd->priority_option = EMAIL_MAIL_PRIORITY_LOW;
        } else {
-               if (ugd->b_cc_bcc) {
-                       debug_log("b_cc_bcc is ON");
-                       return;
+               debug_log("\n g_ugd->priority_option = %d", g_ugd->priority_option);
+       }
+       debug_log("\n _composer_priority_gl_sel : priority_option = %d", g_ugd->priority_option);
+}
+
+void _composer_cbar_priority_clicked(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+
+       EmailComposerUGD *ugd = (EmailComposerUGD *)data;
+       Elm_Object_Item *gen_item[2];
+       int index;
+
+       g_ugd = ugd;
+
+       Evas_Object *popup;
+
+       if (ugd->composer_noti) {
+               evas_object_del(ugd->composer_noti);
+               ugd->composer_noti = NULL;
+       }
+       popup = _composer_create_noti(ugd, false, _("IDS_EMAIL_BODY_PRIORITY"), NULL, 1,
+               dgettext("sys_string", "IDS_COM_POP_CLOSE"), NULL, 0.0, _composer_noti_response_cb);
+
+       ugd->composer_noti = popup;
+
+       if (ugd->clipboard_on) {
+               ugd->clipboard_on = false;
+       }
+
+       if (ugd->cc_added) {
+               if (ugd->b_cc_ps_open == true) {
+                       edje_object_signal_emit(_EDJ(ugd->c_layout), "show.to", "*");
+                       ugd->b_cc_ps_open = false;
                }
+       }
 
-               if (ugd->clipboard_on) {
-                       ugd->clipboard_on = false;
+       if (ugd->b_bcc_ps_open == true) {
+               edje_object_signal_emit(_EDJ(ugd->c_layout), "show.to", "*");
+
+               if (ugd->cc_added) {
+                       edje_object_signal_emit(_EDJ(ugd->c_layout), "show.cc", "*");
                }
 
-               edje_object_signal_emit(_EDJ(ugd->c_layout), "show.bcc", "*");
-               email_composer_create_bcc_field(ugd);
+               ugd->b_bcc_ps_open = false;
+       }
 
-               ugd->idler_set_focus = ecore_idler_add(_composer_bcc_mbe_set_focus, ugd);
+#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;
+       priority_itc.func.state_get = _composer_priority_gl_state_get;
+       priority_itc.func.del = _composer_priority_gl_del;
+
+       Evas_Object *priority_genlist;
+       priority_genlist = elm_genlist_add(ugd->composer_noti);
+
+       evas_object_size_hint_weight_set(priority_genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(priority_genlist, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+       for (index = 0; index < 3; index++) {
+               gen_item[index] = elm_genlist_item_append(priority_genlist, &priority_itc, (void *)index, NULL, ELM_GENLIST_ITEM_NONE, _composer_priority_gl_sel, (void *)index);
        }
 
-       if (ugd->isRotated == true)
-               elm_object_item_signal_emit(ugd->navi_item, "elm,state,optionheader,close", "");
+//     elm_genlist_effect_set(security_genlist, EINA_FALSE);
+       elm_genlist_tree_effect_enabled_set(priority_genlist, EINA_FALSE);
+
+#ifdef _POPUP_WITH_LIST
+       Evas_Object *box = elm_box_add(ugd->composer_noti);
+       evas_object_size_hint_min_set(box, 610 * elm_scale_get(), 114 * index * elm_scale_get());
+       evas_object_show(priority_genlist);
+       elm_box_pack_end(box, priority_genlist);
+       elm_object_content_set(ugd->composer_noti, box);
+#else
+       elm_object_content_set(ugd->composer_noti, priority_genlist);
+#endif
+
+}
+
+static char *_composer_tracking_gl_text_get(void *data, Evas_Object *obj, const char *part)
+{
+       int index = (int)data;
+
+       debug_log("\n text index = %d", index);
+
+       if (!g_strcmp0(part, "elm.text")) {
+               if (index == 0)
+                       return strdup(N_("Read report"));
+               else if (index == 1)
+                       return strdup(N_("Delivery report"));
+       }
+       return NULL;
+}
+
+static Evas_Object *_composer_tracking_gl_content_get(void *data, Evas_Object *obj, const char *part)
+{
+       int index = (int)data;
+
+       debug_log("\n content index = %d", index);
+
+       if (!strcmp(part, "elm.icon") || !strcmp(part, "elm.swallow.icon")) {
+               Evas_Object *check = elm_check_add(obj);
+
+               if (index == 0 && g_ugd->tracking_option[0] == 1) {
+                       debug_log("Read report");
+                       elm_check_state_set(check, EINA_TRUE);
+               } else if (index == 1 && g_ugd->tracking_option[1] == 1) {
+                       debug_log("Delivery report");
+                       elm_check_state_set(check, EINA_TRUE);
+               } else {
+                       debug_log("NONE");
+                       elm_check_state_set(check, EINA_FALSE);
+               }
+
+               evas_object_size_hint_weight_set(check, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+               evas_object_size_hint_align_set(check, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+               return check;
+       }
+
+       return NULL;
+}
+
+static Eina_Bool _composer_tracking_gl_state_get(void *data, Evas_Object *obj, const char *part)
+{
+       debug_log("");
+       return EINA_FALSE;
+}
+
+static void _composer_tracking_gl_del(void *data, Evas_Object *obj)
+{
+       debug_log("");
+       return;
+}
+
+static void _composer_tracking_gl_sel(void *data, Evas_Object *obj, void *event_info)
+{
+       int index;
+       Elm_Object_Item *item = (Elm_Object_Item *)event_info;
+
+       debug_log("\nsel index = %d", (int)data);
+
+       if (item != NULL) {
+               index = (int)elm_object_item_data_get(item);
+               elm_genlist_item_selected_set(item, EINA_FALSE);
+
+               debug_log("tracking_option[%d]:%d, !tracking_option[%d]:%d", index, g_ugd->tracking_option[index], index, !g_ugd->tracking_option[index]);
+               g_ugd->tracking_option[index] = !g_ugd->tracking_option[index];
 
+               elm_genlist_item_update(item);
+       }
 }
+
+void _composer_cbar_tracking_clicked(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+
+       EmailComposerUGD *ugd = (EmailComposerUGD *)data;
+       Elm_Object_Item *gen_item[2];
+       int index;
+
+       g_ugd = ugd;
+
+       Evas_Object *popup;
+
+       if (ugd->composer_noti) {
+               evas_object_del(ugd->composer_noti);
+               ugd->composer_noti = NULL;
+       }
+       popup = _composer_create_noti(ugd, false, N_("Tracking"), NULL, 1,
+               dgettext("sys_string", "IDS_COM_POP_CLOSE"), NULL, 0.0, _composer_noti_response_cb);
+
+       ugd->composer_noti = popup;
+
+       if (ugd->clipboard_on) {
+               ugd->clipboard_on = false;
+       }
+
+       if (ugd->cc_added) {
+               if (ugd->b_cc_ps_open == true) {
+                       edje_object_signal_emit(_EDJ(ugd->c_layout), "show.to", "*");
+                       ugd->b_cc_ps_open = false;
+               }
+       }
+
+       if (ugd->b_bcc_ps_open == true) {
+               edje_object_signal_emit(_EDJ(ugd->c_layout), "show.to", "*");
+
+               if (ugd->cc_added) {
+                       edje_object_signal_emit(_EDJ(ugd->c_layout), "show.cc", "*");
+               }
+
+               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;
+       tracking_itc.func.state_get = _composer_tracking_gl_state_get;
+       tracking_itc.func.del = _composer_tracking_gl_del;
+
+       Evas_Object *tracking_genlist;
+       tracking_genlist = elm_genlist_add(ugd->composer_noti);
+
+       evas_object_size_hint_weight_set(tracking_genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(tracking_genlist, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+       for (index = 0; index < 2; index++) {
+               gen_item[index] = elm_genlist_item_append(tracking_genlist, &tracking_itc, (void *)index, NULL, ELM_GENLIST_ITEM_NONE, _composer_tracking_gl_sel, (void *)index);
+       }
+
+//     elm_genlist_effect_set(security_genlist, EINA_FALSE);
+       elm_genlist_tree_effect_enabled_set(tracking_genlist, EINA_FALSE);
+
+#ifdef _POPUP_WITH_LIST
+       Evas_Object *box = elm_box_add(ugd->composer_noti);
+       evas_object_size_hint_min_set(box, 610 * elm_scale_get(), 114 * index * elm_scale_get());
+       evas_object_show(tracking_genlist);
+       elm_box_pack_end(box, tracking_genlist);
+       elm_object_content_set(ugd->composer_noti, box);
+#else
+       elm_object_content_set(ugd->composer_noti, tracking_genlist);
+#endif
+}
 
 void _composer_cbar_send_clicked(void *data, Evas_Object *obj, void *event_info)
 {
@@ -1949,26 +2468,6 @@ static Eina_Bool _composer_cc_mbe_set_focus(void *data)
        return EINA_FALSE;
 }
 
-#ifndef _CC_BCC
-static Eina_Bool _composer_bcc_mbe_set_focus(void *data)
-{
-       debug_log("");
-
-       EmailComposerUGD *ugd = (EmailComposerUGD *)data;
-
-       if (ugd->idler_set_focus) {
-               ecore_idler_del(ugd->idler_set_focus);
-               ugd->idler_set_focus = NULL;
-       }
-
-       elm_object_focus_set(ugd->bcc_mbe, EINA_TRUE);
-
-       ugd->b_cc_bcc = false;
-
-       return EINA_FALSE;
-}
-#endif
-
 void _composer_script_executed_cb(Evas_Object *o, const char *result, void *data)
 {
        debug_log("");
index 442c321..9552033 100755 (executable)
@@ -329,7 +329,11 @@ void _composer_webkit_loadFinished_cb(void *data, Evas_Object *obj, void *event_
        //ewk_setting_auto_load_images_set(ewkSetting, EINA_TRUE);
        ewk_setting_editable_link_behavior_set(ewkSetting, EWK_EDITABLE_LINK_BEHAVIOR_NEVER_LIVE);
 
-       _composer_resize_body_webview(ugd, ugd->ime_height);
+       if (ugd->isRotated == true) {
+               _composer_resize_body_webview(ugd, 316);
+       } else {
+               _composer_resize_body_webview(ugd, ugd->ime_height);
+       }
 
        if (ugd->selected_entry == ugd->body_ewkview) {
                // focus to the body field when reply the email.
@@ -499,7 +503,11 @@ static void _composer_webkit_ime_opened_cb(void *data, Evas_Object *obj, void *e
        debug_log("");
 
        EmailComposerUGD *ugd = (EmailComposerUGD *)data;
-       _composer_resize_body_webview(ugd, ugd->ime_height);
+       if (ugd->isRotated == true) {
+               _composer_resize_body_webview(ugd, 316);
+       } else {
+               _composer_resize_body_webview(ugd, ugd->ime_height);
+       }
 }
 
 static void _composer_webkit_resized_cb(void *data, Evas_Object *obj, void *event_info)
index 8cd4ebb..a4e93ba 100755 (executable)
@@ -122,20 +122,20 @@ Evas_Object *_composer_recipient_create_ps_field(Evas_Object *parent, EmailCompo
        Evas_Object *list;
 
        list = elm_genlist_add(parent);
-       /*elm_object_theme_set(list, ugd->th);*/
+       elm_object_theme_set(list, ugd->th);
        evas_object_size_hint_align_set(list, EVAS_HINT_FILL, 0.0);
        elm_genlist_homogeneous_set(list, EINA_TRUE);
        elm_object_focus_allow_set(list, EINA_FALSE);
 
-       ugd->ps_itc_2.item_style = "2text.8";   /*"email/predictive/2text.8";*/
+       ugd->ps_itc_2.item_style = "email.2text.1icon"; /*"email/predictive/2text.8";*/
        ugd->ps_itc_2.func.text_get = composer_ps_text_get;
-       ugd->ps_itc_2.func.content_get = NULL;
+       ugd->ps_itc_2.func.content_get = composer_ps_icon_get;
        ugd->ps_itc_2.func.state_get = NULL;
        ugd->ps_itc_2.func.del = NULL;
 
-       ugd->ps_itc_1.item_style = "1text.2";   /*"email/predictive/1text.2";*/
+       ugd->ps_itc_1.item_style = "email.1text.1icon"; /*"email/predictive/1text.2";*/
        ugd->ps_itc_1.func.text_get = composer_ps_text_get;
-       ugd->ps_itc_1.func.content_get = NULL;
+       ugd->ps_itc_1.func.content_get = composer_ps_icon_get;
        ugd->ps_itc_1.func.state_get = NULL;
        ugd->ps_itc_1.func.del = NULL;
 
@@ -288,7 +288,8 @@ Eina_List *composer_ps_search_contact(EmailComposerUGD *ugd, const char *search_
        while (CTS_SUCCESS == contacts_svc_iter_next(iter)) {
                CTSvalue *contact = NULL;
                CTSvalue *email = NULL;
-               const char *first, *last, *img_path, *email_addr;
+               const char *first, *last;
+               const char *img_path, *email_addr;
                char *display = NULL;
 
                contact = contacts_svc_iter_get_info(iter);
@@ -410,25 +411,32 @@ char *composer_ps_text_get(void *data, Evas_Object *obj, const char *part)
 
 Evas_Object *composer_ps_icon_get(void *data, Evas_Object *obj, const char *part)
 {
+       debug_log("");
+
        EMAIL_CONTACT_LIST_INFO_S *contacts_list_item = (EMAIL_CONTACT_LIST_INFO_S *) data;
 
        Evas_Object *ic = elm_icon_add(obj);
 
-       if (g_strcmp0(part, "swl.img") == 0) {
+       if (!strncmp(part, "elm.icon", 8)) {
                if (contacts_list_item->image_path) {
+                       debug_log("contacts_list_item->image_path : %s", contacts_list_item->image_path);
                        elm_icon_file_set(ic, contacts_list_item->image_path, NULL);
                } else {
-                       char buf[64] = { 0, };
+                       char buf[MAX_PATH_LEN] = { 0, };
                        snprintf(buf, sizeof(buf), "%s/00_list_photo_default.png", COMPOSER_ICON_DIR);
+                       debug_log("buf : %s", buf);
                        elm_icon_file_set(ic, buf, NULL);
                }
-       }
 
-       elm_icon_resizable_set(ic, 1, 1);
-       evas_object_image_smooth_scale_set(ic, 1);
-       evas_object_show(ic);
+               evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
+               elm_icon_resizable_set(ic, 1, 1);
+               evas_object_image_smooth_scale_set(ic, 1);
+               evas_object_show(ic);
+
+               return ic;
+       }
 
-       return ic;
+       return NULL;
 }
 
 void composer_ps_delete_contacts_list(Eina_List *predict_list)
index bceb935..204c793 100755 (executable)
@@ -462,41 +462,43 @@ int _composer_make_mail(EmailComposerUGD *ugd)
 {
        debug_log("");
 
-       email_account_t *account = NULL;
-       if (!email_engine_get_account_full_data(ugd->account_info->account_id, &account))
-               debug_log("Failed to Get account full data");
-
        if (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) {
-               debug_log("acc id = %d, %d, %d", ugd->account_info->account_id, account->account_id, ugd->existing_mail_info->mail_data->account_id);
-               debug_log("priority = %d, %d", (*account).options.priority, ugd->existing_mail_info->mail_data->priority);
+               debug_log("acc id = %d, %d", ugd->account_info->account_id, ugd->existing_mail_info->mail_data->account_id);
+               debug_log("priority = %d, %d", (*ugd->account_info->account).options.priority, ugd->existing_mail_info->mail_data->priority);
                debug_log("mailbox = %s, %s", ugd->mailbox_info->mail_box->mailbox_name, ugd->existing_mail_info->mail_data->server_mailbox_name);
                ugd->new_mail_info->mail_data->account_id = ugd->existing_mail_info->mail_data->account_id;
-               ugd->new_mail_info->mail_data->priority = ugd->existing_mail_info->mail_data->priority;
+               //ugd->new_mail_info->mail_data->priority = ugd->existing_mail_info->mail_data->priority;
        } else {        //RUN_COMPOSER_NEW || RUN_COMPOSER_EXTERNAL
-               debug_log("acc id = %d, %d", ugd->account_info->account_id, account->account_id);
-               debug_log("priority = %d", (*account).options.priority);
+               debug_log("acc id = %d", ugd->account_info->account_id);
+               debug_log("priority = %d", (*ugd->account_info->account).options.priority);
                debug_log("mailbox = %s", ugd->mailbox_info->mail_box->mailbox_name);
                ugd->new_mail_info->mail_data->account_id = ugd->account_info->account_id;
-               ugd->new_mail_info->mail_data->priority = (*account).options.priority;
+               //ugd->new_mail_info->mail_data->priority = (*account).options.priority;
        }
 
+       ugd->new_mail_info->mail_data->report_status = EMAIL_MAIL_REPORT_NONE;
+/*
+       if (ugd->tracking_option[0] == 1) {
+               ugd->new_mail_info->mail_data->report_status |= EMAIL_MAIL_REQUEST_MDN;
+       }
+       if (ugd->tracking_option[1] == 1) {
+               ugd->new_mail_info->mail_data->report_status |= EMAIL_MAIL_REQUEST_DSN;
+       }
+       debug_log("ugd->new_mail_info->mail_data->report_status = %d", ugd->new_mail_info->mail_data->report_status);
+*/
+       ugd->new_mail_info->mail_data->priority = ugd->priority_option;
+
        ugd->new_mail_info->mail_data->server_mailbox_name = strdup(ugd->mailbox_info->mail_box->mailbox_name);
        ugd->new_mail_info->mail_data->mailbox_id = ugd->mailbox_info->mail_box->mailbox_id;
 
-       debug_log("user_name = %s", account->user_display_name);
-       debug_log("email_addr = %s", account->user_email_address);
+       debug_log("user_name = %s", ugd->account_info->account->user_display_name);
+       debug_log("email_addr = %s", ugd->account_info->account->user_email_address);
 
        char uc[MAX_ACCOUNT_NAME_LEN + 20];
-       snprintf(uc, sizeof(uc), "\"%s\"<%s>", account->user_display_name, account->user_email_address);
+       snprintf(uc, sizeof(uc), "\"%s\"<%s>", ugd->account_info->account->user_display_name, ugd->account_info->account->user_email_address);
        ugd->new_mail_info->mail_data->full_address_from = g_strdup(uc);
        debug_log("from = %s", uc);
 
-       if (account) {
-               debug_log("email_free_account is called");
-               email_free_account(&account, 1);
-               account = NULL;
-       }
-
        if (elm_object_item_text_get(elm_multibuttonentry_first_item_get(ugd->to_mbe)) != NULL) {
                debug_log("to mbe");
                if (_composer_make_recipient_char_to_list(ugd, ugd->to_mbe, &(ugd->new_mail_info->mail_data->full_address_to)) < COMPOSER_ERROR_NONE)
@@ -970,7 +972,7 @@ void _composer_save_popup_response_cb(void *data, Evas_Object *obj, void *event_
 
                        if (ugd->composer_type == RUN_COMPOSER_EDIT) {
                                //After a new draft mail is added, the old draft mail is deleted and synced to server
-                               debug_log("Account id [%d] mailbox id [%s] mail id [%d]", ugd->account_info->account->account_id, ugd->mailbox_info->mailbox_id, ugd->nExistingMailID);
+                               debug_log("Account id [%d] mailbox id [%d] mail id [%d]", ugd->account_info->account->account_id, ugd->mailbox_info->mailbox_id, ugd->nExistingMailID);
 
                                if (!email_engine_delete_mail(ugd->account_info->account->account_id, ugd->mailbox_info->mailbox_id, ugd->nExistingMailID, EMAIL_DELETE_LOCAL_AND_SERVER)) {
                                        debug_log("Deleting email is failed.");
@@ -1247,8 +1249,7 @@ void _composer_set_mail_info(EmailComposerUGD *ugd)
        _composer_add_subject(ugd);
        _composer_add_body(ugd);
 
-       if (ugd->composer_type != RUN_COMPOSER_EDIT)
-       {
+       if (ugd->composer_type != RUN_COMPOSER_EDIT) {
                _composer_add_origin_msg(ugd);
        }
 
@@ -1278,7 +1279,9 @@ void _composer_set_mail_info(EmailComposerUGD *ugd)
                (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 = email_parse_get_filename_from_path(ugd->existing_mail_info->mail_data->file_path_plain);
+               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);
 
                if (plain_charset) {
@@ -1306,8 +1309,7 @@ void _composer_set_mail_info(EmailComposerUGD *ugd)
                }
        }
 
-       if (EINA_TRUE == ugd->has_body_html)
-       {
+       if (EINA_TRUE == ugd->has_body_html) {
                debug_log("");
 
                char file_path[100] = { 0, };
@@ -1416,12 +1418,7 @@ Eina_Bool _composer_show_progress_popup(void *data)
 
        progressbar = elm_progressbar_add(popup);
 
-       if (ugd->account_info->account_type == EMAIL_SERVER_TYPE_ACTIVE_SYNC) {
-               elm_object_style_set(progressbar, "pending_list");
-               elm_progressbar_pulse(progressbar, EINA_TRUE);
-       } else {
-               elm_object_style_set(progressbar, "list_progress");
-       }
+       elm_object_style_set(progressbar, "list_progress");
 
        evas_object_size_hint_align_set(progressbar, EVAS_HINT_FILL, 0.5);
        evas_object_size_hint_weight_set(progressbar, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
@@ -1998,14 +1995,9 @@ void _composer_add_cc_address(EmailComposerUGD *ugd)
                        if (ugd->cc_mbe == NULL) {
                                edje_object_signal_emit(_EDJ(ugd->c_layout), "show.cc", "*");
                                email_composer_create_cc_field(ugd);
-
-#ifdef _CC_BCC
                                edje_object_signal_emit(_EDJ(ugd->c_layout), "show.bcc", "*");
                                email_composer_create_bcc_field(ugd);
-
                                elm_object_text_set(ugd->cc_btn, N_("Remove Cc/Bcc"));
-#endif
-
                                ugd->b_cc_bcc = false;
                        }
 
@@ -2112,14 +2104,9 @@ void _composer_add_cc_address(EmailComposerUGD *ugd)
                        debug_log("");
                        edje_object_signal_emit(_EDJ(ugd->c_layout), "show.cc", "*");
                        email_composer_create_cc_field(ugd);
-
-#ifdef _CC_BCC
                        edje_object_signal_emit(_EDJ(ugd->c_layout), "show.bcc", "*");
                        email_composer_create_bcc_field(ugd);
-
                        elm_object_text_set(ugd->cc_btn, N_("Remove Cc/Bcc"));
-#endif
-
                        ugd->b_cc_bcc = false;
                }
        }
@@ -2145,14 +2132,9 @@ void _composer_add_bcc_address(EmailComposerUGD *ugd)
                        if (ugd->bcc_mbe == NULL) {
                                edje_object_signal_emit(_EDJ(ugd->c_layout), "show.bcc", "*");
                                email_composer_create_bcc_field(ugd);
-
-#ifdef _CC_BCC
                                edje_object_signal_emit(_EDJ(ugd->c_layout), "show.cc", "*");
                                email_composer_create_cc_field(ugd);
-
                                elm_object_text_set(ugd->cc_btn, N_("Remove Cc/Bcc"));
-#endif
-
                                ugd->b_cc_bcc = false;
                        }
 
@@ -2259,14 +2241,9 @@ void _composer_add_bcc_address(EmailComposerUGD *ugd)
                        debug_log("");
                        edje_object_signal_emit(_EDJ(ugd->c_layout), "show.bcc", "*");
                        email_composer_create_bcc_field(ugd);
-
-#ifdef _CC_BCC
                        edje_object_signal_emit(_EDJ(ugd->c_layout), "show.cc", "*");
                        email_composer_create_cc_field(ugd);
-
                        elm_object_text_set(ugd->cc_btn, N_("Remove Cc/Bcc"));
-#endif
-
                        ugd->b_cc_bcc = false;
                }
        }
@@ -2366,8 +2343,7 @@ void _composer_add_body(EmailComposerUGD *ugd)
 
        if (ugd->existing_mail_info->mail_data && ugd->existing_mail_info->mail_data->body_download_status) {
                if (ugd->composer_type == RUN_COMPOSER_EDIT) {
-                       if (ugd->has_body_html)
-                       {
+                       if (ugd->has_body_html) {
                                debug_log("html composer_type: EDIT");
 
                                char *html_text_for_body = NULL;
@@ -2380,14 +2356,23 @@ void _composer_add_body(EmailComposerUGD *ugd)
                                        debug_log("\nHTML-TEXT:\n%s", html_text_for_body);
                                        free(temp_body_plain);
                                }
+
+                               char szMetaViewportInfo[TEMP_BUFFER_SIZE + 1] = { 0x00, };
+                               strncpy(szMetaViewportInfo, HTML_META_INFORMATION, TEMP_BUFFER_SIZE);
+                               char *full_text = NULL;
+                               full_text = g_strconcat(szMetaViewportInfo, html_text_for_body, NULL);
+                               debug_log("html_text_for_body: %s", html_text_for_body);
+
                                if (html_text_for_body) {
-                                       email_composer_save_file(ugd->saved_html_path, html_text_for_body, STR_LEN(html_text_for_body));
+                                       email_composer_save_file(ugd->saved_html_path, full_text, STR_LEN(full_text));
                                        g_free(html_text_for_body);
                                } else {
                                        html_text_for_body = (char *)email_get_buff_from_file(DATADIR"/_email_default.html", 0);
-                                       email_composer_save_file(ugd->saved_html_path, html_text_for_body, STR_LEN(html_text_for_body));
+                                       email_composer_save_file(ugd->saved_html_path, full_text, STR_LEN(full_text));
                                        g_free(html_text_for_body);
                                }
+
+                               debug_log("full text:\n%s", full_text);
                        }
                }
        }
@@ -2422,8 +2407,7 @@ void _composer_make_html_body(EmailComposerUGD *ugd)
        char *temp;
        char *token;
 
-       if (((ugd->composer_type == RUN_COMPOSER_REPLY || ugd->composer_type == RUN_COMPOSER_REPLY_ALL) && ugd->account_info->account->options.reply_with_body) || ugd->composer_type == RUN_COMPOSER_FORWARD)
-       {
+       if (((ugd->composer_type == RUN_COMPOSER_REPLY || ugd->composer_type == RUN_COMPOSER_REPLY_ALL) && ugd->account_info->account->options.reply_with_body) || ugd->composer_type == RUN_COMPOSER_FORWARD) {
                if (ugd->existing_mail_info->mail_data->full_address_to) {
                        temp = COMPOSER_STRDUP(ugd->existing_mail_info->mail_data->full_address_to);
                        token = strtok(temp, ";");
@@ -3262,6 +3246,7 @@ void _composer_popup_response_cb(void *data, Evas_Object *obj, void *event_info)
        }
 
 //     elm_multibuttonentry_item_unselect_all(mbe);
+       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));
@@ -3454,9 +3439,12 @@ void _composer_resize_body_webview(EmailComposerUGD *ugd, int ime_height)
        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);
 
-       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);
+       if (ugd->isRotated == false) {
+               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);
+       } else {
+               evas_object_size_hint_min_set(ugd->webkit_ly, 0, nWidth - COMPOSER_NAVI_HEIGHT - ime_height);
+       }
 }
 
 void _composer_input_panel_state_changed_cb(void *data, Ecore_IMF_Context *ctx, int value)
@@ -3584,3 +3572,122 @@ void _composer_coords_evas_to_ewk(Evas_Object *view, int evasX, int evasY, int *
        *ewkY = evasY + scrollY - viewY;
 }
 
+void _composer_set_option_tray_menu(int num, EmailComposerUGD *ugd)
+{
+       debug_log("");
+
+       Evas_Object *btn = NULL;
+
+       switch (num) {
+       case EMAIL_COMPOSER_ADD_ME_BTN : // Add me btn
+               btn = elm_button_add(ugd->cbar);
+               elm_object_style_set(btn, "naviframe_control/default");
+               evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+               evas_object_size_hint_align_set(btn, EVAS_HINT_FILL, 0.5);
+               ugd->controlbar_item[EMAIL_COMPOSER_ADD_ME_BTN] = elm_toolbar_item_append(ugd->cbar, NULL, NULL, NULL, NULL);
+               elm_object_item_part_content_set(ugd->controlbar_item[EMAIL_COMPOSER_ADD_ME_BTN], "object", btn);
+               elm_object_text_set(btn, N_("Add me"));
+               ugd->add_me_btn = btn;
+               evas_object_smart_callback_add(ugd->add_me_btn, "clicked", _composer_cbar_add_me_clicked, ugd);
+       break;
+       case EMAIL_COMPOSER_ADD_CC_BCC_BTN : // Add Cc/Bcc btn
+               btn = elm_button_add(ugd->cbar);
+               elm_object_style_set(btn, "naviframe_control/default");
+               evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+               evas_object_size_hint_align_set(btn, EVAS_HINT_FILL, 0.5);
+               ugd->controlbar_item[EMAIL_COMPOSER_ADD_CC_BCC_BTN] = elm_toolbar_item_append(ugd->cbar, NULL, NULL, NULL, NULL);
+               elm_object_item_part_content_set(ugd->controlbar_item[EMAIL_COMPOSER_ADD_CC_BCC_BTN], "object", btn);
+               if (ugd->cc_added) {
+                       elm_object_text_set(btn, N_("Remove Cc/Bcc"));
+               } else {
+                       elm_object_text_set(btn, _("IDS_EMAIL_OPT_ADD_CC_BCC"));
+               }
+               ugd->cc_btn = btn;
+               evas_object_smart_callback_add(ugd->cc_btn, "clicked", _composer_cbar_cc_clicked, ugd);
+       break;
+       case EMAIL_COMPOSER_SAVE_AS_DRAFT_BTN : // Save as draft btn
+       {
+               Evas_Object *cbar = NULL;
+               cbar = ugd->cbar;
+               btn = elm_button_add(cbar);
+               elm_object_style_set(btn, "naviframe_control/default");
+               evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+               evas_object_size_hint_align_set(btn, EVAS_HINT_FILL, 0.5);
+               ugd->controlbar_item[EMAIL_COMPOSER_SAVE_AS_DRAFT_BTN] = elm_toolbar_item_append(cbar, NULL, NULL, NULL, NULL);
+               elm_object_item_part_content_set(ugd->controlbar_item[EMAIL_COMPOSER_SAVE_AS_DRAFT_BTN], "object", btn);
+               elm_object_text_set(btn, N_("Save as draft"));
+               ugd->save_as_draft_btn = btn;
+               evas_object_smart_callback_add(ugd->save_as_draft_btn, "clicked", _composer_cbar_save_as_draft_clicked, ugd);
+       }
+       break;
+       case EMAIL_COMPOSER_PRIORITY_BTN : // Priority btn
+               btn = elm_button_add(ugd->cbar2);
+               elm_object_style_set(btn, "naviframe_control/default");
+               evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+               evas_object_size_hint_align_set(btn, EVAS_HINT_FILL, 0.5);
+               ugd->controlbar_item[EMAIL_COMPOSER_PRIORITY_BTN] = elm_toolbar_item_append(ugd->cbar2, NULL, NULL, NULL, NULL);
+               elm_object_item_part_content_set(ugd->controlbar_item[EMAIL_COMPOSER_PRIORITY_BTN], "object", btn);
+               elm_object_text_set(btn, _("IDS_EMAIL_BODY_PRIORITY"));
+               ugd->priority_btn = btn;
+               evas_object_smart_callback_add(ugd->priority_btn, "clicked", _composer_cbar_priority_clicked, ugd);
+       break;
+       case EMAIL_COMPOSER_TRACKING_BTN : // Tracking btn
+               btn = elm_button_add(ugd->cbar2);
+               elm_object_style_set(btn, "naviframe_control/default");
+               evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+               evas_object_size_hint_align_set(btn, EVAS_HINT_FILL, 0.5);
+               ugd->controlbar_item[EMAIL_COMPOSER_TRACKING_BTN] = elm_toolbar_item_append(ugd->cbar2, NULL, NULL, NULL, NULL);
+               elm_object_item_part_content_set(ugd->controlbar_item[EMAIL_COMPOSER_TRACKING_BTN], "object", btn);
+               elm_object_text_set(btn, N_("Tracking"));
+               ugd->tracking_btn = btn;
+               evas_object_smart_callback_add(ugd->tracking_btn, "clicked", _composer_cbar_tracking_clicked, ugd);
+       break;
+       case EMAIL_COMPOSER_DUMMY_BTN : // Dummy btn
+               ugd->dummy_btn = NULL;
+       break;
+       default : // never get here!
+               debug_log("default");
+       }
+
+       evas_object_show(btn);
+}
+
+void _composer_unset_option_tray_menu(int num, EmailComposerUGD *ugd)
+{
+       debug_log("");
+
+       elm_object_item_del(ugd->controlbar_item[num]);
+       ugd->controlbar_item[num] = NULL;
+
+       switch (num) {
+       case EMAIL_COMPOSER_ADD_ME_BTN : // Add me btn
+               evas_object_del(ugd->add_me_btn);
+               ugd->add_me_btn = NULL;
+       break;
+       case EMAIL_COMPOSER_ADD_CC_BCC_BTN : // Add Cc/Bcc btn
+               evas_object_del(ugd->cc_btn);
+               ugd->cc_btn = NULL;
+       break;
+       case EMAIL_COMPOSER_SAVE_AS_DRAFT_BTN : // Save as draft btn
+       {
+               evas_object_del(ugd->save_as_draft_btn);
+               ugd->save_as_draft_btn = NULL;
+       }
+       break;
+       case EMAIL_COMPOSER_PRIORITY_BTN : // Priority btn
+               evas_object_del(ugd->priority_btn);
+               ugd->priority_btn = NULL;
+       break;
+       case EMAIL_COMPOSER_TRACKING_BTN : // Tracking btn
+               evas_object_del(ugd->tracking_btn);
+               ugd->tracking_btn = NULL;
+       break;
+       case EMAIL_COMPOSER_DUMMY_BTN : // Dummy btn
+               evas_object_del(ugd->dummy_btn);
+               ugd->dummy_btn = NULL;
+       break;
+       default : // never get here!
+               debug_log("default");
+       }
+}
+
index 7847ccf..e0889d4 100755 (executable)
@@ -404,14 +404,24 @@ static void on_event(ui_gadget_h ug, enum ug_event event, service_h data, void *
        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;
                win_main_angle = 0;
+               _composer_resize_body_webview(ugd, ugd->ime_height);
                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;
                win_main_angle = 180;
+               _composer_resize_body_webview(ugd, ugd->ime_height);
                break;
        case UG_EVENT_ROTATE_LANDSCAPE:
                elm_layout_theme_set(ugd->main_layout, "layout", "application", "noindicator");
@@ -422,6 +432,7 @@ static void on_event(ui_gadget_h ug, enum ug_event event, service_h data, void *
                }
                ugd->isRotated = true;
                win_main_angle = 270;
+               _composer_resize_body_webview(ugd, 316);
                break;
        case UG_EVENT_ROTATE_LANDSCAPE_UPSIDEDOWN:
                elm_layout_theme_set(ugd->main_layout, "layout", "application", "noindicator");
@@ -432,6 +443,7 @@ static void on_event(ui_gadget_h ug, enum ug_event event, service_h data, void *
                }
                ugd->isRotated = true;
                win_main_angle = 90;
+               _composer_resize_body_webview(ugd, 316);
                break;
        case UG_EVENT_REGION_CHANGE:
                break;
@@ -439,6 +451,8 @@ static void on_event(ui_gadget_h ug, enum ug_event event, service_h data, void *
                break;
        }
 
+       elm_layout_sizing_eval(ugd->c_layout);
+
 //     win_main_angle = elm_win_rotation_get(ugd->win_main);
 //     win_main_angle = app_get_device_orientation();
        debug_log("win_main_angle: %d, event: %d", win_main_angle, event);
@@ -796,7 +810,7 @@ void create_composer_frame(EmailComposerUGD *ugd)
                snprintf(title_str, sizeof(title_str), "%s", dgettext("sys_string", "IDS_COM_HEADER_EDIT"));
        else
                snprintf(title_str, sizeof(title_str), "%s", N_("New email"));
-       ugd->navi_item = elm_naviframe_item_push(ugd->navi_bar, title_str, NULL, NULL, outer_layout, NULL);
+       ugd->navi_item = elm_naviframe_item_push(ugd->navi_bar, title_str, NULL, NULL, outer_layout, "2line");
 
        // Right : cancel button
        cancel_btn = elm_button_add(ugd->navi_bar);
@@ -806,7 +820,7 @@ void create_composer_frame(EmailComposerUGD *ugd)
        evas_object_smart_callback_add(cancel_btn, "clicked", _composer_back_button_cb, ugd);
        ugd->cancel_btn = cancel_btn;
        debug_log("cancel_btn of composer: %p", ugd->cancel_btn);
-       elm_object_disabled_set(ugd->cancel_btn, EINA_TRUE); // It prevents clicking the cancel button before initializing.
+       //elm_object_disabled_set(ugd->cancel_btn, EINA_TRUE); // It prevents clicking the cancel button before initializing.
 
        // Middle : more button
        more_btn = elm_button_add(ugd->navi_bar);
@@ -831,53 +845,25 @@ void create_composer_frame(EmailComposerUGD *ugd)
        elm_toolbar_shrink_mode_set(cbar, ELM_TOOLBAR_SHRINK_EXPAND);
        elm_object_style_set(cbar, "naviframe");
        evas_object_show(cbar);
+       ugd->cbar = cbar;
 
-       elm_object_item_part_content_set(ugd->navi_item, "optionheader", cbar);
-
-       ugd->option_header_opened = 0;
+       cbar = elm_toolbar_add(ugd->navi_bar);
+       if (cbar == NULL)
+               return;
 
-#ifndef _CC_BCC
-       Evas_Object *cc_btn = elm_button_add(cbar);
-       elm_object_style_set(cc_btn, "naviframe_control/default");
-       evas_object_size_hint_weight_set(cc_btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-       evas_object_size_hint_align_set(cc_btn, EVAS_HINT_FILL, 0.5);
-       elm_object_text_set(cc_btn, _("IDS_EMAIL_BODY_CC"));
-       evas_object_show(cc_btn);
-       ugd->cc_btn = cc_btn;
-
-       Evas_Object *bcc_btn = elm_button_add(cbar);
-       elm_object_style_set(bcc_btn, "naviframe_control/default");
-       evas_object_size_hint_weight_set(bcc_btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-       evas_object_size_hint_align_set(bcc_btn, EVAS_HINT_FILL, 0.5);
-       elm_object_text_set(bcc_btn, _("IDS_EMAIL_BODY_BCC"));
-       evas_object_show(bcc_btn);
-       ugd->bcc_btn = bcc_btn;
-
-       ugd->controlbar_item[0] = elm_toolbar_item_append(cbar, NULL, NULL, NULL, NULL);
-       elm_object_item_part_content_set(ugd->controlbar_item[0], "object", cc_btn);
-
-       ugd->controlbar_item[1] = elm_toolbar_item_append(cbar, NULL, NULL, NULL, NULL);
-       elm_object_item_part_content_set(ugd->controlbar_item[1], "object", bcc_btn);
-#else
-       Evas_Object *cc_btn = elm_button_add(cbar);
-       elm_object_style_set(cc_btn, "naviframe_control/default");
-       evas_object_size_hint_weight_set(cc_btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-       evas_object_size_hint_align_set(cc_btn, EVAS_HINT_FILL, 0.5);
-       if (ugd->cc_added)
-               elm_object_text_set(cc_btn, N_("Remove Cc/Bcc"));
-       else
-               elm_object_text_set(cc_btn, _("IDS_EMAIL_OPT_ADD_CC_BCC"));
-       evas_object_show(cc_btn);
-       ugd->cc_btn = cc_btn;
+       elm_toolbar_shrink_mode_set(cbar, ELM_TOOLBAR_SHRINK_EXPAND);
+       elm_object_style_set(cbar, "naviframe");
+       evas_object_show(cbar);
+       ugd->cbar2 = cbar;
 
-       ugd->controlbar_item[0] = elm_toolbar_item_append(cbar, NULL, NULL, NULL, NULL);
-       elm_object_item_part_content_set(ugd->controlbar_item[0], "object", cc_btn);
-#endif
+       int i = 0;
+       for (i = EMAIL_COMPOSER_ADD_ME_BTN; i < EMAIL_COMPOSER_BTN_MAX; i++) {
+               _composer_set_option_tray_menu(i, ugd);
+       }
+       ugd->option_header_opened = 0;
 
-       evas_object_smart_callback_add(cc_btn, "clicked", _composer_cbar_cc_clicked, ugd);
-#ifndef _CC_BCC
-       evas_object_smart_callback_add(bcc_btn, "clicked", _composer_cbar_bcc_clicked, ugd);
-#endif
+       elm_object_item_part_content_set(ugd->navi_item, "optionheader", ugd->cbar);
+       elm_object_item_part_content_set(ugd->navi_item, "optionheader2", ugd->cbar2);
        elm_object_item_signal_emit(ugd->navi_item, "elm,state,optionheader,close", "");
 
        _composer_register_scroller_callback(ugd);
@@ -976,6 +962,7 @@ static void _composer_init_data(void *data)
        ugd->ps_on = false;
        ugd->cc_added = false;
        ugd->bcc_added = false;
+       ugd->me_added = false;
        ugd->isRotated = false;
        ugd->is_recipient_duplicated = false;
 
@@ -989,10 +976,10 @@ static void _composer_init_data(void *data)
 
        ugd->b_load_finished = EINA_FALSE;
 
-       /*Elm_Theme *th = elm_theme_new();
+       Elm_Theme *th = elm_theme_new();
        elm_theme_ref_set(th, NULL);
        ugd->th = th;
-       elm_theme_extension_add(ugd->th, COMPOSER_EDJ_NAME);*/
+       elm_theme_extension_add(ugd->th, COMPOSER_EDJ_NAME);
 
        if (ethumb_init() != EINA_TRUE) {
                debug_log("Fail to ethumb_init()");
@@ -1013,6 +1000,7 @@ static void _composer_init_data(void *data)
        memset(ugd->account_info, 0x00, sizeof(EmailComposerMail));
 
        ugd->ime_height = 444;
+       ugd->priority_option = EMAIL_MAIL_PRIORITY_NORMAL;
 }
 
 static int _composer_init_service(void *data)
@@ -1099,11 +1087,11 @@ static void _composer_delete_evas_objects(EmailComposerUGD *ugd)
                ugd->bg = NULL;
        }
 
-       /*if (ugd->th) {
+       if (ugd->th) {
                elm_theme_extension_del(ugd->th, COMPOSER_EDJ_NAME);
                elm_theme_free(ugd->th);
                ugd->th = NULL;
-       }*/
+       }
 
        if (ugd->idler_save_draft) {
                debug_log("delete idler_save_draft");
@@ -1875,18 +1863,11 @@ static void _on_edbus_event_composer_receive(void *data, DBusMessage * message)
                                debug_log("receive noti, DOWNLOAD_ATTACHMENT");
                                char buf[128] = { 0, };
 
-                               if (ugd->account_info->account_type == EMAIL_SERVER_TYPE_ACTIVE_SYNC) {
-                                       char buf[128] = { 0, };
-
-                                       snprintf(buf, sizeof(buf), "%s [%d/%d]", _("IDS_EMAIL_POP_DOWNLOADING_ATTACHMENT_ING"), ugd->fw_dn_idx + 1, ugd->fw_dn_total_cnt);
-                                       elm_object_text_set(ugd->fw_dn_label, buf);
-                               } else {
-                                       debug_log("Download : %d / %d", data4 + (ugd->fw_dn_idx * 100), (ugd->fw_dn_total_cnt * 100));
-                                       snprintf(buf, sizeof(buf), "%s [%d/%d]", _("IDS_EMAIL_POP_DOWNLOADING_ATTACHMENT_ING"), ugd->fw_dn_idx + 1, ugd->fw_dn_total_cnt);
-                                       elm_object_text_set(ugd->fw_dn_label, buf);
-                                       elm_progressbar_value_set(ugd->fw_dn_progress, (double)(data4 + (ugd->fw_dn_idx * 100)) / (ugd->fw_dn_total_cnt * 100));
-                                       evas_render(evas_object_evas_get(ugd->main_layout));
-                               }
+                               debug_log("Download : %d / %d", data4 + (ugd->fw_dn_idx * 100), (ugd->fw_dn_total_cnt * 100));
+                               snprintf(buf, sizeof(buf), "%s [%d/%d]", _("IDS_EMAIL_POP_DOWNLOADING_ATTACHMENT_ING"), ugd->fw_dn_idx + 1, ugd->fw_dn_total_cnt);
+                               elm_object_text_set(ugd->fw_dn_label, buf);
+                               elm_progressbar_value_set(ugd->fw_dn_progress, (double)(data4 + (ugd->fw_dn_idx * 100)) / (ugd->fw_dn_total_cnt * 100));
+                               evas_render(evas_object_evas_get(ugd->main_layout));
 
                                break;
 
diff --git a/composer/theme/_email_default.html b/composer/theme/_email_default.html
deleted file mode 100755 (executable)
index 6ead580..0000000
+++ /dev/null
@@ -1 +0,0 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><STYLE type="text/css"> body {background-color: #f6f5ed; font-size: 24px; margin-left: 18px; margin-right: 18px; margin-top: 8px; margin-bottom: 8px;} p {font-size: 24px;} table {font-size: 24px;} </STYLE></head><body></body></html>
\ No newline at end of file
diff --git a/composer/theme/email-composer-genlist.edc b/composer/theme/email-composer-genlist.edc
new file mode 100755 (executable)
index 0000000..27acad0
--- /dev/null
@@ -0,0 +1,786 @@
+/*
+ * Copyright 2012  Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *    http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/* For Genlist */
+#define GENLIST_HEIGHT_1LINE 114
+#define GENLIST_HEIGHT_16_INC 16
+#define GENLIST_HEIGHT_60_INC 60
+#define GENLIST_HEIGHT_129_INC 129
+
+#define GENLIST_FONT_32_INC 32
+#define GENLIST_FONT_44_INC 44
+
+#define GENLIST_SIZE_10_INC 10
+#define GENLIST_SIZE_16_INC 16
+#define GENLIST_SIZE_21_INC 21
+#define GENLIST_SIZE_60_INC 60
+#define GENLIST_SIZE_61_INC 61
+
+#define GENLIST_PADDING_10_INC 10
+#define GENLIST_PADDING_16_INC 16
+#define GENLIST_PADDING_26_INC 26
+
+#define GENLIST_ICON_SMALL_SIZE 60
+#define GENLIST_ICON_BIG_SIZE 64
+#define GENLIST_LIST_MAIN_TEXT_SIZE GENLIST_FONT_44_INC
+#define GENLIST_LIST_SUB_TEXT_SIZE 32
+#define GENLIST_PADDING_SIZE_LEFT GENLIST_PADDING_16_INC
+#define GENLIST_PADDING_SIZE_RIGHT GENLIST_PADDING_16_INC
+
+#define GENLIST_LIST_MAIN_TEXT_UNREAD_COLOR 0 0 0 255
+#define GENLIST_LIST_MAIN_TEXT_UNREAD_COLOR_STYLE "#000000FF"
+#define GENLIST_LIST_MAIN_TEXT_FOCUS_COLOR 249 249 249 255
+#define GENLIST_LIST_MAIN_TEXT_FOCUS_COLOR_STYLE "#F9F9F9FF"
+
+#define GENLIST_PART_MATCH_TAG_COLOR_INC "+ color=#3F8DAD"
+#define GENLIST_PART_DISCLIP_COLOR_INC 255 255 255 110 // alpha was 64
+#define GENLIST_PART_BG_COLOR_INC 0 0 0 255
+#define GENLIST_PART_LIST_BG_COLOR 239 239 239 255
+#define GENLIST_PART_LIST_LINE_COLOR_INC 68 68 68 255
+#define GENLIST_PART_LIST_PRESS_COLOR_INC 0 140 210 255
+#define GENLIST_LIST_SUB_TEXT_DEFAULT_COLOR 100 100 100 255
+#define GENLIST_LIST_SUB_TEXT_DEFAULT_COLOR_STYLE "#646464FF"
+#define GENLIST_LIST_SUB_TEXT_FOCUS_COLOR 249 249 249 255
+#define GENLIST_LIST_SUB_TEXT_FOCUS_COLOR_STYLE "#F9F9F9FF"
+
+
+#define TEXTBLOCK_TAG \
+      tag:  "br" "\n";\
+      tag:  "ps" "ps";\
+      tag:  "tab" "\t";\
+      tag:  "b" "+ font=SLP:style=Bold";\
+      tag:  "match" GENLIST_PART_MATCH_TAG_COLOR_INC;
+
+#define GENLIST_PART_BASE( param_item_height ) \
+                                        part { name: "base"; \
+                                               type: RECT; \
+                                               repeat_events: 1; \
+                                               scale: 1; \
+                                               description { state: "default" 0.0; \
+                                                  min: 0 param_item_height; \
+                                                  color: GENLIST_PART_BG_COLOR_INC; \
+                                               } \
+                                        }
+
+#define GENLIST_PART_BG_IMAGE \
+                                        part { name: "bg_image"; \
+                                               type: RECT; \
+                                               clip_to: "disclip"; \
+                                               mouse_events: 0; \
+                                               description { state: "default" 0.0; \
+                                                  color: GENLIST_PART_LIST_BG_COLOR; \
+                                               } \
+                                               description { state: "selected" 0.0; \
+                                                  inherit: "default" 0.0; \
+                                                  color: GENLIST_PART_LIST_PRESS_COLOR_INC; \
+                                               } \
+                                        }
+
+#define GENLIST_PART_BOTTOM_LINE \
+                                        part { name: "bottom_line"; \
+                                               type: RECT; \
+                                               mouse_events: 0; \
+                                               description { state: "default" 0.0; \
+                                                  min: 0 1; \
+                                                  fixed: 0 1; \
+                                                  visible: 1; \
+                                                  color: GENLIST_PART_LIST_LINE_COLOR_INC; \
+                                                  rel1 { \
+                                                         relative: 0.0 1.0; \
+                                                         offset: 0 -1; \
+                                                  } \
+                                               } \
+                                        }
+
+#define GENLIST_PART_PADDING_TOP( param_padding_size ) \
+                                  part { name: "elm.padding.top"; \
+                                               type: RECT; \
+                                               scale: 1; \
+                                               description { \
+                                                  state: "default" 0.0; \
+                                                  min: 0 param_padding_size; \
+                                                  fixed: 0 1; \
+                                                  visible: 0; \
+                                                  rel2.relative: 1.0 0.0; \
+                                                  align: 0.0 0.0; \
+                                               } \
+                                        }
+
+#define GENLIST_PART_PADDING_BOTTOM( param_padding_size ) \
+                                  part { name: "elm.padding.bottom"; \
+                                               type: RECT; \
+                                               scale: 1; \
+                                               description { state: "default" 0.0; \
+                                                  min: 0 param_padding_size; \
+                                                  fixed: 0 1; \
+                                                  visible: 0; \
+                                                  rel1.relative: 0.0 1.0; \
+                                                  align: 0.0 1.0; \
+                                               } \
+                                        }
+
+#define GENLIST_PART_PADDING_LEFT( param_padding_size ) \
+                                        part { name: "elm.padding.left"; \
+                                               type: RECT; \
+                                               scale: 1; \
+                                               description { state: "default" 0.0; \
+                                                  min: param_padding_size 0; \
+                                                  fixed: 1 0; \
+                                                  visible: 0; \
+                                                  rel2.relative: 0.0 1.0; \
+                                                  align: 0.0 0.0; \
+                                               } \
+                                        }
+
+#define GENLIST_PART_PADDING_RIGHT( param_padding_size ) \
+                                  part { name: "elm.padding.right"; \
+                                               type: RECT; \
+                                               scale: 1; \
+                                               description { state: "default" 0.0; \
+                                                  min: param_padding_size 0; \
+                                                  fixed: 1 0; \
+                                                  visible: 0; \
+                                                  rel1.relative: 1.0  0.0; \
+                                                  align: 1.0 0.0; \
+                                               } \
+                                        }
+
+#define GENLIST_PART_DISCLIP \
+                                       part { name: "disclip"; \
+                                               type: RECT; \
+                                               description { state: "default" 0.0; \
+                                               } \
+                                               description { state: "disabled" 0.0; \
+                                                  inherit: "default" 0.0; \
+                                                  color: GENLIST_PART_DISCLIP_COLOR_INC; \
+                                               } \
+                                        }
+
+#define GENLIST_PART_FLIP \
+                                        part { name: "elm.flip.content"; \
+                                               clip_to: "disclip"; \
+                                               type: SWALLOW; \
+                                               mouse_events: 1; \
+                                               scale: 1; \
+                                               description { state: "default" 0.0; \
+                                                  visible: 0; \
+                                                  fixed: 1 1; \
+                                                  rel1 { \
+                                                         relative: 1.0  0.5; \
+                                                         to_x: "elm.padding.left"; \
+                                                  } \
+                                                  rel2 { \
+                                                         relative: 0.0  0.5; \
+                                                         to_x: "elm.padding.right"; \
+                                                  } \
+                                               } \
+                                               description { state: "flip_enabled" 0.0; \
+                                                  inherit: "default" 0.0; \
+                                                  visible: 1; \
+                                               } \
+                                        }
+
+#define GENLIST_DESCRIPTION_FLIP_ENABLED \
+                                               description { state: "flip_enabled" 0.0; \
+                                                  inherit: "default" 0.0; \
+                                                  visible: 0; \
+                                               }
+
+#define GENLIST_PROGRAM_FLIP_1TEXT_1ICON \
+         program { name: "flip_enabled"; \
+            signal: "elm,state,flip,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "flip_enabled" 0.0; \
+            target: "elm.text"; \
+            target: "elm.icon"; \
+            target: "elm.flip.content"; \
+         } \
+         program { name: "flip_disabled"; \
+            signal: "elm,state,flip,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "elm.text"; \
+            target: "elm.icon"; \
+            target: "elm.flip.content"; \
+         }
+
+#define GENLIST_PROGRAM_FLIP_2TEXT_1ICON \
+         program { name: "flip_enabled"; \
+            signal: "elm,state,flip,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "flip_enabled" 0.0; \
+            target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.icon"; \
+            target: "elm.flip.content"; \
+         } \
+         program { name: "flip_disabled"; \
+            signal: "elm,state,flip,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.icon"; \
+            target: "elm.flip.content"; \
+         }
+
+#define GENLIST_PROGRAM_FLIP_2TEXT_2ICON \
+                program { name: "flip_enabled"; \
+                       signal: "elm,state,flip,enabled"; \
+                       source: "elm"; \
+                       action: STATE_SET "flip_enabled" 0.0; \
+                       target: "elm.text.1"; \
+                       target: "elm.text.2"; \
+                       target: "elm.icon.1"; \
+                       target: "elm.icon.2"; \
+                       target: "elm.flip.content"; \
+                } \
+                program { name: "flip_disabled"; \
+                       signal: "elm,state,flip,disabled"; \
+                       source: "elm"; \
+                       action: STATE_SET "default" 0.0; \
+                        target: "elm.text.1"; \
+                       target: "elm.text.2"; \
+                       target: "elm.icon.1"; \
+                       target: "elm.icon.2"; \
+                       target: "elm.flip.content"; \
+               }
+
+/* for From popup Genlist */
+group { name: "elm/genlist/item/email.2text.3icon.3/default";
+       alias: "elm/genlist/item_odd/email.2text.3icon.3/default";
+       alias: "elm/genlist/item_compress/email.2text.3icon.3/default";
+       alias: "elm/genlist/item_compress_odd/email.2text.3icon.3/default";
+       data.item: "stacking" "above";
+       data.item: "selectraise" "on";
+       data.item: "texts" "elm.text.1 elm.text.2";
+       data.item: "contents" "elm.icon.1 elm.icon.2 elm.swallow.colorbar";
+       data.item: "flips" "elm.flip.content";
+       images {
+               image: "00_list_bar_press_1x80.png" COMP;
+       }
+       parts {
+               GENLIST_PART_BASE( GENLIST_HEIGHT_1LINE )
+               GENLIST_PART_BG_IMAGE
+               GENLIST_PART_BOTTOM_LINE
+               GENLIST_PART_PADDING_TOP( GENLIST_PADDING_10_INC )
+               GENLIST_PART_PADDING_BOTTOM( GENLIST_PADDING_10_INC )
+               GENLIST_PART_PADDING_LEFT( GENLIST_PADDING_SIZE_LEFT )
+               GENLIST_PART_PADDING_RIGHT( GENLIST_PADDING_SIZE_RIGHT )
+               part { name: "elm.swallow.colorbar";
+                       clip_to: "disclip";
+                       type: SWALLOW;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               min: GENLIST_SIZE_10_INC GENLIST_SIZE_21_INC;
+                               fixed: 1 1;
+                               rel2.relative: 0.0 0.0;
+                               align: 0.0 0.0;
+                       }
+               }
+               part { name: "elm.icon.1";
+                       clip_to: "disclip";
+                       type: SWALLOW;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               min: GENLIST_SIZE_60_INC GENLIST_SIZE_60_INC;
+                               max: GENLIST_SIZE_60_INC GENLIST_SIZE_60_INC;
+                               fixed: 1 1;
+                               rel1 {
+                                       relative: 1.0 1.0;
+                                       to_x: "elm.padding.left";
+                                       to_y: "elm.padding.top";
+                               }
+                               rel2 {
+                                       relative: 1.0 0.0;
+                                       to_x: "elm.padding.left";
+                                       to_y: "elm.padding.bottom";
+                               }
+                               align: 0.0 0.5;
+                       }
+                       GENLIST_DESCRIPTION_FLIP_ENABLED
+               }
+               part { name: "elm.padding.icon1.right";
+                       clip_to: "disclip";
+                       type: RECT;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               min: GENLIST_PADDING_10_INC 0;
+                               fixed: 1 0;
+                               rel1 {
+                                       relative: 1.0 0.0;
+                                       to_x: "elm.icon.1";
+                               }
+                               rel2.to_x: "elm.icon.1";
+                               align: 0.0 0.0;
+                               visible: 0;
+                       }
+               }
+               part { name: "elm.icon.2";
+                       clip_to: "disclip";
+                       type: SWALLOW;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               min: GENLIST_ICON_BIG_SIZE GENLIST_ICON_BIG_SIZE;
+                               max: GENLIST_ICON_BIG_SIZE GENLIST_ICON_BIG_SIZE;
+                               fixed: 1 1;
+                               rel1 {
+                                       relative: 1.0 1.0;
+                                       to_x: "elm.padding.icon1.right";
+                                       to_y: "elm.padding.top";
+                               }
+                               rel2 {
+                                       relative: 1.0 0.0;
+                                       to_x: "elm.padding.icon1.right";
+                                       to_y: "elm.padding.bottom";
+                               }
+                               align: 0.0 0.5;
+                       }
+                       GENLIST_DESCRIPTION_FLIP_ENABLED
+               }
+               part { name: "elm.padding.icon2.right";
+                       clip_to: "disclip";
+                       type: RECT;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               min: GENLIST_PADDING_16_INC 0;
+                               fixed: 1 0;
+                               rel1 {
+                                       relative: 1.0 0.0;
+                                       to_x: "elm.icon.2";
+                               }
+                               rel2.to_x: "elm.icon.2";
+                               align: 0.0 0.0;
+                               visible: 0;
+                       }
+               }
+               part { name: "elm.text.1";
+                       clip_to: "disclip";
+                       type: TEXT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               min: 0 GENLIST_SIZE_61_INC;
+                               fixed: 0 1;
+                               rel1 {
+                                       relative: 1.0 1.0;
+                                       to_x: "elm.padding.icon2.right";
+                                       to_y: "elm.padding.top";
+                               }
+                               rel2 {
+                                       relative: 0.0 1.0;
+                                       to_x: "elm.padding.right";
+                                       to_y: "elm.padding.top";
+                               }
+                               align: 0.0 0.0;
+                               color: GENLIST_LIST_MAIN_TEXT_UNREAD_COLOR;
+                               text {
+                                       font: "SLP:style=Roman";
+                                       size: GENLIST_LIST_MAIN_TEXT_SIZE;
+                                       min: 0 1;
+                                       align: 0.0 0.5;
+                                       text_class: "list_item";
+                               }
+                       }
+                       description { state: "selected" 0.0;
+                               inherit: "default" 0.0;
+                               color: GENLIST_LIST_MAIN_TEXT_FOCUS_COLOR;
+                       }
+                       GENLIST_DESCRIPTION_FLIP_ENABLED
+               }
+               part { name: "elm.text.2";
+                       clip_to: "disclip";
+                       type: TEXT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               rel1 {
+                                       relative: 1.0 1.0;
+                                       to_x: "elm.padding.icon2.right";
+                                       to_y: "elm.text.1";
+                               }
+                               rel2 {
+                                       relative: 0.0 0.0;
+                                       to_x: "elm.padding.right";
+                                       to_y: "elm.padding.bottom";
+                               }
+                               color: GENLIST_LIST_SUB_TEXT_DEFAULT_COLOR;
+                               text {
+                                       font: "SLP:style=Medium";
+                                       size: GENLIST_FONT_32_INC;
+                                       min: 0 1;
+                                       align: 0.0 0.5;
+                                       text_class: "slp_medium";
+                               }
+                       }
+                       description { state: "selected" 0.0;
+                               inherit: "default" 0.0;
+                               color: GENLIST_LIST_SUB_TEXT_FOCUS_COLOR;
+                       }
+                       GENLIST_DESCRIPTION_FLIP_ENABLED
+               }
+               GENLIST_PART_FLIP
+               GENLIST_PART_DISCLIP
+       }
+       programs {
+               // signal: elm,state,%s,active
+               //   a "check" item named %s went active
+               // signal: elm,state,%s,passive
+               //   a "check" item named %s went passive
+               // default is passive
+               program { name: "go_active";
+                       signal: "elm,state,selected";
+                       source: "elm";
+                       action: STATE_SET "selected" 0.0;
+                       target: "bg_image";
+                       target: "elm.text.1";
+                       target: "elm.text.2";
+                       //GENLIST_PROGRAM_AFTER_PLAY_BUTTON_PRESS
+               }
+               program { name: "go_passive";
+                       signal: "elm,state,unselected";
+                       source: "elm";
+                       action: STATE_SET "default" 0.0;
+                       target: "bg_image";
+                       target: "elm.text.1";
+                       target: "elm.text.2";
+                       transition: LINEAR 0.1;
+               }
+               program { name: "go_disabled";
+                       signal: "elm,state,disabled";
+                       source: "elm";
+                       action: STATE_SET "disabled" 0.0;
+                       target: "disclip";
+               }
+               program { name: "go_enabled";
+                       signal: "elm,state,enabled";
+                       source: "elm";
+                       action: STATE_SET "default" 0.0;
+                       target: "disclip";
+               }
+               GENLIST_PROGRAM_FLIP_2TEXT_2ICON
+               //GENLIST_PROGRAM_PLAY_BUTTON_PRESS
+       }
+}
+
+/* For Gal photo Genlist */
+group { name: "elm/genlist/item/email.2text.1icon/default";
+       alias: "elm/genlist/item_odd/email.2text.1icon/default";
+       alias: "elm/genlist/item_compress/email.2text.1icon/default";
+       alias: "elm/genlist/item_compress_odd/email.2text.1icon/default";
+       data.item: "stacking" "above";
+       data.item: "selectraise" "on";
+       data.item: "texts" "elm.text.1 elm.text.2";
+       data.item: "contents" "elm.icon";
+       data.item: "flips" "elm.flip.content";
+       images {
+         image: "00_list_bar_press_1x80.png" COMP;
+       }
+       styles {
+               style {
+                       name: "genlist_style_list_main_text_unread";
+                       base: "font=SLP:style=Regular font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color="GENLIST_LIST_MAIN_TEXT_UNREAD_COLOR_STYLE" text_class=list_item ellipsis=1.0";
+                       TEXTBLOCK_TAG
+               }
+
+               style { name: "genlist_style_list_main_text_focus";
+                       base: "font=SLP:style=Regular font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color="GENLIST_LIST_MAIN_TEXT_FOCUS_COLOR_STYLE" text_class=list_item ellipsis=1.0";
+                       TEXTBLOCK_TAG
+               }
+
+               style { name: "genlist_style_list_sub_text_default";
+                       base: "font=SLP:style=Medium font_size="GENLIST_LIST_SUB_TEXT_SIZE" color="GENLIST_LIST_SUB_TEXT_DEFAULT_COLOR_STYLE" ellipsis=1.0";
+                       TEXTBLOCK_TAG
+               }
+               style { name: "genlist_style_list_sub_text_focus";
+                       base: "font=SLP:style=Medium font_size="GENLIST_LIST_SUB_TEXT_SIZE" color="GENLIST_LIST_SUB_TEXT_FOCUS_COLOR_STYLE" ellipsis=1.0";
+                       TEXTBLOCK_TAG
+               }
+       }
+       parts {
+         GENLIST_PART_BASE( GENLIST_HEIGHT_129_INC )
+         GENLIST_PART_BG_IMAGE
+         GENLIST_PART_BOTTOM_LINE
+         GENLIST_PART_PADDING_TOP( GENLIST_PADDING_10_INC )
+         GENLIST_PART_PADDING_BOTTOM( GENLIST_PADDING_10_INC )
+         GENLIST_PART_PADDING_LEFT( GENLIST_PADDING_SIZE_LEFT )
+         GENLIST_PART_PADDING_RIGHT( GENLIST_PADDING_SIZE_RIGHT )
+         part { name: "elm.icon";
+                clip_to: "disclip";
+                type: SWALLOW;
+                scale: 1;
+                description { state: "default" 0.0;
+                       fixed: 1 1;
+                       rel1 {
+                          relative: 0.0 1.0;
+                          to_x: "elm.padding.right";
+                          to_y: "elm.padding.top";
+                       }
+                       rel2 {
+                          relative: 0.0 0.0;
+                          to_x: "elm.padding.right";
+                          to_y: "elm.padding.bottom";
+                       }
+                       align: 1.0 0.5;
+                }
+                GENLIST_DESCRIPTION_FLIP_ENABLED
+         }
+         part { name: "elm.padding.icon.left";
+                clip_to: "disclip";
+                type: RECT;
+                scale: 1;
+                description { state: "default" 0.0;
+                       min: GENLIST_PADDING_16_INC 0;
+                       fixed: 1 0;
+                       rel1.to_x: "elm.icon";
+                       rel2 {
+                          relative: 0.0 1.0;
+                          to_x: "elm.icon";
+                       }
+                       align: 1.0 0.0;
+                       visible: 0;
+                }
+         }
+         part { name: "elm.text.1";
+                clip_to: "disclip";
+                type: TEXTBLOCK;
+                mouse_events: 0;
+                scale: 1;
+                description { state: "default" 0.0;
+                       min: 0 GENLIST_SIZE_61_INC;
+                       fixed: 1 1;
+                       rel1 {
+                          relative: 1.0 1.0;
+                          to_x: "elm.padding.left";
+                          to_y: "elm.padding.top";
+                       }
+                       rel2 {
+                          relative: 0.0 1.0;
+                          to_x: "elm.padding.icon.left";
+                          to_y: "elm.padding.top";
+                       }
+                       align: 0.0 0.0;
+                       text {
+                          style: "genlist_style_list_main_text_unread";
+                          min: 0 1;
+                          align: 0.0 0.5;
+                       }
+                }
+                description { state: "selected" 0.0;
+                       inherit: "default" 0.0;
+                       text.style: "genlist_style_list_main_text_focus";
+                }
+                GENLIST_DESCRIPTION_FLIP_ENABLED
+         }
+         part { name: "elm.text.2";
+                clip_to: "disclip";
+                type: TEXTBLOCK;
+                mouse_events: 0;
+                scale: 1;
+                description { state: "default" 0.0;
+                       fixed: 1 0;
+                       rel1 {
+                          relative: 1.0 1.0;
+                          to_x: "elm.padding.left";
+                          to_y: "elm.text.1";
+                       }
+                       rel2 {
+                          relative: 0.0 0.0;
+                          to_x: "elm.padding.icon.left";
+                          to_y: "elm.padding.bottom";
+                       }
+                       align: 0.0 0.0;
+                       text {
+                          style: "genlist_style_list_sub_text_default";
+                          min: 0 1;
+                          align: 0.0 0.5;
+                       }
+                }
+                description { state: "selected" 0.0;
+                       inherit: "default" 0.0;
+                       text.style: "genlist_style_list_sub_text_focus";
+                }
+                GENLIST_DESCRIPTION_FLIP_ENABLED
+         }
+         GENLIST_PART_FLIP
+         GENLIST_PART_DISCLIP
+       }
+       programs {
+         // signal: elm,state,%s,active
+         //   a "check" item named %s went active
+         // signal: elm,state,%s,passive
+         //   a "check" item named %s went passive
+         // default is passive
+         program { name: "go_active";
+                signal: "elm,state,selected";
+                source: "elm";
+                action: STATE_SET "selected" 0.0;
+                target: "bg_image";
+                target: "elm.text.1";
+                target: "elm.text.2";
+         }
+         program { name: "go_passive";
+                signal: "elm,state,unselected";
+                source: "elm";
+                action: STATE_SET "default" 0.0;
+                target: "bg_image";
+                target: "elm.text.1";
+                target: "elm.text.2";
+                transition: LINEAR 0.1;
+         }
+         program { name: "go_disabled";
+                signal: "elm,state,disabled";
+                source: "elm";
+                action: STATE_SET "disabled" 0.0;
+                target: "disclip";
+         }
+         program { name: "go_enabled";
+                signal: "elm,state,enabled";
+                source: "elm";
+                action: STATE_SET "default" 0.0;
+                target: "disclip";
+         }
+         GENLIST_PROGRAM_FLIP_2TEXT_1ICON
+       }
+}
+
+group { name: "elm/genlist/item/email.1text.1icon/default";
+       alias: "elm/genlist/item_odd/email.1text.1icon/default";
+       alias: "elm/genlist/item_compress/email.1text.1icon/default";
+       alias: "elm/genlist/item_compress_odd/email.1text.1icon/default";
+       data.item: "stacking" "above";
+       data.item: "selectraise" "on";
+       data.item: "texts" "elm.text";
+       data.item: "contents" "elm.icon";
+       data.item: "flips" "elm.flip.content";
+       images {
+         image: "00_list_bar_press_1x80.png" COMP;
+       }
+       parts {
+         GENLIST_PART_BASE( GENLIST_HEIGHT_129_INC )
+         GENLIST_PART_BG_IMAGE
+         GENLIST_PART_BOTTOM_LINE
+         GENLIST_PART_PADDING_TOP( GENLIST_PADDING_10_INC )
+         GENLIST_PART_PADDING_BOTTOM( GENLIST_PADDING_10_INC )
+         GENLIST_PART_PADDING_LEFT( GENLIST_PADDING_SIZE_LEFT )
+         GENLIST_PART_PADDING_RIGHT( GENLIST_PADDING_SIZE_RIGHT )
+         part { name: "elm.icon";
+                clip_to: "disclip";
+                type: SWALLOW;
+                scale: 1;
+                description { state: "default" 0.0;
+                       fixed: 1 1;
+                       rel1 {
+                          relative: 0.0 1.0;
+                          to_x: "elm.padding.right";
+                          to_y: "elm.padding.top";
+                       }
+                       rel2 {
+                          relative: 0.0 0.0;
+                          to_x: "elm.padding.right";
+                          to_y: "elm.padding.bottom";
+                       }
+                       align: 1.0 0.5;
+                }
+                GENLIST_DESCRIPTION_FLIP_ENABLED
+         }
+         part { name: "elm.padding.icon.left";
+                clip_to: "disclip";
+                type: RECT;
+                scale: 1;
+                description { state: "default" 0.0;
+                       min: GENLIST_PADDING_16_INC 0;
+                       fixed: 1 0;
+                       rel1.to_x: "elm.icon";
+                       rel2 {
+                          relative: 0.0 1.0;
+                          to_x: "elm.icon";
+                       }
+                       align: 1.0 0.0;
+                       visible: 0;
+                }
+         }
+         part { name: "elm.text";
+                clip_to: "disclip";
+                type: TEXTBLOCK;
+                mouse_events: 0;
+                scale: 1;
+                description { state: "default" 0.0;
+                       min: 0 GENLIST_SIZE_61_INC;
+                       fixed: 1 1;
+                       rel1 {
+                          relative: 1.0 0.0;
+                          to_x: "elm.padding.left";
+                          to_y: "elm.padding.top";
+                       }
+                       rel2 {
+                          relative: 0.0 1.0;
+                          to_x: "elm.padding.icon.left";
+                          to_y: "elm.padding.bottom";
+                       }
+                       align: 0.0 0.0;
+                       text {
+                          style: "genlist_style_list_main_text_unread";
+                          min: 0 1;
+                          align: 0.0 0.5;
+                       }
+                }
+                description { state: "selected" 0.0;
+                       inherit: "default" 0.0;
+                       text.style: "genlist_style_list_main_text_focus";
+                }
+                GENLIST_DESCRIPTION_FLIP_ENABLED
+         }
+         GENLIST_PART_FLIP
+         GENLIST_PART_DISCLIP
+       }
+       programs {
+         // signal: elm,state,%s,active
+         //   a "check" item named %s went active
+         // signal: elm,state,%s,passive
+         //   a "check" item named %s went passive
+         // default is passive
+         program { name: "go_active";
+                signal: "elm,state,selected";
+                source: "elm";
+                action: STATE_SET "selected" 0.0;
+                target: "bg_image";
+                target: "elm.text";
+         }
+         program { name: "go_passive";
+                signal: "elm,state,unselected";
+                source: "elm";
+                action: STATE_SET "default" 0.0;
+                target: "bg_image";
+                target: "elm.text";
+                transition: LINEAR 0.1;
+         }
+         program { name: "go_disabled";
+                signal: "elm,state,disabled";
+                source: "elm";
+                action: STATE_SET "disabled" 0.0;
+                target: "disclip";
+         }
+         program { name: "go_enabled";
+                signal: "elm,state,enabled";
+                source: "elm";
+                action: STATE_SET "default" 0.0;
+                target: "disclip";
+         }
+         GENLIST_PROGRAM_FLIP_1TEXT_1ICON
+       }
+}
+
index 7f432d1..f845ffc 100755 (executable)
@@ -48,4 +48,5 @@ collections {
        }
 
        #include "email-composer-layouts.edc"
+       #include "email-composer-genlist.edc"
 }
index ffe86fc..102755e 100755 (executable)
@@ -7,14 +7,9 @@
        <ui-application appid="email-composer-efl" exec="/opt/ug/bin/email-composer-efl" nodisplay="true" multiple="true" type="capp" taskmanage="false">
                <label>Email composer</label>
                <application-service>
-                       <operation name="http://tizen.org/appcontrol/operation/send"/>
                        <mime name="*/*"/>
                </application-service>
                <application-service>
-                       <operation name="http://tizen.org/appcontrol/operation/send_text"/>
-               </application-service>
-               <application-service>
-                       <operation name="http://tizen.org/appcontrol/operation/send"/>
                        <uri name="mailto"/>
                </application-service>
        </ui-application>
diff --git a/images/00_badge_34x34.png b/images/00_badge_34x34.png
deleted file mode 100644 (file)
index 326ca8c..0000000
Binary files a/images/00_badge_34x34.png and /dev/null differ
diff --git a/images/01_controlbar_icon_accounts.png b/images/01_controlbar_icon_accounts.png
deleted file mode 100644 (file)
index 768d8db..0000000
Binary files a/images/01_controlbar_icon_accounts.png and /dev/null differ
diff --git a/images/01_controlbar_icon_change_group.png b/images/01_controlbar_icon_change_group.png
deleted file mode 100644 (file)
index 0d3938b..0000000
Binary files a/images/01_controlbar_icon_change_group.png and /dev/null differ
diff --git a/images/01_controlbar_icon_favorite.png b/images/01_controlbar_icon_favorite.png
deleted file mode 100644 (file)
index aa13cf9..0000000
Binary files a/images/01_controlbar_icon_favorite.png and /dev/null differ
diff --git a/images/01_controlbar_icon_forward.png b/images/01_controlbar_icon_forward.png
deleted file mode 100644 (file)
index a1fca43..0000000
Binary files a/images/01_controlbar_icon_forward.png and /dev/null differ
diff --git a/images/01_controlbar_icon_reply.png b/images/01_controlbar_icon_reply.png
deleted file mode 100644 (file)
index 4bdadbd..0000000
Binary files a/images/01_controlbar_icon_reply.png and /dev/null differ
diff --git a/images/01_controlbar_icon_send.png b/images/01_controlbar_icon_send.png
deleted file mode 100644 (file)
index 2a31a6f..0000000
Binary files a/images/01_controlbar_icon_send.png and /dev/null differ
diff --git a/images/01_controlbar_icon_set_as.png b/images/01_controlbar_icon_set_as.png
deleted file mode 100644 (file)
index 1673ad9..0000000
Binary files a/images/01_controlbar_icon_set_as.png and /dev/null differ
diff --git a/images/01_controlbar_icon_store.png b/images/01_controlbar_icon_store.png
deleted file mode 100644 (file)
index a5cb24d..0000000
Binary files a/images/01_controlbar_icon_store.png and /dev/null differ
diff --git a/images/01_controlbar_icon_tag.png b/images/01_controlbar_icon_tag.png
deleted file mode 100644 (file)
index 5b57cf7..0000000
Binary files a/images/01_controlbar_icon_tag.png and /dev/null differ
diff --git a/images/01_controllbar_icon_add_tag.png b/images/01_controllbar_icon_add_tag.png
deleted file mode 100644 (file)
index 2fb4713..0000000
Binary files a/images/01_controllbar_icon_add_tag.png and /dev/null differ
diff --git a/images/01_header_icon_delete.png b/images/01_header_icon_delete.png
deleted file mode 100644 (file)
index f02f45c..0000000
Binary files a/images/01_header_icon_delete.png and /dev/null differ
diff --git a/images/01_header_icon_done.png b/images/01_header_icon_done.png
deleted file mode 100644 (file)
index d771640..0000000
Binary files a/images/01_header_icon_done.png and /dev/null differ
diff --git a/images/01_header_icon_edit.png b/images/01_header_icon_edit.png
deleted file mode 100644 (file)
index ea2535d..0000000
Binary files a/images/01_header_icon_edit.png and /dev/null differ
diff --git a/images/B15_double_tap_02.png b/images/B15_double_tap_02.png
new file mode 100755 (executable)
index 0000000..289e908
Binary files /dev/null and b/images/B15_double_tap_02.png differ
diff --git a/images/M02_arrow_expand_dim.png b/images/M02_arrow_expand_dim.png
deleted file mode 100644 (file)
index eda2fef..0000000
Binary files a/images/M02_arrow_expand_dim.png and /dev/null differ
diff --git a/images/M02_btn_circle_bg_01.png b/images/M02_btn_circle_bg_01.png
deleted file mode 100644 (file)
index 23b80f0..0000000
Binary files a/images/M02_btn_circle_bg_01.png and /dev/null differ
diff --git a/images/M02_btn_circle_bg_press.png b/images/M02_btn_circle_bg_press.png
deleted file mode 100644 (file)
index 9408a25..0000000
Binary files a/images/M02_btn_circle_bg_press.png and /dev/null differ
diff --git a/images/M02_btn_play.png b/images/M02_btn_play.png
deleted file mode 100644 (file)
index 79c2e5f..0000000
Binary files a/images/M02_btn_play.png and /dev/null differ
diff --git a/images/M02_button_05_dim.png b/images/M02_button_05_dim.png
deleted file mode 100644 (file)
index f375553..0000000
Binary files a/images/M02_button_05_dim.png and /dev/null differ
diff --git a/images/M02_button_05_normal.png b/images/M02_button_05_normal.png
deleted file mode 100644 (file)
index f375553..0000000
Binary files a/images/M02_button_05_normal.png and /dev/null differ
diff --git a/images/M02_button_05_press.png b/images/M02_button_05_press.png
deleted file mode 100644 (file)
index 236f1be..0000000
Binary files a/images/M02_button_05_press.png and /dev/null differ
diff --git a/images/M02_button_06_dim.png b/images/M02_button_06_dim.png
deleted file mode 100644 (file)
index 93626cd..0000000
Binary files a/images/M02_button_06_dim.png and /dev/null differ
diff --git a/images/M02_button_06_press.png b/images/M02_button_06_press.png
deleted file mode 100644 (file)
index d2446e7..0000000
Binary files a/images/M02_button_06_press.png and /dev/null differ
old mode 100644 (file)
new mode 100755 (executable)
similarity index 58%
rename from images/M02_btn_circle_bg.png
rename to images/M02_button_download_press.png
index 74cf5ca..e607aca
Binary files a/images/M02_btn_circle_bg.png and b/images/M02_button_download_press.png differ
old mode 100644 (file)
new mode 100755 (executable)
similarity index 100%
rename from images/M02_button_expand_collapse.png
rename to images/M02_button_expand.png
old mode 100644 (file)
new mode 100755 (executable)
index 02e9ea5..56f15ea
Binary files a/images/M02_button_expand_opened_press.png and b/images/M02_button_expand_opened_press.png differ
old mode 100644 (file)
new mode 100755 (executable)
similarity index 71%
rename from images/M02_icon_favorite_off_02.png
rename to images/M02_button_expand_press.png
index 3a9fcb4..6df4ece
Binary files a/images/M02_icon_favorite_off_02.png and b/images/M02_button_expand_press.png differ
diff --git a/images/M02_button_sweep.png b/images/M02_button_sweep.png
deleted file mode 100644 (file)
index 6f39fb5..0000000
Binary files a/images/M02_button_sweep.png and /dev/null differ
diff --git a/images/M02_button_sweep_delete.png b/images/M02_button_sweep_delete.png
deleted file mode 100644 (file)
index 87d7185..0000000
Binary files a/images/M02_button_sweep_delete.png and /dev/null differ
diff --git a/images/M02_button_sweep_dim.png b/images/M02_button_sweep_dim.png
deleted file mode 100644 (file)
index c53e775..0000000
Binary files a/images/M02_button_sweep_dim.png and /dev/null differ
diff --git a/images/M02_button_sweep_press.png b/images/M02_button_sweep_press.png
deleted file mode 100644 (file)
index 451bf38..0000000
Binary files a/images/M02_button_sweep_press.png and /dev/null differ
diff --git a/images/M02_email_Flag_Active_press.png b/images/M02_email_Flag_Active_press.png
deleted file mode 100644 (file)
index 7590172..0000000
Binary files a/images/M02_email_Flag_Active_press.png and /dev/null differ
old mode 100644 (file)
new mode 100755 (executable)
index 3db2b90..8d08871
Binary files a/images/M02_email_Flag_Clear.png and b/images/M02_email_Flag_Clear.png differ
diff --git a/images/M02_email_Flag_Clear_press.png b/images/M02_email_Flag_Clear_press.png
deleted file mode 100644 (file)
index 54fc1c6..0000000
Binary files a/images/M02_email_Flag_Clear_press.png and /dev/null differ
diff --git a/images/M02_email_btn_icon_down.png b/images/M02_email_btn_icon_down.png
deleted file mode 100644 (file)
index 942c16c..0000000
Binary files a/images/M02_email_btn_icon_down.png and /dev/null differ
diff --git a/images/M02_email_btn_icon_down_press.png b/images/M02_email_btn_icon_down_press.png
deleted file mode 100644 (file)
index 1ea6794..0000000
Binary files a/images/M02_email_btn_icon_down_press.png and /dev/null differ
diff --git a/images/M02_email_icon_Encryption_press.png b/images/M02_email_icon_Encryption_press.png
deleted file mode 100644 (file)
index f83cbb6..0000000
Binary files a/images/M02_email_icon_Encryption_press.png and /dev/null differ
diff --git a/images/M02_email_icon_attach_press.png b/images/M02_email_icon_attach_press.png
deleted file mode 100644 (file)
index 49d7a83..0000000
Binary files a/images/M02_email_icon_attach_press.png and /dev/null differ
old mode 100644 (file)
new mode 100755 (executable)
index a71e9f8..7986bbe
Binary files a/images/M02_email_icon_favorite_off.png and b/images/M02_email_icon_favorite_off.png differ
old mode 100644 (file)
new mode 100755 (executable)
index 809de1b..48f4573
Binary files a/images/M02_email_icon_favorite_on.png and b/images/M02_email_icon_favorite_on.png differ
diff --git a/images/M02_email_icon_forward_press.png b/images/M02_email_icon_forward_press.png
deleted file mode 100644 (file)
index 4ea3c85..0000000
Binary files a/images/M02_email_icon_forward_press.png and /dev/null differ
old mode 100644 (file)
new mode 100755 (executable)
similarity index 89%
rename from images/M02_email_icon_priority_press.png
rename to images/M02_email_icon_index_close.png
index 79f46e4..d5d1f49
Binary files a/images/M02_email_icon_priority_press.png and b/images/M02_email_icon_index_close.png differ
diff --git a/images/M02_email_icon_lock.png b/images/M02_email_icon_lock.png
deleted file mode 100644 (file)
index 215e0f7..0000000
Binary files a/images/M02_email_icon_lock.png and /dev/null differ
diff --git a/images/M02_email_icon_lock_press.png b/images/M02_email_icon_lock_press.png
deleted file mode 100644 (file)
index 7829a53..0000000
Binary files a/images/M02_email_icon_lock_press.png and /dev/null differ
old mode 100644 (file)
new mode 100755 (executable)
similarity index 82%
rename from images/M02_icon_upper_folder_press.png
rename to images/M02_email_icon_popup_advanced.png
index 050c295..85362cc
Binary files a/images/M02_icon_upper_folder_press.png and b/images/M02_email_icon_popup_advanced.png differ
old mode 100644 (file)
new mode 100755 (executable)
similarity index 82%
rename from images/U01_icon_upper_folder.png
rename to images/M02_email_icon_popup_advanced_press.png
index 050c295..1f345f6
Binary files a/images/U01_icon_upper_folder.png and b/images/M02_email_icon_popup_advanced_press.png differ
index 0de4137..929cd98 100755 (executable)
Binary files a/images/M02_email_icon_popup_all.png and b/images/M02_email_icon_popup_all.png differ
old mode 100644 (file)
new mode 100755 (executable)
similarity index 85%
rename from images/M02_icon_upper_folder.png
rename to images/M02_email_icon_popup_all_press.png
index 050c295..0de4137
Binary files a/images/M02_icon_upper_folder.png and b/images/M02_email_icon_popup_all_press.png differ
diff --git a/images/M02_email_icon_popup_date.png b/images/M02_email_icon_popup_date.png
new file mode 100755 (executable)
index 0000000..4e477ef
Binary files /dev/null and b/images/M02_email_icon_popup_date.png differ
diff --git a/images/M02_email_icon_popup_date_press.png b/images/M02_email_icon_popup_date_press.png
new file mode 100755 (executable)
index 0000000..7c883bf
Binary files /dev/null and b/images/M02_email_icon_popup_date_press.png differ
index c921611..34df142 100755 (executable)
Binary files a/images/M02_email_icon_popup_sender.png and b/images/M02_email_icon_popup_sender.png differ
old mode 100644 (file)
new mode 100755 (executable)
similarity index 73%
rename from images/M02_button_delete.png
rename to images/M02_email_icon_popup_sender_press.png
index 7e3d02a..c921611
Binary files a/images/M02_button_delete.png and b/images/M02_email_icon_popup_sender_press.png differ
index c307de8..1415601 100755 (executable)
Binary files a/images/M02_email_icon_popup_title.png and b/images/M02_email_icon_popup_title.png differ
old mode 100644 (file)
new mode 100755 (executable)
similarity index 89%
rename from images/01_header_icon_add.png
rename to images/M02_email_icon_popup_title_press.png
index 43c4984..c307de8
Binary files a/images/01_header_icon_add.png and b/images/M02_email_icon_popup_title_press.png differ
diff --git a/images/M02_email_icon_reply_press.png b/images/M02_email_icon_reply_press.png
deleted file mode 100644 (file)
index 77cfe29..0000000
Binary files a/images/M02_email_icon_reply_press.png and /dev/null differ
diff --git a/images/M02_email_icon_sign_press.png b/images/M02_email_icon_sign_press.png
deleted file mode 100644 (file)
index 1b16c74..0000000
Binary files a/images/M02_email_icon_sign_press.png and /dev/null differ
diff --git a/images/M02_email_minus.png b/images/M02_email_minus.png
deleted file mode 100644 (file)
index 5026a7b..0000000
Binary files a/images/M02_email_minus.png and /dev/null differ
diff --git a/images/M02_email_popup_bubble_tail_top.png b/images/M02_email_popup_bubble_tail_top.png
new file mode 100755 (executable)
index 0000000..ed771ad
Binary files /dev/null and b/images/M02_email_popup_bubble_tail_top.png differ
diff --git a/images/M02_function_attach.png b/images/M02_function_attach.png
deleted file mode 100644 (file)
index 8fa7872..0000000
Binary files a/images/M02_function_attach.png and /dev/null differ
diff --git a/images/M02_function_security.png b/images/M02_function_security.png
deleted file mode 100644 (file)
index f1f5d9e..0000000
Binary files a/images/M02_function_security.png and /dev/null differ
diff --git a/images/M02_help_bg.png b/images/M02_help_bg.png
deleted file mode 100644 (file)
index 5144879..0000000
Binary files a/images/M02_help_bg.png and /dev/null differ
diff --git a/images/M02_icon_favorite_off_01.png b/images/M02_icon_favorite_off_01.png
deleted file mode 100644 (file)
index ea37003..0000000
Binary files a/images/M02_icon_favorite_off_01.png and /dev/null differ
diff --git a/images/M02_icon_favorite_on.png b/images/M02_icon_favorite_on.png
deleted file mode 100644 (file)
index 1d100a9..0000000
Binary files a/images/M02_icon_favorite_on.png and /dev/null differ
diff --git a/images/M02_icon_favorite_on_01.png b/images/M02_icon_favorite_on_01.png
deleted file mode 100644 (file)
index f36d000..0000000
Binary files a/images/M02_icon_favorite_on_01.png and /dev/null differ
diff --git a/images/M02_icon_favorite_on_02.png b/images/M02_icon_favorite_on_02.png
deleted file mode 100644 (file)
index f09c852..0000000
Binary files a/images/M02_icon_favorite_on_02.png and /dev/null differ
diff --git a/images/M02_icon_next_press.png b/images/M02_icon_next_press.png
deleted file mode 100644 (file)
index c455e5b..0000000
Binary files a/images/M02_icon_next_press.png and /dev/null differ
diff --git a/images/M02_icon_previous_press.png b/images/M02_icon_previous_press.png
deleted file mode 100644 (file)
index cb39eb6..0000000
Binary files a/images/M02_icon_previous_press.png and /dev/null differ
diff --git a/images/M02_logo_bg.png b/images/M02_logo_bg.png
deleted file mode 100644 (file)
index 8a95432..0000000
Binary files a/images/M02_logo_bg.png and /dev/null differ
diff --git a/images/M02_rich_text_bar_Aleadsymbol_press.png b/images/M02_rich_text_bar_Aleadsymbol_press.png
new file mode 100755 (executable)
index 0000000..c6defea
Binary files /dev/null and b/images/M02_rich_text_bar_Aleadsymbol_press.png differ
diff --git a/images/M02_rich_text_bar_Indent_press.png b/images/M02_rich_text_bar_Indent_press.png
new file mode 100755 (executable)
index 0000000..e4447df
Binary files /dev/null and b/images/M02_rich_text_bar_Indent_press.png differ
diff --git a/images/M02_rich_text_bar_Outdent_press.png b/images/M02_rich_text_bar_Outdent_press.png
new file mode 100755 (executable)
index 0000000..882526f
Binary files /dev/null and b/images/M02_rich_text_bar_Outdent_press.png differ
old mode 100644 (file)
new mode 100755 (executable)
similarity index 92%
rename from images/M02_contact_style_press.png
rename to images/M02_rich_text_bar_align_all_center.png
index 01c4172..67665d1
Binary files a/images/M02_contact_style_press.png and b/images/M02_rich_text_bar_align_all_center.png differ
old mode 100644 (file)
new mode 100755 (executable)
similarity index 92%
rename from images/M02_email_minus_press.png
rename to images/M02_rich_text_bar_align_all_center_press.png
index 01f8d32..1aa7117
Binary files a/images/M02_email_minus_press.png and b/images/M02_rich_text_bar_align_all_center_press.png differ
old mode 100644 (file)
new mode 100755 (executable)
similarity index 91%
rename from images/01_header_icon_others.png
rename to images/M02_rich_text_bar_align_center.png
index 4fc9dfa..180a883
Binary files a/images/01_header_icon_others.png and b/images/M02_rich_text_bar_align_center.png differ
diff --git a/images/M02_rich_text_bar_align_center_press.png b/images/M02_rich_text_bar_align_center_press.png
new file mode 100755 (executable)
index 0000000..94e7313
Binary files /dev/null and b/images/M02_rich_text_bar_align_center_press.png differ
old mode 100644 (file)
new mode 100755 (executable)
similarity index 91%
rename from images/00_list_thumbnail_bg.png
rename to images/M02_rich_text_bar_align_left.png
index 88522c5..b64b92a
Binary files a/images/00_list_thumbnail_bg.png and b/images/M02_rich_text_bar_align_left.png differ
old mode 100644 (file)
new mode 100755 (executable)
similarity index 91%
rename from images/M02_contact_style.png
rename to images/M02_rich_text_bar_align_left_press.png
index b5d6ac8..49ca62a
Binary files a/images/M02_contact_style.png and b/images/M02_rich_text_bar_align_left_press.png differ
old mode 100644 (file)
new mode 100755 (executable)
similarity index 91%
rename from images/00_list_bar_press_1x90.png
rename to images/M02_rich_text_bar_align_right.png
index fe01174..2431a2f
Binary files a/images/00_list_bar_press_1x90.png and b/images/M02_rich_text_bar_align_right.png differ
diff --git a/images/M02_rich_text_bar_align_right_press.png b/images/M02_rich_text_bar_align_right_press.png
new file mode 100755 (executable)
index 0000000..47c4bb3
Binary files /dev/null and b/images/M02_rich_text_bar_align_right_press.png differ
diff --git a/images/M02_rich_text_bar_bold_press.png b/images/M02_rich_text_bar_bold_press.png
new file mode 100755 (executable)
index 0000000..cf84090
Binary files /dev/null and b/images/M02_rich_text_bar_bold_press.png differ
old mode 100644 (file)
new mode 100755 (executable)
index 33eecd6..95e8421
Binary files a/images/M02_rich_text_bar_btn_01_press.png and b/images/M02_rich_text_bar_btn_01_press.png differ
old mode 100644 (file)
new mode 100755 (executable)
index 46c33f1..303c940
Binary files a/images/M02_rich_text_bar_btn_02_press.png and b/images/M02_rich_text_bar_btn_02_press.png differ
diff --git a/images/M02_rich_text_bar_fontbgcolor_text.png b/images/M02_rich_text_bar_fontbgcolor_text.png
new file mode 100755 (executable)
index 0000000..3a70b80
Binary files /dev/null and b/images/M02_rich_text_bar_fontbgcolor_text.png differ
diff --git a/images/M02_rich_text_bar_fontbgcolor_text_press.png b/images/M02_rich_text_bar_fontbgcolor_text_press.png
new file mode 100755 (executable)
index 0000000..6765982
Binary files /dev/null and b/images/M02_rich_text_bar_fontbgcolor_text_press.png differ
old mode 100644 (file)
new mode 100755 (executable)
index 9aecb6f..19192a7
Binary files a/images/M02_rich_text_bar_fontcolor.png and b/images/M02_rich_text_bar_fontcolor.png differ
diff --git a/images/M02_rich_text_bar_fontcolor_press.png b/images/M02_rich_text_bar_fontcolor_press.png
new file mode 100755 (executable)
index 0000000..752355f
Binary files /dev/null and b/images/M02_rich_text_bar_fontcolor_press.png differ
diff --git a/images/M02_rich_text_bar_fontsize.png b/images/M02_rich_text_bar_fontsize.png
new file mode 100755 (executable)
index 0000000..6e3cb3a
Binary files /dev/null and b/images/M02_rich_text_bar_fontsize.png differ
diff --git a/images/M02_rich_text_bar_fontsize_press.png b/images/M02_rich_text_bar_fontsize_press.png
new file mode 100755 (executable)
index 0000000..77f0a71
Binary files /dev/null and b/images/M02_rich_text_bar_fontsize_press.png differ
diff --git a/images/M02_rich_text_bar_insert.png b/images/M02_rich_text_bar_insert.png
new file mode 100755 (executable)
index 0000000..4a543f0
Binary files /dev/null and b/images/M02_rich_text_bar_insert.png differ
diff --git a/images/M02_rich_text_bar_insert_press.png b/images/M02_rich_text_bar_insert_press.png
new file mode 100755 (executable)
index 0000000..3dbee48
Binary files /dev/null and b/images/M02_rich_text_bar_insert_press.png differ
old mode 100644 (file)
new mode 100755 (executable)
similarity index 89%
rename from images/01_header_icon_cancel.png
rename to images/M02_rich_text_bar_italic_press.png
index 4fb54c3..a31a529
Binary files a/images/01_header_icon_cancel.png and b/images/M02_rich_text_bar_italic_press.png differ
diff --git a/images/M02_rich_text_bar_numbering_press.png b/images/M02_rich_text_bar_numbering_press.png
new file mode 100755 (executable)
index 0000000..83cfa03
Binary files /dev/null and b/images/M02_rich_text_bar_numbering_press.png differ
diff --git a/images/M02_rich_text_bar_que_left.png b/images/M02_rich_text_bar_que_left.png
new file mode 100755 (executable)
index 0000000..03ff4d5
Binary files /dev/null and b/images/M02_rich_text_bar_que_left.png differ
old mode 100644 (file)
new mode 100755 (executable)
similarity index 81%
rename from images/00_list_img_check.png
rename to images/M02_rich_text_bar_que_right.png
index c954b08..0d0d9ea
Binary files a/images/00_list_img_check.png and b/images/M02_rich_text_bar_que_right.png differ
diff --git a/images/M02_rich_text_bar_redo_press.png b/images/M02_rich_text_bar_redo_press.png
new file mode 100755 (executable)
index 0000000..d9d0d5c
Binary files /dev/null and b/images/M02_rich_text_bar_redo_press.png differ
similarity index 86%
rename from images/00_input_bg.png
rename to images/M02_rich_text_bar_underline_press.png
index d5c11f5..4e63ff7 100755 (executable)
Binary files a/images/00_input_bg.png and b/images/M02_rich_text_bar_underline_press.png differ
diff --git a/images/M02_rich_text_bar_undo_press.png b/images/M02_rich_text_bar_undo_press.png
new file mode 100755 (executable)
index 0000000..63cdcee
Binary files /dev/null and b/images/M02_rich_text_bar_undo_press.png differ
diff --git a/images/M02_shadow_01.png b/images/M02_shadow_01.png
deleted file mode 100644 (file)
index 8f75d8d..0000000
Binary files a/images/M02_shadow_01.png and /dev/null differ
diff --git a/images/M02_shadow_02.png b/images/M02_shadow_02.png
deleted file mode 100644 (file)
index 7351259..0000000
Binary files a/images/M02_shadow_02.png and /dev/null differ
diff --git a/images/M02_title_button.png b/images/M02_title_button.png
deleted file mode 100644 (file)
index 5adf893..0000000
Binary files a/images/M02_title_button.png and /dev/null differ
diff --git a/images/M02_title_button_press.png b/images/M02_title_button_press.png
deleted file mode 100644 (file)
index c92145e..0000000
Binary files a/images/M02_title_button_press.png and /dev/null differ
diff --git a/images/M02_toolbar_Next.png b/images/M02_toolbar_Next.png
deleted file mode 100644 (file)
index 3d0ef00..0000000
Binary files a/images/M02_toolbar_Next.png and /dev/null differ
diff --git a/images/M02_toolbar_Previous.png b/images/M02_toolbar_Previous.png
deleted file mode 100644 (file)
index 6031430..0000000
Binary files a/images/M02_toolbar_Previous.png and /dev/null differ
diff --git a/images/U01_icon_ring_tone.png b/images/U01_icon_ring_tone.png
deleted file mode 100644 (file)
index 5e6d2c5..0000000
Binary files a/images/U01_icon_ring_tone.png and /dev/null differ
diff --git a/images/U01_icon_rss.png b/images/U01_icon_rss.png
deleted file mode 100644 (file)
index 1b566e2..0000000
Binary files a/images/U01_icon_rss.png and /dev/null differ
diff --git a/images/email_viewer_attach_multi.png b/images/email_viewer_attach_multi.png
deleted file mode 100644 (file)
index 1f1a6a8..0000000
Binary files a/images/email_viewer_attach_multi.png and /dev/null differ
diff --git a/images/nf_title_separator.png b/images/nf_title_separator.png
deleted file mode 100755 (executable)
index 62c098e..0000000
Binary files a/images/nf_title_separator.png and /dev/null differ
diff --git a/images/org.tizen.email.png b/images/org.tizen.email.png
deleted file mode 100755 (executable)
index c10fbce..0000000
Binary files a/images/org.tizen.email.png and /dev/null differ
diff --git a/mailbox/CMakeLists.txt b/mailbox/CMakeLists.txt
new file mode 100755 (executable)
index 0000000..0fd91a8
--- /dev/null
@@ -0,0 +1,62 @@
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+PROJECT(ug-email-mailbox-efl C)
+
+SET(SRCS
+       ./src/email-mailbox.c
+       ./src/email-mailbox-controlbar.c
+       ./src/email-mailbox-item.c
+       ./src/email-mailbox-list.c
+       ./src/email-mailbox-noti-mgr.c
+       ./src/email-mailbox-search.c
+       ./src/email-mailbox-sweep.c
+)
+SET(CMAKE_SKIP_BUILD_RPATH TRUE)
+
+IF("${CMAKE_BUILD_TYPE}" STREQUAL "")
+       SET(CMAKE_BUILD_TYPE "Release")
+ENDIF("${CMAKE_BUILD_TYPE}" STREQUAL "")
+MESSAGE("Build type: ${CMAKE_BUILD_TYPE}")
+
+SET(CMAKE_MAILBOX_SOURCE_DIR "${CMAKE_SOURCE_DIR}/mailbox")
+SET(CMAKE_MAILBOX_BINARY_DIR "${CMAKE_BINARY_DIR}/mailbox")
+INCLUDE_DIRECTORIES(${CMAKE_MAILBOX_SOURCE_DIR}/include)
+INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/common/include)
+
+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)
+
+FOREACH(flag ${pkgs-mailbox_CFLAGS})
+       SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
+ENDFOREACH(flag)
+
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
+SET(CMAKE_C_FLAGS_DEBUG "-O0 -g")
+SET(CMAKE_LDFLAGS "-Wl,-z,nodelete")
+
+FIND_PROGRAM(UNAME NAMES uname)
+EXEC_PROGRAM("${UNAME}" ARGS "-m" OUTPUT_VARIABLE "ARCH")
+IF("${ARCH}" STREQUAL "arm")
+       ADD_DEFINITIONS("-DTARGET")
+       MESSAGE("add -DTARGET")
+       SET(CMAKE_C_FLAGS_RELEASE "-mabi=aapcs-linux -msoft-float -O2")
+ENDIF("${ARCH}" STREQUAL "arm")
+
+ADD_DEFINITIONS("-DPREFIX=\"${CMAKE_INSTALL_PREFIX}\"")
+ADD_DEFINITIONS("-DDEBUG")
+ADD_DEFINITIONS("-D_POPUP_WITH_LIST")
+
+ADD_LIBRARY(${PROJECT_NAME} SHARED ${SRCS})
+TARGET_LINK_LIBRARIES(${PROJECT_NAME} email-common ${pkgs-mailbox_LDFLAGS})
+
+ADD_CUSTOM_TARGET(email-mailbox-theme.edj
+               COMMAND edje_cc -id ${CMAKE_SOURCE_DIR}/images
+               ${CMAKE_MAILBOX_SOURCE_DIR}/theme/email-mailbox-theme.edc ${CMAKE_MAILBOX_BINARY_DIR}/email-mailbox-theme.edj
+               DEPENDS ${CMAKE_MAILBOX_SOURCE_DIR}/theme/email-mailbox-theme.edc
+)
+ADD_DEPENDENCIES(${PROJECT_NAME} email-mailbox-theme.edj)
+
+INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${UGDIR})
+INSTALL(FILES ${CMAKE_MAILBOX_BINARY_DIR}/email-mailbox-theme.edj DESTINATION ${EDJDIR})
+
diff --git a/mailbox/include/email-mailbox-controlbar.h b/mailbox/include/email-mailbox-controlbar.h
new file mode 100755 (executable)
index 0000000..137beca
--- /dev/null
@@ -0,0 +1,24 @@
+/*
+ * Copyright 2012  Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *    http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __DEF_EMAIL_MAILBOX_CONTROL_BAR_H_
+#define __DEF_EMAIL_MAILBOX_CONTROL_BAR_H_
+
+
+void _create_controlbar(EmailMailboxUGD *mailbox_ugd);
+void _delete_controlbar(EmailMailboxUGD *mailbox_ugd);
+
+#endif /* __DEF_EMAIL_MAILBOX_CONTROL_BAR_H_ */
diff --git a/mailbox/include/email-mailbox-item.h b/mailbox/include/email-mailbox-item.h
new file mode 100755 (executable)
index 0000000..230a91e
--- /dev/null
@@ -0,0 +1,72 @@
+/*
+ * Copyright 2012  Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *    http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __DEF_EMAIL_MAILBOX_ITEM_H_
+#define __DEF_EMAIL_MAILBOX_ITEM_H_
+
+
+typedef struct {
+       int account_id;
+       int current_view;
+       int mailbox_type;
+       char *msg_buf;
+       EmailMailboxUGD *mailbox_ugd;
+} move_req_t;
+
+typedef struct {
+       EmailMailboxViewType previous_view;
+       EmailMailboxUGD *mailbox_ugd;
+} edit_req_t;
+
+typedef struct {
+       int account_id;
+       int current_view;
+       int mailbox_type;
+       char *msg_buf;
+       EmailMailboxUGD *mailbox_ugd;
+} delete_req_t;
+
+typedef struct {
+       int account_id;
+       int thread_id;
+       int mail_id;
+       int mailbox_id;
+       int view_type;
+       EmailMailboxMode mode;
+       EmailMailboxUGD *mailbox_ugd;
+} sync_req_t;
+
+typedef struct {
+       list_data *ld;
+       int     mail_id;
+} delete_ret_t;
+
+typedef struct {
+       int mail_id;
+       EmailMailboxUGD *mailbox_ugd;
+       int view_type;
+}update_req_t;
+
+
+void mailbox_process_move_mail(EmailMailboxUGD *mailbox_ugd);
+void mailbox_process_delete_mail(void* data, Ecore_Thread *thd);
+void mailbox_delete_mail_item_from_list(EmailMailboxUGD * mailbox_ugd, list_data * ld);
+void _popup_response_delete_ok_cb(void *data, Evas_Object *obj, void *event_info);
+void _popup_response_delete_all_ok_cb(void *data, Evas_Object *obj, void *event_info);
+void _resend_mail_cb(void *data, Evas_Object *obj, void *event_info);
+void _cancel_send_mail_cb(void *data, Evas_Object *obj, void *event_info);
+
+#endif /* __DEF_EMAIL_MAILBOX_ITEM_H_ */
diff --git a/mailbox/include/email-mailbox-list.h b/mailbox/include/email-mailbox-list.h
new file mode 100755 (executable)
index 0000000..c489443
--- /dev/null
@@ -0,0 +1,76 @@
+/*
+ * Copyright 2012  Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *    http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __DEF_EMAIL_MAILBOX_LIST_H_
+#define __DEF_EMAIL_MAILBOX_LIST_H_
+
+
+typedef struct {
+       email_mail_list_item_t *mail_list;
+       int start;
+       int count;
+       int view_type;
+       EmailMailboxMode mode;
+       EmailMailboxUGD *mailbox_ugd;
+} mail_remaining_list_t;
+
+
+#define G_LIST_FOREACH(list, ith, ith_data)    \
+       for (ith = g_list_first(list), ith_data = (typeof(ith_data)) g_list_nth_data(ith,0);\
+               ith;\
+               ith = g_list_next(ith), ith_data = (typeof(ith_data)) g_list_nth_data(ith,0))
+
+#define G_LIST_FREE(list) \
+       do {\
+               if(list) g_list_free(list);\
+               list = NULL;\
+       } while(0)
+
+
+void mailbox_create_list_view(EmailMailboxUGD *mailbox_ugd);
+void mailbox_make_date_mail_list(void *data);
+void mailbox_make_sender_mail_list(void *data);
+void mailbox_make_unread_mail_list(void *data);
+void mailbox_make_attachment_mail_list(void *data);
+void mailbox_make_important_mail_list(void *data);
+void mailbox_make_priority_mail_list(void *data);
+void _make_account_mail_list(void *data);
+gint _compare_sort_rule_by_viewtype(gconstpointer a, gconstpointer b);
+void _update_item_in_view_cb(void *data, Ecore_Thread *thd, void* msg_data);
+void _refresh_mailbox(EmailMailboxUGD *mailbox_ugd);
+void _make_mail_list(EmailMailboxUGD *mailbox_ugd, const EmailSearchData *search_data);
+void _delete_selection_info(EmailMailboxUGD *mailbox_ugd);
+void _create_mail_list(EmailMailboxUGD *mailbox_ugd);
+email_mail_list_item_t* get_mail_info(int mail_id);
+list_data *_find_mailinfo_by_mailid(int mailid, GList *mail_list);
+void email_maillist_select_info(EmailMailboxUGD *mailbox_ugd);
+void _clear_checked_status(EmailMailboxUGD *mailbox_ugd);
+void _edit_back_cb(void *data, Evas_Object *obj, void *event_info);
+void _item_check_changed_cb(void *data, Evas_Object *obj, void *event_info);
+void _item_check_touched_cb(void *data, Evas * evas, Evas_Object *obj, void *event_info);
+void _mailbox_list_clear(EmailMailboxUGD *sg);
+void _insert_mail_to_mailist(EmailMailboxUGD *mailbox_ugd, list_data* ld);
+void _worker_get_move_mail_list_cb(void* data, Ecore_Thread *thd);
+void _worker_get_delete_mail_list_cb(void* data, Ecore_Thread *thd);
+void _worker_get_mail_info_cb(void* data, Ecore_Thread *thd);
+void _free_list_data_simple(list_data *ld);
+void _mailbox_list_add_item(EmailMailboxUGD *sg, gint uid);
+void _add_mail_list_n_data(EmailMailboxUGD *mailbox_ugd, email_mail_list_item_t* mail_list, int count, const EmailSearchData *search_data);
+void _remove_get_more_progress_item(EmailMailboxUGD *mailbox_ugd);
+email_mail_list_item_t *_mailbox_get_mail_list_by_mailbox_type(int account_id, int mailbox_type, int sort_type, int thread_id, EmailSearchType search_type, const EmailSearchData *search_data, int *mail_count);
+email_mail_list_item_t *_mailbox_get_mail_list_by_mailbox_id(int account_id, int mailbox_id, int sort_type, int thread_id, EmailSearchType search_type, const EmailSearchData *search_data, int *mail_count);
+
+#endif /* __DEF_EMAIL_MAILBOX_LIST_H_ */
diff --git a/mailbox/include/email-mailbox-noti-mgr.h b/mailbox/include/email-mailbox-noti-mgr.h
new file mode 100755 (executable)
index 0000000..cea2da3
--- /dev/null
@@ -0,0 +1,32 @@
+/*
+ * Copyright 2012  Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *    http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __DEF_EMAIL_MAILBOX_NOTI_MGR_H_
+#define __DEF_EMAIL_MAILBOX_NOTI_MGR_H_
+
+
+void _dbus_receiver_setup(EmailMailboxUGD *mailbox_ugd);
+void _remove_dbus_receiver(EmailMailboxUGD *mailbox_ugd);
+void _release_noti_Q_event(EmailMailboxUGD *mailbox_ugd);
+void _move_mail_item_cb(void *data, Ecore_Thread *thd, void* msg_data);
+void _move_finish_cb(void* data, Ecore_Thread *thd);
+void _delete_mail_item_cb(void *data, Ecore_Thread *thd, void* msg_data);
+void _delete_finish_cb(void* data, Ecore_Thread *thd);
+void _response_cb(void *data, Evas_Object *obj, void *event_info);
+
+
+
+#endif /* __DEF_EMAIL_MAILBOX_NOTI_MGR_H_ */
diff --git a/mailbox/include/email-mailbox-search.h b/mailbox/include/email-mailbox-search.h
new file mode 100755 (executable)
index 0000000..15f6fea
--- /dev/null
@@ -0,0 +1,27 @@
+/*
+ * Copyright 2012  Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *    http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __DEF_EMAIL_MAILBOX_SEARCH_H_
+#define __DEF_EMAIL_MAILBOX_SEARCH_H_
+
+
+void mailbox_create_searchbar(EmailMailboxUGD *mailbox_ugd);
+void mailbox_finish_search_mode(EmailMailboxUGD *mailbox_ugd);
+void mailbox_request_search_server(EmailMailboxUGD *mailbox_ugd);
+void mailbox_show_search_server_result(EmailMailboxUGD *mailbox_ugd);
+void mailbox_clear_search_server_result(EmailMailboxUGD *mailbox_ugd);
+
+#endif /* __DEF_EMAIL_MAILBOX_SEARCH_H_ */
diff --git a/mailbox/include/email-mailbox-sweep.h b/mailbox/include/email-mailbox-sweep.h
new file mode 100755 (executable)
index 0000000..85259c8
--- /dev/null
@@ -0,0 +1,27 @@
+/*
+ * Copyright 2012  Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *    http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __DEF_EMAIL_MAILBOX_SWEEP_H_
+#define __DEF_EMAIL_MAILBOX_SWEEP_H_
+
+
+Evas_Object* _create_sweep_delete_button(Evas_Object* parent,list_data* ld);
+Evas_Object* _create_sweep_read_unread_button(Evas_Object* parent,list_data* ld);
+Evas_Object* _create_sweep_move_button(Evas_Object* parent,list_data* ld);
+Evas_Object* _create_sweep_reply_button(Evas_Object* parent,list_data* ld);
+Evas_Object* _create_sweep_forward_button(Evas_Object* parent,list_data* ld);
+
+#endif /* __DEF_EMAIL_MAILBOX_SWEEP_H_ */
\ No newline at end of file
diff --git a/mailbox/include/email-mailbox.h b/mailbox/include/email-mailbox.h
new file mode 100755 (executable)
index 0000000..27dbe1a
--- /dev/null
@@ -0,0 +1,456 @@
+/*
+ * Copyright 2012  Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *    http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __DEF_EMAIL_MAILBOX_H_
+#define __DEF_EMAIL_MAILBOX_H_
+
+#include <Elementary.h>
+#include <Ecore_IMF.h>
+#include <vconf.h>
+#include <libintl.h>
+#include <appcore-efl.h>
+#undef _
+#include <ui-gadget-module.h>
+#include <Ecore_X.h>
+
+#include <glib.h>
+#include <glib-object.h>
+#include <glib/gprintf.h>
+
+#include "email-types.h"
+#include "email-debug.h"
+#include "email-common-types.h"
+#include "email-engine.h"
+#include "email-utils.h"
+#include "email-locale.h"
+
+#include <unicode/uloc.h>
+#include <unicode/ucal.h>
+#include <unicode/udat.h>
+#include <unicode/udatpg.h>
+#include <unicode/ustring.h>
+
+#define        MAILBOX_PACKAGE "email-mailbox"
+
+#define        EDJ_PATH EDJDIR
+#define        GRP_MAIN "main"
+#define        GRP_MAIN_ALL_EMAILS "main_all_emails"
+#define        THEME_PATH EDJ_PATH"/email-mailbox-theme.edj"
+#define        EFFECT_EDJ_PATH EDJ_PATH"/email-effect-layout.edj"
+#define        _EDJ(o)                 elm_layout_edje_get(o)
+
+#define ICON_BLOCK IMGDIR"/M02_controlbar_icon_block.png"
+#define ICON_MOVE IMGDIR"/M02_controlbar_icon_move.png"
+#define ICON_DELETE_ALL IMGDIR"/M02_controlbar_icon_delete_all.png"
+#define ICON_DELETE IMGDIR"/M02_controlbar_icon_delete.png"
+#define ICON_MARKUNREAD IMGDIR"/M02_controlbar_icon_mark_as_unread.png"
+#define ICON_CANCEL IMGDIR"/M02_controlbar_icon_cancel.png"
+#define ICON_COMPOSE IMGDIR"/M02_controlbar_icon_compose.png"
+#define ICON_UPDATE IMGDIR"/M02_controlbar_icon_update.png"
+#define ICON_FOLDERS IMGDIR"/M02_email_icon_title_folders.png"
+#define ICON_SORTBY IMGDIR"/M02_controlbar_icon_sort_by.png"
+#define ICON_VIEWMODE IMGDIR"/M02_controlbar_icon_view_mode.png"
+#define ICON_MORE IMGDIR"/M02_controlbar_icon_more.png"
+#define ICON_EDIT IMGDIR"/M02_controlbar_icon_edit.png"
+#define ICON_CLOSE IMGDIR"/M02_email_icon_title_down.png"
+#define ICON_OPEN IMGDIR"/M02_email_icon_title_up.png"
+#define ICON_TITLE_ALL_ACC IMGDIR"/M02_email_list_icon_allaccount.png"
+#define ICON_INDEX_CLOSE IMGDIR"/M02_email_icon_index_close.png"
+
+#define CK_UNCHECKED   0
+#define CK_CHECKED     1
+
+#define EMAIL_SLOT_UNIT 25
+
+typedef struct EmailMailboxListAppData EmailMailboxListAppData;
+
+struct EmailMailboxListAppData {
+       Evas *evas;
+       Evas_Object *win_main;
+       Evas_Object *layout_main;       /* layout widget based on EDJ */
+};
+
+typedef struct ug_data EmailMailboxUGD;
+
+typedef struct {
+       EmailMailboxUGD *mailbox_ugd;
+
+       gchar *from;
+       gchar *alias;
+       gchar *sender;
+       gchar *preview_body;
+       char *title;
+       char *recipient;
+       gint group_index;
+       gchar *timeordate;
+       gchar *group_title;
+       gchar *group_date;
+       gint mailbox_id;
+       int mailbox_type;
+       gboolean is_attachment;
+       gboolean is_seen;
+       gboolean is_sending_now;
+       gboolean is_body_download;
+       gint mail_id;
+       gint account_id;
+       int     account_color;
+       gint thread_id;
+       gint thread_count;
+       gint chksel;
+       Evas_Object *check;
+       Evas_Object *flag_ic;
+       gint imp_sel;
+       Evas_Object *important;
+       gint idx;
+       gint priority;
+       gint reply_flag;
+       gint forward_flag;
+       gint followup_flag;
+       time_t absolute_time;
+       Elm_Object_Item *item;
+} list_data;
+
+typedef enum {
+       EMAIL_MAILBOX_MODE_UNKOWN = -1,
+       EMAIL_MAILBOX_MODE_ALL,
+       EMAIL_MAILBOX_MODE_MAILBOX,
+       EMAIL_MAILBOX_MODE_MAX,
+} EmailMailboxMode;
+
+
+typedef enum {
+       VIEWBY_UNKNOWN = -1,
+       VIEWBY_DATE_RECENT,
+       VIEWBY_DATE_OLD,
+       VIEWBY_SENDER_ATOZ,
+       VIEWBY_SENDER_ZTOA,
+       VIEWBY_UNREAD,
+       VIEWBY_IMPORTANT,
+       VIEWBY_ATTACHMENT,
+       VIEWBY_PRIORITY,
+       VIEWBY_MAX,
+} EmailMailboxViewby;
+
+typedef enum {
+       VIEWMODE_UNKNOWN = -1,
+       VIEWMODE_STANDARD,
+       VIEWMODE_CONVERSATION,
+       VIEWMODE_MAX,
+} EmailMailboxViewmode;
+
+typedef enum {
+       SEARCHBY_UNKNOWN = -1,
+       SEARCHBY_ALL,
+       SEARCHBY_TITLE,
+       SEARCHBY_SENDER,
+       SEARCHBY_MAX,
+} EmailMailboxSearchby;
+
+typedef enum {
+       EMAIL_GROUP_UNKNOWN = -1,
+       EMAIL_GROUP_TODAY,
+       EMAIL_GROUP_YESTERDAY,
+       EMAIL_GROUP_SUN,
+       EMAIL_GROUP_MON,
+       EMAIL_GROUP_TUE,
+       EMAIL_GROUP_WED,
+       EMAIL_GROUP_THU,
+       EMAIL_GROUP_LASTWEEK,
+       EMAIL_GROUP_TWOWEEKS_AGO,
+       EMAIL_GROUP_THREEWEEKS_AGO,
+       EMAIL_GROUP_EARLIER_THISMONTH,
+       EMAIL_GROUP_LASTMONTH,
+       EMAIL_GROUP_OLDER,
+       EMAIL_GROUP_UNREAD,
+       EMAIL_GROUP_READ,
+       EMAIL_GROUP_FAVORITES,
+       EMAIL_GROUP_ATTACHMENTS,
+       EMAIL_GROUP_OTHER,
+       EMAIL_GROUP_PRIORITY_HIGH,
+       EMAIL_GROUP_PRIORITY_NORMAL,
+       EMAIL_GROUP_PRIORITY_LOW,
+       EMAIL_GROUP_MAX,
+} EmailMailboxGroup;
+
+typedef enum {
+       EMAIL_VIEW_UNKNOWN = -1,
+       EMAIL_VIEW_DATE,        /* should display only seed mail */
+       EMAIL_VIEW_RECIPIENT,   /* should display recipient list */
+       EMAIL_VIEW_UNREAD,      /* should display only unread mail */
+       EMAIL_VIEW_IMPORTANT,   /* Disply only important mail */
+       EMAIL_VIEW_EDIT,        /* Delete / Block / MoveTo */
+       EMAIL_VIEW_SEARCH,
+       EMAIL_VIEW_PRIORITY,
+       EMAIL_VIEW_ATTACHMENTS,
+       EMAIL_VIEW_MAX,
+} EmailMailboxViewType;
+
+typedef struct _email_movefolder_list {
+       email_mailbox_t *mailbox_list;
+       EmailMailboxUGD *mailbox_ugd;
+} email_movefolder_list;
+
+typedef struct _MailboxAdvSearchViewInfo {
+       Evas_Object *clicked_object;
+       Evas_Object *entry_title;
+       Evas_Object *entry_sender_address;
+       Evas_Object *entry_date_from;
+       Evas_Object *entry_date_to;
+       Evas_Object *search_title;
+       Evas_Object *search_sender_address;
+       Evas_Object *search_date_from;
+       Evas_Object *search_date_to;
+       char* str_title;
+       char* str_sender_address;
+       char* str_search_criteria;
+       time_t from_date;
+       time_t to_date;
+       char* str_from_date;
+       char* str_to_date;
+       EmailMailboxUGD *mailbox_ugd;
+} MailboxAdvSearchViewInfo;
+
+typedef struct _noti_event {
+       int operation;
+       int data1;
+       int data2;
+       char* data3;
+       int data4;
+} noti_event;
+
+struct ug_data {
+       Evas *evas;
+       Evas_Object *win_main;
+       Evas_Object *layout_main;
+       Evas_Object *panes;
+       Evas_Object *gen_list_index;
+       Evas_Object *effect_account_ly;
+       Evas_Object *effect_composer_ly;
+
+       EmailMailboxViewType view_type;
+       EmailMailboxViewType previous_view;
+       Evas_Object *gl[EMAIL_VIEW_MAX];
+       Evas_Object *ly;
+       Evas_Object *check;
+       Evas_Object *navi_bar;
+       Evas_Object *controlbar_seg;
+       Evas_Object *controlbar_btns;
+       Evas_Object *prev_controlbar;
+       Evas_Object *no_content;
+       Evas_Object *no_content_sender;
+       Elm_Theme *theme;
+       Elm_Object_Item *navibar_item[EMAIL_VIEW_MAX];
+       Evas_Object *navi_title_ly;
+       Evas_Object *sp_icon;
+       Evas_Object *title_arrow;
+       Evas_Object *content_edit;
+       Evas_Object *searchbar_en;
+       Elm_Object_Item *load_more_button;
+       Elm_Object_Item *edit_button;
+       //Elm_Object_Item *edit_cancel_button;
+       Evas_Object *folder_button;
+       Evas_Object *update_button;
+       Evas_Object *sync_progress;
+       Elm_Object_Item *delete_all_button;
+       Evas_Object *ctxpopup;
+       Evas_Object *motion_popup;
+       GList *important_list;
+       Elm_Object_Item *date_tab;
+       Evas_Object *selectioninfo_layout;
+       Evas_Object *sub_layout[EMAIL_VIEW_MAX];
+       Evas_Object *move_button;
+       Evas_Object *block_button;
+       Evas_Object *search_layout;
+       Evas_Object *searchbar_layout;
+       Evas_Object *searchbar_area;
+       Evas_Object *searchby_button;
+       Evas_Object *prev_search_layout;
+       Evas_Object *prev_searchbar_layout;
+       Evas_Object *prev_searchbar_en;
+       Evas_Object *prev_searchbar_area;
+       Evas_Object *prev_searchby_button;
+       Elm_Object_Item *git[EMAIL_VIEW_MAX][EMAIL_GROUP_MAX];
+       app_device_orientation_e current_rotmode;
+       bool isRotate;
+       Evas_Object *viewer_ly;
+       Evas_Object *main_back_btn;
+       Evas_Object *viewby_popup;
+       Evas_Object *delete_popup;
+       Evas_Object *searchby_ctx_popup;
+       Evas_Object *account_dim;
+       GList *folder_list;
+       GList *selected_list;                   /* revised, used to move the mails selected in previous view */
+       GList *delete_mail_list;
+       GList *noti_Q;
+       gboolean need_sync;
+       gint sort_type_index;
+       gint from_width;
+       gint account_id;
+       gint thread_id;
+       gint thread_mail_count;
+       gint total_count;
+       gint date_type;
+       gint chk_cnt;
+       gint unread_cnt;
+       EmailSortType sort_type;
+       gboolean refresh;
+       gboolean bhour;
+       gchar *search_text;
+       guint index;
+       char *address;
+       gchar *display_name;
+       guint add_item_id;
+       gint mailbox_id;
+       email_mailbox_type_e mailbox_type;
+       gchar *folder_alias;
+       gchar *user_email;
+       gint uid;
+       gint cur_container_type;
+       gint initial_run;
+       gint b_thread_list;
+       gint main_w;
+       gint main_h;
+
+       EmailSearchType search_type;
+       email_movefolder_list *move_folder_list;        /* revised, used to dealloc */
+       gint move_folder_cnt;                                           /* revised, used to dealloc */
+
+       MailboxAdvSearchViewInfo *adv_search_info;
+       gboolean b_advanced_search_view;
+       unsigned emf_handle;
+       EmailAccountInfo *account_info;
+       E_DBus_Connection *edbus_conn;
+       gchar *prev_group_title;
+       //email_sender_list *sender_list;
+       //gint sender_cnt;
+       EmailMailboxMode mode;
+
+       /* index for mail list when mailbox receive email from emailservice */
+       gint download_idx;
+       Elm_Object_Item *after_item;
+       Evas_Object *base;
+       ui_gadget_h ug;
+       struct ug_cbs cbs;
+
+       ui_gadget_h ug_viewer;
+       ui_gadget_h ug_composer;
+       ui_gadget_h ug_account;
+       ui_gadget_h ug_setting;
+       ui_gadget_h ug_document;
+       int viewer_refresh;
+       int viewer_effect;
+       Evas_Object *temp_ly;
+       bool viewer_loading;
+       Evas_Object *split_nocontent;
+       GList *list_data[EMAIL_VIEW_MAX];
+       int create_progress_part;
+
+       Elm_Genlist_Item_Class itc1;
+       Elm_Genlist_Item_Class itc2;
+};
+
+
+/* int account_id, email_folder_type_e folder_type */
+#define GET_MAILBOX_ID(account_id, folder_type) \
+               ({\
+                       int _acct = account_id;\
+                       int _type = folder_type;\
+                       int _folder = 0;\
+                       email_mailbox_t *mbox = NULL;\
+                       int e = email_get_mailbox_by_mailbox_type(_acct, _type, &mbox);\
+                       if( e != EMAIL_ERROR_NONE || !mbox ) {\
+                               debug_warning("Error to get mailbox id acct(%d) type(%d) - err(%d) or mbox is NULL(%p)",\
+                                                               _acct, _type, e, mbox);\
+                       }\
+                       else _folder = mbox->mailbox_id;\
+                       if(mbox) email_free_mailbox(&mbox, 1);\
+                       _folder;\
+               })
+
+/* int mailbox_id */
+#define GET_MAILBOX_TYPE(mailbox_id) \
+               ({\
+                       int _folder = mailbox_id;\
+                       email_mailbox_t *mbox = NULL;\
+                       int type = EMAIL_MAILBOX_TYPE_NONE;\
+                       int e = email_get_mailbox_by_mailbox_id(_folder, &mbox);\
+                       if( e != EMAIL_ERROR_NONE || !mbox )\
+                               debug_warning("email_get_mailbox_by_mailbox_id folder(%d) - err(%d) or mbox is NULL(%p)",\
+                               _folder, e, mbox);\
+                       else type = mbox->mailbox_type;\
+                       if(mbox) email_free_mailbox(&mbox, 1);\
+                       type;\
+               })
+
+#define GET_ACCOUNT_SERVER_TYPE(account_id) \
+               ({\
+                       email_account_t *email_account = NULL;\
+                       int server_type = 0;\
+                       int e = email_get_account(account_id, EMAIL_ACC_GET_OPT_DEFAULT, &email_account);\
+                       if (e != EMAIL_ERROR_NONE || !email_account) {\
+                               debug_warning("email_get_account acct(%d) - err(%d) or acct NULL(%p)",\
+                                                               account_id, e, email_account);\
+                       }\
+                       else server_type = email_account->incoming_server_type;\
+                       if(email_account) email_free_account(&email_account, 1);\
+                       server_type;\
+               })
+
+#define GET_INBOX_TO_GETMORE(account_id) \
+               ({\
+                       int _folder = GET_MAILBOX_ID(account_id, EMAIL_MAILBOX_TYPE_INBOX);\
+                       email_mailbox_t *mbox = NULL;\
+                       int i_getmore = 0;\
+                       int e = email_get_mailbox_by_mailbox_id(_folder, &mbox);\
+                       if( e != EMAIL_ERROR_NONE || !mbox )\
+                               debug_warning("email_get_mailbox_by_mailbox_id folder(%d) - err(%d) or mbox is NULL(%p)",\
+                               _folder, e, mbox);\
+                       else i_getmore = (mbox->total_mail_count_on_server-mbox->total_mail_count_on_local);\
+                       if(mbox) email_free_mailbox(&mbox, 1);\
+                       i_getmore;\
+               })
+
+#define GET_MAILBOX_TO_GETMORE(mailbox_id) \
+               ({\
+                       int _folder = mailbox_id;\
+                       email_mailbox_t *mbox = NULL;\
+                       int i_getmore = 0;\
+                       int e = email_get_mailbox_by_mailbox_id(_folder, &mbox);\
+                       if( e != EMAIL_ERROR_NONE || !mbox )\
+                               debug_warning("email_get_mailbox_by_mailbox_id folder(%d) - err(%d) or mbox is NULL(%p)",\
+                               _folder, e, mbox);\
+                       else i_getmore = (mbox->total_mail_count_on_server-mbox->total_mail_count_on_local);\
+                       if(mbox) email_free_mailbox(&mbox, 1);\
+                       i_getmore;\
+               })
+
+void _update_navigationbar_title(EmailMailboxUGD *mailbox_ugd);
+ui_gadget_h create_composer_ug(char *ug_name, service_h service, void *data);
+void layout_composer_cb(ui_gadget_h ug, enum ug_mode mode, void *priv);
+void result_composer_cb(ui_gadget_h ug, service_h service, void *priv);
+void _stop_emf_job(EmailMailboxUGD *mailbox_ugd, unsigned handle, gboolean change_download_label_in_panel);
+void email_rotate_landscape(EmailMailboxUGD *mailbox_ugd);
+void _update_toolbar_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+void _update_toolbar_cancel_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+void destroy_account_cb(ui_gadget_h ug, void *priv);
+void _sync_all_folder(EmailMailboxUGD *mailbox_ugd);
+void _sync_curr_folder(EmailMailboxUGD *mailbox_ugd, int mailbox_id);
+void _open_email_body(gint uid, Elm_Object_Item *item);
+void _create_email_no_content_view(EmailMailboxUGD *mailbox_ugd);
+void _reset_refer_item_and_idx(EmailMailboxUGD *mailbox_ugd);
+email_sort_type_t _mailbox_conv_sort_type(EmailSortType sort_type);
+
+#endif                         /* __DEF_email-mailbox_H__ */
diff --git a/mailbox/src/email-mailbox-controlbar.c b/mailbox/src/email-mailbox-controlbar.c
new file mode 100755 (executable)
index 0000000..1b7b0f0
--- /dev/null
@@ -0,0 +1,875 @@
+/*
+ * Copyright 2012  Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *    http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <status.h>
+
+#include "email-mailbox.h"
+#include "email-mailbox-controlbar.h"
+#include "email-mailbox-item.h"
+#include "email-mailbox-list.h"
+
+
+static Elm_Genlist_Item_Class itc_popup;
+static Evas_Object *radio_grp;
+static Evas_Coord touch_x;
+static Evas_Coord touch_y;
+Elm_Object_Item *g_delete_button;
+Elm_Object_Item *g_move_button;
+Elm_Object_Item *g_block_button;
+Elm_Object_Item *g_markunread_button;
+
+
+typedef struct {
+       int index;
+       Evas_Object *radio;
+       EmailMailboxUGD *mailbox_ugd;
+} viewby_req_t;
+viewby_req_t viewby_req[VIEWBY_MAX];
+
+extern Eina_List *edit_list;
+extern gboolean b_editmode;
+extern int ug_pushed;
+
+
+static Evas_Object *create_control_option(EmailMailboxUGD *ad);
+static Evas_Object *create_edit_control_option(EmailMailboxUGD *ad);
+static void _viewby_cb(void *data, Evas_Object *obj, void *event_info);
+static void _more_toolbar_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+static void _delete_all_emails_cb(void *data, Evas_Object *obj, void *event_info);
+static void _document_search_cb(void *data, Evas_Object *obj, void *event_info);
+static void _delete_mail_cb(void *data, Evas_Object *obj, void *event_info);
+static void _block_mail_cb(void *data, Evas_Object *obj, void *event_info);
+static void _markunread_mail_cb(void *data, Evas_Object *obj, void *event_info);
+static void _compose_toolbar_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+static ui_gadget_h create_document_ug(char *ug_name, service_h service, void *data);
+static void _popup_response_cb(void *data, Evas_Object *obj, void *event_info);
+static void destroy_document_cb(ui_gadget_h ug, void *priv);
+static void _radio_cb(void *data, Evas_Object *obj, void *event_info);
+static void _move_ctxpopup(Evas_Object *ctxpopup, Evas_Object *win);
+static void _mousedown_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
+static void _move_mail_cb(void *data, Evas_Object *obj, void *event_info);
+
+
+static void destroy_document_cb(ui_gadget_h ug, void *priv)
+{
+       debug_log("");
+
+       if (!ug || !priv)
+               return;
+
+       EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)priv;
+
+       if (mailbox_ugd->ug_document) {
+               ug_destroy(mailbox_ugd->ug_document);
+               mailbox_ugd->ug_document = NULL;
+       }
+}
+
+
+static ui_gadget_h create_document_ug(char *ug_name, service_h service, void *data)
+{
+       debug_log("");
+       ui_gadget_h ug;
+       struct ug_cbs cbs = { 0, };
+       EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data;
+
+       cbs.layout_cb = layout_composer_cb;
+       cbs.result_cb = result_composer_cb;
+       cbs.destroy_cb = destroy_document_cb;
+       cbs.priv = mailbox_ugd;
+       mailbox_ugd->cbs = cbs;
+
+       ug = ug_create(mailbox_ugd->ug, ug_name, UG_MODE_FULLVIEW, service, &mailbox_ugd->cbs);
+
+       return ug;
+}
+
+static void _block_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       evas_object_del(obj);
+}
+
+static void _block_mail_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+
+       if (data == NULL) {
+               debug_log("data == NULL");
+               return;
+       }
+
+       EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data;
+       int i = 0, block_count = 0;
+       int e = 0;
+
+       Eina_List *list = edit_list;
+       int checked_count = eina_list_count(list);
+
+       if (checked_count <= 0) return;
+
+       for (i = 0; i < checked_count; i++) {
+               Eina_List *nth_list = eina_list_nth_list(list, i);
+
+               list_data *ld = eina_list_data_get(nth_list);
+               email_rule_t *rule = NULL;
+
+               rule = MEM_ALLOC(rule, 1);
+               if(!rule) continue;
+
+               rule->account_id = mailbox_ugd->account_id;
+               rule->type = EMAIL_FILTER_FROM;
+
+               if (g_strcmp0(ld->sender, _("IDS_EMAIL_POP_NO_SENDER")) == 0) {
+                       FREE(rule);
+                       continue;
+               } else {
+                       rule->value = g_strdup(ld->sender);
+               }
+               rule->faction = EMAIL_FILTER_BLOCK;
+               rule->target_mailbox_id = GET_MAILBOX_ID(ld->account_id, EMAIL_MAILBOX_TYPE_SPAMBOX);
+               rule->flag1 = 1;
+               rule->flag2 = RULE_TYPE_INCLUDES;
+
+               if (email_add_rule(rule) < 0)
+                       debug_log("email_add_rule failed");
+
+               FREE(rule->value);
+               FREE(rule);
+               block_count++;
+       }
+
+#if 0
+       /* Create popup */
+       if (block_count > 0) {
+               debug_log("mail block popup");
+               Evas_Object *popup = elm_popup_add(mailbox_ugd->win_main);
+               elm_object_text_set(popup, _("IDS_EMAIL_POP_BLOCKED"));
+               //elm_popup_buttons_add(popup, 1, dgettext("sys_string", "IDS_COM_SK_OK"), ELM_POPUP_RESPONSE_OK, NULL);
+               Evas_Object *btn1 = elm_button_add(popup);
+               elm_object_text_set(btn1, dgettext("sys_string", "IDS_COM_SK_OK"));
+               elm_object_part_content_set(popup, "button1", btn1);
+               //evas_object_smart_callback_add(popup, "response", _response_cb, mailbox_ugd);
+               evas_object_smart_callback_add(btn1, "clicked", _response_cb, popup);
+               evas_object_smart_callback_add(popup, "block,clicked", _block_clicked_cb, NULL);
+               evas_object_show(popup);
+       }
+#else
+       if (block_count > 0) {
+               e = status_message_post(_("IDS_EMAIL_POP_BLOCKED"));
+
+               if (e) {
+                       debug_log("fail to status_message_post() : %d\n", e);
+               }
+       }
+#endif
+
+       mailbox_ugd->view_type = mailbox_ugd->previous_view;
+
+       edit_list = eina_list_free(edit_list);
+
+       //evas_object_smart_callback_add(mailbox_ugd->searchbar_en, "focused", _searchbar_entry_focus_cb, mailbox_ugd);
+       //evas_object_smart_callback_add(mailbox_ugd->searchbar_en, "unfocused", _searchbar_entry_unfocus_cb, mailbox_ugd);
+
+       elm_genlist_decorate_mode_set(mailbox_ugd->gl[mailbox_ugd->view_type], EINA_FALSE);
+       elm_genlist_reorder_mode_set(mailbox_ugd->gl[mailbox_ugd->view_type], EINA_FALSE);
+       elm_genlist_select_mode_set(mailbox_ugd->gl[mailbox_ugd->view_type], ELM_OBJECT_SELECT_MODE_DEFAULT);
+       b_editmode = false;
+       elm_object_disabled_set(mailbox_ugd->folder_button, EINA_FALSE);
+       _update_navigationbar_title(mailbox_ugd);
+
+       if (mailbox_ugd->isRotate == true) {
+               email_rotate_landscape(mailbox_ugd);
+               /*
+               if (mailbox_ugd->current_rotmode == APP_DEVICE_ORIENTATION_270)
+                       on_event(NULL, UG_EVENT_ROTATE_LANDSCAPE, NULL, mailbox_ugd);
+               else
+                       on_event(NULL, UG_EVENT_ROTATE_LANDSCAPE_UPSIDEDOWN, NULL, mailbox_ugd);
+               */
+       } else {
+               elm_object_part_content_set(mailbox_ugd->search_layout, "searchbar", mailbox_ugd->searchbar_layout);
+               edje_object_signal_emit(_EDJ(mailbox_ugd->search_layout), "show_searchbar", "search");
+       }
+}
+
+static void _markunread_mail_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+
+       if (data == NULL) {
+               debug_log("data == NULL");
+               return;
+       }
+
+       EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data;
+       int i = 0, mark_count = 0;
+
+       Eina_List *list = edit_list;
+       int checked_count = eina_list_count(list);
+
+       if (checked_count <= 0) return;
+
+       for (i = 0; i < checked_count; i++) {
+               Eina_List *nth_list = eina_list_nth_list(list, i);
+
+               list_data *ld = eina_list_data_get(nth_list);
+               /* For all other views where mail list is present but threaded mail list is not present */
+               int seen_flag = (ld->is_seen == false)? 1 /* make it read */ :
+                                                                                               0 /* make it unread */;
+
+               int err = email_set_flags_field(ld->account_id, &(ld->mail_id), 1, EMAIL_FLAGS_SEEN_FIELD, seen_flag, 1);
+               if (err != EMAIL_ERROR_NONE)
+                       debug_log("email_set_flags_field - err(%d)", err);
+
+               mark_count++;
+       }
+
+       /* check count */
+       if (mark_count > 0) {
+               debug_log("mail mark unread count: %d", mark_count);
+       }
+
+       mailbox_ugd->view_type = mailbox_ugd->previous_view;
+
+       edit_list = eina_list_free(edit_list);
+
+       //evas_object_smart_callback_add(mailbox_ugd->searchbar_en, "focused", _searchbar_entry_focus_cb, mailbox_ugd);
+       //evas_object_smart_callback_add(mailbox_ugd->searchbar_en, "unfocused", _searchbar_entry_unfocus_cb, mailbox_ugd);
+
+       elm_genlist_decorate_mode_set(mailbox_ugd->gl[mailbox_ugd->view_type], EINA_FALSE);
+       elm_genlist_reorder_mode_set(mailbox_ugd->gl[mailbox_ugd->view_type], EINA_FALSE);
+       elm_genlist_select_mode_set(mailbox_ugd->gl[mailbox_ugd->view_type], ELM_OBJECT_SELECT_MODE_DEFAULT);
+       b_editmode = false;
+       elm_object_disabled_set(mailbox_ugd->folder_button, EINA_FALSE);
+       _update_navigationbar_title(mailbox_ugd);
+
+       if (mailbox_ugd->isRotate == true) {
+               email_rotate_landscape(mailbox_ugd);
+               /*
+               if (mailbox_ugd->current_rotmode == APP_DEVICE_ORIENTATION_270)
+                       on_event(NULL, UG_EVENT_ROTATE_LANDSCAPE, NULL, mailbox_ugd);
+               else
+                       on_event(NULL, UG_EVENT_ROTATE_LANDSCAPE_UPSIDEDOWN, NULL, mailbox_ugd);
+               */
+       } else {
+               elm_object_part_content_set(mailbox_ugd->search_layout, "searchbar", mailbox_ugd->searchbar_layout);
+               edje_object_signal_emit(_EDJ(mailbox_ugd->search_layout), "show_searchbar", "search");
+       }
+
+       _refresh_mailbox(mailbox_ugd);
+
+}
+
+
+static void _dismissed_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data;
+       evas_object_del(mailbox_ugd->ctxpopup);
+       mailbox_ugd->ctxpopup = NULL;
+}
+
+
+static void _delete_mail_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       if (data == NULL) {
+               debug_log("data == NULL");
+               return;
+       }
+       EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data;
+
+       if (mailbox_ugd->delete_popup) {
+               evas_object_del(mailbox_ugd->delete_popup);
+               mailbox_ugd->delete_popup = NULL;
+       }
+
+       Evas_Object *notify = elm_popup_add(mailbox_ugd->win_main);
+       evas_object_size_hint_weight_set(notify, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       elm_object_text_set(notify, dgettext("sys_string", "IDS_COM_POP_DELETE_Q"));
+       mailbox_ugd->delete_popup = notify;
+
+       Evas_Object *btn1 = elm_button_add(notify);
+       elm_object_style_set(btn1, "popup_button/default");
+       elm_object_text_set(btn1, dgettext("sys_string", "IDS_COM_SK_DELETE"));
+       elm_object_part_content_set(notify, "button1", btn1);
+       evas_object_smart_callback_add(btn1, "clicked", _popup_response_delete_ok_cb, data);
+
+       Evas_Object *btn2 = elm_button_add(notify);
+       elm_object_style_set(btn2, "popup_button/default");
+       elm_object_text_set(btn2, dgettext("sys_string", "IDS_COM_SK_CANCEL"));
+       elm_object_part_content_set(notify, "button2", btn2);
+       evas_object_smart_callback_add(btn2, "clicked", _popup_response_cb, mailbox_ugd);
+
+       evas_object_show(notify);
+}
+
+static void _delete_all_emails_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+
+       if (data == NULL) {
+               debug_log("data == NULL");
+               return;
+       }
+       EmailMailboxUGD* mailbox_ugd = (EmailMailboxUGD *)data;
+
+       if (mailbox_ugd->ctxpopup) {
+               evas_object_del(mailbox_ugd->ctxpopup);
+               mailbox_ugd->ctxpopup = NULL;
+       }
+
+       if (mailbox_ugd->delete_popup) {
+               evas_object_del(mailbox_ugd->delete_popup);
+               mailbox_ugd->delete_popup = NULL;
+       }
+
+       Evas_Object *notify = elm_popup_add(mailbox_ugd->win_main);
+       evas_object_size_hint_weight_set(notify, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       elm_object_text_set(notify, _("IDS_EMAIL_BODY_DELETE_ALL_Q"));
+       mailbox_ugd->delete_popup = notify;
+
+       Evas_Object *btn1 = elm_button_add(notify);
+       elm_object_style_set(btn1, "popup_button/default");
+       elm_object_text_set(btn1, dgettext("sys_string", "IDS_COM_SK_DELETE"));
+       elm_object_part_content_set(notify, "button1", btn1);
+       evas_object_smart_callback_add(btn1, "clicked", _popup_response_delete_all_ok_cb, mailbox_ugd);
+
+       Evas_Object *btn2 = elm_button_add(notify);
+       elm_object_style_set(btn2, "popup_button/default");
+       elm_object_text_set(btn2, dgettext("sys_string", "IDS_COM_SK_CANCEL"));
+       elm_object_part_content_set(notify, "button2", btn2);
+       evas_object_smart_callback_add(btn2, "clicked", _popup_response_cb, mailbox_ugd);
+       evas_object_show(notify);
+}
+
+static void _popup_response_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+
+       if (!data) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data;
+
+       if (mailbox_ugd->delete_popup) {
+               evas_object_del(mailbox_ugd->delete_popup);
+               mailbox_ugd->delete_popup = NULL;
+       }
+}
+
+static void _document_search_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+
+       EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data;
+       RETURN_IF_FAIL(mailbox_ugd != NULL);
+
+       if (mailbox_ugd->ctxpopup) {
+               evas_object_del(mailbox_ugd->ctxpopup);
+               mailbox_ugd->ctxpopup = NULL;
+       }
+
+       if (mailbox_ugd->ug_document) {
+               debug_log("Document UG is already launched");
+               return;
+       }
+
+       gint account_id = mailbox_ugd->account_id;
+       RETURN_IF_FAIL(account_id > 0);
+
+       email_account_t *account = NULL;
+       int err = email_get_account(account_id, EMAIL_ACC_GET_OPT_OPTIONS, &account);
+       if (err != EMAIL_ERROR_NONE || !account) {
+               debug_warning("email_get_account acct(%d) - err(%d) or acct NULL(%p)", account_id, err, account);
+               if(account) email_free_account(&account, 1);
+               return;
+       }
+
+       int account_svc_id = account->account_svc_id;
+       debug_log("account id: %d, accountd_svc_id: %d", account_id, account_svc_id);
+       if(account) email_free_account(&account, 1);
+
+       char s_account_id[14] = { 0, };
+       snprintf(s_account_id, sizeof(s_account_id), "%d", account_svc_id);
+
+       service_h service;
+       if (SERVICE_ERROR_NONE != service_create(&service))
+       {
+               debug_log("creating service handle failed");
+               return;
+       }
+
+       service_add_extra_data(service, EMAIL_BUNDLE_KEY_ACCOUNT_ID, s_account_id);
+       mailbox_ugd->ug_document = create_document_ug(UG_NAME_EMAIL_DOCUMENT, service, mailbox_ugd);
+
+       service_destroy(service);
+}
+
+static void _more_toolbar_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data;
+       mailbox_ugd->ctxpopup = elm_ctxpopup_add(mailbox_ugd->navi_bar);
+       evas_object_smart_callback_add(mailbox_ugd->ctxpopup, "dismissed", _dismissed_cb, mailbox_ugd);
+       elm_ctxpopup_item_append(mailbox_ugd->ctxpopup, _("IDS_EMAIL_OPT_DELETE_ALL"), NULL, _delete_all_emails_cb, mailbox_ugd);
+       elm_ctxpopup_item_append(mailbox_ugd->ctxpopup, _("IDS_EMAIL_OPT_DOCUMENTS_ABB"), NULL, _document_search_cb, mailbox_ugd);
+       _move_ctxpopup(mailbox_ugd->ctxpopup, mailbox_ugd->win_main);
+       evas_object_show(mailbox_ugd->ctxpopup);
+}
+
+static void _move_ctxpopup(Evas_Object *ctxpopup, Evas_Object *win)
+{
+       Evas_Coord w, h;
+       int degree = elm_win_rotation_get(win);
+       evas_object_geometry_get(win, NULL, NULL, &w, &h);
+
+       if(degree == 90) {
+               evas_object_move(ctxpopup, w - touch_y, touch_x);
+       } else if (degree == 180) {
+               evas_object_move(ctxpopup, w - touch_x, h - touch_y);
+       } else if (degree == -90) {
+               evas_object_move(ctxpopup, touch_y, h - touch_x);
+       } else {
+               evas_object_move(ctxpopup, touch_x, touch_y);
+       }
+}
+
+static void _gl_viewby_popup_sel(void *data, Evas_Object *obj, void *event_info)
+{
+       Elm_Object_Item *item = (Elm_Object_Item *)event_info;
+       viewby_req_t *req = (viewby_req_t *)elm_object_item_data_get(item);
+       debug_log("radio: [%p], index[%d]", req->radio, req->index);
+       elm_radio_value_set(req->radio, req->index);
+       evas_object_smart_callback_call(req->radio, "changed", req->mailbox_ugd);
+
+       debug_log("view_type: [%d], gl:[%p]", req->mailbox_ugd->view_type, req->mailbox_ugd->gl[req->mailbox_ugd->view_type]);
+
+       //evas_object_smart_callback_del(mailbox_ugd->gl[mailbox_ugd->view_type], "realized", _recipient_list_realized_cb);
+       if (req->mailbox_ugd->sort_type_index != VIEWBY_DATE_RECENT)
+               req->mailbox_ugd->b_thread_list = false;
+
+       switch(req->mailbox_ugd->sort_type_index)
+       {
+               case VIEWBY_DATE_RECENT:
+                       req->mailbox_ugd->sort_type = EMAIL_SORT_DATE_RECENT;
+                       mailbox_make_date_mail_list(req->mailbox_ugd);
+                       break;
+               case VIEWBY_DATE_OLD:
+                       req->mailbox_ugd->sort_type = EMAIL_SORT_DATE_OLDEST;
+                       mailbox_make_date_mail_list(req->mailbox_ugd);
+                       break;
+               case VIEWBY_SENDER_ATOZ:
+                       req->mailbox_ugd->sort_type = EMAIL_SORT_SENDER_ATOZ;
+                       mailbox_make_sender_mail_list(req->mailbox_ugd);
+                       break;
+               case VIEWBY_SENDER_ZTOA:
+                       req->mailbox_ugd->sort_type = EMAIL_SORT_SENDER_ZTOA;
+                       mailbox_make_sender_mail_list(req->mailbox_ugd);
+                       break;
+               case VIEWBY_UNREAD:
+                       req->mailbox_ugd->sort_type = EMAIL_SORT_UNREAD;
+                       mailbox_make_unread_mail_list(req->mailbox_ugd);
+                       break;
+               case VIEWBY_IMPORTANT:
+                       req->mailbox_ugd->sort_type = EMAIL_SORT_IMPORTANT;
+                       mailbox_make_important_mail_list(req->mailbox_ugd);
+                       break;
+               case VIEWBY_ATTACHMENT:
+                       req->mailbox_ugd->sort_type = EMAIL_SORT_ATTACHMENTS;
+                       mailbox_make_attachment_mail_list(req->mailbox_ugd);
+                       break;
+               case VIEWBY_PRIORITY:
+                       req->mailbox_ugd->sort_type = EMAIL_SORT_PRIORITY;
+                       mailbox_make_priority_mail_list(req->mailbox_ugd);
+                       break;
+       }
+
+       evas_object_del(req->mailbox_ugd->viewby_popup);
+       req->mailbox_ugd->viewby_popup = NULL;
+}
+
+static Evas_Object* _gl_viewby_popup_content_get(void *data, Evas_Object *obj, const char *source)
+{
+       viewby_req_t *req = (viewby_req_t *)data;
+       if (!g_strcmp0(source, "elm.icon")) {
+               req->radio = elm_radio_add(obj);
+               elm_radio_state_value_set(req->radio, req->index);
+               if(req->index == VIEWBY_DATE_RECENT)
+                       radio_grp = req->radio;
+               else
+                       elm_radio_group_add(req->radio,radio_grp);
+
+               if(req->index == req->mailbox_ugd->sort_type_index)
+                       elm_radio_value_set(req->radio, req->index);
+               evas_object_smart_callback_add(req->radio, "changed", _radio_cb, req->mailbox_ugd);
+               return req->radio;
+       }
+       return NULL;
+}
+
+static void _radio_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data;
+       mailbox_ugd->sort_type_index = elm_radio_value_get(obj);
+}
+
+
+static char *_gl_viewby_popup_text_get(void *data, Evas_Object *obj, const char *part)
+{
+       viewby_req_t *req = (viewby_req_t *)data;
+
+       char* ret = NULL;
+       if (!g_strcmp0(part, "elm.text"))
+       {
+               switch(req->index)
+               {
+                       case VIEWBY_DATE_RECENT:
+                               ret = g_strdup(_("IDS_EMAIL_OPT_DATE_HMOST_RECENT"));
+                               break;
+                       case VIEWBY_DATE_OLD:
+                               ret = g_strdup(_("IDS_EMAIL_OPT_DATE_HOLDEST"));
+                               break;
+                       case VIEWBY_SENDER_ATOZ:
+                               ret = g_strdup(_("IDS_EMAIL_OPT_SENDER_HA_TO_Z"));
+                               break;
+                       case VIEWBY_SENDER_ZTOA:
+                               ret = g_strdup(_("IDS_EMAIL_OPT_SENDER_HZ_TO_A"));
+                               break;
+                       case VIEWBY_UNREAD:
+                               ret = g_strdup(_("IDS_EMAIL_OPT_READ_UNREAD"));
+                               break;
+                       case VIEWBY_IMPORTANT:
+                               ret = g_strdup(_("IDS_EMAIL_OPT_FAVOURITES"));
+                               break;
+                       case VIEWBY_PRIORITY:
+                               ret = g_strdup(dgettext("sys_string", "IDS_COM_POP_PRIORITY"));
+                               break;
+                       case VIEWBY_ATTACHMENT:
+                               ret = g_strdup(_("IDS_EMAIL_OPT_ATTACHMENTS"));
+                               break;
+               }
+       }
+       return ret;
+}
+
+static void _viewby_response_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data;
+/*     debug_log("view_type: [%d], gl:[%p]", mailbox_ugd->view_type, mailbox_ugd->gl[mailbox_ugd->view_type]);
+
+       //evas_object_smart_callback_del(mailbox_ugd->gl[mailbox_ugd->view_type], "realized", _recipient_list_realized_cb);
+       switch(mailbox_ugd->sort_type_index)
+       {
+               case VIEWBY_DATE_RECENT:
+                       mailbox_ugd->sort_type = EMAIL_SORT_DATE_ASC;
+                       mailbox_make_date_mail_list(mailbox_ugd);
+                       break;
+               case VIEWBY_DATE_OLD:
+                       mailbox_ugd->sort_type = EMAIL_SORT_DATE_DESC;
+                       mailbox_make_date_mail_list(mailbox_ugd);
+                       break;
+               case VIEWBY_SENDER_ATOZ:
+                       mailbox_ugd->sort_type = EMAIL_SORT_SUBJECT_ASC;
+                       mailbox_make_sender_mail_list(mailbox_ugd);
+                       break;
+               case VIEWBY_SENDER_ZTOA:
+                       mailbox_ugd->sort_type = EMAIL_SORT_SUBJECT_DESC;
+                       mailbox_make_sender_mail_list(mailbox_ugd);
+                       break;
+               case VIEWBY_UNREAD:
+                       mailbox_make_unread_mail_list(mailbox_ugd);
+                       break;
+               case VIEWBY_IMPORTANT:
+                       mailbox_make_important_mail_list(mailbox_ugd);
+                       break;
+               case VIEWBY_ATTACHMENT:
+                       mailbox_make_attachment_mail_list(mailbox_ugd);
+                       break;
+               case VIEWBY_PRIORITY:
+                       mailbox_make_priority_mail_list(mailbox_ugd);
+                       break;
+       }
+*/
+       evas_object_del(mailbox_ugd->viewby_popup);
+       mailbox_ugd->viewby_popup = NULL;
+}
+
+static void _viewby_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data;
+       Elm_Object_Item *item;
+       Evas_Object *genlist;
+       mailbox_ugd->viewby_popup = elm_popup_add(mailbox_ugd->win_main);
+#ifdef _POPUP_WITH_LIST
+       elm_object_style_set(mailbox_ugd->viewby_popup, "min_menustyle");
+#else
+       elm_object_style_set(mailbox_ugd->viewby_popup, "menustyle");
+#endif
+       elm_object_part_text_set(mailbox_ugd->viewby_popup, "title,text", _("IDS_EMAIL_HEADER_SORT_BY"));
+       evas_object_smart_callback_add(mailbox_ugd->viewby_popup, "block,clicked", _block_clicked_cb, NULL);
+       evas_object_size_hint_weight_set(mailbox_ugd->viewby_popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       Evas_Object *btn1 = elm_button_add(mailbox_ugd->viewby_popup);
+       elm_object_style_set(btn1, "popup_button/default");
+       elm_object_text_set(btn1, dgettext("sys_string", "IDS_COM_POP_CANCEL"));
+       elm_object_part_content_set(mailbox_ugd->viewby_popup, "button1", btn1);
+       evas_object_smart_callback_add(btn1, "clicked", _viewby_response_cb, mailbox_ugd);
+
+       itc_popup.item_style = "1text.1icon.2";
+       itc_popup.func.text_get =_gl_viewby_popup_text_get;
+       itc_popup.func.content_get = _gl_viewby_popup_content_get;
+       itc_popup.func.state_get = NULL;
+       itc_popup.func.del = NULL;
+       genlist = elm_genlist_add(mailbox_ugd->viewby_popup);
+       evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(genlist, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       EmailMailboxViewby index = 0;
+       for (; index < VIEWBY_MAX; index++) {
+               viewby_req[index] = (viewby_req_t){index, NULL, mailbox_ugd};
+
+               switch(index)
+               {
+                       case VIEWBY_DATE_RECENT:
+                       case VIEWBY_DATE_OLD:
+                       case VIEWBY_SENDER_ATOZ:
+                       case VIEWBY_SENDER_ZTOA:
+                       case VIEWBY_UNREAD:
+                       case VIEWBY_ATTACHMENT:
+                               item = elm_genlist_item_append(genlist, &itc_popup, &viewby_req[index], NULL,
+                                               ELM_GENLIST_ITEM_NONE, _gl_viewby_popup_sel, NULL);
+                               break;
+                       case VIEWBY_IMPORTANT:
+                               item = elm_genlist_item_append(genlist, &itc_popup, &viewby_req[index], NULL,
+                                               ELM_GENLIST_ITEM_NONE, _gl_viewby_popup_sel, NULL);
+                               break;
+                       case VIEWBY_UNKNOWN:
+                       case VIEWBY_MAX:
+                               debug_critical("cannot be here.");
+                               break;
+               }
+       }
+#ifdef _POPUP_WITH_LIST
+       debug_log("index:%d", index);
+       if (index > 4)
+               index = 4;
+       Evas_Object *box = elm_box_add(mailbox_ugd->viewby_popup);
+       evas_object_size_hint_min_set(box, 610 * elm_scale_get(), 114 * index * elm_scale_get());
+       evas_object_show(genlist);
+       elm_box_pack_end(box, genlist);
+       elm_object_content_set(mailbox_ugd->viewby_popup, box);
+#else
+       elm_object_content_set(mailbox_ugd->viewby_popup, genlist);
+#endif
+       evas_object_show(mailbox_ugd->viewby_popup);
+}
+
+void _create_controlbar(EmailMailboxUGD *mailbox_ugd)
+{
+       debug_log("");
+
+       _delete_selection_info(mailbox_ugd);
+
+       elm_object_item_part_content_unset(mailbox_ugd->navibar_item[mailbox_ugd->view_type], "controlbar");
+
+       _delete_controlbar(mailbox_ugd);
+
+       switch (mailbox_ugd->view_type) {
+       case EMAIL_VIEW_DATE:
+       case EMAIL_VIEW_UNREAD:
+       case EMAIL_VIEW_IMPORTANT:
+       case EMAIL_VIEW_RECIPIENT:
+       case EMAIL_VIEW_ATTACHMENTS:
+       case EMAIL_VIEW_PRIORITY:
+               mailbox_ugd->controlbar_btns = create_control_option(mailbox_ugd);
+               break;
+       case EMAIL_VIEW_EDIT:
+               mailbox_ugd->controlbar_btns = create_edit_control_option(mailbox_ugd);
+               break;
+       default:
+               break;
+       }
+}
+
+void _delete_controlbar(EmailMailboxUGD *mailbox_ugd)
+{
+       debug_log("");
+       if (mailbox_ugd->controlbar_btns) {
+               evas_object_del(mailbox_ugd->controlbar_btns);
+               mailbox_ugd->controlbar_btns = NULL;
+               //mailbox_ugd->update_button = NULL;
+               //mailbox_ugd->edit_button = NULL;
+               //mailbox_ugd->edit_cancel_button = NULL;
+               mailbox_ugd->delete_all_button = NULL;
+       }
+}
+
+static void _compose_toolbar_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data;
+       int account_id = 0;
+
+       if (email_engine_get_default_account(&account_id) == false) {
+               Evas_Object *popup = elm_popup_add(mailbox_ugd->win_main);
+
+               evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+               elm_object_part_text_set(popup, "title,text", dgettext("sys_string", "IDS_COM_POP_WARNING"));
+               elm_object_text_set(popup, _("IDS_EMAIL_POP_THERE_IS_NO_ACCOUNT_CREATE_A_NEW_ACCOUNT_FIRST"));
+               //elm_popup_mode_set(popup, ELM_POPUP_TYPE_ALERT);
+               evas_object_smart_callback_add(popup, "block,clicked", _block_clicked_cb, NULL);
+               elm_popup_timeout_set(popup, 3);
+               evas_object_show(popup);
+               return;
+       }
+
+       if (ug_pushed == false) {
+               RETURN_IF_FAIL(mailbox_ugd != NULL);
+
+               if (mailbox_ugd->ug_composer) {
+                       debug_log("Composer UG is already launched");
+                       return;
+               }
+
+               ug_pushed = true;
+
+               _stop_emf_job(mailbox_ugd, mailbox_ugd->emf_handle, true);
+
+               gint composer_type = RUN_COMPOSER_NEW;
+               gint account_id = mailbox_ugd->account_id;
+               if (account_id == 0) {  /* If user execute all emails view, we will use default account id */
+                       email_engine_get_default_account(&account_id);
+               }
+               RETURN_IF_FAIL(account_id > 0);
+
+               debug_log("composer type: %d", composer_type);
+               debug_log("account id: %d", account_id);
+
+               char s_composer_type[14] = { 0, };
+               char s_account_id[14] = { 0, };
+               snprintf(s_composer_type, sizeof(s_composer_type), "%d", composer_type);
+               snprintf(s_account_id, sizeof(s_account_id), "%d", account_id);
+
+               service_h service;
+               if (SERVICE_ERROR_NONE != service_create(&service))
+               {
+                       debug_log("creating service handle failed");
+                       return;
+               }
+
+               service_add_extra_data(service, EMAIL_BUNDLE_KEY_RUN_TYPE, s_composer_type);
+               service_add_extra_data(service, EMAIL_BUNDLE_KEY_ACCOUNT_ID, s_account_id);
+               mailbox_ugd->ug_composer = create_composer_ug(UG_NAME_EMAIL_COMPOSER, service, mailbox_ugd);
+
+               service_destroy(service);
+       }
+}
+
+
+static Evas_Object *create_control_option(EmailMailboxUGD *mailbox_ugd)
+{
+       debug_log("");
+       Evas_Object *control_bar;
+
+       control_bar = elm_toolbar_add(mailbox_ugd->navi_bar);
+       elm_toolbar_shrink_mode_set(control_bar, ELM_TOOLBAR_SHRINK_EXPAND);
+
+       elm_toolbar_item_append(control_bar, ICON_COMPOSE, _("IDS_EMAIL_SK_COMPOSE"),
+                                                               _compose_toolbar_clicked_cb, mailbox_ugd);
+
+       elm_toolbar_item_append(control_bar, ICON_SORTBY, _("IDS_EMAIL_SK_SORT_BY"),
+                       _viewby_cb, mailbox_ugd);
+
+       elm_toolbar_item_append(control_bar, ICON_DELETE_ALL, _("IDS_EMAIL_SK_DELETE_ALL"),
+                       _delete_all_emails_cb, mailbox_ugd);
+
+
+       elm_object_item_part_content_set(mailbox_ugd->navibar_item[mailbox_ugd->view_type], "controlbar", control_bar);
+
+       return control_bar;
+}
+
+
+static void _mousedown_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+       Evas_Event_Mouse_Down *ev = event_info;
+
+       if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD)
+               return;
+
+       touch_x = ev->canvas.x;
+       touch_y = ev->canvas.y;
+}
+
+
+static Evas_Object *create_edit_control_option(EmailMailboxUGD *mailbox_ugd)
+{
+       debug_log("");
+       Evas_Object *control_bar;
+
+       email_mailbox_type_e mbox_type = EMAIL_MAILBOX_TYPE_NONE;
+       mbox_type = GET_MAILBOX_TYPE(mailbox_ugd->mailbox_id);
+
+       g_delete_button = NULL;
+       g_move_button = NULL;
+       g_block_button = NULL;
+       g_markunread_button = NULL;
+
+       control_bar = elm_toolbar_add(mailbox_ugd->navi_bar);
+       elm_toolbar_shrink_mode_set(control_bar, ELM_TOOLBAR_SHRINK_EXPAND);
+
+       g_delete_button = elm_toolbar_item_append(control_bar, ICON_DELETE,
+                                               dgettext("sys_string", "IDS_COM_SK_DELETE"), _delete_mail_cb, mailbox_ugd);
+
+       if (mailbox_ugd->mode != EMAIL_MAILBOX_MODE_ALL && mbox_type != EMAIL_MAILBOX_TYPE_OUTBOX && mbox_type != EMAIL_MAILBOX_TYPE_DRAFT)
+       {
+               g_move_button = elm_toolbar_item_append(control_bar, ICON_MOVE,
+                                               dgettext("sys_string", "IDS_COM_BODY_MOVE"), _move_mail_cb, mailbox_ugd);
+       }
+       if (mbox_type != EMAIL_MAILBOX_TYPE_DRAFT && mbox_type != EMAIL_MAILBOX_TYPE_OUTBOX &&
+                       mbox_type != EMAIL_MAILBOX_TYPE_SPAMBOX && mbox_type != EMAIL_MAILBOX_TYPE_SENTBOX)
+       {
+               g_block_button = elm_toolbar_item_append(control_bar, ICON_BLOCK,
+                                               _("IDS_EMAIL_SK_BLOCK"), _block_mail_cb, mailbox_ugd);
+       }
+
+       g_markunread_button = elm_toolbar_item_append(control_bar, ICON_MARKUNREAD,
+                                               _("IDS_EMAIL_OPT_MARK_AS_UNREAD"), _markunread_mail_cb, mailbox_ugd);
+
+//     mailbox_ugd->edit_cancel_button = elm_toolbar_item_append(control_bar, ICON_CANCEL,
+//                                                     NULL/*dgettext("sys_string", "IDS_COM_SK_CANCEL")*/, _edit_back_cb, mailbox_ugd);
+
+       return control_bar;
+}
+
+static void _move_mail_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+
+       if (data == NULL) {
+               debug_log("data == NULL");
+               return;
+       }
+
+       EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data;
+
+       _delete_selection_info(mailbox_ugd);
+       mailbox_process_move_mail(mailbox_ugd);
+}
+
+
+
+
diff --git a/mailbox/src/email-mailbox-item.c b/mailbox/src/email-mailbox-item.c
new file mode 100755 (executable)
index 0000000..6e3680d
--- /dev/null
@@ -0,0 +1,711 @@
+/*
+ * Copyright 2012  Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *    http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <status.h>
+
+#include "email-mailbox.h"
+#include "email-mailbox-item.h"
+#include "email-mailbox-list.h"
+
+
+gboolean _g_move_lock = false;
+gboolean _g_move_cancel_lock = false;
+static Elm_Genlist_Item_Class itc_mailbox;
+
+extern Eina_List *edit_list;
+extern gboolean b_editmode;
+extern gboolean list_lock;
+
+
+static Eina_Bool _create_mailbox_list_view(void *data);
+static void _mailbox_list_item_clicked(void *data, Evas_Object *obj, void *event_info);
+static void _mailbox_list_move_cancel_cb(void *data, Evas_Object *obj, void *event_info);
+static char *_gl_mailbox_list_text_get(void *data, Evas_Object *obj, const char *part);
+static Evas_Object *_gl_mailbox_list_content_get(void *data, Evas_Object *obj, const char *source);
+Eina_Bool _gl_mailbox_list_state_get(void *data, Evas_Object *obj, const char *part);
+static void _gl_mailbox_list_del(void *data, Evas_Object *obj);
+
+
+static Eina_Bool _create_mailbox_list_view(void *data)
+{
+       debug_log("");
+       EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data;
+
+       Evas_Object *genlist = elm_genlist_add(mailbox_ugd->navi_bar);
+       Evas_Object *btn = elm_button_add(mailbox_ugd->navi_bar);
+       elm_object_style_set(btn, "naviframe/end_btn/default");
+       evas_object_smart_callback_add(btn, "clicked", _mailbox_list_move_cancel_cb, mailbox_ugd);
+       /*Elm_Object_Item *navibar_item = */elm_naviframe_item_push(mailbox_ugd->navi_bar, dgettext("sys_string", "IDS_COM_BODY_MOVE"), btn, NULL, genlist, NULL);
+       email_mailbox_t *mailbox_list = NULL;
+       int mailbox_count = 0;
+       int i = 0;
+
+       email_get_mailbox_list(mailbox_ugd->account_id, -1, &mailbox_list, &mailbox_count);
+
+       itc_mailbox.item_style = "1text.1icon.2";
+       itc_mailbox.func.text_get = _gl_mailbox_list_text_get;
+       itc_mailbox.func.content_get = _gl_mailbox_list_content_get;
+       itc_mailbox.func.state_get = _gl_mailbox_list_state_get;
+       itc_mailbox.func.del = _gl_mailbox_list_del;
+
+       email_movefolder_list *move_folder = (email_movefolder_list *) calloc(mailbox_count, sizeof(email_movefolder_list));
+
+       for (i = 0; i < mailbox_count; ++i) {
+
+               if (mailbox_list[i].mailbox_type != EMAIL_MAILBOX_TYPE_OUTBOX &&
+                       mailbox_list[i].mailbox_type != EMAIL_MAILBOX_TYPE_SENTBOX &&
+                       mailbox_list[i].mailbox_type != EMAIL_MAILBOX_TYPE_DRAFT &&
+                       mailbox_list[i].mailbox_type != EMAIL_MAILBOX_TYPE_TRASH &&
+                       mailbox_list[i].mailbox_type != EMAIL_MAILBOX_TYPE_ALL_EMAILS &&
+                       mailbox_list[i].mailbox_type != EMAIL_MAILBOX_TYPE_SEARCH_RESULT) {
+                       debug_log("mailbox_name: [%s], mailbox_alias: [%s] ", mailbox_list[i].mailbox_name, mailbox_list[i].alias);
+
+                       if (g_strcmp0(mailbox_list[i].alias, "[Gmail]")) {
+                               move_folder[i].mailbox_list = &mailbox_list[i];
+                               move_folder[i].mailbox_ugd = mailbox_ugd;
+                               elm_genlist_item_append(genlist, &itc_mailbox, &move_folder[i], NULL, ELM_GENLIST_ITEM_NONE, _mailbox_list_item_clicked, NULL);
+                       }
+               }
+       }
+       mailbox_ugd->move_folder_list = move_folder;
+       mailbox_ugd->move_folder_cnt = mailbox_count;
+
+       return 0;
+}
+
+static void _mailbox_list_item_clicked(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       const Elm_Object_Item *it = (Elm_Object_Item *)event_info;
+       const void *item_data = elm_object_item_data_get(it);
+       email_movefolder_list *move_folder = (email_movefolder_list *) item_data;
+       EmailMailboxUGD *mailbox_ugd = move_folder->mailbox_ugd;
+       int post_rt = 0;
+
+       int count = g_list_length(mailbox_ugd->selected_list);
+       int mail_ids[count];
+       memset(mail_ids, 0, sizeof(mail_ids));
+       int i=0;
+       GList* cur = g_list_first(mailbox_ugd->selected_list);
+       for( ; i < count ; i++, cur=g_list_next(cur)) {
+               mail_ids[i] = (int) g_list_nth_data(cur, 0);
+               debug_log("mail_id (%d)", mail_ids[i]);
+       }
+
+       int e = email_move_mail_to_mailbox(mail_ids, count,move_folder->mailbox_list->mailbox_id);
+       if (e != EMAIL_ERROR_NONE) {
+               debug_warning("email_move_mail_to_mailbox acct(%d) mailbox_id(%d) num(%d) - err (%d)",
+                                                       mailbox_ugd->account_id, move_folder->mailbox_list->mailbox_id, count, e);
+       }
+
+       if (e == EMAIL_ERROR_NONE && count >0) {
+               post_rt = status_message_post(dgettext("sys_string", "IDS_COM_POP_MOVED"));
+               if (post_rt) {
+                       debug_log("fail to status_message_post() : %d\n", e);
+               }
+       }
+
+       g_list_free(mailbox_ugd->selected_list);
+       mailbox_ugd->selected_list = NULL;
+       email_free_mailbox(&(mailbox_ugd->move_folder_list->mailbox_list), mailbox_ugd->move_folder_cnt);
+       FREE(mailbox_ugd->move_folder_list);
+
+       elm_naviframe_item_pop(mailbox_ugd->navi_bar);
+
+       if(mailbox_ugd->view_type == EMAIL_VIEW_EDIT)
+       {
+               mailbox_ugd->view_type = mailbox_ugd->previous_view;
+
+               edit_list = eina_list_free(edit_list);
+               //evas_object_smart_callback_add(mailbox_ugd->searchbar_en, "focused", _searchbar_entry_focus_cb, mailbox_ugd);
+               //evas_object_smart_callback_add(mailbox_ugd->searchbar_en, "unfocused", _searchbar_entry_unfocus_cb, mailbox_ugd);
+
+               elm_genlist_decorate_mode_set(mailbox_ugd->gl[mailbox_ugd->view_type], EINA_FALSE);
+               elm_genlist_reorder_mode_set(mailbox_ugd->gl[mailbox_ugd->view_type], EINA_FALSE);
+               elm_genlist_select_mode_set(mailbox_ugd->gl[mailbox_ugd->view_type], ELM_OBJECT_SELECT_MODE_DEFAULT);
+
+               b_editmode = false;
+               elm_object_disabled_set(mailbox_ugd->folder_button, EINA_FALSE);
+               _update_navigationbar_title(mailbox_ugd);
+
+               if (mailbox_ugd->isRotate == true) {
+                       email_rotate_landscape(mailbox_ugd);
+                       /*
+                       if (mailbox_ugd->current_rotmode == APP_DEVICE_ORIENTATION_270)
+                               on_event(NULL, UG_EVENT_ROTATE_LANDSCAPE, NULL, mailbox_ugd);
+                       else
+                               on_event(NULL, UG_EVENT_ROTATE_LANDSCAPE_UPSIDEDOWN, NULL, mailbox_ugd);
+                       */
+               } else {
+                       elm_object_part_content_set(mailbox_ugd->search_layout, "searchbar", mailbox_ugd->searchbar_layout);
+                       edje_object_signal_emit(_EDJ(mailbox_ugd->search_layout), "show_searchbar", "search");
+               }
+       }
+
+       if (_g_move_lock) {
+               _g_move_lock = false;
+       }
+
+}
+
+static void _mailbox_list_move_cancel_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data;
+
+       if (_g_move_cancel_lock)
+               return;
+       else
+               _g_move_cancel_lock = true;
+
+       _stop_emf_job(mailbox_ugd, mailbox_ugd->emf_handle, true);
+       elm_naviframe_item_pop(mailbox_ugd->navi_bar);
+
+       if (_g_move_lock) {
+               _g_move_lock = false;
+       }
+}
+
+static char *_gl_mailbox_list_text_get(void *data, Evas_Object *obj, const char *part)
+{
+       email_movefolder_list *move_folder = (email_movefolder_list *) data;
+
+       if (!g_strcmp0(part, "elm.text")) {
+               if (move_folder->mailbox_list->alias != NULL)
+                       return g_strdup(move_folder->mailbox_list->alias);
+       }
+
+       return NULL;
+}
+
+static Evas_Object *_gl_mailbox_list_content_get(void *data, Evas_Object *obj, const char *source)
+{
+       if (data == NULL) {
+               debug_log("data == NULL");
+               return NULL;
+       }
+
+       if (!g_strcmp0(source, "elm.icon")) {
+               char folder_icon_path[1024] = { 0, };
+               Evas_Object *ic = elm_icon_add(obj);
+               snprintf(folder_icon_path, sizeof(folder_icon_path), IMGDIR "/U01_icon_folder.png");
+               elm_icon_file_set(ic, folder_icon_path, NULL);
+               elm_icon_resizable_set(ic, 0, 0);
+               evas_object_image_smooth_scale_set(ic, 0);
+               evas_object_show(ic);
+
+               return ic;
+       }
+
+       return NULL;
+}
+
+Eina_Bool _gl_mailbox_list_state_get(void *data, Evas_Object *obj, const char *part)
+{
+       return EINA_FALSE;
+}
+
+static void _gl_mailbox_list_del(void *data, Evas_Object *obj)
+{
+       return;
+}
+
+void mailbox_process_move_mail(EmailMailboxUGD *mailbox_ugd)
+{
+       debug_log("");
+
+       if (_g_move_lock) {
+               return;
+       }
+
+       Eina_List *list = edit_list;
+       int checked_count = eina_list_count(list);
+       debug_log("checked_count: [%d]", checked_count);
+       if (checked_count<= 0)  return;
+
+       int i = 0;
+       for ( ; i < checked_count; i++)
+       {
+               Eina_List *nth_list = eina_list_nth_list(list, i);
+               list_data *ld = eina_list_data_get(nth_list);
+
+               /* save the mail-id to be moved */
+               if (mailbox_ugd->previous_view == EMAIL_VIEW_UNREAD ||
+                       mailbox_ugd->previous_view == EMAIL_VIEW_IMPORTANT ||
+                       mailbox_ugd->previous_view == EMAIL_VIEW_ATTACHMENTS ||
+                       mailbox_ugd->previous_view == EMAIL_VIEW_PRIORITY ||
+                       mailbox_ugd->previous_view == EMAIL_VIEW_RECIPIENT ||
+                       mailbox_ugd->mode == EMAIL_MAILBOX_MODE_MAILBOX ||
+                       mailbox_ugd->b_thread_list == false)
+               {
+                       int mail_id = ld->mail_id;
+                       mailbox_ugd->selected_list =
+                               g_list_prepend(mailbox_ugd->selected_list, GINT_TO_POINTER(mail_id));
+               }
+               /* get mails of thread id and add them to selected_list */
+               else {
+                       /* Get thread mail list */
+                       email_mail_list_item_t *mailbox_data = NULL;
+                       int mail_count = 0;
+                       int err = email_get_mail_list(ld->account_id, 0, ld->thread_id,
+                                                               -1, /* start_index */
+                                                               -1, /* limit_count */
+                                                               _mailbox_conv_sort_type(mailbox_ugd->sort_type), &mailbox_data, &mail_count);
+                       if( err != EMAIL_ERROR_NONE ) {
+                               debug_warning("email_get_mail_list_ex - err(%d)", err);
+                       }
+                       int k = 0;
+                       for( ; k<mail_count ; k++ )
+                               mailbox_ugd->selected_list = g_list_prepend(mailbox_ugd->selected_list,
+                                                                                                               GINT_TO_POINTER(mailbox_data[k].mail_id));
+                       FREE(mailbox_data);
+               }
+
+       }
+
+
+       _create_mailbox_list_view(mailbox_ugd);
+
+       _g_move_lock = true;
+       _g_move_cancel_lock = false;
+
+       //edit_list = eina_list_free(edit_list);
+}
+
+void mailbox_process_delete_mail(void* data, Ecore_Thread *thd)
+{
+       debug_enter();
+       if( !data ) {
+               debug_warning("PARAM NULL: data(%p)", data);
+               return;
+       }
+
+       edit_req_t *req = (edit_req_t *)data;
+       EmailMailboxUGD *mailbox_ugd = req->mailbox_ugd;
+       EmailMailboxViewType previous_view = req->previous_view;
+
+       int i = 0;
+       int max_account_id = email_engine_get_max_account_id();
+       int result = EMAIL_ERROR_UNKNOWN;
+
+       if (max_account_id < 0) {
+               debug_error("Invalid max_account_id was returned.");
+               return;
+       }
+
+       GList *move_mail_list[max_account_id];
+       memset(move_mail_list, 0, max_account_id*sizeof(GList *));
+
+       /* delete list and count */
+       GList *del_mail_list = NULL;
+
+       Eina_List *list = edit_list;
+       int checked_count = eina_list_count(list);
+       debug_log("checked_count: %d", checked_count);
+       if (checked_count <= 0) return;
+
+       /* if single mail view (not threaded view), */
+       if (previous_view == EMAIL_VIEW_UNREAD ||
+               previous_view == EMAIL_VIEW_IMPORTANT ||
+               previous_view == EMAIL_VIEW_PRIORITY ||
+               previous_view == EMAIL_VIEW_ATTACHMENTS ||
+               previous_view == EMAIL_VIEW_RECIPIENT ||
+               mailbox_ugd->mode == EMAIL_MAILBOX_MODE_MAILBOX ||
+               mailbox_ugd->b_thread_list == false)
+       {
+               /* get the first item and check if item is in trash box. if so, all other items are in trash */
+               list_data* ld = eina_list_data_get(list);
+               int is_trash = (GET_MAILBOX_TYPE(ld->mailbox_id) == EMAIL_MAILBOX_TYPE_TRASH)? 1:0;
+
+               Eina_List* cur = NULL;
+               EINA_LIST_FOREACH(list, cur, ld)
+               {
+                       if ( is_trash )
+                               del_mail_list =
+                                       g_list_prepend(del_mail_list, GINT_TO_POINTER(ld->mail_id));
+                       else
+                               move_mail_list[ld->account_id-1] =
+                                       g_list_prepend(move_mail_list[ld->account_id-1], GINT_TO_POINTER(ld->mail_id));
+               }
+       }
+       /* if threaded mail view */
+       else if (previous_view == EMAIL_VIEW_DATE)
+       {
+               /* Get thread mail list */
+               Eina_List* cur = NULL;
+               list_data* ld = NULL;
+               EINA_LIST_FOREACH(list, cur, ld)
+               {
+
+                       int count = 0;
+                       int acct = ld->account_id;
+                       if( acct <= 0 ) {
+                               debug_log("acct(%d) should be positive", acct);
+                       }
+                       email_mail_list_item_t *mail_list = NULL;
+                       int e = email_get_mail_list(acct, 0, ld->thread_id, -1, -1,
+                                                                                               _mailbox_conv_sort_type(mailbox_ugd->sort_type), &mail_list, &count);
+                       debug_log("id %d, count %d", acct, count);
+                       if( e != EMAIL_ERROR_NONE || !mail_list ) {
+                               debug_warning("email_get_mail_list -err(%d), acct(%d), th_id(%d), sort(%d) or mail_list NULL(%p)",
+                                                               e, acct, NULL, ld->thread_id, mailbox_ugd->sort_type, mail_list);
+                               continue;
+                       }
+                       int i=0;
+                       for( ; i < count ; i++ )
+                               move_mail_list[acct-1] =
+                                       g_list_prepend(move_mail_list[acct-1], GINT_TO_POINTER(mail_list[i].mail_id));
+
+                       FREE(mail_list);
+               }
+       }
+
+
+       /* delete routine */
+       if ( del_mail_list )
+       {
+               int count = g_list_length(del_mail_list);
+               int mail_ids[count]; memset(mail_ids, 0, sizeof(mail_ids));
+               int i=0;
+               GList* cur = g_list_first(del_mail_list);
+               for ( ; i < count; ++i, cur = g_list_next(cur)) {
+                       mail_ids[i] = (int) g_list_nth_data(cur, 0);
+               }
+
+               result = email_delete_mail(mailbox_ugd->mailbox_id, mail_ids, count, EMAIL_DELETE_LOCAL_AND_SERVER);
+
+               if (result != EMAIL_ERROR_NONE) {
+                       debug_warning("email_delete_message account_id(%d) count(%d)- err (%d)",
+                                                                               mailbox_ugd->account_id, count, result);
+               }
+       }
+
+       /* move-mails-to-trash routine */
+       int acct = 0;
+       for ( acct = 0; acct < max_account_id; ++acct) {
+               if ( !move_mail_list[acct]) continue;
+               else
+               {
+                       /* convert GList to int array */
+                       int count = g_list_length(move_mail_list[acct]);
+                       int mail_ids[count]; memset(mail_ids, 0, sizeof(mail_ids));
+                       int i=0;
+                       GList* cur = g_list_first(move_mail_list[acct]);
+                       for( ; i < count ; i++, cur=g_list_next(cur))
+                               mail_ids[i] = (int) g_list_nth_data(cur, 0);
+
+                       /* making dest folder - trash */
+                       int trashbox_id = GET_MAILBOX_ID(acct+1, EMAIL_MAILBOX_TYPE_TRASH);
+
+                       result = email_move_mail_to_mailbox(mail_ids, count, trashbox_id);
+                       if (result != EMAIL_ERROR_NONE) {
+                               debug_warning("email_move_mail_to_mailbox acct(%d) folder_id(%d) num(%d) - err (%d)",
+                                                               acct+1, trashbox_id, count, result);
+                       }
+               }
+       }
+
+       int e_post = 0;
+       if (result == EMAIL_ERROR_NONE) {
+               e_post = status_message_post(dgettext("sys_string", "IDS_COM_POP_DELETED"));
+
+               if (e_post) {
+                       debug_log("fail to status_message_post() : %d\n", e_post);
+               }
+       }
+
+//CLEANUP:
+
+       if (del_mail_list) {
+               g_list_free(del_mail_list);
+       }
+
+       for (i = 0; i < max_account_id; ++i) {
+               if (move_mail_list[i] != NULL) {
+                       g_list_free(move_mail_list[i]);
+                       move_mail_list[i] = NULL;
+               }
+       }
+
+       edit_list = eina_list_free(edit_list);
+
+}
+
+void mailbox_delete_mail_item_from_list(EmailMailboxUGD * mailbox_ugd, list_data * ld)
+{
+       debug_log("");
+       if(ld == NULL || ld->item == NULL) {
+               debug_warning("ld == NULL or ld->item == NULL");
+               return;
+       }
+       Elm_Object_Item *parent = elm_genlist_item_parent_get(ld->item);
+       Elm_Object_Item *next = elm_genlist_item_next_get(ld->item);
+       Elm_Object_Item *prev = elm_genlist_item_prev_get(ld->item);
+       if(parent == prev && (NULL == next || NULL == elm_genlist_item_parent_get(next))) {
+               elm_object_item_del(parent);
+               mailbox_ugd->git[mailbox_ugd->view_type][ld->group_index] = NULL;
+       }
+       if(ld->item) elm_object_item_del(ld->item);
+
+       mailbox_ugd->list_data[mailbox_ugd->view_type] =
+                               g_list_remove(mailbox_ugd->list_data[mailbox_ugd->view_type], ld);
+       _free_list_data_simple(ld);
+}
+
+void _popup_response_delete_ok_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+
+       if (data == NULL) {
+               debug_log("data == NULL");
+               return;
+       }
+
+       EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data;
+
+       if (mailbox_ugd->delete_popup) {
+               evas_object_del(mailbox_ugd->delete_popup);
+               mailbox_ugd->delete_popup = NULL;
+       }
+
+       edit_req_t *req = MEM_ALLOC(req, 1);
+       if(!req) return;
+       req->previous_view = mailbox_ugd->previous_view;
+       req->mailbox_ugd = mailbox_ugd;
+       ecore_thread_feedback_run(mailbox_process_delete_mail, NULL,
+                                                       NULL, NULL, req, EINA_TRUE);
+
+       mailbox_ugd->view_type = mailbox_ugd->previous_view;
+
+       //evas_object_smart_callback_add(mailbox_ugd->searchbar_en, "focused", _searchbar_entry_focus_cb, mailbox_ugd);
+       //evas_object_smart_callback_add(mailbox_ugd->searchbar_en, "unfocused", _searchbar_entry_unfocus_cb, mailbox_ugd);
+
+       elm_genlist_decorate_mode_set(mailbox_ugd->gl[mailbox_ugd->view_type], EINA_FALSE);
+       elm_genlist_reorder_mode_set(mailbox_ugd->gl[mailbox_ugd->view_type], EINA_FALSE);
+       elm_genlist_select_mode_set(mailbox_ugd->gl[mailbox_ugd->view_type], ELM_OBJECT_SELECT_MODE_DEFAULT);
+
+       b_editmode = false;
+       elm_object_disabled_set(mailbox_ugd->folder_button, EINA_FALSE);
+
+       _update_navigationbar_title(mailbox_ugd);
+
+       if (mailbox_ugd->isRotate == true) {
+               email_rotate_landscape(mailbox_ugd);
+               /*
+               if (mailbox_ugd->current_rotmode == APP_DEVICE_ORIENTATION_270)
+                       on_event(NULL, UG_EVENT_ROTATE_LANDSCAPE, NULL, mailbox_ugd);
+               else
+                       on_event(NULL, UG_EVENT_ROTATE_LANDSCAPE_UPSIDEDOWN, NULL, mailbox_ugd);
+               */
+       } else {
+               elm_object_part_content_set(mailbox_ugd->search_layout, "searchbar", mailbox_ugd->searchbar_layout);
+               edje_object_signal_emit(_EDJ(mailbox_ugd->search_layout), "show_searchbar", "search");
+       }
+
+}
+
+void _popup_response_delete_all_ok_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+
+       if (!data) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data;
+
+       if (mailbox_ugd->delete_popup) {
+               evas_object_del(mailbox_ugd->delete_popup);
+               mailbox_ugd->delete_popup = NULL;
+       }
+/*
+       if (mailbox_ugd->folder_name == NULL || mailbox_ugd->account_id == 0) {
+               debug_log("delete all in All emails");
+               return;
+       }
+*/
+       debug_log("account id: [%d], folder_id: [%d], emf_handle: [%d]", mailbox_ugd->account_id, mailbox_ugd->mailbox_id, mailbox_ugd->emf_handle);
+       _stop_emf_job(mailbox_ugd, mailbox_ugd->emf_handle, true);
+
+       {
+               if (mailbox_ugd->account_id != 0 && mailbox_ugd->mailbox_id != 0)
+               {
+                       email_mailbox_t *trashbox = NULL;
+                       email_get_mailbox_by_mailbox_type(mailbox_ugd->account_id, EMAIL_MAILBOX_TYPE_TRASH, &trashbox);
+
+                       if (trashbox) {
+                               if (mailbox_ugd->mailbox_id == trashbox->mailbox_id) {
+                                       if (FALSE == email_engine_delete_all_mail(mailbox_ugd->account_id, mailbox_ugd->mailbox_id, EMAIL_DELETE_LOCALLY)) {
+                                               debug_critical("email_engine_delete_all_mail failed");
+                                       } else {
+                                               elm_object_item_disabled_set(mailbox_ugd->delete_all_button, EINA_TRUE);
+                                       }
+                               } else {
+                                       if (FALSE == email_engine_move_all_mail(mailbox_ugd->account_id, mailbox_ugd->mailbox_id, trashbox->mailbox_id)) {
+                                               debug_critical("email_engine_move_all_mail failed");
+                                       } else {
+                                               elm_object_item_disabled_set(mailbox_ugd->delete_all_button, EINA_TRUE);
+                                       }
+                               }
+                       } else {
+                               debug_critical("trashbox is NULL, email_engine_move_all_mail failed");
+                       }
+
+                       if (trashbox)
+                               email_free_mailbox(&trashbox, 1);
+               }
+               else if (mailbox_ugd->account_id != 0 && mailbox_ugd->mailbox_id == 0)
+               {
+                       email_mailbox_t *inbox = NULL;
+                       email_mailbox_t *trashbox = NULL;
+
+                       email_get_mailbox_by_mailbox_type(mailbox_ugd->account_id, EMAIL_MAILBOX_TYPE_INBOX, &inbox);
+                       email_get_mailbox_by_mailbox_type(mailbox_ugd->account_id, EMAIL_MAILBOX_TYPE_TRASH, &trashbox);
+
+                       if (inbox && trashbox) {
+                               if (FALSE == email_engine_move_all_mail(mailbox_ugd->account_id, inbox->mailbox_id, trashbox->mailbox_id)) {
+                                       debug_critical("email_engine_move_all_mail failed");
+                               } else {
+                                       elm_object_item_disabled_set(mailbox_ugd->delete_all_button, EINA_TRUE);
+                               }
+                       } else {
+                               debug_critical("trashbox(%p) or inbox(%p) is NULL, email_engine_move_all_mail failed", inbox, trashbox);
+                       }
+
+                       if (inbox)
+                               email_free_mailbox(&inbox, 1);
+                       if (trashbox)
+                               email_free_mailbox(&trashbox, 1);
+               }
+               else            // all account
+               {
+                       email_account_t *account_list = NULL;
+                       int account_count = 0;
+                       int err = 0;
+                       int i = 0;
+
+                       err = email_engine_get_account_list(&account_count, &account_list);
+
+                       if (err == 0) {
+                               debug_critical("fail to get account list - err(%d)", err);
+                               return;
+                       }
+
+                       if (account_list == NULL || account_count == 0) {
+                               debug_critical("account info is @niL");
+                               return;
+                       }
+
+                       for (i = 0; i < account_count; i++) {
+                               email_mailbox_t *inbox = NULL;
+                               email_mailbox_t *trashbox = NULL;
+
+                               email_get_mailbox_by_mailbox_type(account_list[i].account_id, EMAIL_MAILBOX_TYPE_INBOX, &inbox);
+                               email_get_mailbox_by_mailbox_type(account_list[i].account_id, EMAIL_MAILBOX_TYPE_TRASH, &trashbox);
+
+                               if (inbox && trashbox) {
+                                       if (FALSE == email_engine_move_all_mail(account_list[i].account_id, inbox->mailbox_id, trashbox->mailbox_id)) {
+                                               debug_critical("email_engine_move_all_mail failed, account_id: %d", account_list[i].account_id);
+                                       } else {
+                                               debug_log("account id[%d]: [%d] delete inbox.", i, account_list[i].account_id);
+                                       }
+                               } else {
+                                       debug_critical("trashbox(%p) or inbox(%p) is NULL, email_engine_move_all_mail failed", inbox, trashbox);
+                               }
+
+
+                               if (inbox)
+                                       email_free_mailbox(&inbox, 1);
+                               if (trashbox)
+                                       email_free_mailbox(&trashbox, 1);
+                       }
+                       elm_object_item_disabled_set(mailbox_ugd->delete_all_button, EINA_TRUE);
+
+                       err = email_engine_free_account_list(&account_list, account_count);
+                       if (err == 0) {
+                               debug_critical("fail to free account list - err(%d)", err);
+                       }
+               }
+       }
+}
+
+void _resend_mail_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       if (data == NULL) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       unsigned handle = 0;
+
+       list_data *ld = (list_data *)data;
+
+       email_account_t *account = NULL;
+
+       /* Get sending option for account from email-service */
+       int err = email_get_account(ld->account_id, ONLY_OPTION, &account);
+       if (err != EMAIL_ERROR_NONE) {
+               debug_warning("email_get_account acct(%d) - err(%d)", ld->account_id, err);
+               goto CLEANUP;
+       }
+
+               /* Send email again */
+       err = email_send_mail(ld->mail_id, &(account->options), &handle);
+       if ( err != EMAIL_ERROR_NONE ) {
+               debug_warning("email_send_mail acct(%d) - err(%d)", ld->account_id, err);
+       }
+
+
+CLEANUP:
+       if(account) email_free_account(&account, 1);
+
+}
+
+void _cancel_send_mail_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       if (data == NULL) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       list_data *ld = (list_data *)data;
+
+       int err = email_cancel_sending_mail(ld->mail_id);
+
+       if (err != EMAIL_ERROR_NONE) {
+               debug_warning("email_engine_cancel_send_mail failed - err(%d)", err);
+       } else {
+               /* Mail send is cancelled. Change the label of button to Resend */
+               elm_object_text_set(obj, _("IDS_EMAIL_OPT_RESEND"));
+
+               /* Delete cancel mail callback added to button */
+               evas_object_smart_callback_del(obj, "clicked", _cancel_send_mail_cb);
+
+               /* Add new callback to button which can resend the email */
+               evas_object_smart_callback_add(obj, "clicked", _resend_mail_cb, data);
+
+               /* Emit the signal to remove gray out */
+               elm_object_item_signal_emit(ld->item, "elm,state,enabled", "elm");
+
+               /* Enable the genlist item to receive events*/
+               elm_genlist_item_select_mode_set(ld->item, ELM_OBJECT_SELECT_MODE_DEFAULT);
+
+       }
+}
+
diff --git a/mailbox/src/email-mailbox-list.c b/mailbox/src/email-mailbox-list.c
new file mode 100755 (executable)
index 0000000..4ab5f86
--- /dev/null
@@ -0,0 +1,3356 @@
+/*
+ * Copyright 2012  Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *    http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "email-mailbox.h"
+#include "email-mailbox-list.h"
+#include "email-mailbox-item.h"
+#include "email-mailbox-search.h"
+#include "email-mailbox-sweep.h"
+#include "email-mailbox-controlbar.h"
+
+
+static Elm_Genlist_Item_Class itc_item_for_sender_index;
+static char *alias;
+static Elm_Object_Item *sender_group;
+gboolean b_editmode = false;
+Eina_List *edit_list = NULL;
+gboolean list_lock = false;
+char *group_title[EMAIL_GROUP_MAX][2];
+static bool b_first_time_after_get_more = false;
+static Elm_Object_Item *g_get_more_progress_item;
+static Elm_Genlist_Item_Class itc_get_more_progress;
+Elm_Object_Item *g_selected_item;
+int is_main_thread_busy = false;
+extern Elm_Object_Item *g_server_search_item;
+
+#define WORKER_SLEEP_PERIOD    2
+#define BLOCK_COUNT 10
+#define FIRST_BLOCK_SIZE 6
+
+#undef ITEM_EXIST
+#define ITEM_EXIST(p)  (p && p->item)
+
+#undef ITEM_IN_SAME_GROUP
+#define ITEM_IN_SAME_GROUP(src, cur)   \
+       (src && src->item && mailbox_ugd->git[view_type][src->group_index] == mailbox_ugd->git[view_type][cur->group_index])
+
+#undef GROUP_INDEX
+#define GROUP_INDEX(p) ((p && p->item)? p->group_index : -1)
+
+#define UTF8_VALIDATE(from, len) \
+       ({\
+               char *end = NULL;\
+               if(STR_VALID(from))\
+                       if(!g_utf8_validate(from, len, (const gchar **)&end) && end)\
+                               *end = '\0';\
+               NULL;\
+       })
+
+#define GET_NAME_FROM_ALIAS(alias, len) \
+               ({\
+                       char *_from = NULL;\
+                       if (STR_VALID(alias)) {\
+                               gchar **token = NULL;\
+                               token = g_strsplit_set(alias, "\"", -1);\
+                               if (token && STR_VALID(token[1])) {\
+                                       _from = STRNDUP(token[1], len);\
+                                       g_strfreev(token);\
+                               } else { \
+                                       debug_log("***FROM == [%s]", alias);\
+                                       _from = STRNDUP(dgettext("sys_string", "IDS_COM_BODY_NO_NAME"), len);\
+                               }\
+                       } else\
+                               _from = STRNDUP(dgettext("sys_string", "IDS_COM_BODY_NO_NAME"), len);\
+                       _from;\
+               })
+
+#define GET_ACCOUNT_COLOR(account_id) \
+               ({\
+                       email_account_t *email_account = NULL;\
+                       account_user_data_t email_userdata = {0};\
+                       int color = 0;\
+                       int e = email_get_account(account_id, EMAIL_ACC_GET_OPT_DEFAULT, &email_account);\
+                       if (e != EMAIL_ERROR_NONE || !email_account) {\
+                               debug_warning("email_get_account acct(%d) - err(%d) or acct NULL(%p)",\
+                                                               account_id, e, email_account);\
+                       }\
+                       else {\
+                               memcpy((void*)&email_userdata, email_account->user_data, email_account->user_data_length);\
+                               color = email_userdata.index_color;\
+                       }\
+                       if(email_account) email_free_account(&email_account, 1);\
+                       color;\
+               })
+
+#define CHECK_THREAD_BUSY() \
+       ({\
+               while(is_main_thread_busy) { \
+                       sleep(WORKER_SLEEP_PERIOD); \
+               } \
+       })
+
+#define SNPRINTF_OFFSET(base_buf, offset, base_size, format, args...) \
+                       ({\
+                               int _offset = offset;\
+                               snprintf(base_buf + _offset, base_size - _offset - 1, format, ##args);\
+                       })
+
+
+static email_mail_list_item_t *_get_mail_list_by_view(EmailMailboxUGD *mailbox_ugd, const EmailSearchData *search_data, int *mail_count);
+static void _insert_mail_to_recipient_mailist(EmailMailboxUGD *mailbox_ugd, list_data* ld);
+static void _insert_normal_item_to_mailist(EmailMailboxUGD *mailbox_ugd, list_data *ld, list_data *prev, list_data *next);
+//static gint _compare_date_asc(gconstpointer a, gconstpointer b);
+//static gint _compare_date_desc(gconstpointer a, gconstpointer b);
+static void _clear_genlist(EmailMailboxUGD *mailbox_ugd);
+static void _free_list_data(GList *list_data);
+static void _handle_last_sending_email(EmailMailboxUGD *mailbox_ugd);
+static void _parse_delete_mail_buf(char *inbuf, GList **mail_list);
+static int email_set_group(list_data *ld);
+static void insert_search_tag (char *dest, int dest_len, const char *src, const char *key);
+static char *_gl_recipient_group_text_get(void *data, Evas_Object *obj, const char *part);
+static void _remaining_finish_cb(void* data, Ecore_Thread *thd);
+static void _list_item_clicked(void *data, Evas_Object *obj, void *event_info);
+static void _process_item_check_changed_cb(list_data *ld);
+static void _my_gl_mode_right(void *data, Evas_Object *obj, void *event_info);
+static void _my_gl_mode_left(void *data, Evas_Object *obj, void *event_info);
+static char *_gl_group_text_get(void *data, Evas_Object *obj, const char *part);
+static char *_gl_mail_item_text_get(void *data, Evas_Object *obj, const char *part);
+static Evas_Object *_gl_mail_item_content_get(void *data, Evas_Object *obj, const char *source);
+static void _important_status_changed_cb(void *data, Evas_Object *obj, void *event_info);
+static void _item_followup_flag_touched_cb(void *data, Evas * evas, Evas_Object *obj, void *event_info);
+static void _realized_cb(void *data, Evas_Object *obj, void *event_info);
+static Evas_Object *_create_progress_part_in_outbox(list_data *ld, Evas_Object *obj);
+static void _my_gl_mode_cancel(void *data, Evas_Object *obj, void *event_info);
+static void _get_more_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+static void _add_get_more_progress_item(EmailMailboxUGD *mailbox_ugd);
+static char *_gl_get_more_btn_text_get(void *data, Evas_Object *obj, const char *part);
+static Evas_Object *_gl_get_more_btn_content_get(void *data, Evas_Object *obj, const char *source);
+static void add_mail_to_threaded (EmailMailboxUGD *mailbox_ugd, list_data *ld);
+static void _parse_move_mail_buf(char *inbuf, char **src_folder, char **dst_folder, GList **mail_list);
+static void add_remining_item_cb(void *data, Ecore_Thread *thd, void* msg_data);
+static void worker_get_remaing_list_cb(void* data, Ecore_Thread *thd);
+static void set_busy_cb(void *data, Evas *e, Evas_Object *o, void *info);
+static void reset_busy_cb(void *data, Evas *e, Evas_Object *o, void *info);
+
+void _free_list_data_simple(list_data *ld)
+{
+
+       if (ld == NULL) {
+               return;
+       }
+
+       FREE(ld->from);
+       FREE(ld->alias);
+       FREE(ld->sender);
+       FREE(ld->preview_body);
+       FREE(ld->title);
+       FREE(ld->recipient);
+       FREE(ld->timeordate);
+       FREE(ld->group_title);
+       FREE(ld->group_date);
+       ld->item = NULL;
+       FREE(ld);
+}
+
+static void _parse_move_mail_buf(char *inbuf, char **src_folder, char **dst_folder, GList **mail_list)
+{
+       debug_enter();
+       if(!STR_VALID(inbuf)) {
+               return;
+       }
+
+       /* notification format: <src_folder><0x01><dst_folder><0x01><<mail_id><,><mail_id>>*/
+       gchar **outer_tok;
+       char    delimiter[2] ={0x01, 0x00};
+       outer_tok = g_strsplit_set(inbuf, delimiter, -1);
+       if (outer_tok == NULL) {
+               debug_log("outer_tok == NULL");
+               return;
+       }
+       if (outer_tok[0] && strlen(outer_tok[0]) > 0)
+               *src_folder = strdup(outer_tok[0]);
+       if(outer_tok[1] && strlen(outer_tok[1]) > 0)
+               *dst_folder = strdup(outer_tok[1]);
+       if(outer_tok[2] && strlen(outer_tok[2]) >0) {
+               gchar **inner_tok;
+               int i = 0;
+               inner_tok = g_strsplit_set(outer_tok[2], ",", -1);
+               for(i = 0; i < g_strv_length(inner_tok) - 1; ++i) {
+                       debug_log("%s", inner_tok[i]);
+                       if(!strcmp(inner_tok[i], "\"")) /* skip the empty token */
+                               continue;
+                       else {
+                               int *mail_id = (int *)calloc(1, sizeof(int));
+                               *mail_id = atoi(inner_tok[i]);
+                               *mail_list = g_list_append(*mail_list, mail_id);
+                       }
+               }
+               g_strfreev(inner_tok);
+       }
+       g_strfreev(outer_tok);
+       debug_log("src_folder: [%s], dst_folder: [%s]", *src_folder, *dst_folder);
+}
+
+static char *_gl_get_more_btn_text_get(void *data, Evas_Object *obj, const char *part)
+{
+       debug_log("");
+
+       if (!g_strcmp0(part, "elm.text"))
+               return g_strdup(_("IDS_EMAIL_BODY_LOADING_MORE_EMAILS_ING"));
+       return NULL;
+}
+
+static Evas_Object *_gl_get_more_btn_content_get(void *data, Evas_Object *obj, const char *source)
+{
+       debug_log("");
+
+       if (!g_strcmp0(source, "elm.icon")) {
+               Evas_Object *progressbar = elm_progressbar_add(obj);
+               elm_object_style_set(progressbar, "list_process");
+               evas_object_size_hint_align_set(progressbar, EVAS_HINT_FILL, EVAS_HINT_FILL);
+               evas_object_size_hint_weight_set(progressbar, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+               evas_object_show(progressbar);
+               elm_progressbar_pulse(progressbar, EINA_TRUE);
+               return progressbar;
+       }
+
+       return NULL;
+}
+
+static void _get_more_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data;
+
+       /* should know the current mode, account id, and mailbox name. */
+       /* The view type is always DATE view. */
+       debug_log("Current Mode: [%d]", mailbox_ugd->mode);
+       if (mailbox_ugd->mode == EMAIL_MAILBOX_MODE_MAILBOX &&
+               GET_MAILBOX_TYPE(mailbox_ugd->mailbox_id) == EMAIL_MAILBOX_TYPE_OUTBOX) {
+               /* Sync is not required in Outbox because it is local mailbox */
+               debug_log("return");
+               return;
+       }
+
+       email_mailbox_t *mailbox_list = NULL;
+       email_account_t *account_list = NULL;
+       int mailbox_count = 0, account_count = 0;
+       int new_slot_size = 0;
+       int i = 0, j = 0;
+
+       if (g_get_more_progress_item || mailbox_ugd->view_type != EMAIL_VIEW_DATE) {
+               debug_log("is_get_more_button exists or download in progress");
+               return;
+       }
+
+       if (b_first_time_after_get_more) {
+               debug_log("this is the first edge.bottom event after the get more operation.");
+               b_first_time_after_get_more = false;
+               return;
+       }
+
+       email_get_account_list(&account_list, &account_count);
+       _add_get_more_progress_item(mailbox_ugd);
+       _stop_emf_job(mailbox_ugd, mailbox_ugd->emf_handle, true);
+
+       /* Get the current count of mailbox slot */
+       if (mailbox_ugd->mode == EMAIL_MAILBOX_MODE_ALL) {
+               /* loop: All account */
+               for (i = 0; i < account_count; ++i) {
+                       email_get_mailbox_list(account_list[i].account_id, -1, &mailbox_list, &mailbox_count);
+                       /* loop: All Mailbox */
+                       for (j = 0; j < mailbox_count; ++j) {
+                               new_slot_size = 0;
+                               email_set_mail_slot_size(account_list[i].account_id, mailbox_list[j].mailbox_id, new_slot_size);
+                               debug_log("account_id: [%d], mailbox_name: [%s], slot_size: [%d]", account_list[i].account_id, mailbox_list[j].mailbox_name, new_slot_size);
+                       }
+                       email_free_mailbox(&mailbox_list, mailbox_count);
+               }
+
+               _sync_all_folder(mailbox_ugd);
+       } else {                        /* mailbox mode */
+
+               email_get_mailbox_list(mailbox_ugd->account_id, -1, &mailbox_list, &mailbox_count);
+               for (i = 0; i < mailbox_count; ++i) {
+                       if (mailbox_list[i].mailbox_id == mailbox_ugd->mailbox_id) {
+                               new_slot_size = 0;
+                               break;
+                       }
+               }
+               email_set_mail_slot_size(mailbox_ugd->account_id, mailbox_ugd->mailbox_id, new_slot_size);
+               debug_log("account_id: [%d], mailbox_id: [%d], slot_size: [%d]", mailbox_ugd->account_id, mailbox_ugd->mailbox_id, new_slot_size);
+               _sync_curr_folder(mailbox_ugd, mailbox_ugd->mailbox_id);
+       }
+       //elm_object_disabled_set(mailbox_ugd->update_button, EINA_TRUE);
+       email_free_account(&account_list, account_count);
+}
+
+static void _add_get_more_progress_item(EmailMailboxUGD *mailbox_ugd)
+{
+       debug_log("");
+
+       evas_object_smart_callback_del(mailbox_ugd->gl[mailbox_ugd->view_type], "edge,bottom", _get_more_clicked_cb);
+
+       itc_get_more_progress.item_style = "1text.1icon.2";
+       itc_get_more_progress.func.text_get = _gl_get_more_btn_text_get;
+       itc_get_more_progress.func.content_get = _gl_get_more_btn_content_get;
+       itc_get_more_progress.func.state_get = NULL;
+       itc_get_more_progress.func.del = NULL;
+       //itc_get_more_progress.func.moved = NULL;
+       itc_get_more_progress.decorate_all_item_style = NULL;
+
+       g_get_more_progress_item = elm_genlist_item_append(mailbox_ugd->gl[mailbox_ugd->view_type],
+                                                                       &itc_get_more_progress,
+                                                                       NULL,
+                                                                       NULL,
+                                                                       ELM_GENLIST_ITEM_NONE,
+                                                                       NULL, NULL);
+
+       elm_genlist_item_select_mode_set(g_get_more_progress_item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+       elm_genlist_item_bring_in(g_get_more_progress_item, ELM_GENLIST_ITEM_SCROLLTO_IN);
+
+       evas_object_smart_callback_add(mailbox_ugd->gl[mailbox_ugd->view_type], "edge,bottom", _get_more_clicked_cb, mailbox_ugd);
+
+       debug_leave();
+}
+
+void _remove_get_more_progress_item(EmailMailboxUGD *mailbox_ugd)
+{
+       debug_log("");
+
+       if (g_get_more_progress_item) {
+               b_first_time_after_get_more = true;
+
+               elm_object_item_del(g_get_more_progress_item);
+               g_get_more_progress_item = NULL;
+       }
+}
+
+static void _my_gl_mode_cancel(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       if (!obj)
+               return;
+
+       /* Get sweeped item */
+       Elm_Object_Item *it = (Elm_Object_Item *)elm_genlist_decorated_item_get(obj);
+
+       /* Finish genlist sweep */
+       if (it)
+       {
+               elm_genlist_item_decorate_mode_set(it, "slide", EINA_FALSE);
+               elm_genlist_item_select_mode_set(it, ELM_OBJECT_SELECT_MODE_DEFAULT);
+       }
+}
+
+
+static Evas_Object *_create_progress_part_in_outbox(list_data *ld, Evas_Object *obj)
+{
+       /* debug_log(""); */
+       if (ld == NULL || obj == NULL) {
+               debug_critical("ld or obj is NULL");
+               return NULL;
+       }
+
+       switch(ld->is_sending_now) {
+               case EMAIL_MAIL_STATUS_SENDING: {
+                       /* Since mail send is in progress,
+                       add a process icon to the entry in mail list view */
+
+                       Evas_Object *progressbar = NULL;
+
+                       progressbar = elm_progressbar_add(obj);
+                       elm_object_style_set(progressbar, "list_process");
+                       evas_object_size_hint_align_set(progressbar, EVAS_HINT_FILL, EVAS_HINT_FILL);
+                       evas_object_size_hint_weight_set(progressbar, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+                       evas_object_show(progressbar);
+                       elm_progressbar_pulse(progressbar, EINA_TRUE);
+
+                       debug_log("Added process icon");
+                       return progressbar;
+               }
+
+               case EMAIL_MAIL_STATUS_SEND_WAIT: {
+                       /* Since email is waiting to be sent in queue,
+                       add a button to the entry in mail list view with label as 'Cancel' */
+
+                       Evas_Object *button = NULL;
+
+                       button = elm_button_add(obj);
+                       elm_object_style_set(button, "text_only/style1");
+                       elm_object_text_set(button, dgettext("sys_string", "IDS_COM_SK_CANCEL"));
+                       evas_object_smart_callback_add(button, "clicked", _cancel_send_mail_cb, ld);
+                       evas_object_propagate_events_set(button, EINA_FALSE);
+
+                       debug_log("Added Cancel Button");
+                       return button;
+               }
+
+               case EMAIL_MAIL_STATUS_SEND_CANCELED:
+               case EMAIL_MAIL_STATUS_SEND_FAILURE: {
+                       /* Since sending email is cancelled or failed,
+                       add a button to the entry in mail list view with label as 'Resend' */
+
+                       Evas_Object *button = NULL;
+
+                       button = elm_button_add(obj);
+                       elm_object_style_set(button, "text_only/style1");
+                       elm_object_text_set(button, _("IDS_EMAIL_OPT_RESEND"));
+                       evas_object_smart_callback_add(button, "clicked", _resend_mail_cb, ld);
+                       evas_object_propagate_events_set(button, EINA_FALSE);
+
+                       return button;
+               }
+
+               default:
+                       debug_critical("unexpected sending status of an email in Outbox - sending_status [%d]", ld->is_sending_now);
+                       break;
+       }
+
+       return NULL;
+}
+
+static void _realized_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       Elm_Object_Item *item = (Elm_Object_Item *)event_info;
+       if (item == NULL) {
+               debug_log("Genlist item is null");
+               return;
+       }
+       if(!elm_genlist_item_parent_get(item))
+               return;
+
+       list_data *ld = (list_data*)elm_object_item_data_get(item);
+       switch(ld->is_sending_now) {
+       case EMAIL_MAIL_STATUS_SENDING:
+       case EMAIL_MAIL_STATUS_SEND_WAIT:
+               if(ld->item)
+                       elm_object_item_signal_emit(ld->item, "elm,state,disabled", "elm");
+               break;
+
+       case EMAIL_MAIL_STATUS_SEND_CANCELED:
+       case EMAIL_MAIL_STATUS_SEND_FAILURE:
+               if(ld->item)
+                       elm_object_item_signal_emit(ld->item, "elm,state,enabled", "elm");
+               break;
+
+       default:
+               break;
+       }
+
+       if (ld->thread_count > 0 && ld->mailbox_ugd->b_thread_list)
+       {               // Thread 1 case, should show thread_count(UX request)
+               if(ld->mailbox_ugd->view_type == EMAIL_VIEW_DATE
+                               || (ld->mailbox_ugd->previous_view == EMAIL_VIEW_DATE && (ld->mailbox_ugd->view_type == EMAIL_VIEW_SEARCH
+                               || ld->mailbox_ugd->view_type == EMAIL_VIEW_EDIT)))
+                               elm_object_item_signal_emit(ld->item, "elm,state,num", "elm");
+       }
+       if (ld->is_attachment == true) {
+               elm_object_item_signal_emit(ld->item, "elm,state,attach", "elm");
+       }
+       if(ld->priority != EMAIL_OPTION_PRIORITY_NORMAL) {
+               elm_object_item_signal_emit(ld->item, "elm,state,priority", "elm");
+       }
+       if(ld->reply_flag || ld->forward_flag) {
+               elm_object_item_signal_emit(ld->item, "elm,state,lastverb", "elm");
+       }
+
+       if (ld->is_seen == true) {
+               elm_object_item_signal_emit(ld->item, "elm,state,read", "elm");
+       } else {
+               elm_object_item_signal_emit(ld->item, "elm,state,unread", "elm");
+       }
+
+       if(ld->mailbox_ugd->view_type == EMAIL_VIEW_SEARCH)
+               elm_object_disabled_set(ld->check, EINA_TRUE);
+}
+
+static void _important_status_changed_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       list_data *ld = (list_data *)data;
+       int vt = ld->mailbox_ugd->view_type;
+       int count = 0;
+
+       if(vt == EMAIL_VIEW_DATE ||((vt == EMAIL_VIEW_EDIT || vt == EMAIL_VIEW_SEARCH)
+               && ld->mailbox_ugd->previous_view == EMAIL_VIEW_DATE))
+       {
+               email_mail_list_item_t *mail_data = NULL;
+               int mail_count = 0;
+               int err = email_get_mail_list(ld->account_id, 0, ld->thread_id,
+                                                       -1, /* start_index */
+                                                       -1, /* limit_count */
+                                                       _mailbox_conv_sort_type(ld->mailbox_ugd->sort_type), &mail_data, &mail_count);
+               if( err != EMAIL_ERROR_NONE ) {
+                       debug_warning("email_get_mail_list_ex - err(%d)", err);
+               }
+               int k = 0;
+               count = mail_count;
+               for( ; k<mail_count ; k++ )
+                       ld->mailbox_ugd->important_list = g_list_prepend(ld->mailbox_ugd->important_list,
+                                                                                                       GINT_TO_POINTER(mail_data[k].mail_id));
+               FREE(mail_data);
+       }
+       else
+       {
+               ld->mailbox_ugd->important_list = g_list_prepend(ld->mailbox_ugd->important_list,
+                                                                                               GINT_TO_POINTER(ld->mail_id));
+               count = 1;
+       }
+
+       if (ld->mailbox_ugd->important_list)
+       {
+               int mail_ids[count];
+               memset(mail_ids, 0, sizeof(mail_ids));
+               int i=0;
+               GList* cur = g_list_first(ld->mailbox_ugd->important_list);
+               for ( ; i < count; ++i, cur = g_list_next(cur)) {
+                       mail_ids[i] = (int) g_list_nth_data(cur, 0);
+               }
+
+               int e = email_set_flags_field(ld->account_id, mail_ids, count,
+                                                                               EMAIL_FLAGS_FLAGGED_FIELD, ld->imp_sel, true);
+               if (e != EMAIL_ERROR_NONE) {
+                       debug_warning("_important_status_changed_cb account_id(%d) count(%d)- err (%d)",
+                                                                               ld->account_id, count, e);
+               }
+               g_list_free(ld->mailbox_ugd->important_list);
+               ld->mailbox_ugd->important_list = NULL;
+       }
+}
+
+static void _item_followup_flag_touched_cb(void *data, Evas * evas, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       list_data *ld = (list_data *)data;
+
+       switch(ld->followup_flag)
+       {
+               case EMAIL_FLAG_TASK_STATUS_CLEAR:
+                       ld->followup_flag = EMAIL_FLAG_TASK_STATUS_ACTIVE;
+                       elm_icon_file_set(ld->flag_ic, IMGDIR "/M02_email_Flag_Active.png", NULL);
+                       break;
+               case EMAIL_FLAG_TASK_STATUS_ACTIVE:
+                       ld->followup_flag = EMAIL_FLAG_TASK_STATUS_COMPLETE;
+                       elm_icon_file_set(ld->flag_ic, IMGDIR "/M02_email_Flag_Complete.png", NULL);
+                       break;
+               case EMAIL_FLAG_TASK_STATUS_COMPLETE:
+                       ld->followup_flag = EMAIL_FLAG_TASK_STATUS_CLEAR;
+                       elm_icon_file_set(ld->flag_ic, IMGDIR "/M02_email_Flag_Clear.png", NULL);
+                       break;
+               default :
+                       debug_log("mail item has no followup flag");
+       }
+       email_set_flags_field(ld->account_id, &ld->mail_id, 1, EMAIL_FLAGS_FLAGGED_FIELD,
+                                               ld->followup_flag, true);
+}
+
+
+
+static Evas_Object *_gl_mail_item_content_get(void *data, Evas_Object *obj, const char *source)
+{
+//     debug_enter();
+       if (data == NULL) {
+               debug_log("data is NULL");
+               return NULL;
+       }
+
+       list_data *ld = (list_data *)data;
+
+       if (!g_strcmp0(source, "elm.icon.colorbar")) {
+               Evas_Object *small_rect = evas_object_rectangle_add(evas_object_evas_get(obj));
+               evas_object_size_hint_fill_set(small_rect, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+               int r = (ld->account_color & 0xff000000) >> 24;
+               int g = (ld->account_color & 0x00ff0000) >> 16;
+               int b = (ld->account_color & 0x0000ff00) >> 8;
+               int a = ld->account_color & 0x000000ff;
+
+               evas_object_color_set(small_rect, r, g, b, a);
+               return (void *)small_rect;
+
+       } else if (!g_strcmp0(source, "elm.icon.important")) {
+               if(ld->followup_flag > EMAIL_FLAG_FLAGED)
+               {
+                       ld->flag_ic = elm_icon_add(obj);
+                       evas_object_event_callback_add(ld->flag_ic, EVAS_CALLBACK_MOUSE_DOWN, _item_followup_flag_touched_cb, data);
+
+                       switch(ld->followup_flag)
+                       {
+                               case EMAIL_FLAG_TASK_STATUS_CLEAR:
+                                       elm_icon_file_set(ld->flag_ic, IMGDIR "/M02_email_Flag_Clear.png", NULL);
+                                       break;
+                               case EMAIL_FLAG_TASK_STATUS_ACTIVE:
+                                       elm_icon_file_set(ld->flag_ic, IMGDIR "/M02_email_Flag_Active.png", NULL);
+                                       break;
+                               case EMAIL_FLAG_TASK_STATUS_COMPLETE:
+                                       elm_icon_file_set(ld->flag_ic, IMGDIR "/M02_email_Flag_Complete.png", NULL);
+                                       break;
+                       }
+                       elm_icon_resizable_set(ld->flag_ic, 0, 1);
+                       evas_object_image_smooth_scale_set(ld->flag_ic, 0);
+                       //evas_object_propagate_events_set(flag_ic, EINA_FALSE);
+                       return ld->flag_ic;
+               }
+               else
+               {
+                       ld->important = elm_check_add(obj);
+                       elm_check_state_pointer_set(ld->important, (Eina_Bool *)&ld->imp_sel);
+                       elm_object_style_set(ld->important, "favorite/extended");
+                       evas_object_smart_callback_add(ld->important, "changed", _important_status_changed_cb, data);
+                       evas_object_propagate_events_set(ld->important, EINA_FALSE);
+                       return ld->important;
+               }
+
+       } else if (!g_strcmp0(source, "elm.icon.important.touch")) {
+               if(ld->followup_flag > EMAIL_FLAG_FLAGED)
+               {
+                       Evas_Object *small_rect = evas_object_rectangle_add(evas_object_evas_get(obj));
+                       evas_object_size_hint_fill_set(small_rect, EVAS_HINT_FILL, EVAS_HINT_FILL);
+                       evas_object_color_set(small_rect, 0, 0, 0, 0);
+
+                       evas_object_event_callback_add(small_rect, EVAS_CALLBACK_MOUSE_DOWN, _item_followup_flag_touched_cb, data);
+                       evas_object_propagate_events_set(small_rect, EINA_FALSE);
+                       return small_rect;
+               }
+       }
+
+       else if (!g_strcmp0(source, "elm.icon.checkbox")) {
+               ld->check = elm_check_add(obj);
+               elm_check_state_pointer_set(ld->check, (Eina_Bool *)&ld->chksel);
+               evas_object_smart_callback_add(ld->check, "changed", _item_check_changed_cb, data);
+               evas_object_propagate_events_set(ld->check, EINA_FALSE);
+               return ld->check;
+       }
+
+       else if(!g_strcmp0(source, "elm.icon.checkbox.touch")) {
+               Evas_Object *small_rect = evas_object_rectangle_add(evas_object_evas_get(obj));
+               evas_object_size_hint_fill_set(small_rect, EVAS_HINT_FILL, EVAS_HINT_FILL);
+               evas_object_color_set(small_rect, 0, 0, 0, 0);
+               evas_object_event_callback_add(small_rect, EVAS_CALLBACK_MOUSE_DOWN, _item_check_touched_cb, data);
+               evas_object_propagate_events_set(small_rect, EINA_FALSE);
+
+               return small_rect;
+       }
+
+       else if(!g_strcmp0(source, "elm.icon.num")){
+
+       }
+
+       else if (!g_strcmp0(source, "elm.slide.swallow.1")) {
+               /* First button of Sweep Menu */
+               if (NULL == ld->mailbox_ugd) {
+                       debug_critical(" ld->mailbox_ugd [%p] ", ld->mailbox_ugd);
+                       return NULL;
+               }
+
+               if (ld->mailbox_type == EMAIL_MAILBOX_TYPE_OUTBOX || ld->mailbox_type == EMAIL_MAILBOX_TYPE_DRAFT)
+               {
+                       return _create_sweep_read_unread_button(obj,ld);
+               }
+               else
+               {
+                       return _create_sweep_reply_button(obj,ld);
+               }
+
+       } else if (!g_strcmp0(source, "elm.slide.swallow.2")) {
+               /* Second button of Sweep Menu */
+               if (NULL == ld->mailbox_ugd) {
+                       debug_critical(" ld->mailbox_ugd [%p] ", ld->mailbox_ugd);
+                       return NULL;
+               }
+
+               if (ld->mailbox_type == EMAIL_MAILBOX_TYPE_OUTBOX || ld->mailbox_type == EMAIL_MAILBOX_TYPE_DRAFT)
+               {
+                       return _create_sweep_delete_button(obj,ld);
+               }
+               else
+               {
+                       return _create_sweep_forward_button(obj,ld);
+               }
+       }
+       else if (!g_strcmp0(source, "elm.slide.swallow.3")) {
+               /* 3rd button of Sweep Menu */
+               if (NULL == ld->mailbox_ugd) {
+                       debug_critical(" ld->mailbox_ugd [%p] ", ld->mailbox_ugd);
+                       return NULL;
+               }
+
+               if (ld->mailbox_type == EMAIL_MAILBOX_TYPE_OUTBOX || ld->mailbox_type == EMAIL_MAILBOX_TYPE_DRAFT)
+               {
+                       return NULL;
+               }
+
+               if (ld->mailbox_ugd->mode != EMAIL_MAILBOX_MODE_MAILBOX) {
+                       return _create_sweep_read_unread_button(obj,ld);
+               }
+
+               if (ld->mailbox_type == EMAIL_MAILBOX_TYPE_TRASH || ld->mailbox_type == EMAIL_MAILBOX_TYPE_SPAMBOX) {
+                       return _create_sweep_move_button(obj,ld);
+               } else if (ld->mailbox_type == EMAIL_MAILBOX_TYPE_OUTBOX || ld->mailbox_type == EMAIL_MAILBOX_TYPE_DRAFT) {
+                       return _create_sweep_delete_button(obj,ld);
+               } else {
+                       return _create_sweep_read_unread_button(obj,ld);
+               }
+       }
+       else if (!g_strcmp0(source, "elm.slide.swallow.4")) {
+               /* 4th button of Sweep Menu */
+               if (NULL == ld->mailbox_ugd) {
+                       debug_critical(" ld->mailbox_ugd [%p] ", ld->mailbox_ugd);
+                       return NULL;
+               }
+
+               if (ld->mailbox_type == EMAIL_MAILBOX_TYPE_OUTBOX || ld->mailbox_type == EMAIL_MAILBOX_TYPE_DRAFT)
+               {
+                       return NULL;
+               }
+               else
+               {
+                       return _create_sweep_delete_button(obj, ld);
+               }
+       }
+       else if (0 == g_strcmp0(source, "elm.swallow.outbox.progress")) {
+
+               Evas_Object *outbox_progress_part = NULL;
+
+               if (ld->mailbox_ugd->mode == EMAIL_MAILBOX_MODE_MAILBOX && ld->mailbox_type == EMAIL_MAILBOX_TYPE_OUTBOX) {
+                       if (ld->mailbox_ugd->view_type != EMAIL_VIEW_SEARCH && ld->mailbox_ugd->view_type != EMAIL_VIEW_EDIT) {
+                               if (ld->mailbox_ugd->create_progress_part == true) {
+                                       outbox_progress_part = _create_progress_part_in_outbox(ld, obj);
+                               }
+                       }
+               }
+               return (void *)outbox_progress_part;
+       }
+       else if(!g_strcmp0(source, "elm.icon.attach"))
+       {
+               if(ld->is_attachment == true)
+               {
+                       Evas_Object *ic = elm_icon_add(obj);
+                       elm_icon_file_set(ic, IMGDIR "/M02_email_icon_attach.png", NULL);
+                       elm_icon_resizable_set(ic, 0, 0);
+                       evas_object_image_smooth_scale_set(ic, 0);
+                       evas_object_show(ic);
+                       return (void *)ic;
+               }
+       }
+
+       else if(!g_strcmp0(source, "elm.icon.priority"))
+       {
+               if(ld->priority == EMAIL_OPTION_PRIORITY_HIGH) {
+                       Evas_Object *ic = elm_icon_add(obj);
+                       elm_icon_file_set(ic, IMGDIR "/M02_email_icon_priority.png", NULL);
+                       elm_icon_resizable_set(ic, 0, 0);
+                       evas_object_image_smooth_scale_set(ic, 0);
+                       evas_object_show(ic);
+                       return (void *)ic;
+               }
+#if 0  // support low priority message
+               else if(ld->priority == EMAIL_OPTION_PRIORITY_LOW) {
+                       if(ld->item)
+                               edje_object_signal_emit((Evas_Object *)elm_genlist_item_object_get(ld->item), "elm,state,priority", "elm");
+                       Evas_Object *ic = elm_icon_add(obj);
+                       elm_icon_file_set(ic, IMGDIR "/M02_email_icon_priority.png", NULL);
+                       elm_icon_resizable_set(ic, 0, 0);
+                       evas_object_image_smooth_scale_set(ic, 0);
+                       evas_object_show(ic);
+                       return (void *)ic;
+               }
+#endif
+       }
+
+       else if(!g_strcmp0(source, "elm.icon.lastverb"))
+       {
+
+               if(ld->reply_flag || ld->forward_flag)
+               {
+                       Evas_Object *ic = elm_icon_add(obj);
+
+                       if(ld->reply_flag == true)
+                               elm_icon_file_set(ic, IMGDIR "/M02_email_icon_reply.png", NULL);
+                       else
+                               elm_icon_file_set(ic, IMGDIR "/M02_email_icon_forward.png", NULL);
+                       elm_icon_resizable_set(ic, 0, 0);
+                       evas_object_image_smooth_scale_set(ic, 0);
+                       evas_object_show(ic);
+                       return (void *)ic;
+               }
+       }
+#if 0
+       else if(!g_strcmp0(source, "elm.icon.appointment"))
+       {
+               if(ld->priority == 1)
+               {
+                       if(ld->item)
+                               edje_object_signal_emit((Evas_Object *)elm_genlist_item_object_get(ld->item), "elm,state,priority", "elm");
+                       Evas_Object *ic = elm_icon_add(obj);
+                       elm_icon_file_set(ic, IMGDIR "/05_email_icon_attach_30x30.png", NULL);
+                       elm_icon_resizable_set(ic, 0, 0);
+                       evas_object_image_smooth_scale_set(ic, 0);
+                       evas_object_show(ic);
+                       return (void *)ic;
+               }
+       }
+#endif
+       return NULL;
+}
+
+static char *_gl_mail_item_text_get(void *data, Evas_Object *obj, const char *part)
+{
+       if (data == NULL) {
+               debug_warning("ld is NULL");
+               return NULL;
+       }
+
+       list_data *ld = (list_data *)data;
+       EmailMailboxUGD *mailbox_ugd = ld->mailbox_ugd;
+
+       if (mailbox_ugd == NULL) {
+               debug_warning("mailbox_ugd is NULL");
+               return NULL;
+       }
+       if (!g_strcmp0(part, "elm.text.subject")) {
+               char title[SUBJECT_LEN + TAG_LEN*2 + 1] = {0}; /* two tags can be inserted */
+               strncat(title, ld->title, SUBJECT_LEN + TAG_LEN); /* search tag may be contained */
+               strcat(title, "</>");
+               return g_strdup(title);
+
+       } else if (!g_strcmp0(part, "elm.text.name")) {
+               /*
+               if (ld->from == NULL) {
+                       debug_log("from is NULL");
+                       return NULL;
+               }
+               */
+               if (mailbox_ugd->view_type == EMAIL_VIEW_SEARCH) {
+                       if(ld->mailbox_ugd->mode == EMAIL_MAILBOX_MODE_MAILBOX &&
+                               (ld->mailbox_type == EMAIL_MAILBOX_TYPE_OUTBOX ||
+                               ld->mailbox_type == EMAIL_MAILBOX_TYPE_SENTBOX ||
+                               ld->mailbox_type == EMAIL_MAILBOX_TYPE_DRAFT))
+                               return g_strdup(ld->recipient);
+                       else {
+                               if(ld->from)
+                                       return g_strdup(ld->from);
+                               else if(ld->alias)
+                                       return g_strdup(ld->alias);
+                       }
+               } else {
+                       if(ld->mailbox_ugd->mode == EMAIL_MAILBOX_MODE_MAILBOX &&
+                               (ld->mailbox_type == EMAIL_MAILBOX_TYPE_OUTBOX ||
+                               ld->mailbox_type == EMAIL_MAILBOX_TYPE_SENTBOX ||
+                               ld->mailbox_type == EMAIL_MAILBOX_TYPE_DRAFT))
+                               return g_strdup(ld->recipient);
+                       else
+                               return g_strdup(ld->alias);
+               }
+
+       } else if (!g_strcmp0(part, "elm.text.date")) {
+
+               if (ld->timeordate == NULL) {
+                       debug_log("timeordate is NULL");
+                       return NULL;
+               }
+
+               if (ld->mailbox_type == EMAIL_MAILBOX_TYPE_OUTBOX && ld->mailbox_ugd->mode == EMAIL_MAILBOX_MODE_MAILBOX)
+                       return g_strdup("");
+               else
+                       return g_strdup(ld->timeordate);
+       } else if (!g_strcmp0(part, "elm.text.preview")) {
+               if (ld->preview_body == NULL) {
+                       debug_log("preview text is NULL");
+                       return NULL;
+               } else {
+                       return g_strdup(ld->preview_body);
+               }
+
+       } else if (!g_strcmp0(part, "elm.slide.text.1")) {      /* Subject is to be displayed in Sweep Menu. ld->title stores Subject of email */
+               return g_strdup(ld->title);
+       } else if(!g_strcmp0(part,"elm.text.num")) {
+               char thread_cnt[10] = { 0, };
+               sprintf(thread_cnt, "%d", ld->thread_count);
+               return g_strdup(thread_cnt);
+       } else {
+               debug_log("");
+               return NULL;
+       }
+
+       return NULL;
+}
+
+
+static void _my_gl_mode_right(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       if (!event_info)
+               return;
+
+       EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data;
+       Evas_Coord x = 0, y = 0, w = 0, h = 0;
+       Elm_Object_Item *prev = NULL;
+       evas_object_geometry_get((mailbox_ugd->gl[mailbox_ugd->view_type]), &x, &y, &w, &h);
+       debug_log("x = %d, y = %d, w=%d, h=%d, isRotate = %d, view_type = %d", x, y, w,h, mailbox_ugd->isRotate, mailbox_ugd->view_type);
+
+       /*if(mailbox_ugd->isRotate == true && w < 700)
+       {
+               debug_log("sweep menu bigger than current width. can't open sweep.");
+               return;
+       }*/
+
+       /* Get sweeped item */
+       prev = (Elm_Object_Item *)elm_genlist_decorated_item_get(obj);
+       debug_log("prev: %p, event_info: %p", prev, event_info);
+
+       /* Start genlist sweep */
+       if (mailbox_ugd->view_type != EMAIL_VIEW_EDIT && mailbox_ugd->view_type != EMAIL_VIEW_SEARCH)
+       {
+               if(prev && (prev != event_info))
+               {
+                       elm_genlist_item_decorate_mode_set(prev, "slide", EINA_FALSE);
+                       elm_genlist_item_select_mode_set(prev, ELM_OBJECT_SELECT_MODE_DEFAULT);
+               }
+               elm_genlist_item_decorate_mode_set(event_info, "slide", EINA_TRUE);
+               elm_genlist_item_select_mode_set(event_info, ELM_OBJECT_SELECT_MODE_NONE);
+       }
+
+}
+
+static void _my_gl_mode_left(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("event_info:%p", event_info);
+       if (!event_info) {
+               debug_log("event_info is NULL");return;
+       }
+
+       /* Finish genlist sweep */
+       elm_genlist_item_decorate_mode_set(event_info, "slide", EINA_FALSE);
+       elm_genlist_item_select_mode_set(event_info, ELM_OBJECT_SELECT_MODE_DEFAULT);
+}
+
+
+static char *_gl_group_text_get(void *data, Evas_Object *obj, const char *part)
+{
+       debug_enter();
+       if (data == NULL) {
+               debug_log("data is NULL");
+               return NULL;
+       }
+
+       int index = (int)data - 1;
+       debug_log("group_index: [%d], %s", index, part);
+
+       gchar buf[60] = { 0, };
+       if (g_strcmp0(part, "elm.text") == 0) {
+               if(STR_VALID(group_title[index][1]))
+                       snprintf(buf, sizeof(buf), "%s (%s)", group_title[index][0], group_title[index][1]);
+               else
+                       snprintf(buf, sizeof(buf), "%s", group_title[index][0]);
+               return strdup(buf);
+       }
+
+       return NULL;
+}
+
+
+void mailbox_create_list_view(EmailMailboxUGD *mailbox_ugd)
+{
+       debug_log("");
+       if (mailbox_ugd == NULL) {
+               debug_log("mailbox_ugd is NULL");
+               return;
+       }
+
+       debug_log("mailbox_ugd->view_type[%d] mailbox_ugd->mailbox_type[%d]",
+                       mailbox_ugd->view_type, mailbox_ugd->mailbox_type);
+
+       if(mailbox_ugd->gl[mailbox_ugd->view_type]) {
+               elm_genlist_clear(mailbox_ugd->gl[mailbox_ugd->view_type]);
+               evas_object_del(mailbox_ugd->gl[mailbox_ugd->view_type]);
+               mailbox_ugd->gl[mailbox_ugd->view_type] = NULL;
+       }
+
+       /* Set genlist item class */
+       mailbox_ugd->itc1.item_style = "4text.8icon";
+
+       mailbox_ugd->itc1.func.text_get = _gl_mail_item_text_get;
+       mailbox_ugd->itc1.func.content_get = _gl_mail_item_content_get;
+       mailbox_ugd->itc1.func.state_get = NULL;
+       mailbox_ugd->itc1.func.del = NULL;
+       mailbox_ugd->itc1.decorate_all_item_style = "edit_default";
+
+       mailbox_ugd->itc2.item_style = "grouptitle";
+       mailbox_ugd->itc2.func.text_get = _gl_group_text_get;
+       mailbox_ugd->itc2.func.content_get = NULL;
+       mailbox_ugd->itc2.func.state_get = NULL;
+       mailbox_ugd->itc2.func.del = NULL;
+       mailbox_ugd->itc2.decorate_all_item_style = NULL;
+
+       Evas_Object *gl = elm_genlist_add(mailbox_ugd->sub_layout[mailbox_ugd->view_type]);
+       /*elm_object_theme_set(gl, mailbox_ugd->theme);*/
+       evas_object_smart_callback_add(gl, "realized", _realized_cb, NULL);
+
+       evas_object_smart_callback_add(gl, "drag,start,right", _my_gl_mode_right, mailbox_ugd);
+       evas_object_smart_callback_add(gl, "drag,start,left", _my_gl_mode_left, NULL);
+       evas_object_smart_callback_add(gl, "drag,start,up", _my_gl_mode_cancel, mailbox_ugd);
+       evas_object_smart_callback_add(gl, "drag,start,down", _my_gl_mode_cancel, NULL);
+
+       elm_object_style_set(gl, "handler");
+       elm_genlist_block_count_set(gl, BLOCK_COUNT);
+       elm_genlist_homogeneous_set(gl, EINA_TRUE);
+       elm_genlist_mode_set(gl, ELM_LIST_COMPRESS);
+       elm_genlist_select_mode_set(gl, ELM_OBJECT_SELECT_MODE_ALWAYS);
+
+       evas_object_size_hint_align_set(gl, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_size_hint_weight_set(gl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+       if ((mailbox_ugd->view_type == EMAIL_VIEW_DATE
+               && mailbox_ugd->mode == EMAIL_MAILBOX_MODE_ALL
+               )
+                ||
+               (mailbox_ugd->view_type == EMAIL_VIEW_DATE
+                && mailbox_ugd->mode == EMAIL_MAILBOX_MODE_MAILBOX
+                && GET_MAILBOX_TO_GETMORE(mailbox_ugd->mailbox_id) > 0))
+       {
+
+               evas_object_smart_callback_add(gl, "edge,bottom", _get_more_clicked_cb, mailbox_ugd);
+       }
+
+       evas_object_show(gl);
+       mailbox_ugd->gl[mailbox_ugd->view_type] = gl;
+
+       mailbox_ugd->chk_cnt = 0;
+       edit_list = eina_list_free(edit_list);
+
+       evas_object_event_callback_add(gl, EVAS_CALLBACK_MOUSE_DOWN, set_busy_cb, NULL);
+       evas_object_event_callback_add(gl, EVAS_CALLBACK_MOUSE_UP, reset_busy_cb, NULL);
+
+       return;
+}
+
+void email_maillist_select_info(EmailMailboxUGD *mailbox_ugd)
+{
+       debug_log("");
+       double dou_panes = elm_panes_content_left_size_get(mailbox_ugd->panes);
+       debug_log("panes: %lf ", dou_panes);
+
+       if(!mailbox_ugd->selectioninfo_layout)
+       {
+               mailbox_ugd->selectioninfo_layout = elm_layout_add(mailbox_ugd->sub_layout[mailbox_ugd->previous_view]);
+               elm_object_part_content_set(mailbox_ugd->sub_layout[mailbox_ugd->previous_view], "selection_info", mailbox_ugd->selectioninfo_layout);
+               evas_object_size_hint_weight_set(mailbox_ugd->selectioninfo_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+               evas_object_size_hint_align_set(mailbox_ugd->selectioninfo_layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       }
+
+       Eina_List *list = NULL;
+       int cnt = 0;
+       list = edit_list;
+       cnt = eina_list_count(list);
+
+       char text[128];
+
+       /* Set the layout theme */
+       elm_layout_theme_set(mailbox_ugd->selectioninfo_layout, "standard", "selectioninfo", "default");
+
+       if (!cnt) {
+               elm_object_signal_emit(mailbox_ugd->sub_layout[mailbox_ugd->previous_view], "hide_selection_info", "elm");
+               return;
+       }
+
+       if (cnt == 1)
+               snprintf(text, sizeof(text), "%s (%d)", dgettext("sys_string", "IDS_COM_POP_SELECTED"), cnt);
+       else
+               snprintf(text, sizeof(text), "%s (%d)", dgettext("sys_string", "IDS_COM_POP_SELECTED"), cnt);
+
+       /* Set the text */
+       elm_object_part_text_set(mailbox_ugd->selectioninfo_layout, "elm.text", text);
+       elm_object_signal_emit(mailbox_ugd->sub_layout[mailbox_ugd->previous_view], "show_selection_info", "elm");
+}
+
+
+void _clear_checked_status(EmailMailboxUGD *mailbox_ugd)
+{
+       Eina_List *list = edit_list;
+       int checked_count = eina_list_count(list);
+       debug_log("checked_count [%d]", checked_count);
+       if (checked_count <= 0) return;
+
+       int i = 0;
+       for (i = 0; i < checked_count; i++) {
+               Eina_List *nth_list = eina_list_nth_list(list, i);
+               list_data *ld = (list_data *)eina_list_data_get(nth_list);
+               ld->chksel = EINA_FALSE;
+
+       }
+       edit_list = eina_list_free(edit_list);
+}
+
+
+void _item_check_changed_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       list_data *ld = (list_data *)data;
+
+       if (ld != NULL) {
+               if (ld->is_sending_now == EMAIL_MAIL_STATUS_SENDING || ld->is_sending_now == EMAIL_MAIL_STATUS_SEND_WAIT) {
+                       debug_log("email being sent selected - unselect it");
+                       elm_check_state_set(ld->check, EINA_FALSE);
+                       return;
+               }
+       }
+       _process_item_check_changed_cb(ld);
+}
+
+void _item_check_touched_cb(void *data, Evas * evas, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       list_data *ld = (list_data *)data;
+       ld->chksel = !ld->chksel;
+       elm_check_state_set(ld->check, ld->chksel);
+       _process_item_check_changed_cb(ld);
+}
+
+static void _process_item_check_changed_cb(list_data *ld)
+{
+       debug_log("");
+
+       EmailMailboxUGD *mailbox_ugd = ld->mailbox_ugd;
+
+       if (ld->chksel) {
+               edit_list = eina_list_append(edit_list, ld);
+               mailbox_ugd->chk_cnt++;
+       } else {
+               edit_list = eina_list_remove(edit_list, ld);
+               mailbox_ugd->chk_cnt--;
+       }
+
+       int cnt = eina_list_count(edit_list);
+       debug_log("list count = %d", cnt);
+
+       if(cnt > 0 && !b_editmode)
+       {
+
+               debug_log("Enter edit mode");
+
+               /* update controlbar to edit menu */
+               b_editmode = true;
+               if (GET_MAILBOX_TYPE(mailbox_ugd->mailbox_id) == EMAIL_MAILBOX_TYPE_OUTBOX) {
+                       mailbox_ugd->create_progress_part = false;
+                       debug_log("mailbox_ugd->view_type[%d]", mailbox_ugd->view_type);
+                       elm_genlist_realized_items_update(mailbox_ugd->gl[mailbox_ugd->view_type]);
+               }
+               _stop_emf_job(mailbox_ugd, mailbox_ugd->emf_handle, true);
+               mailbox_ugd->previous_view = mailbox_ugd->view_type;
+               mailbox_ugd->view_type = EMAIL_VIEW_EDIT;
+
+               elm_entry_entry_set(mailbox_ugd->searchbar_en, "");
+               elm_object_focus_set(mailbox_ugd->searchbar_layout, EINA_FALSE);
+               elm_object_part_content_unset(mailbox_ugd->search_layout, "searchbar");
+               edje_object_signal_emit(_EDJ(mailbox_ugd->search_layout), "hide_searchbar", "search");
+               evas_object_hide(mailbox_ugd->searchbar_layout);
+
+               _create_controlbar(mailbox_ugd);
+               elm_object_item_part_content_set(mailbox_ugd->navibar_item[mailbox_ugd->previous_view], "controlbar", mailbox_ugd->controlbar_btns);
+               elm_object_disabled_set(mailbox_ugd->folder_button, EINA_TRUE);
+       }
+       else if(cnt <= 0)
+       {
+               debug_log("Exit edit mode");
+
+               /* update controlbar to mailbox menu */
+               b_editmode = false;
+//             elm_toolbar_item_selected_set(mailbox_ugd->edit_cancel_button, EINA_TRUE);
+               _edit_back_cb(mailbox_ugd, NULL, NULL);
+               elm_object_disabled_set(mailbox_ugd->folder_button, EINA_FALSE);
+       }
+       email_maillist_select_info(mailbox_ugd);
+}
+
+static void _list_item_clicked(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+
+       if (!event_info) {
+               debug_log("event_info is NULL");
+               return;
+       }
+
+       Elm_Object_Item *it = (Elm_Object_Item *)event_info;
+       list_data *ld = elm_object_item_data_get(it);
+
+       if (ld == NULL) {
+               debug_critical("list_data is NULL");
+               return;
+       }
+
+       if (ld->mailbox_ugd == NULL) {
+               debug_critical("ld->mailbox_ugd == NULL");
+               return;
+       }
+
+       if (b_editmode) {
+               ld->mailbox_ugd->view_type = EMAIL_VIEW_EDIT;
+       }
+
+       _stop_emf_job(ld->mailbox_ugd, ld->mailbox_ugd->emf_handle, true);
+
+       if (elm_genlist_item_selected_get((Elm_Object_Item *)it) == EINA_TRUE) {
+               elm_genlist_item_selected_set((Elm_Object_Item *)it, EINA_FALSE);
+       }
+
+       g_selected_item = it;
+
+       {
+               int id = ld->mail_id;
+
+               email_mailbox_t *mbox = NULL;
+               int e = email_get_mailbox_by_mailbox_id(ld->mailbox_id, &mbox);
+               if (e != EMAIL_ERROR_NONE) {
+                       debug_log(" email_get_mailbox_by_mailbox_id mailbox_id(%d)- err[%d]", ld->mailbox_id, e);
+                       return;
+               }
+
+               if ((mbox->mailbox_type == EMAIL_MAILBOX_TYPE_DRAFT
+                               || (mbox->mailbox_type == EMAIL_MAILBOX_TYPE_OUTBOX
+                               && (ld->is_sending_now == EMAIL_MAIL_STATUS_SEND_CANCELED
+                               || ld->is_sending_now == EMAIL_MAIL_STATUS_SEND_FAILURE)))
+                               && email_engine_check_body_download(ld->mail_id)) {
+
+                       if (ld->mailbox_ugd->ug_composer) {
+                               debug_log("Composer UG is already launched");
+                               return;
+                       }
+                       service_h service;
+                       if (SERVICE_ERROR_NONE != service_create(&service))
+                       {
+                               debug_log("creating service handle failed");
+                               return;
+                       }
+
+                       char cmd[30] = { 0, };
+                       snprintf(cmd, sizeof(cmd), "%d", RUN_COMPOSER_EDIT);
+
+                       char mailid[30] = { 0, };
+                       snprintf(mailid, sizeof(mailid), "%d", id);
+                       char acctid[30] = { 0, };
+                       snprintf(acctid, sizeof(acctid), "%d", ld->account_id);
+                       char mailboxid[30] = { 0, };
+                       snprintf(mailboxid, sizeof(mailboxid), "%d", ld->mailbox_id);
+                       service_add_extra_data(service, EMAIL_BUNDLE_KEY_RUN_TYPE, cmd);
+                       service_add_extra_data(service, EMAIL_BUNDLE_KEY_ACCOUNT_ID, acctid);
+                       service_add_extra_data(service, EMAIL_BUNDLE_KEY_MAILBOX, mailboxid);
+                       service_add_extra_data(service, EMAIL_BUNDLE_KEY_MAIL_ID, mailid);
+
+                       ld->mailbox_ugd->ug_composer = create_composer_ug(UG_NAME_EMAIL_COMPOSER, service, ld->mailbox_ugd);
+
+                       service_destroy(service);
+               }
+               else {
+                       if (ld->mailbox_ugd->isRotate == true) {
+                               if (evas_object_pass_events_get(ld->mailbox_ugd->gl[ld->mailbox_ugd->view_type]) == EINA_FALSE) {
+                                       debug_log("Set pass event - EINA_TRUE");
+                                       evas_object_pass_events_set(ld->mailbox_ugd->gl[ld->mailbox_ugd->view_type], EINA_TRUE);
+                               }
+                       }
+                       _open_email_body(id, (Elm_Object_Item *)it);
+               }
+               email_free_mailbox(&mbox, 1);
+       }
+}
+
+static void _insert_normal_item_to_mailist(EmailMailboxUGD *mailbox_ugd, list_data *ld,
+                                                       list_data *prev, list_data *next)
+{
+       debug_log("");
+       debug_log("prev_group_id: [%d], current_group_id: [%d], next_group_id: [%d]",
+                               prev? prev->group_index : -1, ld->group_index, next? next->group_index : -1);
+       EmailMailboxViewType view_type = mailbox_ugd->view_type;
+
+       /* group item is not in genlist, insert group item and normal item in sequence*/
+       if( !mailbox_ugd->git[view_type][ld->group_index] ) {
+               /* if next item exists, group item is placed before the next group item */
+               if( ITEM_EXIST(next) ) {
+                       mailbox_ugd->git[view_type][ld->group_index] = elm_genlist_item_insert_before(
+                                                                       mailbox_ugd->gl[view_type],
+                                                                       &(mailbox_ugd->itc2),
+                                                                       (void *)(ld->group_index + 1),
+                                                                       NULL,
+                                                                       mailbox_ugd->git[view_type][next->group_index],
+                                                                       ELM_GENLIST_ITEM_GROUP,
+                                                                       NULL, NULL);
+               }
+               /* if there is no next node, this group item is placed at end of list */
+               else {
+                       mailbox_ugd->git[view_type][ld->group_index] = elm_genlist_item_append(
+                                                                       mailbox_ugd->gl[view_type],
+                                                                       &(mailbox_ugd->itc2),
+                                                                       (void *)(ld->group_index + 1),
+                                                                       NULL,
+                                                                       ELM_GENLIST_ITEM_GROUP,
+                                                                       NULL, NULL);
+               }
+
+               if( !mailbox_ugd->git[view_type][ld->group_index] ) {
+                       debug_critical("group item should not be NULL");
+                       return;
+               }
+
+               if (ld->mailbox_type == EMAIL_MAILBOX_TYPE_OUTBOX || ld->mailbox_type == EMAIL_MAILBOX_TYPE_DRAFT)
+               {
+                       debug_log("mode/slide ld->mailbox_type: %d, mailbox_ugd->view_type: %d", ld->mailbox_type,mailbox_ugd->view_type);
+                       mailbox_ugd->itc1.decorate_item_style = "mode/slide2";
+               } else {
+                       debug_log("mode/slide4 ld->mailbox_type: %d, mailbox_ugd->view_type: %d", ld->mailbox_type,mailbox_ugd->view_type);
+                       mailbox_ugd->itc1.decorate_item_style = "mode/slide4";
+               }
+
+               /* insert the item after group item */
+               ld->item = elm_genlist_item_insert_after(
+                                                                       mailbox_ugd->gl[view_type],
+                                                                       &(mailbox_ugd->itc1),
+                                                                       ld,
+                                                                       mailbox_ugd->git[view_type][ld->group_index],
+                                                                       mailbox_ugd->git[view_type][ld->group_index],
+                                                                       ELM_GENLIST_ITEM_NONE,
+                                                                       _list_item_clicked,
+                                                                       NULL);
+       }
+       /* there exists the another normal item among the same group. find the normal item in same group */
+       else {
+               if ( !ITEM_EXIST(prev) && !ITEM_EXIST(next) ) {
+                       debug_warning("there is group item, but neither of prev item or next item exists");
+                       return;
+               }
+
+               if( ITEM_IN_SAME_GROUP(prev, ld) )
+                       ld->item = elm_genlist_item_insert_after(mailbox_ugd->gl[view_type],
+                                                       &(mailbox_ugd->itc1),
+                                                       ld,
+                                                       mailbox_ugd->git[view_type][ld->group_index],
+                                                       prev->item,
+                                                       ELM_GENLIST_ITEM_NONE,
+                                                       _list_item_clicked,
+                                                       NULL);
+
+               else if ( ITEM_IN_SAME_GROUP(next, ld) )
+                       ld->item = elm_genlist_item_insert_before(mailbox_ugd->gl[view_type],
+                                                       &(mailbox_ugd->itc1),
+                                                       ld,
+                                                       mailbox_ugd->git[view_type][ld->group_index],
+                                                       next->item,
+                                                       ELM_GENLIST_ITEM_NONE,
+                                                       _list_item_clicked,
+                                                       NULL);
+               else {
+                       debug_warning("There is group item(%d), but prev item(%d) or next item(%d) is not same group",
+                               ld->group_index, GROUP_INDEX(prev), GROUP_INDEX(next));
+                       return;
+               }
+       }
+
+       if(!ld->item)
+               debug_critical("ld->item should not be NULL");
+}
+
+
+list_data *_find_mailinfo_by_mailid(int mailid, GList *mail_list)
+{
+//     debug_enter();
+
+       list_data *ld = NULL;
+
+       /* find the list node having same mailid */
+       GList* cur = g_list_first(mail_list);
+       for( ; cur ; cur = g_list_next(cur)) {
+               ld = (list_data*) g_list_nth_data(cur, 0);
+               if( ld->mail_id == mailid ) return ld;
+       }
+
+       return NULL;
+}
+
+
+static int email_set_group(list_data *ld)
+{
+       int group_index = 0;
+       EmailMailboxUGD *mailbox_ugd = ld->mailbox_ugd;
+#if 1
+       int type = 0;
+       if(mailbox_ugd->view_type == EMAIL_VIEW_SEARCH ||mailbox_ugd->view_type == EMAIL_VIEW_EDIT)
+               type = mailbox_ugd->previous_view;
+       else
+               type = mailbox_ugd->view_type;
+       switch(type)
+#else
+       switch(mailbox_ugd->view_type)
+#endif
+       {
+               case EMAIL_VIEW_DATE:
+                       group_index = email_get_group_title_str(ld->absolute_time, &ld->group_title, &ld->group_date);
+                       break;
+
+               case EMAIL_VIEW_UNREAD:
+                       if(ld->is_seen == false){
+                               group_index = 0;
+                               ld->group_title = g_strdup(_("IDS_EMAIL_OPT_UNREAD"));
+                       }
+                       else
+                       {
+                               group_index = 1;
+                               ld->group_title = g_strdup(_("IDS_EMAIL_OPT_READ"));
+                       }
+                       ld->group_date = NULL;
+                       break;
+
+               case EMAIL_VIEW_ATTACHMENTS:
+                       if(ld->is_attachment == false){
+                               group_index = 0;
+                               ld->group_title = g_strdup(_("IDS_EMAIL_BODY_OTHER"));
+                       }
+                       else
+                       {
+                               group_index = 1;
+                               ld->group_title = g_strdup(_("IDS_EMAIL_BODY_ATTACHMENTS"));
+                       }
+                       ld->group_date = NULL;
+                       break;
+
+               case EMAIL_VIEW_PRIORITY:
+                       if(ld->priority == EMAIL_OPTION_PRIORITY_HIGH){
+                               group_index = 0;
+                               ld->group_title = g_strdup(_("IDS_EMAIL_BODY_HIGH_M_PRIORITY"));
+                       }
+                       else if(ld->priority == EMAIL_OPTION_PRIORITY_NORMAL)
+                       {
+                               group_index = 1;
+                               ld->group_title = g_strdup(_("IDS_EMAIL_BODY_NORMAL_M_EMAILPRIORITY"));
+                       }
+                       else
+                       {
+                               group_index = 2;
+                               ld->group_title = g_strdup(_("IDS_EMAIL_BODY_LOW_M_EMAILPRIORITY"));
+                       }
+                       ld->group_date = NULL;
+                       break;
+
+               case EMAIL_VIEW_IMPORTANT:
+                       if(ld->imp_sel == EMAIL_FLAG_NONE)
+                       {
+                               group_index = 0;
+                               ld->group_title = g_strdup(_("IDS_EMAIL_BODY_OTHER"));
+                       }
+                       else if(ld->imp_sel == EMAIL_FLAG_FLAGED)
+                       {
+                               group_index = 1;
+                               ld->group_title = g_strdup(_("IDS_EMAIL_BODY_FAVOURITES"));
+                       }
+                       else if(ld->imp_sel == EMAIL_FLAG_TASK_STATUS_CLEAR)
+                       {
+                               group_index = 2;
+                               ld->group_title = g_strdup(_("IDS_EMAIL_BODY_CLEAR"));
+                       }
+                       else if(ld->imp_sel == EMAIL_FLAG_TASK_STATUS_ACTIVE)
+                       {
+                               group_index = 3;
+                               ld->group_title = g_strdup(N_("Active"));
+                       }
+                       else
+                       {
+                               group_index = 4;
+                               ld->group_title = g_strdup(_("IDS_EMAIL_BODY_COMPLETE"));
+                       }
+                       ld->group_date = NULL;
+                       break;
+
+       }
+       return group_index;
+}
+
+void _delete_selection_info(EmailMailboxUGD *mailbox_ugd)
+{
+       debug_log("");
+
+       if (mailbox_ugd->selectioninfo_layout != NULL) {
+               evas_object_del(mailbox_ugd->selectioninfo_layout);
+               mailbox_ugd->selectioninfo_layout = NULL;
+       }
+}
+
+static void _handle_last_sending_email(EmailMailboxUGD *mailbox_ugd)
+{
+       debug_log("view_type [%d] item pointer [%p]", mailbox_ugd->view_type, mailbox_ugd->navibar_item[mailbox_ugd->view_type]);
+
+       _create_email_no_content_view(mailbox_ugd);
+}
+
+/* dest_len is max str len of dest (not including \0)*/
+static void insert_search_tag (char *dest, int dest_len, const char *src, const char *key)
+{
+       if (!key || !dest || !src) return;
+       int src_len = STR_LEN(src);
+       int key_len = STR_LEN(key);
+       if (src_len <= 0 || key_len <= 0) {
+               debug_warning("src(%d) or key(%d) 0 long", src_len, key_len);
+               return;
+       }
+
+       char *sub = (char *)strcasestr(src, key);
+       if (!sub) {
+               STR_NCPY(dest, src, dest_len);
+               return;
+       }
+
+       /* pre unmatched */
+       int pre_len = src_len - STR_LEN(sub);
+       dest[0] = '\0';
+       strncat(dest, src, pre_len);
+
+       /* tagged key */
+       strcat(dest, "<match>");
+       strncat(dest, src + pre_len, STR_LEN(key));
+       strcat(dest, "</>");
+
+       /* remainder */
+       const char *remainder = src + pre_len + STR_LEN(key);
+       strcat(dest, remainder);
+}
+
+list_data *make_list_data(email_mail_list_item_t* mail_info, const EmailSearchData *search_data, EmailMailboxUGD *mailbox_ugd)
+{
+       if(!mail_info) {
+               debug_warning("mail_info is NULL"); return NULL;
+       }
+
+       list_data *ld = MEM_ALLOC(ld, 1);
+       if(!ld) return NULL;
+
+       /* info field. */
+       ld->mail_id = mail_info->mail_id;
+       ld->is_seen = mail_info->flags_seen_field;
+       ld->is_attachment = mail_info->has_attachment;
+       ld->priority = mail_info->priority;
+       ld->is_body_download = mail_info->is_text_downloaded;
+       ld->account_id = mail_info->account_id;
+       ld->imp_sel = mail_info->flags_flagged_field;
+       ld->is_sending_now = mail_info->save_status;
+       ld->mailbox_id = mail_info->mailbox_id;
+       ld->preview_body = STRNDUP(mail_info->previewBodyText, MAX_PREVIEW_TEXT_LENGTH - 1);
+       ld->reply_flag = mail_info->flags_answered_field;
+       ld->forward_flag = mail_info->flags_forwarded_field;
+       ld->followup_flag = mail_info->flags_flagged_field;
+       //debug_log("preview_body: %s", mail_info->previewBodyText);
+
+       /* datetime. */
+       ld->absolute_time = mail_info->date_time;
+
+       /* sender. */
+       ld->sender = (STR_VALID(mail_info->from_email_address))?
+                                       STRNDUP(mail_info->from_email_address, ADDR_LEN - 1) :
+                                       STRNDUP(_("IDS_EMAIL_POP_NO_SENDER"), ADDR_LEN - 1);
+
+
+
+       UTF8_VALIDATE(mail_info->from, FROM_LEN - 1);
+       ld->alias = GET_NAME_FROM_ALIAS(mail_info->from, FROM_LEN - 1);
+       debug_log("alias: %s", ld->alias);
+
+       if(mailbox_ugd->mode == EMAIL_MAILBOX_MODE_MAILBOX &&
+               (ld->mailbox_type == EMAIL_MAILBOX_TYPE_OUTBOX ||
+               ld->mailbox_type == EMAIL_MAILBOX_TYPE_SENTBOX ||
+               ld->mailbox_type == EMAIL_MAILBOX_TYPE_DRAFT)) {
+               /* recipient display name from email alais */
+               UTF8_VALIDATE(mail_info->recipients, RECIPIENT_LEN - 1);
+               ld->recipient = GET_NAME_FROM_ALIAS(mail_info->recipients, RECIPIENT_LEN - 1);
+               debug_log("info->recipient: %s", ld->recipient);
+       } else {
+               /* sender display name from email alias */
+               if (mailbox_ugd->view_type == EMAIL_VIEW_SEARCH) {
+                       char *from = GET_NAME_FROM_ALIAS(mail_info->from, FROM_LEN - 1);
+                       char *_from = elm_entry_utf8_to_markup(from);
+                       char *_search_sender = NULL;
+                       int from_len = STR_LEN(_from); /* it is never zero */
+                       ld->from = MEM_ALLOC_STR(from_len + TAG_LEN + 1);
+
+                       if(search_data)
+                               _search_sender = elm_entry_utf8_to_markup(search_data->sender);
+
+                       if( search_data && STR_VALID(search_data->sender) ) {
+                               insert_search_tag(ld->from, from_len + TAG_LEN, (const char *) _from, _search_sender);
+                       }
+                       else
+                               STR_NCPY(ld->from, _from, from_len + TAG_LEN);
+
+                       FREE(from);
+                       FREE(_from);
+                       FREE(_search_sender);
+               }
+       }
+
+       /* subject. */
+       if(STR_VALID(mail_info->subject)) {
+               UTF8_VALIDATE(mail_info->subject, SUBJECT_LEN);
+               char *_subject = elm_entry_utf8_to_markup(mail_info->subject);
+               int title_len = STR_LEN(_subject);
+               ld->title = MEM_ALLOC_STR(title_len + TAG_LEN + 1);
+               if( search_data && STR_VALID(search_data->subject) )
+                       insert_search_tag(ld->title, title_len + TAG_LEN, (const char *) _subject, search_data->subject);
+               else
+                       STR_NCPY(ld->title, _subject, title_len + TAG_LEN);
+               FREE(_subject);
+       }
+       else {
+               ld->title = MEM_ALLOC_STR(SUBJECT_LEN + TAG_LEN + 1);
+               STR_NCPY(ld->title, _("IDS_EMAIL_BODY_NO_SUBJECT"), SUBJECT_LEN + TAG_LEN);
+       }
+       debug_log("title: %s", ld->title);
+
+       ld->mailbox_type = GET_MAILBOX_TYPE(mail_info->mailbox_id);
+       ld->account_color = GET_ACCOUNT_COLOR(mail_info->account_id);
+       ld->mailbox_ugd = mailbox_ugd;
+       /* convert datetime format. */
+       ld->timeordate = email_get_str_datetime(ld->absolute_time);
+       //ld->group_index = email_get_group_title_str(ld->absolute_time, &ld->group_title, &ld->group_date);
+       ld->group_index = email_set_group(ld);
+       ld->chksel = EINA_FALSE;
+
+       debug_log("time %d [%s]", ld->absolute_time, ld->timeordate);
+       return ld;
+}
+
+
+static void _free_list_data(GList *p_list_data)
+{
+       debug_log("");
+       if (p_list_data == NULL) {
+               debug_log("GList * == NULL");
+               return;
+       }
+
+       int i = 0;
+       GList *list = (GList *)(p_list_data);
+       list_data *ld = NULL;
+       debug_log("g_list_length(list): %d", g_list_length(list));
+
+       for (i = 0; i < g_list_length(list); i++) {
+               ld = (list_data *)g_list_nth_data(list, i);
+               _free_list_data_simple(ld);
+       }
+
+       if (list) {
+               g_list_free(list);
+       }
+       p_list_data = NULL;
+}
+
+
+void _make_mail_list(EmailMailboxUGD *mailbox_ugd, const EmailSearchData *search_data)
+{
+       debug_enter();
+       debug_log("view_type: [%d]", mailbox_ugd->view_type);
+
+       email_mail_list_item_t *mail_list = NULL;
+       int mail_count = 0;
+
+       mail_list = _get_mail_list_by_view(mailbox_ugd, search_data, &mail_count);
+       mailbox_ugd->total_count = mail_count;
+       alias = NULL;
+
+       if( mail_list ) {
+               if(mailbox_ugd->view_type == EMAIL_VIEW_SEARCH) {
+                       _add_mail_list_n_data(mailbox_ugd, mail_list, mail_count, search_data);
+                       FREE(mail_list);
+               }
+               else
+               {
+                       _add_mail_list_n_data(mailbox_ugd, mail_list, MIN(mail_count, FIRST_BLOCK_SIZE), search_data);
+                       debug_log("COUNT: %d", mail_count);
+                       if( mail_count > FIRST_BLOCK_SIZE ) {/* add remainder list by using thread */
+                               mail_remaining_list_t *req = MEM_ALLOC(req, 1);
+                               if(!req) return;
+                               *req = (mail_remaining_list_t) {mail_list, FIRST_BLOCK_SIZE, mail_count,
+                                                                                               mailbox_ugd->view_type, mailbox_ugd->mode, mailbox_ugd};
+                               debug_log("Spawning thread");
+                               Ecore_Thread *e = ecore_thread_feedback_run(worker_get_remaing_list_cb, add_remining_item_cb,
+                                                                                               _remaining_finish_cb, NULL, req, EINA_TRUE);
+                               if( !e )
+                                       debug_log("ecore_thread_feedback_run error");
+                       } else {
+                               FREE(mail_list);
+                       }
+               }
+               debug_log("total count is not 0");
+
+               if (mailbox_ugd->view_type == EMAIL_VIEW_SEARCH)
+               {
+                       debug_log("");
+                       if (list_lock) {
+                               edje_object_signal_emit(_EDJ(mailbox_ugd->search_layout), "hide_noc", "elm");
+                               edje_object_signal_emit(_EDJ(mailbox_ugd->search_layout), "show_list", "elm");
+                       }
+                       list_lock = false;
+               }
+               else
+               {
+                       edje_object_signal_emit(_EDJ(mailbox_ugd->search_layout), "hide_noc", "elm");
+                       edje_object_signal_emit(_EDJ(mailbox_ugd->search_layout), "show_list", "elm");
+                       //elm_object_item_disabled_set(mailbox_ugd->edit_button, EINA_FALSE);
+                       if (mailbox_ugd->delete_all_button != NULL) {
+                               elm_object_item_disabled_set(mailbox_ugd->delete_all_button, EINA_FALSE);
+                       }
+                       list_lock = false;
+               }
+
+               }
+       else
+       {
+               if (evas_object_visible_get(mailbox_ugd->gl[mailbox_ugd->view_type]))
+                       evas_object_hide(mailbox_ugd->gl[mailbox_ugd->view_type]);
+
+               if (mailbox_ugd->view_type == EMAIL_VIEW_SEARCH) {
+
+                       Evas_Object *no_content = elm_object_part_content_get(mailbox_ugd->search_layout, "noc");
+                       elm_layout_theme_set(no_content, "layout", "nocontents", "search");
+                       elm_object_part_text_set(no_content, "elm.text", dgettext("sys_string", "IDS_COM_BODY_NO_SEARCH_RESULTS"));
+                       edje_object_signal_emit(_EDJ(mailbox_ugd->search_layout), "hide_list", "elm");
+                       edje_object_signal_emit(_EDJ(mailbox_ugd->search_layout), "show_noc", "elm");
+
+                       list_lock = true;
+               } else {
+
+                       if (b_editmode)
+                               _edit_back_cb(mailbox_ugd, NULL, NULL);
+
+                       if ((mailbox_ugd->current_rotmode == APP_DEVICE_ORIENTATION_270 || mailbox_ugd->current_rotmode == APP_DEVICE_ORIENTATION_90) && elm_panes_content_left_size_get(mailbox_ugd->panes) == 0.4) {
+                               _handle_last_sending_email(mailbox_ugd);
+                       }
+                       Evas_Object *no_content = elm_object_part_content_get(mailbox_ugd->search_layout, "noc");
+                       elm_layout_theme_set(no_content, "layout", "nocontents", "text");
+                       elm_object_part_text_set(no_content, "elm.text", dgettext("sys_string", "IDS_COM_BODY_NO_CONTENTS"));
+                       edje_object_signal_emit(_EDJ(mailbox_ugd->search_layout), "hide_list", "elm");
+                       edje_object_signal_emit(_EDJ(mailbox_ugd->search_layout), "show_noc", "elm");
+
+                       if(mailbox_ugd->delete_all_button) {
+                               elm_object_item_disabled_set(mailbox_ugd->delete_all_button, EINA_TRUE);
+                       }
+                       list_lock = true;
+
+               }
+       }
+
+       debug_leave();
+}
+
+email_mail_list_item_t *_get_mail_list_by_view(EmailMailboxUGD *mailbox_ugd, const EmailSearchData *search_data, int *mail_count)
+{
+       debug_enter();
+       email_mail_list_item_t *mail_data = NULL;
+       int mailbox_type = EMAIL_MAILBOX_TYPE_NONE;
+
+       if(mailbox_ugd->mailbox_type == EMAIL_MAILBOX_TYPE_NONE)
+               mailbox_type = EMAIL_MAILBOX_TYPE_INBOX;
+       else
+               mailbox_type = mailbox_ugd->mailbox_type;
+
+       if (mailbox_ugd->view_type == EMAIL_VIEW_SEARCH) {
+               if (mailbox_ugd->mode == EMAIL_MAILBOX_MODE_ALL) {
+                       mail_data = _mailbox_get_mail_list_by_mailbox_type(0, mailbox_type, mailbox_ugd->sort_type, EMAIL_GET_MAIL_NORMAL, mailbox_ugd->search_type, search_data, mail_count);
+               } else {
+                       mail_data = _mailbox_get_mail_list_by_mailbox_id(mailbox_ugd->account_id, mailbox_ugd->mailbox_id, mailbox_ugd->sort_type, EMAIL_GET_MAIL_NORMAL, mailbox_ugd->search_type, search_data, mail_count);
+               }
+       } else {
+               if (mailbox_ugd->mode == EMAIL_MAILBOX_MODE_ALL) {
+                       mail_data = _mailbox_get_mail_list_by_mailbox_type(0, mailbox_type, mailbox_ugd->sort_type, EMAIL_GET_MAIL_NORMAL, EMAIL_SEARCH_NONE, NULL, mail_count);
+               } else {
+                       mail_data = _mailbox_get_mail_list_by_mailbox_id(mailbox_ugd->account_id, mailbox_ugd->mailbox_id, mailbox_ugd->sort_type, EMAIL_GET_MAIL_NORMAL, EMAIL_SEARCH_NONE, NULL, mail_count);
+               }
+       }
+       debug_leave();
+       return mail_data;
+}
+
+
+int _mailbox_get_filter_cnt_for_search_data(EmailSearchType search_type, const EmailSearchData *search_data)
+{
+       debug_enter();
+
+       int search_filter_cnt = 0;
+
+       switch (search_type) {
+       case EMAIL_SEARCH_ALL:
+               if (search_data->subject) {
+                       search_filter_cnt += 2;
+               }
+               if (search_data->sender) {
+                       search_filter_cnt += 2;
+               }
+               if (search_data->recipient) {
+                       search_filter_cnt += 2;
+               }
+               if (search_filter_cnt > 0) {
+                       search_filter_cnt += 2;
+               }
+               break;
+       case EMAIL_SEARCH_SUBJECT:
+               search_filter_cnt += 2;
+               break;
+       case EMAIL_SEARCH_FROM:
+               search_filter_cnt += 2;
+               break;
+       case EMAIL_SEARCH_TO:
+               search_filter_cnt += 2;
+               break;
+       case EMAIL_SEARCH_DATE:
+               if (search_data->from_time) {
+                       search_filter_cnt += 2;
+               }
+               if (search_data->to_time) {
+                       search_filter_cnt += 2;
+               }
+               break;
+       case EMAIL_SEARCH_ADVANCED:
+               if (search_data) {
+                       if (search_data->subject) {
+                               search_filter_cnt += 2;
+                       }
+                       if (search_data->sender) {
+                               search_filter_cnt += 2;
+                       }
+                       if (search_data->recipient) {
+                               search_filter_cnt += 2;
+                       }
+                       if (search_data->from_time) {
+                               search_filter_cnt += 2;
+                       }
+                       if (search_data->to_time) {
+                               search_filter_cnt += 2;
+                       }
+               }
+               break;
+       default:
+               debug_log("invlaid search_type(%d)", search_type);
+               break;
+       }
+
+       debug_log("search_filter_cnt: %d", search_filter_cnt);
+
+       return search_filter_cnt;
+
+}
+
+void mailbox_add_search_data_into_filter_list(EmailSearchType search_type, const EmailSearchData *search_data, email_list_filter_t *filter_list, int *current_index)
+{
+       debug_enter();
+
+       int i = *current_index;
+
+       if (!search_data) {
+               debug_critical("search_data is NULL");
+               return;
+       }
+
+       switch (search_type) {
+       case EMAIL_SEARCH_ALL:
+       {
+               int filter_rule_cnt = 0;
+               if (search_data->subject || search_data->sender || search_data->recipient) {
+                       filter_list[i].list_filter_item_type = EMAIL_LIST_FILTER_ITEM_OPERATOR;
+                       filter_list[i].list_filter_item.operator_type = EMAIL_LIST_FILTER_OPERATOR_AND;
+                       i++;
+
+
+                       filter_list[i].list_filter_item_type = EMAIL_LIST_FILTER_ITEM_OPERATOR;
+                       filter_list[i].list_filter_item.operator_type = EMAIL_LIST_FILTER_OPERATOR_LEFT_PARENTHESIS;
+                       i++;
+               }
+               if (search_data->subject) {
+                       filter_list[i].list_filter_item_type = EMAIL_LIST_FILTER_ITEM_RULE;
+                       filter_list[i].list_filter_item.rule.target_attribute = EMAIL_MAIL_ATTRIBUTE_SUBJECT;
+                       filter_list[i].list_filter_item.rule.rule_type = EMAIL_LIST_FILTER_RULE_INCLUDE;
+                       filter_list[i].list_filter_item.rule.key_value.string_type_value = g_strdup(search_data->subject);
+                       i++;
+                       filter_rule_cnt++;
+               }
+               if (search_data->sender) {
+                       if (filter_rule_cnt > 0) {
+                               filter_list[i].list_filter_item_type = EMAIL_LIST_FILTER_ITEM_OPERATOR;
+                               filter_list[i].list_filter_item.operator_type = EMAIL_LIST_FILTER_OPERATOR_OR;
+                               i++;
+                       }
+
+                       filter_list[i].list_filter_item_type = EMAIL_LIST_FILTER_ITEM_RULE;
+                       filter_list[i].list_filter_item.rule.target_attribute = EMAIL_MAIL_ATTRIBUTE_FROM;
+                       filter_list[i].list_filter_item.rule.rule_type = EMAIL_LIST_FILTER_RULE_INCLUDE;
+                       filter_list[i].list_filter_item.rule.key_value.string_type_value = g_strdup(search_data->sender);
+                       i++;
+                       filter_rule_cnt++;
+               }
+               if (search_data->recipient) {
+                       if (filter_rule_cnt > 0) {
+                               filter_list[i].list_filter_item_type = EMAIL_LIST_FILTER_ITEM_OPERATOR;
+                               filter_list[i].list_filter_item.operator_type = EMAIL_LIST_FILTER_OPERATOR_OR;
+                               i++;
+                       }
+
+                       filter_list[i].list_filter_item_type = EMAIL_LIST_FILTER_ITEM_RULE;
+                       filter_list[i].list_filter_item.rule.target_attribute = EMAIL_MAIL_ATTRIBUTE_TO;
+                       filter_list[i].list_filter_item.rule.rule_type = EMAIL_LIST_FILTER_RULE_INCLUDE;
+                       filter_list[i].list_filter_item.rule.key_value.string_type_value = g_strdup(search_data->recipient);
+                       i++;
+                       filter_rule_cnt++;
+               }
+               if (filter_rule_cnt > 0) {
+                       filter_list[i].list_filter_item_type = EMAIL_LIST_FILTER_ITEM_OPERATOR;
+                       filter_list[i].list_filter_item.operator_type = EMAIL_LIST_FILTER_OPERATOR_RIGHT_PARENTHESIS;
+                       i++;
+               }
+       }
+       break;
+       case EMAIL_SEARCH_SUBJECT:
+               filter_list[i].list_filter_item_type = EMAIL_LIST_FILTER_ITEM_OPERATOR;
+               filter_list[i].list_filter_item.operator_type = EMAIL_LIST_FILTER_OPERATOR_AND;
+               i++;
+
+               filter_list[i].list_filter_item_type = EMAIL_LIST_FILTER_ITEM_RULE;
+               filter_list[i].list_filter_item.rule.target_attribute = EMAIL_MAIL_ATTRIBUTE_SUBJECT;
+               filter_list[i].list_filter_item.rule.rule_type = EMAIL_LIST_FILTER_RULE_INCLUDE;
+               filter_list[i].list_filter_item.rule.key_value.string_type_value = g_strdup(search_data->subject);
+               i++;
+               break;
+       case EMAIL_SEARCH_FROM:
+               filter_list[i].list_filter_item_type = EMAIL_LIST_FILTER_ITEM_OPERATOR;
+               filter_list[i].list_filter_item.operator_type = EMAIL_LIST_FILTER_OPERATOR_AND;
+               i++;
+
+               filter_list[i].list_filter_item_type = EMAIL_LIST_FILTER_ITEM_RULE;
+               filter_list[i].list_filter_item.rule.target_attribute = EMAIL_MAIL_ATTRIBUTE_FROM;
+               filter_list[i].list_filter_item.rule.rule_type = EMAIL_LIST_FILTER_RULE_INCLUDE;
+               filter_list[i].list_filter_item.rule.key_value.string_type_value = g_strdup(search_data->sender);
+               i++;
+               break;
+       case EMAIL_SEARCH_TO:
+               filter_list[i].list_filter_item_type = EMAIL_LIST_FILTER_ITEM_OPERATOR;
+               filter_list[i].list_filter_item.operator_type = EMAIL_LIST_FILTER_OPERATOR_AND;
+               i++;
+
+               filter_list[i].list_filter_item_type = EMAIL_LIST_FILTER_ITEM_RULE;
+               filter_list[i].list_filter_item.rule.target_attribute = EMAIL_MAIL_ATTRIBUTE_TO;
+               filter_list[i].list_filter_item.rule.rule_type = EMAIL_LIST_FILTER_RULE_INCLUDE;
+               filter_list[i].list_filter_item.rule.key_value.string_type_value = g_strdup(search_data->recipient);
+               i++;
+               break;
+       case EMAIL_SEARCH_DATE:
+               filter_list[i].list_filter_item_type = EMAIL_LIST_FILTER_ITEM_OPERATOR;
+               filter_list[i].list_filter_item.operator_type = EMAIL_LIST_FILTER_OPERATOR_AND;
+               i++;
+
+               filter_list[i].list_filter_item_type = EMAIL_LIST_FILTER_ITEM_RULE;
+               filter_list[i].list_filter_item.rule.target_attribute = EMAIL_MAIL_ATTRIBUTE_DATE_TIME;
+               filter_list[i].list_filter_item.rule.rule_type = EMAIL_LIST_FILTER_RULE_GREATER_THAN_OR_EQUAL;
+               filter_list[i].list_filter_item.rule.key_value.datetime_type_value = search_data->from_time;
+               i++;
+
+               filter_list[i].list_filter_item_type = EMAIL_LIST_FILTER_ITEM_OPERATOR;
+               filter_list[i].list_filter_item.operator_type = EMAIL_LIST_FILTER_OPERATOR_AND;
+               i++;
+
+               filter_list[i].list_filter_item_type = EMAIL_LIST_FILTER_ITEM_RULE;
+               filter_list[i].list_filter_item.rule.target_attribute = EMAIL_MAIL_ATTRIBUTE_DATE_TIME;
+               filter_list[i].list_filter_item.rule.rule_type = EMAIL_LIST_FILTER_RULE_LESS_THAN_OR_EQUAL;
+               filter_list[i].list_filter_item.rule.key_value.datetime_type_value = search_data->to_time;
+               i++;
+
+               break;
+       case EMAIL_SEARCH_ADVANCED:
+               if (search_data->subject) {
+                       filter_list[i].list_filter_item_type = EMAIL_LIST_FILTER_ITEM_OPERATOR;
+                       filter_list[i].list_filter_item.operator_type = EMAIL_LIST_FILTER_OPERATOR_AND;
+                       i++;
+
+                       filter_list[i].list_filter_item_type = EMAIL_LIST_FILTER_ITEM_RULE;
+                       filter_list[i].list_filter_item.rule.target_attribute = EMAIL_MAIL_ATTRIBUTE_SUBJECT;
+                       filter_list[i].list_filter_item.rule.rule_type = EMAIL_LIST_FILTER_RULE_INCLUDE;
+                       filter_list[i].list_filter_item.rule.key_value.string_type_value = g_strdup(search_data->subject);
+                       i++;
+               }
+               if (search_data->sender) {
+                       filter_list[i].list_filter_item_type = EMAIL_LIST_FILTER_ITEM_OPERATOR;
+                       filter_list[i].list_filter_item.operator_type = EMAIL_LIST_FILTER_OPERATOR_AND;
+                       i++;
+
+                       filter_list[i].list_filter_item_type = EMAIL_LIST_FILTER_ITEM_RULE;
+                       filter_list[i].list_filter_item.rule.target_attribute = EMAIL_MAIL_ATTRIBUTE_FROM;
+                       filter_list[i].list_filter_item.rule.rule_type = EMAIL_LIST_FILTER_RULE_INCLUDE;
+                       filter_list[i].list_filter_item.rule.key_value.string_type_value = g_strdup(search_data->sender);
+                       i++;
+               }
+               if (search_data->recipient) {
+                       filter_list[i].list_filter_item_type = EMAIL_LIST_FILTER_ITEM_OPERATOR;
+                       filter_list[i].list_filter_item.operator_type = EMAIL_LIST_FILTER_OPERATOR_AND;
+                       i++;
+
+                       filter_list[i].list_filter_item_type = EMAIL_LIST_FILTER_ITEM_RULE;
+                       filter_list[i].list_filter_item.rule.target_attribute = EMAIL_MAIL_ATTRIBUTE_TO;
+                       filter_list[i].list_filter_item.rule.rule_type = EMAIL_LIST_FILTER_RULE_INCLUDE;
+                       filter_list[i].list_filter_item.rule.key_value.string_type_value = g_strdup(search_data->recipient);
+                       i++;
+               }
+               if (search_data->from_time) {
+                       filter_list[i].list_filter_item_type = EMAIL_LIST_FILTER_ITEM_OPERATOR;
+                       filter_list[i].list_filter_item.operator_type = EMAIL_LIST_FILTER_OPERATOR_AND;
+                       i++;
+
+                       filter_list[i].list_filter_item_type = EMAIL_LIST_FILTER_ITEM_RULE;
+                       filter_list[i].list_filter_item.rule.target_attribute = EMAIL_MAIL_ATTRIBUTE_DATE_TIME;
+                       filter_list[i].list_filter_item.rule.rule_type = EMAIL_LIST_FILTER_RULE_GREATER_THAN_OR_EQUAL;
+                       filter_list[i].list_filter_item.rule.key_value.datetime_type_value = search_data->from_time;
+                       i++;
+               }
+               if (search_data->to_time) {
+                       filter_list[i].list_filter_item_type = EMAIL_LIST_FILTER_ITEM_OPERATOR;
+                       filter_list[i].list_filter_item.operator_type = EMAIL_LIST_FILTER_OPERATOR_AND;
+                       i++;
+
+                       filter_list[i].list_filter_item_type = EMAIL_LIST_FILTER_ITEM_RULE;
+                       filter_list[i].list_filter_item.rule.target_attribute = EMAIL_MAIL_ATTRIBUTE_DATE_TIME;
+                       filter_list[i].list_filter_item.rule.rule_type = EMAIL_LIST_FILTER_RULE_LESS_THAN_OR_EQUAL;
+                       filter_list[i].list_filter_item.rule.key_value.datetime_type_value = search_data->to_time;
+                       i++;
+               }
+               break;
+       default:
+               debug_log("invlaid search_type(%d)", search_type);
+               break;
+       }
+
+       *current_index = i;
+
+       debug_leave();
+}
+
+void _mailbox_make_sorting_rule_list(EmailSortType sort_type, email_list_sorting_rule_t *sorting_rule_list)
+{
+       debug_enter();
+
+       switch (sort_type) {
+       case EMAIL_SORT_DATE_RECENT:
+               sorting_rule_list[0].target_attribute = EMAIL_MAIL_ATTRIBUTE_DATE_TIME;
+               sorting_rule_list[0].sort_order = EMAIL_SORT_ORDER_DESCEND;
+               sorting_rule_list[0].force_boolean_check = false;
+               break;
+       case EMAIL_SORT_DATE_OLDEST:
+               sorting_rule_list[0].target_attribute = EMAIL_MAIL_ATTRIBUTE_DATE_TIME;
+               sorting_rule_list[0].sort_order = EMAIL_SORT_ORDER_ASCEND;
+               sorting_rule_list[0].force_boolean_check = false;
+               break;
+       case EMAIL_SORT_SENDER_ATOZ:
+               sorting_rule_list[0].target_attribute = EMAIL_MAIL_ATTRIBUTE_FROM;
+               sorting_rule_list[0].sort_order = EMAIL_SORT_ORDER_ASCEND;
+               sorting_rule_list[0].force_boolean_check = false;
+               break;
+       case EMAIL_SORT_SENDER_ZTOA:
+               sorting_rule_list[0].target_attribute = EMAIL_MAIL_ATTRIBUTE_FROM;
+               sorting_rule_list[0].sort_order = EMAIL_SORT_ORDER_DESCEND;
+               sorting_rule_list[0].force_boolean_check = false;
+               break;
+       case EMAIL_SORT_RCPT_ATOZ:
+               sorting_rule_list[0].target_attribute = EMAIL_MAIL_ATTRIBUTE_TO;
+               sorting_rule_list[0].sort_order = EMAIL_SORT_ORDER_ASCEND;
+               sorting_rule_list[0].force_boolean_check = false;
+               break;
+       case EMAIL_SORT_RCPT_ZTOA:
+               sorting_rule_list[0].target_attribute = EMAIL_MAIL_ATTRIBUTE_TO;
+               sorting_rule_list[0].sort_order = EMAIL_SORT_ORDER_DESCEND;
+               sorting_rule_list[0].force_boolean_check = false;
+               break;
+       case EMAIL_SORT_UNREAD:
+               sorting_rule_list[0].target_attribute = EMAIL_MAIL_ATTRIBUTE_FLAGS_SEEN_FIELD;
+               sorting_rule_list[0].sort_order = EMAIL_SORT_ORDER_ASCEND;
+               sorting_rule_list[0].force_boolean_check = false;
+               break;
+       case EMAIL_SORT_IMPORTANT:
+               sorting_rule_list[0].target_attribute = EMAIL_MAIL_ATTRIBUTE_FLAGS_FLAGGED_FIELD;
+               sorting_rule_list[0].sort_order = EMAIL_SORT_ORDER_DESCEND;
+               sorting_rule_list[0].force_boolean_check = false;
+               break;
+       case EMAIL_SORT_PRIORITY:
+               sorting_rule_list[0].target_attribute = EMAIL_MAIL_ATTRIBUTE_PRIORITY;
+               sorting_rule_list[0].sort_order = EMAIL_SORT_ORDER_DESCEND;
+               sorting_rule_list[0].force_boolean_check = false;
+               break;
+       case EMAIL_SORT_ATTACHMENTS:
+               sorting_rule_list[0].target_attribute = EMAIL_MAIL_ATTRIBUTE_ATTACHMENT_COUNT;
+               sorting_rule_list[0].sort_order = EMAIL_SORT_ORDER_ASCEND;
+               sorting_rule_list[0].force_boolean_check = true;
+               break;
+       default:
+               debug_error("INVALID sort_type.");
+               break;
+       }
+}
+
+email_mail_list_item_t *_mailbox_get_mail_list_by_mailbox_id(int account_id, int mailbox_id, int sort_type, int thread_id, EmailSearchType search_type, const EmailSearchData *search_data, int *mail_count)
+{
+       debug_enter();
+       debug_log("account_id: %d, mailbox_id: %d, sort_type: %d, thread_id : %d, search_type: %d", account_id, mailbox_id, sort_type, thread_id, search_type);
+
+       email_mail_list_item_t *mail_list = NULL;
+       email_list_filter_t *filter_list = NULL;
+       email_list_sorting_rule_t *sorting_rule_list = NULL;
+       int cnt_filter_list = 0;
+       int cnt_soring_rule = 0;
+       int err = 0;
+       int i = 0;
+
+
+       if (account_id == 0)
+               cnt_filter_list += 1;
+       else if (account_id > 0)
+               cnt_filter_list += 3;
+       else {
+               debug_error("account_id SHOULD be greater than or equal to 0.");
+               return NULL;
+       }
+
+
+       if (search_data && search_type > EMAIL_SEARCH_NONE && search_type < EMAIL_SEARCH_MAX)
+               cnt_filter_list += _mailbox_get_filter_cnt_for_search_data(search_type, search_data);
+
+       debug_log("cnt_filter_list: %d", cnt_filter_list);
+
+       filter_list = malloc(sizeof(email_list_filter_t) * cnt_filter_list);
+       memset(filter_list, 0, sizeof(email_list_filter_t) * cnt_filter_list);
+
+       if (account_id == 0) {
+               filter_list[i].list_filter_item_type = EMAIL_LIST_FILTER_ITEM_RULE;
+               filter_list[i].list_filter_item.rule.target_attribute = EMAIL_MAIL_ATTRIBUTE_MAILBOX_ID;
+               filter_list[i].list_filter_item.rule.rule_type = EMAIL_LIST_FILTER_RULE_EQUAL;
+               filter_list[i].list_filter_item.rule.key_value.integer_type_value = mailbox_id;
+               i++;
+       } else if (account_id > 0) {
+               filter_list[i].list_filter_item_type = EMAIL_LIST_FILTER_ITEM_RULE;
+               filter_list[i].list_filter_item.rule.target_attribute = EMAIL_MAIL_ATTRIBUTE_ACCOUNT_ID;
+               filter_list[i].list_filter_item.rule.rule_type = EMAIL_LIST_FILTER_RULE_EQUAL;
+               filter_list[i].list_filter_item.rule.key_value.integer_type_value = account_id;
+               i++;
+
+               filter_list[i].list_filter_item_type = EMAIL_LIST_FILTER_ITEM_OPERATOR;
+               filter_list[i].list_filter_item.operator_type = EMAIL_LIST_FILTER_OPERATOR_AND;
+               i++;
+
+               filter_list[i].list_filter_item_type = EMAIL_LIST_FILTER_ITEM_RULE;
+               filter_list[i].list_filter_item.rule.target_attribute = EMAIL_MAIL_ATTRIBUTE_MAILBOX_ID;
+               filter_list[i].list_filter_item.rule.rule_type = EMAIL_LIST_FILTER_RULE_EQUAL;
+               filter_list[i].list_filter_item.rule.key_value.integer_type_value = mailbox_id;
+               i++;
+       }
+
+       if (search_type > EMAIL_SEARCH_NONE && search_type < EMAIL_SEARCH_MAX)
+               mailbox_add_search_data_into_filter_list(search_type, search_data, filter_list, &i);
+
+       debug_log("filled filter count: %d", i + 1);
+
+       cnt_soring_rule = 1;
+       sorting_rule_list = malloc(sizeof(email_list_sorting_rule_t) * cnt_soring_rule);
+       memset(sorting_rule_list, 0, sizeof(email_list_sorting_rule_t) * cnt_soring_rule);
+
+       _mailbox_make_sorting_rule_list(sort_type, sorting_rule_list);
+
+       err = email_get_mail_list_ex(filter_list, cnt_filter_list, sorting_rule_list, cnt_soring_rule, -1, -1, &mail_list, mail_count);
+       if (err != EMAIL_ERROR_NONE)
+               debug_warning("email_get_mail_list_ex - err (%d)", err);
+
+       FREE(sorting_rule_list);
+       email_free_list_filter(&filter_list, cnt_filter_list);
+
+       debug_leave();
+
+       return mail_list;
+}
+
+email_mail_list_item_t *_mailbox_get_mail_list_by_mailbox_type(int account_id, int mailbox_type, int sort_type, int thread_id, EmailSearchType search_type, const EmailSearchData *search_data, int *mail_count)
+{
+       debug_enter();
+       debug_log("account_id: %d, mailbox_type: %d, sort_type: %d, thread_id : %d search_type: %d", account_id, mailbox_type, sort_type, thread_id, search_type);
+
+       email_mail_list_item_t *mail_list = NULL;
+       email_list_filter_t *filter_list = NULL;
+       email_list_sorting_rule_t *sorting_rule_list = NULL;
+       int cnt_filter_list = 0;
+       int cnt_soring_rule = 0;
+       int err = 0;
+       int i = 0;
+
+
+       if (account_id == 0)
+               cnt_filter_list += 1;
+       else if (account_id > 0)
+               cnt_filter_list += 3;
+       else {
+               debug_error("account_id SHOULD be greater than or equal to 0.");
+               return NULL;
+       }
+
+       if (search_type > EMAIL_SEARCH_NONE && search_type < EMAIL_SEARCH_MAX)
+               cnt_filter_list += _mailbox_get_filter_cnt_for_search_data(search_type, search_data);
+
+       debug_log("cnt_filter_list: %d", cnt_filter_list);
+
+       filter_list = malloc(sizeof(email_list_filter_t) * cnt_filter_list);
+       memset(filter_list, 0, sizeof(email_list_filter_t) * cnt_filter_list);
+
+       if (account_id == 0) {
+               filter_list[i].list_filter_item_type = EMAIL_LIST_FILTER_ITEM_RULE;
+               filter_list[i].list_filter_item.rule.target_attribute = EMAIL_MAIL_ATTRIBUTE_MAILBOX_TYPE;
+               filter_list[i].list_filter_item.rule.rule_type = EMAIL_LIST_FILTER_RULE_EQUAL;
+               filter_list[i].list_filter_item.rule.key_value.integer_type_value = mailbox_type;
+               i++;
+       } else if (account_id > 0) {
+               filter_list[i].list_filter_item_type = EMAIL_LIST_FILTER_ITEM_RULE;
+               filter_list[i].list_filter_item.rule.target_attribute = EMAIL_MAIL_ATTRIBUTE_ACCOUNT_ID;
+               filter_list[i].list_filter_item.rule.rule_type = EMAIL_LIST_FILTER_RULE_EQUAL;
+               filter_list[i].list_filter_item.rule.key_value.integer_type_value = account_id;
+               i++;
+
+               filter_list[i].list_filter_item_type = EMAIL_LIST_FILTER_ITEM_OPERATOR;
+               filter_list[i].list_filter_item.operator_type = EMAIL_LIST_FILTER_OPERATOR_AND;
+               i++;
+
+               filter_list[i].list_filter_item_type = EMAIL_LIST_FILTER_ITEM_RULE;
+               filter_list[i].list_filter_item.rule.target_attribute = EMAIL_MAIL_ATTRIBUTE_MAILBOX_TYPE;
+               filter_list[i].list_filter_item.rule.rule_type = EMAIL_LIST_FILTER_RULE_EQUAL;
+               filter_list[i].list_filter_item.rule.key_value.integer_type_value = mailbox_type;
+               i++;
+       }
+
+       if (search_type > EMAIL_SEARCH_NONE && search_type < EMAIL_SEARCH_MAX)
+               mailbox_add_search_data_into_filter_list(search_type, search_data, filter_list, &i);
+
+       debug_log("filled filter count: %d", i);
+
+       cnt_soring_rule = 1;
+       sorting_rule_list = malloc(sizeof(email_list_sorting_rule_t) * cnt_soring_rule);
+       memset(sorting_rule_list, 0, sizeof(email_list_sorting_rule_t) * cnt_soring_rule);
+
+       _mailbox_make_sorting_rule_list(sort_type, sorting_rule_list);
+
+       err = email_get_mail_list_ex(filter_list, cnt_filter_list, sorting_rule_list, cnt_soring_rule, -1, -1, &mail_list, mail_count);
+       if (err != EMAIL_ERROR_NONE)
+               debug_warning("email_get_mail_list_ex - err (%d)", err);
+
+       FREE(sorting_rule_list);
+       email_free_list_filter(&filter_list, cnt_filter_list);
+
+       debug_warning("mail_count(%d)", *mail_count);
+
+       return mail_list;
+}
+
+void _edit_back_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_enter();
+       EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data;
+       debug_log("mailbox_ugd->view_type: [%d]", mailbox_ugd->view_type);
+
+       /*clear checked status of mail item*/
+       _clear_checked_status(mailbox_ugd);
+
+       if (mailbox_ugd->view_type == EMAIL_VIEW_EDIT && mailbox_ugd->isRotate == true)
+       {
+               elm_object_item_part_content_unset(mailbox_ugd->navibar_item[mailbox_ugd->view_type], "controlbar");
+               _delete_controlbar(mailbox_ugd);
+               email_maillist_select_info(mailbox_ugd);
+       }
+
+       mailbox_ugd->view_type = mailbox_ugd->previous_view;
+
+       if (GET_MAILBOX_TYPE(mailbox_ugd->mailbox_id) == EMAIL_MAILBOX_TYPE_OUTBOX) {
+               mailbox_ugd->create_progress_part= true;
+               debug_log("mailbox_ugd->view_type[%d]", mailbox_ugd->view_type);
+               elm_genlist_realized_items_update(mailbox_ugd->gl[mailbox_ugd->view_type]);
+       }
+       elm_genlist_realized_items_update(mailbox_ugd->gl[mailbox_ugd->view_type]);
+       _update_navigationbar_title(mailbox_ugd);
+       b_editmode = false;
+       elm_object_disabled_set(mailbox_ugd->folder_button, EINA_FALSE);
+
+       if (mailbox_ugd->isRotate == false) {
+               elm_object_part_content_set(mailbox_ugd->search_layout, "searchbar", mailbox_ugd->searchbar_layout);
+               edje_object_signal_emit(_EDJ(mailbox_ugd->search_layout), "show_searchbar", "search");
+       }
+
+       debug_leave();
+}
+
+
+static void _remaining_finish_cb(void* data, Ecore_Thread *thd)
+{
+       debug_enter();
+       if( !data ) {
+               debug_warning("PARAM NULL: data(%p)", data);
+               return;
+       }
+       mail_remaining_list_t *req = (mail_remaining_list_t *)data;
+       FREE(req);
+       debug_leave();
+}
+
+
+
+// TODO: move engine.....
+/* the _list should be free after use */
+email_mail_list_item_t* get_mail_info(int mail_id)
+{
+       char _where[256] = {0};
+       snprintf(_where, 255, "where mail_id=%d", mail_id);
+
+       int count = 0;
+       email_mail_list_item_t* mail_info = NULL;
+
+       int _e = email_query_mail_list(_where, &mail_info, &count);
+       if(_e != EMAIL_ERROR_NONE || !mail_info || count != 1) {
+               debug_warning("get mail info - err (%d) or list NULL(%p) or _list != 1 (%d)",
+                                                       _e, mail_info, count);
+               goto CLEANUP;
+       }
+
+       return mail_info;
+
+CLEANUP:
+       FREE(mail_info);
+       return NULL;
+}
+
+
+void _mailbox_list_clear(EmailMailboxUGD *mailbox_ugd)
+{
+       debug_enter();
+
+       if (mailbox_ugd == NULL) {
+               debug_log("mailbox_ugd is NULL");
+               return;
+       }
+
+       debug_log("mailbox_ugd->view_type: [%d], list_data[%p]", mailbox_ugd->view_type, mailbox_ugd->list_data[mailbox_ugd->view_type]);
+
+       int i = 0;
+       for (i = 0; i < EMAIL_GROUP_MAX; ++i) {
+               mailbox_ugd->git[mailbox_ugd->view_type][i] = NULL;
+               FREE(group_title[i][0]);
+               FREE(group_title[i][1]);
+       }
+
+       if (mailbox_ugd->list_data[mailbox_ugd->view_type]) {
+               _free_list_data(mailbox_ugd->list_data[mailbox_ugd->view_type]);
+               mailbox_ugd->list_data[mailbox_ugd->view_type] = NULL;
+       }
+       debug_log("mailbox_ugd->gl: 0x%x", mailbox_ugd->gl[mailbox_ugd->view_type]);
+
+       if ( !mailbox_ugd->gl[mailbox_ugd->view_type] ) {
+               debug_critical("mailbox_ugd->gl view_type(%d) is null", mailbox_ugd->view_type);
+               return;
+       }
+
+       _clear_genlist(mailbox_ugd);
+       debug_leave();
+}
+
+
+void _mailbox_list_add_item(EmailMailboxUGD *mailbox_ugd, gint mail_id)
+{
+       debug_enter();
+       if (mailbox_ugd == NULL) {
+               debug_log("mailbox_ugd is NULL");
+               return;
+       }
+
+       if (mail_id == 0) {
+               debug_log("uid is 0");
+               return;
+       }
+
+       _remove_get_more_progress_item(mailbox_ugd);
+
+       email_mail_list_item_t* mail_info = get_mail_info(mail_id);
+
+       if (!mail_info) {
+               goto CLEANUP;
+       }
+
+       list_data *ld = make_list_data(mail_info, NULL, mailbox_ugd);
+       if(!ld) {
+               goto CLEANUP;
+       }
+
+       ld->mailbox_ugd = mailbox_ugd;
+
+       mailbox_ugd->list_data[mailbox_ugd->view_type] =
+               g_list_insert_sorted(mailbox_ugd->list_data[mailbox_ugd->view_type], ld, _compare_sort_rule_by_viewtype);
+
+       if (mailbox_ugd->view_type != EMAIL_VIEW_RECIPIENT) {
+               if (!group_title[ld->group_index][0])
+                       group_title[ld->group_index][0] = g_strdup(ld->group_title);
+               if (!group_title[ld->group_index][1])
+                       group_title[ld->group_index][1] = g_strdup(ld->group_date);
+               debug_log("group_title: %s", group_title[ld->group_index][0]);
+       }
+       _insert_mail_to_mailist(mailbox_ugd, ld);
+
+       debug_log("mode: %d, mailbox_id: %d, ld->recipient : %s", ld->mailbox_ugd->mode, ld->mailbox_id, ld->recipient);
+
+       if (list_lock) {
+               debug_log("locked");
+               if (!evas_object_visible_get(mailbox_ugd->gl[mailbox_ugd->view_type]))
+                       evas_object_show(mailbox_ugd->gl[mailbox_ugd->view_type]);
+
+               edje_object_signal_emit(_EDJ(mailbox_ugd->search_layout), "hide_noc", "elm");
+               edje_object_signal_emit(_EDJ(mailbox_ugd->search_layout), "show_list", "elm");
+               list_lock = false;
+       }
+       if (mailbox_ugd->delete_all_button != NULL) {
+               elm_object_item_disabled_set(mailbox_ugd->delete_all_button, EINA_FALSE);
+       }
+
+ CLEANUP:
+
+       FREE(mail_info);
+       debug_leave();
+}
+
+
+static void _clear_genlist(EmailMailboxUGD *mailbox_ugd)
+{
+       debug_log("VIEW TYPE[%d]",mailbox_ugd->view_type);
+       if (mailbox_ugd == NULL) {
+               debug_log("mailbox_ugd is NULL");
+               return;
+       }
+
+       if (mailbox_ugd->gl[mailbox_ugd->view_type]) {
+               elm_genlist_clear(mailbox_ugd->gl[mailbox_ugd->view_type]);
+               _reset_refer_item_and_idx(mailbox_ugd);
+       }
+}
+
+
+void _refresh_mailbox(EmailMailboxUGD *mailbox_ugd)
+{
+       debug_log("");
+
+       int mbox_type = GET_MAILBOX_TYPE(mailbox_ugd->mailbox_id);
+       if (mbox_type == EMAIL_MAILBOX_TYPE_OUTBOX) {
+               mailbox_ugd->create_progress_part = true;
+       }
+       _mailbox_list_clear(mailbox_ugd);
+       _create_mail_list(mailbox_ugd);
+}
+
+void _create_mail_list(EmailMailboxUGD *mailbox_ugd)
+{
+       debug_log("");
+       if (mailbox_ugd->view_type != EMAIL_VIEW_SEARCH) {
+               list_lock = false;
+       }
+       _make_mail_list(mailbox_ugd, NULL);
+}
+
+void mailbox_make_unread_mail_list(void *data)
+{
+       debug_log("");
+       if (data == NULL) {
+               debug_log("data == NULL");
+               return;
+       }
+
+       EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data;
+       mailbox_ugd->gl[EMAIL_VIEW_UNREAD] = mailbox_ugd->gl[mailbox_ugd->view_type];
+       list_lock = false;
+       mailbox_ugd->previous_view = mailbox_ugd->view_type;
+       mailbox_ugd->view_type = EMAIL_VIEW_UNREAD;
+       mailbox_ugd->navibar_item[EMAIL_VIEW_UNREAD] = mailbox_ugd->navibar_item[mailbox_ugd->previous_view];
+
+       _refresh_mailbox(mailbox_ugd);
+
+       return;
+}
+
+void mailbox_make_important_mail_list(void *data)
+{
+       debug_log("");
+       if (data == NULL) {
+               debug_log("data == NULL");
+               return;
+       }
+
+       EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data;
+       mailbox_ugd->gl[EMAIL_VIEW_IMPORTANT] = mailbox_ugd->gl[mailbox_ugd->view_type];
+       list_lock = false;
+       mailbox_ugd->previous_view = mailbox_ugd->view_type;
+       mailbox_ugd->view_type = EMAIL_VIEW_IMPORTANT;
+       mailbox_ugd->navibar_item[EMAIL_VIEW_IMPORTANT] = mailbox_ugd->navibar_item[mailbox_ugd->previous_view];
+
+       _refresh_mailbox(mailbox_ugd);
+
+       return;
+}
+
+void mailbox_make_date_mail_list(void *data)
+{
+       debug_log("");
+       if (data == NULL) {
+               debug_log("data == NULL");
+               return;
+       }
+
+       EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data;
+       mailbox_ugd->gl[EMAIL_VIEW_DATE] = mailbox_ugd->gl[mailbox_ugd->view_type];
+       list_lock = false;
+       mailbox_ugd->previous_view = mailbox_ugd->view_type;
+       mailbox_ugd->view_type = EMAIL_VIEW_DATE;
+       mailbox_ugd->navibar_item[EMAIL_VIEW_DATE] = mailbox_ugd->navibar_item[mailbox_ugd->previous_view];
+
+       _refresh_mailbox(mailbox_ugd);
+
+       return;
+}
+
+void mailbox_make_sender_mail_list(void *data)
+{
+       debug_log("");
+       if (data == NULL) {
+               debug_log("data == NULL");
+               return;
+       }
+
+       EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data;
+       mailbox_ugd->gl[EMAIL_VIEW_RECIPIENT] = mailbox_ugd->gl[mailbox_ugd->view_type];
+       list_lock = false;
+       mailbox_ugd->previous_view = mailbox_ugd->view_type;
+       mailbox_ugd->view_type = EMAIL_VIEW_RECIPIENT;
+       mailbox_ugd->navibar_item[EMAIL_VIEW_RECIPIENT] = mailbox_ugd->navibar_item[mailbox_ugd->previous_view];
+
+       _refresh_mailbox(mailbox_ugd);
+
+       return;
+}
+
+void mailbox_make_attachment_mail_list(void *data)
+{
+       debug_log("");
+       if (data == NULL) {
+               debug_log("data == NULL");
+               return;
+       }
+
+       EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data;
+       mailbox_ugd->gl[EMAIL_VIEW_ATTACHMENTS] = mailbox_ugd->gl[mailbox_ugd->view_type];
+       list_lock = false;
+       mailbox_ugd->previous_view = mailbox_ugd->view_type;
+       mailbox_ugd->view_type = EMAIL_VIEW_ATTACHMENTS;
+       mailbox_ugd->navibar_item[EMAIL_VIEW_ATTACHMENTS] = mailbox_ugd->navibar_item[mailbox_ugd->previous_view];
+
+       _refresh_mailbox(mailbox_ugd);
+
+       return;
+}
+
+void mailbox_make_priority_mail_list(void *data)
+{
+       debug_log("");
+       if (data == NULL) {
+               debug_log("data == NULL");
+               return;
+       }
+
+       EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data;
+       mailbox_ugd->gl[EMAIL_VIEW_PRIORITY] = mailbox_ugd->gl[mailbox_ugd->view_type];
+       list_lock = false;
+       mailbox_ugd->previous_view = mailbox_ugd->view_type;
+       mailbox_ugd->view_type = EMAIL_VIEW_PRIORITY;
+       mailbox_ugd->navibar_item[EMAIL_VIEW_PRIORITY] = mailbox_ugd->navibar_item[mailbox_ugd->previous_view];
+
+       _refresh_mailbox(mailbox_ugd);
+
+       return;
+}
+
+void _make_account_mail_list(void *data)
+{
+       debug_log("");
+       if (data == NULL) {
+               debug_log("data == NULL");
+               return;
+       }
+
+       EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data;
+
+       if (mailbox_ugd->account_id == 0) {
+               mailbox_ugd->mode = EMAIL_MAILBOX_MODE_ALL;
+               debug_log("mailbox_type:[%d], mailbox_id:[%d]", mailbox_ugd->mailbox_type, mailbox_ugd->mailbox_id);
+               switch(mailbox_ugd->mailbox_type)
+               {
+                       case EMAIL_MAILBOX_TYPE_INBOX:
+                       {
+                               elm_object_part_text_set(mailbox_ugd->navi_title_ly, "txt_title", _("IDS_EMAIL_BODY_INBOX"));
+                       }
+                               break;
+                       case EMAIL_MAILBOX_TYPE_SENTBOX:
+                       {
+                               elm_object_part_text_set(mailbox_ugd->navi_title_ly, "txt_title", _("IDS_EMAIL_BODY_SENTBOX"));
+                       }
+                               break;
+                       case EMAIL_MAILBOX_TYPE_TRASH:
+                       {
+                               elm_object_part_text_set(mailbox_ugd->navi_title_ly, "txt_title", _("IDS_EMAIL_BODY_TRASH"));
+                       }
+                               break;
+                       case EMAIL_MAILBOX_TYPE_DRAFT:
+                       {
+                               elm_object_part_text_set(mailbox_ugd->navi_title_ly, "txt_title", _("IDS_EMAIL_BODY_DRAFTS"));
+                       }
+                               break;
+                       case EMAIL_MAILBOX_TYPE_SPAMBOX:
+                       {
+                               elm_object_part_text_set(mailbox_ugd->navi_title_ly, "txt_title", _("IDS_EMAIL_BODY_SPAMBOX"));
+                       }
+                               break;
+                       case EMAIL_MAILBOX_TYPE_OUTBOX:
+                       {
+                               elm_object_part_text_set(mailbox_ugd->navi_title_ly, "txt_title", N_("Outbox"));
+                       }
+                               break;
+                       case EMAIL_MAILBOX_TYPE_FLAGGED:
+                       {
+                               elm_object_part_text_set(mailbox_ugd->navi_title_ly, "txt_title", _("IDS_EMAIL_OPT_FAVOURITES"));
+                       }
+                               break;
+                       default:
+                       {
+                               elm_object_part_text_set(mailbox_ugd->navi_title_ly, "txt_title", _("IDS_EMAIL_BODY_INBOX"));
+                       }
+                               break;
+               }
+               elm_icon_file_set(mailbox_ugd->sp_icon, ICON_TITLE_ALL_ACC, NULL);
+               elm_object_part_text_set(mailbox_ugd->navi_title_ly, "txt_sub", _("IDS_EMAIL_HEADER_ALL_ACCOUNTS"));
+       }
+       else {
+               debug_log("mailbox_id: [%d], account_id: [%d]", mailbox_ugd->mailbox_id, mailbox_ugd->account_id);
+
+               mailbox_ugd->mode = EMAIL_MAILBOX_MODE_MAILBOX;
+               elm_object_part_text_set(mailbox_ugd->navi_title_ly, "txt_title", mailbox_ugd->folder_alias);
+               mailbox_ugd->mailbox_type = GET_MAILBOX_TYPE(mailbox_ugd->mailbox_id);
+
+               email_account_t *account;
+               email_get_account(mailbox_ugd->account_id, EMAIL_ACC_GET_OPT_DEFAULT, &account);
+               elm_icon_file_set(mailbox_ugd->sp_icon, account->logo_icon_path, NULL);
+
+               elm_object_part_text_set(mailbox_ugd->navi_title_ly, "txt_sub", mailbox_ugd->user_email);
+
+               if(account) email_free_account(&account, 1);
+       }
+
+       if (mailbox_ugd->isRotate == false) {
+               _create_controlbar(mailbox_ugd);
+               elm_object_item_part_content_set(mailbox_ugd->navibar_item[mailbox_ugd->view_type], "controlbar", mailbox_ugd->controlbar_btns);
+       }
+       _refresh_mailbox(mailbox_ugd);
+
+       return;
+}
+
+
+void _add_mail_list_n_data(EmailMailboxUGD *mailbox_ugd, email_mail_list_item_t* mail_list, int count, const EmailSearchData *search_data)
+{
+       if (!mailbox_ugd || !mail_list) {
+               debug_warning("mailbox_ugd NULL(%p) or mail_info NULL(%p)", mailbox_ugd, mail_list);
+               return;
+       }
+
+       /* view_type is used as array index - validity required */
+       if( mailbox_ugd->view_type >= EMAIL_VIEW_MAX || mailbox_ugd->view_type < 0 ) {
+               debug_critical("MailBox View(%d) is NOT defined", mailbox_ugd->view_type);
+               return;
+       }
+
+       int i=0;
+       for( ; i < count ; i++ )
+       {
+               list_data *ld = make_list_data(mail_list + i, search_data, mailbox_ugd);
+               if( !ld ) continue;
+
+               ld->mailbox_ugd = mailbox_ugd;
+
+               mailbox_ugd->list_data[mailbox_ugd->view_type] =
+                       g_list_insert_sorted(mailbox_ugd->list_data[mailbox_ugd->view_type], ld, _compare_sort_rule_by_viewtype);
+
+               if (mailbox_ugd->view_type == EMAIL_VIEW_RECIPIENT || (mailbox_ugd->view_type == EMAIL_VIEW_SEARCH && mailbox_ugd->previous_view == EMAIL_VIEW_RECIPIENT))
+               {
+                       _insert_mail_to_recipient_mailist(mailbox_ugd, ld);
+               }
+               else
+               {
+                       if (!group_title[ld->group_index][0])
+                               group_title[ld->group_index][0] = g_strdup(ld->group_title);
+                       if (!group_title[ld->group_index][1])
+                               group_title[ld->group_index][1] = g_strdup(ld->group_date);
+                       debug_log("group_title: %s", group_title[ld->group_index][0]);
+
+                       _insert_mail_to_mailist(mailbox_ugd, ld);
+               }
+
+               debug_log("mode: %d, mailbox_id: %d, ld->recipient : %s", ld->mailbox_ugd->mode, ld->mailbox_id, ld->recipient);
+       }
+}
+
+
+static void add_remining_item_cb(void *data, Ecore_Thread *thd, void* msg_data)
+{
+       debug_enter();
+
+       if(!data || !msg_data) {
+               debug_warning("PARAM NULL: data(%p), msg_data(%p)", data, msg_data);
+               return;
+       }
+
+       mail_remaining_list_t *req = (mail_remaining_list_t *)data;
+       EmailMailboxUGD *mailbox_ugd = req->mailbox_ugd;
+       list_data *ld = (list_data *) msg_data;
+
+       /* view_type is used as array index - validity required */
+       if( mailbox_ugd->view_type >= EMAIL_VIEW_MAX || mailbox_ugd->view_type < 0 ) {
+               debug_critical("MailBox View(%d) is NOT defined", mailbox_ugd->view_type);
+               _free_list_data_simple(ld);
+               return;
+       }
+
+       ld->mailbox_ugd = mailbox_ugd;
+
+       mailbox_ugd->list_data[mailbox_ugd->view_type] =
+               g_list_insert_sorted(mailbox_ugd->list_data[mailbox_ugd->view_type], ld, _compare_sort_rule_by_viewtype);
+//     debug_log("ADDED: vt(%d), thdid(%d), mailid(%d)", mailbox_ugd->view_type, ld->thread_id, ld->mail_id);
+
+       if (mailbox_ugd->view_type != EMAIL_VIEW_RECIPIENT) {
+               if (!group_title[ld->group_index][0])
+                       group_title[ld->group_index][0] = g_strdup(ld->group_title);
+               if (!group_title[ld->group_index][1])
+                       group_title[ld->group_index][1] = g_strdup(ld->group_date);
+               debug_log("group_title: %s", group_title[ld->group_index][0]);
+       }
+
+       /* if view_type is changed, inserted item may cause crash */
+       if(req->view_type == mailbox_ugd->view_type && req->mode == mailbox_ugd->mode)
+       {
+               if(mailbox_ugd->view_type == EMAIL_VIEW_RECIPIENT)
+                       _insert_mail_to_recipient_mailist(mailbox_ugd, ld);
+
+               else
+                       _insert_mail_to_mailist(mailbox_ugd, ld);
+       }
+
+       debug_log("mode: %d, mailbox_id: %d, ld->recipient : %s", ld->mailbox_ugd->mode, ld->mailbox_id, ld->recipient);
+       debug_leave();
+}
+
+void _worker_get_delete_mail_list_cb(void* data, Ecore_Thread *thd)
+{
+       debug_enter();
+       if( !data ) {
+               debug_warning("PARAM NULL: data(%p)", data);
+               return;
+       }
+
+       CHECK_THREAD_BUSY();
+       debug_log("wake up now");
+
+       delete_req_t *req = (delete_req_t *)data;
+       EmailMailboxUGD *mailbox_ugd = req->mailbox_ugd;
+       EmailMailboxViewType vt = mailbox_ugd->view_type;
+       GList *mail_list = NULL;
+       list_data *ld = NULL;
+
+       GList* cur = NULL;
+       int *idx = NULL;
+
+       _parse_delete_mail_buf(req->msg_buf, &mail_list);
+
+       debug_log("size of mail_list : %d", g_list_length(mail_list));
+       G_LIST_FOREACH(mail_list, cur, idx) {
+               debug_log("idx: [%d]", *idx);
+               ld = _find_mailinfo_by_mailid(*idx, mailbox_ugd->list_data[vt]);
+               if(ld) {
+                       CHECK_THREAD_BUSY();
+                       delete_ret_t *ret = MEM_ALLOC(ret, 1);
+                       if(!ret) return;
+                       *ret = (delete_ret_t) {ld, *idx};
+                       ecore_thread_feedback(thd, ret);
+               }
+       }
+
+       if(mail_list) {
+               G_LIST_FOREACH(mail_list, cur, idx) {
+                       FREE(idx);
+               }
+               g_list_free(mail_list);
+       }
+
+       debug_leave();
+}
+
+static void _parse_delete_mail_buf(char *inbuf, GList **mail_list)
+{
+       debug_enter();
+       if(!STR_VALID(inbuf)) {
+               return;
+       }
+
+       /* notification format: <<mail_id><,><mail_id>>*/
+       gchar **inner_tok;
+       int i = 0;
+       inner_tok = g_strsplit_set(inbuf, ",", -1);
+       for(i = 0; i < g_strv_length(inner_tok) -1; ++i) {
+               debug_log("%s", inner_tok[i]);
+               if(!strcmp(inner_tok[i], "\"")) /* skip the empty token */
+                       continue;
+               else {
+                       int *mail_id = (int *)calloc(1, sizeof(int));
+                       *mail_id = atoi(inner_tok[i]);
+                       *mail_list = g_list_append(*mail_list, mail_id);
+               }
+       }
+       g_strfreev(inner_tok);
+
+}
+
+/* get email list using email lib */
+void _worker_get_mail_info_cb(void* data, Ecore_Thread *thd)
+{
+       debug_enter();
+       if( !data ) {
+               debug_warning("PARAM NULL: data(%p)", data);
+               return;
+       }
+
+       CHECK_THREAD_BUSY();
+       debug_log("wake up now");
+
+       sync_req_t *req = (sync_req_t *)data;
+       EmailMailboxUGD *mailbox_ugd = req->mailbox_ugd;
+
+       int mailbox_type = GET_MAILBOX_TYPE(req->mailbox_id);
+       if(mailbox_type == EMAIL_MAILBOX_TYPE_TRASH || mailbox_type == EMAIL_MAILBOX_TYPE_SPAMBOX)
+               return;
+
+       email_mail_list_item_t* mail_info = get_mail_info(req->mail_id);
+       if (!mail_info) {
+               goto CLEANUP;
+       }
+       list_data *ld = make_list_data(mail_info, NULL, mailbox_ugd);
+       if(!ld) {
+               goto CLEANUP;
+       }
+
+       ld->mailbox_ugd = mailbox_ugd;
+
+       CHECK_THREAD_BUSY();
+       debug_log("wake up now");
+
+       ecore_thread_feedback(thd, ld);
+
+ CLEANUP:
+
+       FREE(mail_info);
+       debug_leave();
+}
+
+
+void _worker_get_move_mail_list_cb(void* data, Ecore_Thread *thd)
+{
+
+       debug_enter();
+       if( !data ) {
+               debug_warning("PARAM NULL: data(%p)", data);
+               return;
+       }
+
+       CHECK_THREAD_BUSY();
+       debug_log("wake up now");
+
+       move_req_t *req = (move_req_t *)data;
+       EmailMailboxUGD *mailbox_ugd = req->mailbox_ugd;
+       EmailMailboxViewType vt = mailbox_ugd->view_type;
+       char *src_folder = NULL;
+       char *dst_folder = NULL;
+       int src_mailbox_id = 0, dst_mailbox_id = 0;
+       GList *mail_list = NULL;
+       list_data *ld = NULL;
+
+       GList* cur = NULL;
+       int *idx = NULL;
+
+       _parse_move_mail_buf(req->msg_buf, &src_folder, &dst_folder, &mail_list);
+
+       if(!STR_VALID(src_folder) || !STR_VALID(dst_folder))
+               return;
+
+       src_mailbox_id = atoi(src_folder);
+       dst_mailbox_id = atoi(dst_folder);
+
+       if(src_mailbox_id == dst_mailbox_id)    //need not to move
+               goto CLEANUP;
+
+       int folder_type = GET_MAILBOX_TYPE(dst_mailbox_id);
+       req->mailbox_type = folder_type;
+
+       if (mailbox_ugd->mode == EMAIL_MAILBOX_MODE_ALL)
+       {
+               if(vt != EMAIL_VIEW_EDIT && vt != EMAIL_VIEW_SEARCH)
+               {
+                       switch (folder_type)
+                       {
+                               case EMAIL_MAILBOX_TYPE_TRASH:
+                               case EMAIL_MAILBOX_TYPE_SPAMBOX:
+                                       debug_log("size of mail_list : %d", g_list_length(mail_list));
+                                       G_LIST_FOREACH(mail_list, cur, idx) {
+                                               debug_log("idx: [%d]", *idx);
+                                               ld = _find_mailinfo_by_mailid(*idx, mailbox_ugd->list_data[vt]);
+                                               if(ld) {
+                                                       delete_ret_t *ret = MEM_ALLOC(ret, 1);
+                                                       if(!ret) return;
+                                                       *ret = (delete_ret_t) {ld, *idx};
+                                                       CHECK_THREAD_BUSY();
+                                                       ecore_thread_feedback(thd, ret);
+                                               }
+                                       }
+                               break;
+
+                               case EMAIL_MAILBOX_TYPE_SENTBOX:
+                                       G_LIST_FOREACH(mail_list, cur, idx) {
+                                               debug_log("idx: [%d]", *idx);
+                                               ld = _find_mailinfo_by_mailid(*idx, mailbox_ugd->list_data[vt]);
+                                               if(ld) {
+                                                       ld->is_sending_now = EMAIL_MAIL_STATUS_SENT;
+                                                       delete_ret_t *ret = MEM_ALLOC(ret, 1);
+                                                       if(!ret) return;
+                                                       *ret = (delete_ret_t) {ld, *idx};
+                                                       CHECK_THREAD_BUSY();
+                                                       ecore_thread_feedback(thd, ret);
+                                               }
+                                       }
+                               break;
+                               default :
+                                       /* Do Nothing */
+                                       goto CLEANUP;
+                       }
+
+               }
+               else {
+                       /* Do Nothing */
+                       goto CLEANUP;
+               }
+       }
+       /* is mailbox_ugd->account_id == account_id necessary?*/
+       else if(mailbox_ugd->mode == EMAIL_MAILBOX_MODE_MAILBOX && mailbox_ugd->account_id == req->account_id)
+       {
+               if(vt != EMAIL_VIEW_EDIT && vt != EMAIL_VIEW_SEARCH)
+               {
+                       G_LIST_FOREACH(mail_list, cur, idx) {
+                               ld = _find_mailinfo_by_mailid(*idx, mailbox_ugd->list_data[vt]);
+                               if(ld) {
+                                       //mailbox_delete_mail_item_from_list(mailbox_ugd, ld);
+                                       delete_ret_t *ret = MEM_ALLOC(ret, 1);
+                                       if(!ret) return;
+                                       *ret = (delete_ret_t) {ld, *idx};
+                                       CHECK_THREAD_BUSY();
+                                       ecore_thread_feedback(thd, ret);
+                                       debug_log("Mail(%d) found in this view(%d)", *idx, vt);
+                               }
+                       }
+               }
+               else {
+                       debug_log("Nothing to move: mode(%d), view(%d), acc(%d)", mailbox_ugd->mode, vt, mailbox_ugd->account_id);
+                       goto CLEANUP;
+               }
+       }
+       else {
+               debug_log("Nothing to move: mode(%d), view(%d), acc(%d)", mailbox_ugd->mode, vt, mailbox_ugd->account_id);
+               goto CLEANUP;
+       }
+
+       CLEANUP:
+
+       if(mail_list) {
+               G_LIST_FOREACH(mail_list, cur, idx) {
+                       FREE(idx);
+               }
+               g_list_free(mail_list);
+       }
+       FREE(src_folder);
+       FREE(dst_folder);
+
+       debug_log("wake up now");
+
+       debug_leave();
+       return;
+}
+
+
+
+
+static void worker_get_remaing_list_cb(void* data, Ecore_Thread *thd)
+{
+       debug_enter();
+       if( !data ) {
+               debug_warning("PARAM NULL: data(%p)", data);
+               return;
+       }
+
+       mail_remaining_list_t *_list = (mail_remaining_list_t *)data;
+       email_mail_list_item_t *mail_list = _list->mail_list;
+       int count = _list->count;
+
+       int i=_list->start;
+       for( ; i < count ; i++ )
+       {
+               list_data *ld = make_list_data(mail_list+i, NULL, _list->mailbox_ugd);
+               if( !ld ) continue;
+
+               debug_log("feeding to main");
+               ecore_thread_feedback(thd, ld);
+       }
+       FREE(_list->mail_list);
+       malloc_trim(0);
+       debug_leave();
+}
+
+
+static void add_mail_to_threaded (EmailMailboxUGD *mailbox_ugd, list_data *ld)
+{
+       if (!mailbox_ugd || !ld) {
+               debug_log("mailbox_ugd(%p)==NULL or mailbox_info(%p)==NULL", mailbox_ugd, ld);
+               return;
+       }
+
+       _remove_get_more_progress_item(mailbox_ugd);
+
+       if (list_lock) {
+               debug_log("locked");
+               if (!evas_object_visible_get(mailbox_ugd->gl[mailbox_ugd->view_type]))
+                       evas_object_show(mailbox_ugd->gl[mailbox_ugd->view_type]);
+
+               edje_object_signal_emit(_EDJ(mailbox_ugd->search_layout), "hide_noc", "elm");
+               edje_object_signal_emit(_EDJ(mailbox_ugd->search_layout), "show_list", "elm");
+
+               list_lock = false;
+       }
+
+       /* The group items might be inserted before to receive any normal mail item */
+       mailbox_ugd->list_data[mailbox_ugd->view_type] =
+               g_list_insert_sorted(mailbox_ugd->list_data[mailbox_ugd->view_type], ld, _compare_sort_rule_by_viewtype);
+//     debug_log("ADDED: vt(%d), thdid(%d), mailid(%d)", mailbox_ugd->view_type, ld->thread_id, ld->mail_id);
+       if (mailbox_ugd->view_type != EMAIL_VIEW_RECIPIENT) {
+               if (!group_title[ld->group_index][0])
+                       group_title[ld->group_index][0] = g_strdup(ld->group_title);
+               if (!group_title[ld->group_index][1])
+                       group_title[ld->group_index][1] = g_strdup(ld->group_date);
+               debug_log("group_title: %s", group_title[ld->group_index][0]);
+       }
+       _insert_mail_to_mailist(mailbox_ugd, ld);
+       debug_log("mode: %d, mailbox_id: %d, ld->recipient : %s", ld->mailbox_ugd->mode, ld->mailbox_id, ld->recipient);
+
+       if (mailbox_ugd->delete_all_button != NULL) {
+               elm_object_item_disabled_set(mailbox_ugd->delete_all_button, EINA_FALSE);
+       }
+}
+
+/* add item to genlist or update item in view */
+void _update_item_in_view_cb(void *data, Ecore_Thread *thd, void* msg_data)
+{
+       debug_enter();
+
+       if(!data || !msg_data) {
+               debug_warning("PARAM NULL: data(%p), msg_data(%p)", data, msg_data);
+               return;
+       }
+
+       sync_req_t *req = (sync_req_t *)data;
+       EmailMailboxUGD *mailbox_ugd = req->mailbox_ugd;
+       list_data *new_item = (list_data *) msg_data;
+       int thread_id = req->thread_id;
+
+       debug_log("THD: thdid(%d) mailid(%d) info(%p)", req->thread_id, req->mail_id, new_item);
+
+       //EmailMailboxViewType vt = mailbox_ugd->view_type;
+       EmailMailboxViewType vt = req->view_type;
+       RETURN_IF_FAIL(mailbox_ugd->list_data[vt]!=NULL);
+
+       // 1. search the list data which one has same thread id
+       list_data *ld = ({
+                       list_data *_matched = NULL;
+//                     debug_log("VT: %d, LEN:%d", vt, g_list_length(mailbox_ugd->list_data[vt]));
+                       GList* cur = g_list_first(mailbox_ugd->list_data[vt]);
+                       for( ; cur ; cur = g_list_next(cur))
+                       {
+                               list_data *_ld = (list_data*) g_list_nth_data(cur, 0);
+//                             debug_log("COMP: ld->thread_id: %d, ld->mail_id: %d vs thdid: %d", _ld->thread_id, _ld->mail_id, thread_id);
+                               /* find the matching item */
+                               if(_ld->thread_id == thread_id)
+                               {
+                                       _matched = _ld;
+                                       debug_log("Found mail for thdid(%d), mailid(%d)",req->thread_id, req->mail_id);
+                                       break;
+                               }
+                       }
+                       _matched;
+       });
+
+       if( !ld ) {
+               debug_warning("NOT Found seed mail for thdid(%d), mailid(%d)", req->thread_id, req->mail_id);
+               goto CLEANUP;
+       }
+
+       /* If this item is the most recent mail, replace the old one with the new one*/
+       if (new_item->absolute_time > ld->absolute_time)
+       {
+               mailbox_delete_mail_item_from_list(mailbox_ugd, ld);
+
+               // insert new data
+               add_mail_to_threaded(mailbox_ugd, new_item);
+       }
+       /* just increasing thread count */
+       else {
+               ld->thread_count = new_item->thread_count;
+               if(ld->item)
+                       elm_genlist_item_update(ld->item);
+       }
+
+//     debug_log("ld: thdid(%d), mailid(%d), count(%d)", ld->thread_id, ld->mail_id, ld->thread_count);
+
+CLEANUP:
+       FREE(req);
+       debug_leave();
+}
+
+/*
+static gint _compare_date_asc(gconstpointer a, gconstpointer b)
+{
+       int ret = 0;
+       if(a == NULL || b == NULL)
+               return 0;
+
+       list_data *first_item = (list_data*)a;
+       list_data *second_item = (list_data*)b;
+       if(first_item->absolute_time > second_item->absolute_time) {
+               ret = -1;
+       } else if (first_item->absolute_time == second_item->absolute_time) {
+               ret = 0;
+       } else {
+               ret = 1;
+       }
+       return ret;
+}
+*/
+/*
+static gint _compare_date_desc(gconstpointer a, gconstpointer b)
+{
+       int ret = 0;
+       if(a == NULL || b == NULL)
+               return 0;
+
+       list_data *first_item = (list_data*)a;
+       list_data *second_item = (list_data*)b;
+
+       if(first_item->absolute_time > second_item->absolute_time) {
+               ret = 1;
+       } else if (first_item->absolute_time == second_item->absolute_time) {
+               ret = 0;
+       } else {
+               ret = -1;
+       }
+       return ret;
+}
+*/
+
+gint _compare_sort_rule_by_viewtype(gconstpointer a, gconstpointer b)
+{
+       int ret = 0;
+       if(a == NULL || b == NULL)
+               return 0;
+       list_data *first_item = (list_data*)a;
+       list_data *second_item = (list_data*)b;
+       EmailMailboxUGD *mailbox_ugd = first_item->mailbox_ugd;
+
+       int type = 0;
+       if(mailbox_ugd->view_type == EMAIL_VIEW_SEARCH || mailbox_ugd->view_type == EMAIL_VIEW_EDIT)
+               type = mailbox_ugd->previous_view;
+       else
+               type = mailbox_ugd->view_type;
+       switch(type)
+       {
+               case EMAIL_VIEW_DATE:
+                       if(first_item->absolute_time > second_item->absolute_time)
+                               ret = (mailbox_ugd->sort_type == EMAIL_SORT_DATE_RECENT) ? -1 : 1;
+                       else if (first_item->absolute_time == second_item->absolute_time)
+                               ret = 1;
+                       else
+                               ret = (mailbox_ugd->sort_type == EMAIL_SORT_DATE_RECENT) ? 1 : -1;
+                       break;
+
+               case EMAIL_VIEW_UNREAD:
+                       if(first_item->is_seen > second_item->is_seen)
+                               ret = 1;
+                       else if (first_item->is_seen == second_item->is_seen)
+                               ret = 1;
+                       else
+                               ret = -1;
+                       break;
+
+               case EMAIL_VIEW_IMPORTANT:
+                       if(first_item->imp_sel > second_item->imp_sel)
+                               ret = -1;
+                       else if (first_item->imp_sel == second_item->imp_sel)
+                               ret = 1;
+                       else
+                               ret = 1;
+                       break;
+
+               case EMAIL_VIEW_PRIORITY:
+                       if(first_item->priority > second_item->priority)
+                               ret = -1;
+                       else if (first_item->priority == second_item->priority)
+                               ret = 1;
+                       else
+                               ret = 1;
+                       break;
+
+               case EMAIL_VIEW_ATTACHMENTS:
+                       if(first_item->is_attachment > second_item->is_attachment)
+                               ret = -1;
+                       else if (first_item->is_attachment == second_item->is_attachment)
+                               ret = 1;
+                       else
+                               ret = 1;
+                       break;
+
+       }
+       return ret;
+}
+
+static char *_gl_recipient_group_text_get(void *data, Evas_Object *obj, const char *part)
+{
+       debug_enter();
+       if (data == NULL) {
+               debug_log("data is NULL");
+               return NULL;
+       }
+       list_data *ld = (list_data *)data;
+       if (g_strcmp0(part, "elm.text") == 0) {
+               return strdup(ld->alias);
+       }
+
+       return NULL;
+}
+
+
+
+
+static void _insert_mail_to_recipient_mailist(EmailMailboxUGD *mailbox_ugd, list_data* ld)
+{
+       debug_enter();
+
+       itc_item_for_sender_index.item_style = "grouptitle";
+       itc_item_for_sender_index.func.text_get = _gl_recipient_group_text_get;
+       itc_item_for_sender_index.func.content_get = NULL;
+       itc_item_for_sender_index.func.state_get = NULL;
+       itc_item_for_sender_index.func.del = NULL;
+       itc_item_for_sender_index.decorate_all_item_style = NULL;
+
+       //debug_log("alias: [%s], ld->alias: [%s]", alias, ld->alias);
+       if(alias)
+       {
+               if(g_strcmp0(ld->alias, alias))
+               {
+                       // insert group item
+                       sender_group = elm_genlist_item_append(mailbox_ugd->gl[mailbox_ugd->view_type],
+                                                                       &itc_item_for_sender_index,
+                                                                       ld,
+                                                                       NULL,
+                                                                       ELM_GENLIST_ITEM_GROUP,
+                                                                       NULL, NULL);
+                       alias = g_strdup(ld->alias);
+               }
+
+               // insert normal item
+               ld->item = elm_genlist_item_append(mailbox_ugd->gl[mailbox_ugd->view_type],
+                                               &(mailbox_ugd->itc1),
+                                               ld,
+                                               sender_group,
+                                               ELM_GENLIST_ITEM_NONE,
+                                               _list_item_clicked,
+                                               NULL);
+
+       }
+       else
+       {
+               // insert group item
+               sender_group = elm_genlist_item_append(mailbox_ugd->gl[mailbox_ugd->view_type],
+                                                               &itc_item_for_sender_index,
+                                                               ld,
+                                                               NULL,
+                                                               ELM_GENLIST_ITEM_GROUP,
+                                                               NULL, NULL);
+               alias = g_strdup(ld->alias);
+               // insert normal item
+               ld->item = elm_genlist_item_append(mailbox_ugd->gl[mailbox_ugd->view_type],
+                                               &(mailbox_ugd->itc1),
+                                               ld,
+                                               sender_group,
+                                               ELM_GENLIST_ITEM_NONE,
+                                               _list_item_clicked,
+                                               NULL);
+       }
+       debug_leave();
+}
+
+
+void _insert_mail_to_mailist(EmailMailboxUGD *mailbox_ugd, list_data* ld)
+{
+       debug_enter();
+
+       GList *cur = g_list_find(mailbox_ugd->list_data[mailbox_ugd->view_type], ld);
+       if( !cur ) {
+               debug_log("No such list_data");
+               return;
+       }
+       GList *prev = g_list_previous(cur);
+       list_data* prev_data = prev? g_list_nth_data(prev, 0) : NULL;
+       GList *next = g_list_next(cur);
+       list_data *next_data = next? g_list_nth_data(next, 0) : NULL;
+
+       _insert_normal_item_to_mailist(mailbox_ugd, ld, prev_data, next_data);
+       debug_leave();
+}
+
+static void set_busy_cb(void *data, Evas *e, Evas_Object *o, void *info)
+{
+       debug_log("");
+       is_main_thread_busy = true;
+}
+
+
+static void reset_busy_cb(void *data, Evas *e, Evas_Object *o, void *info)
+{
+       debug_log("");
+       is_main_thread_busy = false;
+}
+
+
diff --git a/mailbox/src/email-mailbox-noti-mgr.c b/mailbox/src/email-mailbox-noti-mgr.c
new file mode 100755 (executable)
index 0000000..4f5de4d
--- /dev/null
@@ -0,0 +1,730 @@
+/*
+ * Copyright 2012  Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *    http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "email-mailbox.h"
+#include "email-mailbox-item.h"
+#include "email-mailbox-list.h"
+#include "email-mailbox-search.h"
+#include "email-mailbox-noti-mgr.h"
+
+
+E_DBus_Connection *_g_mailbox_conn = NULL;
+E_DBus_Signal_Handler *_g_signal_handler_storage = NULL;
+E_DBus_Signal_Handler *_g_signal_handler_network = NULL;
+
+extern int ug_pushed;
+extern gboolean list_lock;
+extern Eina_List *g_account_list;
+extern char *group_title[EMAIL_GROUP_MAX][2];
+
+
+DBusHandlerResult _on_dbus_receive(DBusConnection *connection, DBusMessage *message, void *user_data);
+static void _edbus_event_mailbox_receive(void *local_data, DBusMessage *message);
+static Eina_Bool email_check_account_list(int account_id);
+static void email_maillist_insert_sorted(list_data *ld);
+static void add_seed_mail_cb(void *data, Ecore_Thread *thd, void* msg_data);
+static gint _find_insert_position(gconstpointer a, gconstpointer b);
+static gint _find_next_group_position(gconstpointer a, gconstpointer b);
+
+
+static gint _find_next_group_position(gconstpointer a, gconstpointer b)
+{
+       list_data *pos = (list_data *)a;
+       list_data *src = (list_data *)b;
+
+       if(pos->group_index > src->group_index)
+               return 0;
+       else
+               return -1;
+
+}
+
+void _release_noti_Q_event(EmailMailboxUGD *mailbox_ugd)
+{
+       debug_enter();
+
+       GList *noti_Q = mailbox_ugd->noti_Q;
+       int i = 0;
+       int count = g_list_length(noti_Q);
+       GList *cur = g_list_last(noti_Q);
+
+       for(; i < count; ++i, cur = g_list_previous(cur))
+       {
+               noti_event *noti = (noti_event *)g_list_nth_data(cur, 0);
+               FREE(noti->data3);
+       }
+       G_LIST_FREE(mailbox_ugd->noti_Q);
+
+       debug_leave();
+}
+
+static gint _find_insert_position(gconstpointer a, gconstpointer b)
+{
+       list_data *pos = (list_data *)a;
+       list_data *src = (list_data *)b;
+
+       if(pos->group_index == src->group_index && pos->absolute_time < src->absolute_time)
+               return 0;
+       else
+               return -1;
+
+}
+
+void _response_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       if (data == NULL) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       evas_object_del(data);
+}
+
+void _delete_finish_cb(void* data, Ecore_Thread *thd)
+{
+       debug_enter();
+       if( !data ) {
+               debug_warning("PARAM NULL: data(%p)", data);
+               return;
+       }
+       delete_req_t *req = (delete_req_t *)data;
+       _release_noti_Q_event(req->mailbox_ugd);
+
+       FREE(req->msg_buf);
+       FREE(req);
+       debug_leave();
+}
+
+static void email_maillist_insert_sorted(list_data *ld)
+{
+       debug_log("");
+       EmailMailboxUGD *mailbox_ugd = ld->mailbox_ugd;
+       GList *_list = mailbox_ugd->list_data[mailbox_ugd->view_type];
+       GList *pos = NULL;
+
+       pos = g_list_find_custom(_list, ld, _find_insert_position);
+
+       if(pos)
+               _list = g_list_insert_before(_list, pos, ld);
+       else
+       {
+               // ld is the only entry having corresponding group index
+               if(!mailbox_ugd->git[mailbox_ugd->view_type][ld->group_index]) {
+                       _list = g_list_insert_sorted(_list, ld, _compare_sort_rule_by_viewtype);
+               }
+               else // ld is the oldest mail in same group
+               {
+                       // find the first entry in next group
+                       pos = g_list_find_custom(_list, ld, _find_next_group_position);
+                       if(pos)
+                               _list = g_list_insert_before(_list, pos, ld);
+                       else // the list has one group
+                               _list = g_list_append(_list,ld);
+               }
+       }
+
+}
+
+static Eina_Bool email_check_account_list(int account_id)
+{
+       debug_log("");
+       Eina_List *it = NULL;
+       int *acc_id = NULL;
+
+       int checked_count = eina_list_count(g_account_list);
+       debug_log("checked_count = [%d]", checked_count);
+
+       EINA_LIST_FOREACH(g_account_list, it, acc_id) {
+               if (*acc_id == account_id) {
+                       g_account_list = eina_list_remove(g_account_list, acc_id);
+               }
+       }
+       if (eina_list_count(g_account_list))
+               return EINA_FALSE;
+       else
+               return EINA_TRUE;
+}
+
+static void add_seed_mail_cb(void *data, Ecore_Thread *thd, void* msg_data)//(EmailMailboxUGD *mailbox_ugd, gint uid)
+{
+       debug_enter();
+
+       if( !data || !msg_data) {
+               debug_warning("PARAM NULL: data(%p), msg_data(%p)", data, msg_data);
+               return;
+       }
+
+       sync_req_t *req = (sync_req_t *)data;
+       EmailMailboxUGD *mailbox_ugd = req->mailbox_ugd;
+       list_data *ld = (list_data *) msg_data;
+
+       debug_log("SEED: thdid(%d) mailid(%d) info(%p)", req->thread_id, req->mail_id, ld);
+
+       _remove_get_more_progress_item(mailbox_ugd);
+
+       if (list_lock) {
+               debug_log("locked");
+               if (!evas_object_visible_get(mailbox_ugd->gl[mailbox_ugd->view_type]))
+                       evas_object_show(mailbox_ugd->gl[mailbox_ugd->view_type]);
+
+               edje_object_signal_emit(_EDJ(mailbox_ugd->search_layout), "hide_noc", "elm");
+               edje_object_signal_emit(_EDJ(mailbox_ugd->search_layout), "show_list", "elm");
+
+               list_lock = false;
+       }
+
+       if (mailbox_ugd->mode == EMAIL_MAILBOX_MODE_ALL) {
+               mailbox_ugd->account_id = 0;
+               mailbox_ugd->mailbox_id = 0;
+       }
+
+       debug_log("req->view_type[%d], mailbox_ugd->view_type[%d], req->mode[%d], mailbox_ugd->mode[%d]", req->view_type, mailbox_ugd->view_type, req->mode, mailbox_ugd->mode);
+
+       if(req->view_type == mailbox_ugd->view_type && req->mode == mailbox_ugd->mode)
+       {
+               /* The group items might be inserted before to receive any normal mail item */
+               mailbox_ugd->list_data[mailbox_ugd->view_type] =
+                       g_list_insert_sorted(mailbox_ugd->list_data[mailbox_ugd->view_type], ld, _compare_sort_rule_by_viewtype);
+               if(mailbox_ugd->view_type != EMAIL_VIEW_DATE)
+                       email_maillist_insert_sorted(ld);
+
+       //      debug_log("ADDED: vt(%d), thdid(%d), mailid(%d)", mailbox_ugd->view_type, ld->thread_id, ld->mail_id);
+               if (mailbox_ugd->view_type != EMAIL_VIEW_RECIPIENT) {
+                       if (!group_title[ld->group_index][0])
+                               group_title[ld->group_index][0] = g_strdup(ld->group_title);
+                       if (!group_title[ld->group_index][1])
+                               group_title[ld->group_index][1] = g_strdup(ld->group_date);
+                       debug_log("group_title: %s", group_title[ld->group_index][0]);
+               }
+
+               _insert_mail_to_mailist(mailbox_ugd, ld);
+       }
+
+       debug_log("mode: %d, folder_id: %d, ld->recipient : %s", ld->mailbox_ugd->mode, ld->mailbox_id, ld->recipient);
+
+       if (mailbox_ugd->delete_all_button != NULL) {
+               elm_object_item_disabled_set(mailbox_ugd->edit_button, EINA_FALSE);
+       }
+       debug_leave();
+       FREE(req);
+}
+
+void _delete_mail_item_cb(void *data, Ecore_Thread *thd, void* msg_data)
+{
+       debug_enter();
+
+       delete_req_t *req = (delete_req_t *)data;
+       delete_ret_t *ret = (delete_ret_t *)msg_data;
+
+       if( !req || !ret) {
+               debug_warning("PARAM NULL: data(%p), msg_data(%p)", req, ret);
+               goto CLEANUP;
+       }
+
+       list_data *ld = ret->ld;
+       EmailMailboxUGD *mailbox_ugd = req->mailbox_ugd;
+       EmailMailboxViewType vt = mailbox_ugd->view_type;
+
+       if(!_find_mailinfo_by_mailid(ret->mail_id, mailbox_ugd->list_data[vt]))
+               goto CLEANUP;
+
+       if(req->current_view != vt) {
+               debug_warning("mismatched view_type: current_view(%d), mailbox_ugd_view(%d)", req->current_view, vt);
+               goto CLEANUP;
+       }
+       mailbox_delete_mail_item_from_list(mailbox_ugd, ld);
+
+       if(!g_list_length(mailbox_ugd->list_data[vt]))
+       {
+               if (!list_lock) {
+                       if (evas_object_visible_get(mailbox_ugd->gl[mailbox_ugd->view_type]))
+                               evas_object_hide(mailbox_ugd->gl[mailbox_ugd->view_type]);
+               }
+
+               Evas_Object *no_content = elm_object_part_content_get(mailbox_ugd->search_layout, "noc");
+               elm_layout_theme_set(no_content, "layout", "nocontents", "text");
+               elm_object_part_text_set(no_content, "elm.text", dgettext("sys_string", "IDS_COM_BODY_NO_CONTENTS"));
+               edje_object_signal_emit(_EDJ(mailbox_ugd->search_layout), "hide_list", "elm");
+               edje_object_signal_emit(_EDJ(mailbox_ugd->search_layout), "show_noc", "elm");
+               //elm_object_item_disabled_set(mailbox_ugd->edit_button, EINA_TRUE);
+               if (mailbox_ugd->delete_all_button != NULL) {
+                       elm_object_item_disabled_set(mailbox_ugd->delete_all_button, EINA_TRUE);
+               }
+               list_lock = true;
+       }
+
+CLEANUP:
+       FREE(ret);
+       debug_leave();
+}
+
+void _move_mail_item_cb(void *data, Ecore_Thread *thd, void* msg_data)
+{
+       debug_enter();
+
+       move_req_t *req = (move_req_t *)data;
+       delete_ret_t *ret = (delete_ret_t *)msg_data;
+
+       if( !req || !ret) {
+               debug_warning("PARAM NULL: data(%p), msg_data(%p)", req, ret);
+               goto CLEANUP;
+       }
+
+       list_data *ld = ret->ld;
+       EmailMailboxUGD *mailbox_ugd = req->mailbox_ugd;
+       EmailMailboxViewType vt = mailbox_ugd->view_type;
+
+       if(req->current_view != vt) {
+               debug_warning("mismatched view_type: current_view(%d), mailbox_ugd_view(%d)", req->current_view, vt);
+               goto CLEANUP;
+       }
+
+       if(!_find_mailinfo_by_mailid(ret->mail_id, mailbox_ugd->list_data[vt]))
+               goto CLEANUP;
+
+
+       if(mailbox_ugd->mode != EMAIL_MAILBOX_MODE_MAILBOX
+               && req->mailbox_type == EMAIL_MAILBOX_TYPE_SENTBOX)
+       {
+               if(ld->item) elm_genlist_item_update(ld->item);
+       }
+       else
+       {
+               mailbox_delete_mail_item_from_list(mailbox_ugd, ld);
+       }
+
+       if(!g_list_length(mailbox_ugd->list_data[vt]))
+       {
+               if (!list_lock) {
+                       if (evas_object_visible_get(mailbox_ugd->gl[mailbox_ugd->view_type]))
+                               evas_object_hide(mailbox_ugd->gl[mailbox_ugd->view_type]);
+               }
+
+               Evas_Object *no_content = elm_object_part_content_get(mailbox_ugd->search_layout, "noc");
+               elm_layout_theme_set(no_content, "layout", "nocontents", "text");
+               elm_object_part_text_set(no_content, "elm.text", dgettext("sys_string", "IDS_COM_BODY_NO_CONTENTS"));
+               edje_object_signal_emit(_EDJ(mailbox_ugd->search_layout), "hide_list", "elm");
+               edje_object_signal_emit(_EDJ(mailbox_ugd->search_layout), "show_noc", "elm");
+               //elm_object_item_disabled_set(mailbox_ugd->edit_button, EINA_TRUE);
+               if (mailbox_ugd->delete_all_button != NULL) {
+                       elm_object_item_disabled_set(mailbox_ugd->delete_all_button, EINA_TRUE);
+               }
+               list_lock = true;
+       }
+
+CLEANUP:
+       FREE(ret);
+       debug_leave();
+}
+
+void _move_finish_cb(void* data, Ecore_Thread *thd)
+{
+       debug_enter();
+       if( !data ) {
+               debug_warning("PARAM NULL: data(%p)", data);
+               return;
+       }
+       move_req_t *req = (move_req_t *)data;
+       _release_noti_Q_event(req->mailbox_ugd);
+
+       FREE(req->msg_buf);
+       FREE(req);
+       debug_leave();
+}
+
+void _dbus_receiver_setup(EmailMailboxUGD *mailbox_ugd)
+{
+       debug_log("");
+       int ret = e_dbus_init();
+       debug_log("ret: %d", ret);
+
+       DBusError derror;
+
+       if (_g_mailbox_conn == NULL) {
+               debug_log("");
+               dbus_error_init(&derror);
+               _g_mailbox_conn = e_dbus_bus_get(DBUS_BUS_SYSTEM);
+
+               if (e_dbus_request_name(_g_mailbox_conn, "User.Email.StorageChange", 0, NULL, NULL) == NULL) {
+                       debug_critical("Failed to e_dbus_request_name()");
+                       return;
+               }
+               if (_g_signal_handler_storage != NULL) {
+                       debug_warning("_g_signal_handler_storage must be NULL at this point");
+               }
+               _g_signal_handler_storage = e_dbus_signal_handler_add(_g_mailbox_conn, NULL, "/User/Email/StorageChange", "User.Email.StorageChange", "email", _edbus_event_mailbox_receive, mailbox_ugd);
+               if (_g_signal_handler_storage == NULL) {
+                       debug_critical("Failed to e_dbus_signal_handler_add()");
+                       return;
+               }
+
+               if (e_dbus_request_name(_g_mailbox_conn, "User.Email.NetworkStatus", 0, NULL, NULL) == NULL) {
+                       debug_critical("Failed to e_dbus_request_name()");
+                       return;
+               }
+               if (_g_signal_handler_network != NULL) {
+                       debug_warning("_g_signal_handler_storage must be NULL at this point");
+               }
+               _g_signal_handler_network = e_dbus_signal_handler_add(_g_mailbox_conn, NULL, "/User/Email/NetworkStatus", "User.Email.NetworkStatus", "email", _edbus_event_mailbox_receive, mailbox_ugd);
+               if (_g_signal_handler_network == NULL) {
+                       debug_critical("Failed to e_dbus_signal_handler_add()");
+                       return;
+               }
+       }
+}
+
+void _remove_dbus_receiver(EmailMailboxUGD *mailbox_ugd)
+{
+       debug_log("");
+
+       if (_g_signal_handler_storage != NULL) {
+               e_dbus_signal_handler_del(_g_mailbox_conn, _g_signal_handler_storage);
+               _g_signal_handler_storage = NULL;
+       }
+
+       if (_g_signal_handler_network != NULL) {
+               e_dbus_signal_handler_del(_g_mailbox_conn, _g_signal_handler_network);
+               _g_signal_handler_network = NULL;
+       }
+
+       if (e_dbus_release_name(_g_mailbox_conn, "User.Email.StorageChange", NULL, NULL) == NULL) {
+               debug_critical("e_dbus_release_name to failed");
+       }
+
+       if (_g_mailbox_conn != NULL) {
+               _g_mailbox_conn = NULL;
+       }
+}
+
+
+static void _edbus_event_mailbox_receive(void *local_data, DBusMessage *message)
+{
+       debug_enter();
+       if (get_app_terminated()) {
+               debug_log("App is in terminating");
+               return;
+       }
+
+       EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)local_data;
+       DBusError error;
+
+       if (mailbox_ugd == NULL) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       if (dbus_message_is_signal(message, "User.Email.StorageChange", "email")) {
+               debug_log("User.Email.StorageChange");
+
+               int subtype = 0;
+               int data1 = 0;
+               int data2 = 0;
+               char *data3 = NULL;
+               int data4 = 0;
+
+               dbus_error_init(&error);
+
+               if (dbus_message_get_args(message, &error, DBUS_TYPE_INT32, &subtype,
+                       DBUS_TYPE_INT32, &data1, DBUS_TYPE_INT32, &data2,
+                       DBUS_TYPE_STRING, &data3, DBUS_TYPE_INT32, &data4, DBUS_TYPE_INVALID)) {
+                       debug_log("STORE_ENABLE: subtype: %d, data1: %d, data2: %d, data3: %s, data4: %d", subtype, data1, data2, data3, data4);
+
+                       int account_id = 0;
+                       int thread_id = 0;
+                       int mailid = 0;
+                       int mailbox_id = 0;
+                       char* msg_buf = NULL;
+                       int view_type = mailbox_ugd->view_type;
+
+                       switch (subtype) {
+
+                       /* This notification could be called in pause state when an account is added or deleted in setting app */
+                       case NOTI_ACCOUNT_ADD:
+                       case NOTI_ACCOUNT_DELETE:
+                               debug_log("account added or deleted during pause status");
+
+                               /* destroy all top ug and refresh all emails */
+                               if (mailbox_ugd->ug_account) {
+                                       destroy_account_cb(mailbox_ugd->ug_account, mailbox_ugd);
+                                       ug_pushed = false;
+                               }
+                               if (mailbox_ugd->ug_composer) {
+                                       ug_destroy(mailbox_ugd->ug_composer);
+                                       mailbox_ugd->ug_composer = NULL;
+                                       ug_pushed = false;
+                               }
+
+                               if (!email_engine_get_default_account(&account_id)) {
+                                       debug_log("no account exists");
+                                       ug_destroy_me(mailbox_ugd->ug);
+                               } else {
+                                       if (list_lock) {
+                                               debug_log("locked");
+                                               if (!evas_object_visible_get(mailbox_ugd->gl[view_type]))
+                                                       evas_object_show(mailbox_ugd->gl[view_type]);
+
+                                               edje_object_signal_emit(_EDJ(mailbox_ugd->search_layout), "hide_noc", "elm");
+                                               edje_object_signal_emit(_EDJ(mailbox_ugd->search_layout), "show_list", "elm");
+
+                                               list_lock = false;
+                                       }
+
+                                       mailbox_ugd->account_id = 0;
+                                       mailbox_ugd->mode = EMAIL_MAILBOX_MODE_ALL;
+                                       mailbox_ugd->mailbox_type = EMAIL_MAILBOX_TYPE_NONE;
+                                       mailbox_ugd->mailbox_id = 0;
+                                       FREE(mailbox_ugd->user_email);
+                                       FREE(mailbox_ugd->folder_alias);
+
+                                       switch(view_type)
+                                       {
+                                               case EMAIL_VIEW_SEARCH:
+                                                       elm_object_focus_set(mailbox_ugd->gl[view_type], EINA_TRUE);
+                                                       evas_object_smart_callback_call(mailbox_ugd->searchbar_layout, "cancel,clicked", mailbox_ugd);
+                                                       break;
+                                               case EMAIL_VIEW_EDIT:
+                                                       //elm_toolbar_item_selected_set(mailbox_ugd->edit_cancel_button, EINA_TRUE);
+                                                       _edit_back_cb(mailbox_ugd, NULL, NULL);
+                                                       break;
+                                               default:
+                                                       break;
+                                       }
+                                       elm_segment_control_item_selected_set(mailbox_ugd->date_tab, EINA_TRUE);
+                                       _update_navigationbar_title(mailbox_ugd);
+                                       mailbox_make_date_mail_list(mailbox_ugd);
+                                       _sync_all_folder(mailbox_ugd);
+
+                               }
+                               break;
+
+                       case NOTI_MAIL_MOVE:
+                               account_id = data1;
+                               msg_buf = data3;
+
+                               if(view_type == EMAIL_VIEW_RECIPIENT) {
+                                       _refresh_mailbox(mailbox_ugd);
+                               }
+                               else {
+                                       move_req_t *req = MEM_ALLOC(req, 1);
+                                       if(!req) return;
+                                       /* this dynamic var should be freed in NotiCB */
+                                       *req = (move_req_t) {account_id, view_type, 0, g_strdup(msg_buf), mailbox_ugd};
+                                       ecore_thread_feedback_run(_worker_get_move_mail_list_cb, _move_mail_item_cb,
+                                                                                       _move_finish_cb, NULL, req, EINA_TRUE);
+
+                                       debug_log("Insert noti event to noti_Q to update previous view: data[%s]", data3);
+                                       // insert the notification to noti_Q to update previous view (EMAIL_VIEW_DATE || EMAIL_VIEW_RECIPIENT)
+                                       noti_event *noti = MEM_ALLOC(noti, 1);
+                                       *noti = (noti_event){NOTI_MAIL_MOVE, data1, data2, g_strdup(data3), data4};
+                                       mailbox_ugd->noti_Q = g_list_prepend(mailbox_ugd->noti_Q, (gpointer)noti);
+                               }
+                               break;
+
+                       case NOTI_MAIL_DELETE:
+                               account_id = data1;
+                               msg_buf = data3;
+
+                               if(view_type == EMAIL_VIEW_RECIPIENT) {
+                                       _refresh_mailbox(mailbox_ugd);
+                               } else {
+                                       delete_req_t *req = MEM_ALLOC(req, 1);
+                                       if(!req) return;
+                                       /* this dynamic var should be freed in NotiCB */
+                                       *req = (delete_req_t) {account_id, view_type, 0, g_strdup(msg_buf), mailbox_ugd};
+                                       ecore_thread_feedback_run(_worker_get_delete_mail_list_cb, _delete_mail_item_cb,
+                                                                                       _delete_finish_cb, NULL, req, EINA_TRUE);
+
+                                       debug_log("Insert noti event to noti_Q to update previous view: data[%s]", data3);
+                                       // insert the notification to noti_Q to update previous view (EMAIL_VIEW_RECIPIENT || EMAIL_VIEW_DATE)
+                                       noti_event *noti = MEM_ALLOC(noti, 1);
+                                       *noti = (noti_event){NOTI_MAIL_DELETE, data1, data2, g_strdup(data3), data4};
+                                       mailbox_ugd->noti_Q = g_list_prepend(mailbox_ugd->noti_Q, (gpointer)noti);
+
+                               }
+                               break;
+
+                       case NOTI_MAIL_ADD: /* Seed mail was received */
+                               account_id = data1;
+                               thread_id = data4;
+                               mailid = data2;
+                               mailbox_id = atoi(data3);
+
+                               email_mailbox_type_e mailbox_type = GET_MAILBOX_TYPE(mailbox_id);
+
+                               if(mailid == thread_id)
+                               {
+                                       if (mailbox_ugd->mode == EMAIL_MAILBOX_MODE_ALL && mailbox_ugd->mailbox_type == mailbox_type)
+                                       {
+                                               if ( view_type == EMAIL_VIEW_DATE || view_type == EMAIL_VIEW_UNREAD ||
+                                                               view_type == EMAIL_VIEW_IMPORTANT ||view_type == EMAIL_VIEW_PRIORITY ||
+                                                               view_type == EMAIL_VIEW_ATTACHMENTS)
+                                               {
+                                                       sync_req_t *req = MEM_ALLOC(req, 1);
+                                                       if(!req) return;
+                                                       /* this dynamic var should be freed in NotiCB */
+                                                       *req = (sync_req_t) {account_id, thread_id, mailid, mailbox_id,
+                                                                                               view_type, mailbox_ugd->mode, mailbox_ugd};
+                                                       ecore_thread_feedback_run(_worker_get_mail_info_cb, add_seed_mail_cb,
+                                                                                                       NULL, NULL, req, EINA_TRUE);
+
+                                               }
+                                               else if (view_type == EMAIL_VIEW_RECIPIENT)
+                                               {
+                                                       _refresh_mailbox(mailbox_ugd);
+                                               }
+                                               else {
+                                                       /* Do nothing */
+                                                       debug_log("Do nothing in view_type[%d]", view_type);
+                                               }
+                                       }
+                                       else
+                                       {
+                                               if (mailbox_ugd->mailbox_id == mailbox_id) {
+                                                       if ((view_type == EMAIL_VIEW_DATE || view_type == EMAIL_VIEW_UNREAD ||
+                                                                       view_type == EMAIL_VIEW_IMPORTANT || view_type == EMAIL_VIEW_PRIORITY ||
+                                                                       view_type == EMAIL_VIEW_ATTACHMENTS) &&
+                                                                       mailbox_ugd->account_id == account_id &&
+                                                               mailbox_ugd->mailbox_id == mailbox_id)
+                                                       {
+                                                               _mailbox_list_add_item(mailbox_ugd, data2);
+                                                       }
+                                                       else if (view_type == EMAIL_VIEW_RECIPIENT && mailbox_ugd->account_id == account_id
+                                                                       && mailbox_ugd->mailbox_id == mailbox_id)
+                                                       {
+                                                               _refresh_mailbox(mailbox_ugd);
+                                                       }
+                                                       else {
+                                                               /* Do nothing */
+                                                               debug_log("Do nothing in view_type[%d]", view_type);
+                                                       }
+                                               }
+                                       }
+                               }
+                               break;
+
+                       case NOTI_MAIL_UPDATE:
+                               account_id = data1;
+                               mailid = data2;
+                               int type = data4;
+
+                               if(type == UPDATE_PARTIAL_BODY_DOWNLOAD) {
+                                       list_data *ld = _find_mailinfo_by_mailid(mailid, mailbox_ugd->list_data[view_type]);
+                                       if(ld) {
+                                               email_mail_list_item_t* mail_info = NULL;
+                                               mail_info = get_mail_info(mailid);
+                                               if(!mail_info) break;
+                                               ld->is_attachment = mail_info->has_attachment;
+                                               ld->preview_body = STRNDUP(mail_info->previewBodyText, MAX_PREVIEW_TEXT_LENGTH-1);
+                                               elm_genlist_item_update(ld->item);
+                                               FREE(mail_info);
+                                       }
+                               } else if(type == UPDATE_EXTRA_FLAG) {
+                                       if (mailbox_ugd->mode == EMAIL_MAILBOX_MODE_MAILBOX && mailbox_ugd->mailbox_type == EMAIL_MAILBOX_TYPE_OUTBOX)
+                                       {
+                                               list_data *ld = _find_mailinfo_by_mailid(mailid, mailbox_ugd->list_data[view_type]);
+                                               if(ld) {
+                                                       email_mail_list_item_t* mail_info = NULL;
+                                                       mail_info = get_mail_info(mailid);
+                                                       if(!mail_info) break;
+                                                       ld->is_sending_now = mail_info->save_status;
+                                                       elm_genlist_item_update(ld->item);
+                                                       FREE(mail_info);
+                                               }
+                                       }
+                               } else if(type == UPDATE_MAIL){
+                                       list_data *ld = _find_mailinfo_by_mailid(mailid, mailbox_ugd->list_data[view_type]);
+                                       if(ld) {
+                                               email_mail_list_item_t* mail_info = NULL;
+                                               mail_info = get_mail_info(mailid);
+                                               if(!mail_info) break;
+                                               ld->is_seen = mail_info->flags_seen_field;
+                                               ld->followup_flag = mail_info->flags_flagged_field;
+                                               ld->reply_flag = mail_info->flags_answered_field;
+                                               ld->forward_flag = mail_info->flags_forwarded_field;
+                                               elm_genlist_item_update(ld->item);
+                                               FREE(mail_info);
+                                       }
+                               }
+                               break;
+
+                       default:
+                               debug_log("Uninterested notification");
+                               break;
+                       }
+               }
+               else {
+                       debug_critical("receive data error: %s", error.message);
+                       dbus_error_free(&error);
+               }
+
+       }
+       else if (dbus_message_is_signal(message, "User.Email.NetworkStatus", "email"))
+       {
+               debug_log("User.Email.NetworkStatus");
+
+               int subtype = 0;
+               int data1 = 0;
+               char *data2 = NULL;
+               int data3 = 0;
+               int data4 = 0;
+
+               dbus_error_init(&error);
+
+               if (dbus_message_get_args(message, &error, DBUS_TYPE_INT32, &subtype,
+                       DBUS_TYPE_INT32, &data1, DBUS_TYPE_STRING, &data2,
+                       DBUS_TYPE_INT32, &data3, DBUS_TYPE_INT32, &data4, DBUS_TYPE_INVALID)) {
+                       debug_log("subtype: %d, data1: %d, data2: %s, data3: %d, data4: %d", subtype, data1, data2, data3, data4);
+
+                       switch (subtype) {
+                       case NOTI_DOWNLOAD_START:
+                               break;
+
+                       case NOTI_DOWNLOAD_FINISH:
+                       case NOTI_DOWNLOAD_FAIL:
+                               if (email_check_account_list(data1)) {
+                                       _remove_get_more_progress_item(mailbox_ugd);
+
+                                       if (mailbox_ugd->sync_progress == elm_object_part_content_get(mailbox_ugd->navi_title_ly, "right_btn"))
+                                       {
+                                               elm_object_part_content_unset(mailbox_ugd->navi_title_ly, "right_btn");
+                                               evas_object_hide(mailbox_ugd->sync_progress);
+                                               elm_object_part_content_set(mailbox_ugd->navi_title_ly, "right_btn", mailbox_ugd->update_button);
+                                               evas_object_show(mailbox_ugd->update_button);
+                                       }
+                               }
+                               break;
+
+                       case NOTI_VALIDATE_AND_CREATE_ACCOUNT_FINISH:
+                               break;
+
+                       default:
+                               debug_log("Uninterested notification");
+                               break;
+                       }
+               }
+               else {
+                       debug_critical("receive data error: %s", error.message);
+                       dbus_error_free(&error);
+               }
+       }
+       else {
+               debug_warning("We receive dbus message, but we can't do anything");
+       }
+       debug_leave();
+}
+
+
diff --git a/mailbox/src/email-mailbox-search.c b/mailbox/src/email-mailbox-search.c
new file mode 100755 (executable)
index 0000000..2f9fef1
--- /dev/null
@@ -0,0 +1,1033 @@
+/*
+ * Copyright 2012  Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *    http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <stdio.h>
+#include <appcore-efl.h>
+#include <glib.h>
+#include <glib/gprintf.h>
+#include <Ecore_X.h>
+
+#include "email-debug.h"
+#include "email-common-types.h"
+#include "email-mailbox.h"
+#include "email-mailbox-list.h"
+#include "email-mailbox-search.h"
+
+
+//static Elm_Genlist_Item_Class itc_popup;
+gboolean g_focus_lock = false;
+extern gboolean list_lock;
+
+static Evas_Object *genlist_for_search;
+static Elm_Genlist_Item_Class itc_search_view;
+
+
+typedef struct {
+       int index;
+       Evas_Object *radio;
+       EmailMailboxUGD *mailbox_ugd;
+} searchby_req_t;
+searchby_req_t searchby_req[SEARCHBY_MAX];
+
+typedef enum {
+       MAILBOX_SEARCH_LIST_TYPE_UNKNOWN = -1,
+       MAILBOX_SEARCH_LIST_TYPE_TITLE,
+       MAILBOX_SEARCH_LIST_TYPE_SENDER,
+       MAILBOX_SEARCH_LIST_TYPE_FROM_DATE,
+       MAILBOX_SEARCH_LIST_TYPE_TO_DATE,
+       MAILBOX_SEARCH_LIST_TYPE_MAX,
+} MailboxSearchListItemType;
+
+typedef struct {
+       int type;
+       MailboxAdvSearchViewInfo* search_info;
+} mailbox_search_list_item;
+
+static void _move_searchby_ctxpopup(Evas_Object *ctxpopup, Evas_Object *btn);
+static void _searchby_dismissed_cb(void *data, Evas_Object *obj, void *event_info);
+static void _searchby_ctxpopup_cb(void *data, Evas_Object *obj, void *event_info);
+static void _searchbar_cancel_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+static void _eraser_clicked_cb(void *data, Evas_Object *obj, const char *emission, const char *source);
+static void _bg_clicked_cb(void *data, Evas_Object *obj, const char *emission, const char *source);
+static void _searchby_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+static void _searchsymbol_clicked_cb(void *data, Evas_Object *obj, const char *emission, const char *source);
+static int late_search(EmailMailboxUGD *mailbox_ugd);
+static void _searchbar_entry_key_down_cb(void *data, Evas * e, Evas_Object * obj, void *event_info);
+static void _searchbar_entry_focus_cb(void *data, Evas_Object *obj, void *event_info);
+static void _searchbar_entry_unfocus_cb(void *data, Evas_Object *obj, void *event_info);
+static void _searchbar_entry_changed_cb(void *data, Evas_Object *obj, void *event_info);
+
+static Eina_Bool _mailbox_create_search_criteria_view(int search_type, void *data);
+static void _mailbox_advanced_search_start_cb(void *data, Evas_Object *obj, void *event_info);
+static void _mailbox_advanced_search_cancel_cb(void *data, Evas_Object *obj, void *event_info);
+static void _mailbox_advanced_search_key_down_cb(void *data, Evas * e, Evas_Object * obj, void *event_info);
+static void _mailbox_advanced_edit_entry_unfocused_cb(void *data, Evas_Object *obj, void *event_info);
+static void _mailbox_advanced_edit_entry_focused_cb(void *data, Evas_Object *obj, void *event_info);
+static void _mailbox_advanced_search_backup_input_cb(void *data, Evas_Object *obj, void *event_info);
+static void _mailbox_advanced_edit_entry_changed_cb(void *data, Evas_Object *obj, void *event_info);
+static Evas_Object *_gl_advanced_searcn_view_content_get_cb(void *data, Evas_Object *obj, const char *part);
+static void _gl_advanced_search_sel_cb(void *data, Evas_Object *obj, void *event_info);
+static void _mailbox_create_list_view_for_advanced_search(void *data, int search_type);
+static void _mailbox_advanced_edit_eraser_clicked_cb(void *data, Evas_Object *obj, const char *emission, const char *source);
+static void _mailbox_search_from_date_changed_cb(void *data, Evas_Object *obj, void *event_info);
+static void _mailbix_search_to_date_changed_cb(void *data, Evas_Object *obj, void *event_info);
+static void _mailbox_advanced_view_create_controlbar_button(Evas_Object *btn, char *label, char *style, void (*func) (void *data, Evas_Object *obj, void *event_info), void* data);
+void _mailbox_free_search_list_data(MailboxAdvSearchViewInfo *search_info);
+
+void mailbox_create_searchbar(EmailMailboxUGD *mailbox_ugd)
+{
+       debug_log("");
+
+       Evas_Object *searchbar_layout = elm_layout_add(mailbox_ugd->navi_bar);
+       elm_layout_file_set(searchbar_layout, THEME_PATH, "search");
+       evas_object_size_hint_weight_set(searchbar_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(searchbar_layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+       elm_object_part_content_set(mailbox_ugd->sub_layout[mailbox_ugd->view_type], "searchbar", searchbar_layout);
+
+       //searchbar category button
+       mailbox_ugd->searchby_button = elm_button_add(searchbar_layout);
+       Evas_Object *searchby_icon = elm_icon_add(mailbox_ugd->searchby_button);
+       elm_icon_file_set(searchby_icon, IMGDIR"/M02_email_icon_popup_all_press.png", NULL);
+       elm_icon_resizable_set(searchby_icon, 0, 0);
+       evas_object_image_smooth_scale_set(searchby_icon, 0);
+       elm_object_content_set(mailbox_ugd->searchby_button, searchby_icon);
+       evas_object_smart_callback_add(mailbox_ugd->searchby_button, "clicked", _searchby_clicked_cb, mailbox_ugd);
+       mailbox_ugd->search_type = EMAIL_SEARCH_ALL;
+
+       elm_object_part_content_set(searchbar_layout, "searchbar_area_category", mailbox_ugd->searchby_button);
+
+       //searchbar area
+       Evas_Object *searchbar_area = elm_layout_add(searchbar_layout);
+       elm_layout_theme_set(searchbar_area, "layout", "searchbar", "cancel_button");
+       elm_object_part_content_set(searchbar_layout, "searchbar_area_entry", searchbar_area);
+
+       Evas_Object *entry = elm_entry_add(searchbar_area);
+       elm_entry_scrollable_set(entry, EINA_TRUE);
+       elm_entry_single_line_set(entry, EINA_TRUE);
+       evas_object_event_callback_add(entry, EVAS_CALLBACK_KEY_DOWN, _searchbar_entry_key_down_cb, mailbox_ugd);
+       evas_object_smart_callback_add(entry, "focused", _searchbar_entry_focus_cb, mailbox_ugd);
+       evas_object_smart_callback_add(entry, "unfocused", _searchbar_entry_unfocus_cb, mailbox_ugd);
+       elm_object_part_content_set(searchbar_area, "elm.swallow.content", entry);
+       elm_object_part_text_set(searchbar_area, "elm.guidetext", dgettext("sys_string", "IDS_COM_BODY_SEARCH"));
+       elm_object_signal_callback_add(searchbar_area, "elm,eraser,clicked", "elm", _eraser_clicked_cb, entry);
+       elm_object_signal_callback_add(searchbar_area, "elm,bg,clicked", "elm", _bg_clicked_cb, entry);
+       elm_entry_input_panel_layout_set(entry, ELM_INPUT_PANEL_LAYOUT_NORMAL);
+       evas_object_size_hint_weight_set(searchbar_area, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(searchbar_area, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+       Evas_Object *cancel_btn = elm_button_add(searchbar_area);
+       elm_object_part_content_set(searchbar_area, "button_cancel", cancel_btn);
+       elm_object_style_set(cancel_btn, "searchbar/default");
+       elm_object_text_set(cancel_btn, dgettext("sys_string", "IDS_COM_SK_CANCEL"));
+
+       evas_object_smart_callback_add(cancel_btn, "clicked", _searchbar_cancel_clicked_cb, mailbox_ugd);
+       elm_object_signal_callback_add(searchbar_area, "elm,action,click", "", _searchsymbol_clicked_cb, mailbox_ugd);
+
+       mailbox_ugd->searchbar_en = entry;
+       mailbox_ugd->searchbar_layout = searchbar_layout;
+       mailbox_ugd->searchbar_area = searchbar_area;
+
+}
+
+static void _bg_clicked_cb(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+       elm_object_focus_set(data, EINA_TRUE);
+}
+
+
+static void _eraser_clicked_cb(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+       elm_entry_entry_set(data, "");
+
+       Ecore_IMF_Context *imf_context = (Ecore_IMF_Context *)elm_entry_imf_context_get(data);
+
+       if (imf_context) {
+               ecore_imf_context_input_panel_show(imf_context);
+       }
+}
+
+static void _searchby_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+
+       EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data;
+//     Elm_Object_Item *item;
+//     Evas_Object *genlist;
+/*
+       if (mailbox_ugd->view_type == EMAIL_VIEW_SEARCH) {
+               debug_log("focused from search view, return");
+               if (!elm_entry_is_empty(obj))
+                       elm_object_signal_emit(mailbox_ugd->searchbar_layout, "elm,state,eraser,show", "elm");
+               elm_object_signal_emit(mailbox_ugd->searchbar_layout, "elm,state,guidetext,hide", "elm");
+
+               return;
+       }
+*/
+
+       if(mailbox_ugd->searchby_ctx_popup) {
+               evas_object_del(mailbox_ugd->searchby_ctx_popup);
+               mailbox_ugd->searchby_ctx_popup = NULL;
+       }
+
+       mailbox_ugd->searchby_ctx_popup = elm_ctxpopup_add(mailbox_ugd->navi_bar);
+       evas_object_smart_callback_add(mailbox_ugd->searchby_ctx_popup, "dismissed", _searchby_dismissed_cb, mailbox_ugd);
+
+       Evas_Object* icon;
+       icon = elm_icon_add(mailbox_ugd->searchby_ctx_popup);
+       elm_icon_file_set(icon, IMGDIR "/M02_email_icon_popup_all.png", NULL);
+       elm_ctxpopup_item_append(mailbox_ugd->searchby_ctx_popup, dgettext("sys_string", "IDS_COM_BODY_ALL"), icon, _searchby_ctxpopup_cb, mailbox_ugd);
+
+       icon = elm_icon_add(mailbox_ugd->searchby_ctx_popup);
+       elm_icon_file_set(icon, IMGDIR "/M02_email_icon_popup_title.png", NULL);
+       elm_ctxpopup_item_append(mailbox_ugd->searchby_ctx_popup, dgettext("sys_string", "IDS_COM_BODY_DETAILS_TITLE"), icon, _searchby_ctxpopup_cb, mailbox_ugd);
+
+       icon = elm_icon_add(mailbox_ugd->searchby_ctx_popup);
+       elm_icon_file_set(icon, IMGDIR "/M02_email_icon_popup_sender.png", NULL);
+
+       if ((mailbox_ugd->mailbox_type == EMAIL_MAILBOX_TYPE_SENTBOX)
+                       || (mailbox_ugd->mailbox_type == EMAIL_MAILBOX_TYPE_OUTBOX)
+                       || (mailbox_ugd->mailbox_type == EMAIL_MAILBOX_TYPE_DRAFT)) {
+               elm_ctxpopup_item_append(mailbox_ugd->searchby_ctx_popup, _("IDS_EMAIL_OPT_RECIPIENT"), icon, _searchby_ctxpopup_cb, mailbox_ugd);
+       } else {
+               elm_ctxpopup_item_append(mailbox_ugd->searchby_ctx_popup, _("IDS_EMAIL_OPT_SENDER"), icon, _searchby_ctxpopup_cb, mailbox_ugd);
+       }
+
+       icon = elm_icon_add(mailbox_ugd->searchby_ctx_popup);
+       elm_icon_file_set(icon, IMGDIR "/M02_email_icon_popup_date.png", NULL);
+       elm_ctxpopup_item_append(mailbox_ugd->searchby_ctx_popup, _("IDS_EMAIL_OPT_DATE"), icon, _searchby_ctxpopup_cb, mailbox_ugd);
+
+       icon = elm_icon_add(mailbox_ugd->searchby_ctx_popup);
+       elm_icon_file_set(icon, IMGDIR "/M02_email_icon_popup_advanced.png", NULL);
+       elm_ctxpopup_item_append(mailbox_ugd->searchby_ctx_popup, _("IDS_EMAIL_OPT_ADVANCED"), icon, _searchby_ctxpopup_cb, mailbox_ugd);
+
+       _move_searchby_ctxpopup(mailbox_ugd->searchby_ctx_popup, obj);
+
+       elm_ctxpopup_direction_priority_set(mailbox_ugd->searchby_ctx_popup, ELM_CTXPOPUP_DIRECTION_DOWN, ELM_CTXPOPUP_DIRECTION_RIGHT, ELM_CTXPOPUP_DIRECTION_LEFT, ELM_CTXPOPUP_DIRECTION_UP);
+
+       evas_object_show(mailbox_ugd->searchby_ctx_popup);
+}
+
+static void _move_searchby_ctxpopup(Evas_Object *ctxpopup, Evas_Object *btn)
+{
+       debug_log("");
+
+       Evas_Coord x, y, w, h;
+       evas_object_geometry_get(btn, &x, &y, &w, &h);
+       evas_object_move(ctxpopup, x + (w / 2), y + h);
+}
+
+static void _searchby_dismissed_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+
+       EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data;
+
+       evas_object_del(mailbox_ugd->searchby_ctx_popup);
+       mailbox_ugd->searchby_ctx_popup = NULL;
+}
+
+static void _searchby_ctxpopup_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+
+       int search_type;
+       EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data;
+
+       const char *label = elm_object_item_text_get((Elm_Object_Item *) event_info);
+       if(!label)
+               goto CLEANUP;
+       debug_log("text(%s) is clicked\n", label);
+
+       if(!g_strcmp0(label, dgettext("sys_string", "IDS_COM_BODY_ALL")))
+               search_type = EMAIL_SEARCH_ALL;
+       else if(!g_strcmp0(label, dgettext("sys_string", "IDS_COM_BODY_DETAILS_TITLE")))
+               search_type = EMAIL_SEARCH_SUBJECT;
+       else if(!g_strcmp0(label, _("IDS_EMAIL_OPT_SENDER")))
+               search_type = EMAIL_SEARCH_FROM;
+       else if(!g_strcmp0(label, _("IDS_EMAIL_OPT_RECIPIENT")))
+               search_type = EMAIL_SEARCH_TO;
+       else if(!g_strcmp0(label, _("IDS_EMAIL_OPT_DATE")))
+               search_type = EMAIL_SEARCH_DATE;
+       else if(!g_strcmp0(label, _("IDS_EMAIL_OPT_ADVANCED")))
+               search_type = EMAIL_SEARCH_ADVANCED;
+       else
+               goto CLEANUP;
+
+       debug_log("the previous type: %d, the new type: %d", mailbox_ugd->search_type, search_type);
+
+       if (mailbox_ugd->search_type == search_type)
+               goto CLEANUP;
+
+       _stop_emf_job(mailbox_ugd, mailbox_ugd->emf_handle, true);
+
+       //change searchby icon
+       Evas_Object *searchby_icon = elm_icon_add(mailbox_ugd->searchby_button);
+       Evas_Object *prev_searchby_btn = elm_object_content_get(mailbox_ugd->searchby_button);
+       evas_object_del(prev_searchby_btn);
+       mailbox_ugd->search_type = search_type;
+
+       if (search_type == EMAIL_SEARCH_ALL)            // All
+       {
+               elm_icon_file_set(searchby_icon, IMGDIR"/M02_email_icon_popup_all_press.png", NULL);
+       }
+       else if (search_type == EMAIL_SEARCH_SUBJECT)   // SUBJECT
+       {
+               elm_icon_file_set(searchby_icon, IMGDIR"/M02_email_icon_popup_title_press.png", NULL);
+       }
+       else if (search_type == EMAIL_SEARCH_FROM || search_type == EMAIL_SEARCH_TO)    // FROM or Recipient(TO)
+       {
+               elm_icon_file_set(searchby_icon, IMGDIR"/M02_email_icon_popup_sender_press.png", NULL);
+       }
+       else if (search_type == EMAIL_SEARCH_DATE)      // Date
+       {
+               elm_icon_file_set(searchby_icon, IMGDIR"/M02_email_icon_popup_date_press.png", NULL);
+       }
+       else if (search_type == EMAIL_SEARCH_ADVANCED)  // Advanced
+       {
+               elm_icon_file_set(searchby_icon, IMGDIR"/M02_email_icon_popup_advanced_press.png", NULL);
+       }
+       else
+               goto CLEANUP;
+
+       elm_icon_resizable_set(searchby_icon, 0, 0);
+       evas_object_image_smooth_scale_set(searchby_icon, 0);
+       elm_object_content_set(mailbox_ugd->searchby_button, searchby_icon);
+
+       if (search_type == EMAIL_SEARCH_ADVANCED || search_type == EMAIL_SEARCH_DATE)
+               _mailbox_create_search_criteria_view(search_type, data);
+       else if (mailbox_ugd->view_type == EMAIL_VIEW_SEARCH)
+               late_search(mailbox_ugd);
+
+
+CLEANUP:
+
+       evas_object_del(mailbox_ugd->searchby_ctx_popup);
+       mailbox_ugd->searchby_ctx_popup = NULL;
+       return;
+}
+
+static void _searchbar_entry_key_down_cb(void *data, Evas * e, Evas_Object * obj, void *event_info)
+{
+       debug_log("");
+       EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data;
+       Evas_Event_Key_Down *ev = (Evas_Event_Key_Down *) event_info;
+
+       debug_log("ev->key : %s", ev->key);
+
+       if (STR_CMP(ev->key, "Return")) {
+               debug_log("Return key is pressed. hide the entry ");
+               ecore_imf_context_input_panel_hide((Ecore_IMF_Context *)elm_entry_imf_context_get(mailbox_ugd->searchbar_en));
+       }
+}
+
+static void _searchbar_entry_focus_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+
+       EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data;
+
+       if (!mailbox_ugd->b_advanced_search_view && (mailbox_ugd->search_type == EMAIL_SEARCH_ADVANCED || mailbox_ugd->search_type == EMAIL_SEARCH_DATE)) {
+               elm_entry_entry_set(mailbox_ugd->searchbar_en, "");
+               _mailbox_create_search_criteria_view(mailbox_ugd->search_type, data);
+               return;
+       }
+
+       if (mailbox_ugd->view_type == EMAIL_VIEW_SEARCH) {
+               debug_log("focused from search view, return");
+               if (!elm_entry_is_empty(obj))
+                       elm_object_signal_emit(mailbox_ugd->searchbar_area, "elm,state,eraser,show", "elm");
+               elm_object_signal_emit(mailbox_ugd->searchbar_area, "elm,state,guidetext,hide", "elm");
+
+               return;
+       }
+
+       elm_genlist_realized_items_update(mailbox_ugd->gl[mailbox_ugd->view_type]);
+
+       //elm_object_item_part_content_unset(mailbox_ugd->navibar_item[mailbox_ugd->view_type], "controlbar");
+
+       //_delete_controlbar(mailbox_ugd);
+       elm_object_item_signal_emit(mailbox_ugd->navibar_item[mailbox_ugd->view_type], "elm,state,controlbar,close", "");
+
+       debug_log("view_type = %d", mailbox_ugd->view_type);
+       elm_object_item_text_set(mailbox_ugd->navibar_item[mailbox_ugd->view_type], _("IDS_EMAIL_HEADER_SEARCH"));
+
+       mailbox_ugd->previous_view = mailbox_ugd->view_type;
+       mailbox_ugd->view_type = EMAIL_VIEW_SEARCH;
+
+       _stop_emf_job(mailbox_ugd, mailbox_ugd->emf_handle, true);
+       mailbox_ugd->gl[mailbox_ugd->view_type] = mailbox_ugd->gl[mailbox_ugd->previous_view];
+
+       elm_object_disabled_set(mailbox_ugd->folder_button, EINA_TRUE);
+
+       g_focus_lock = true;
+       evas_object_smart_callback_add(obj, "changed", _searchbar_entry_changed_cb, mailbox_ugd);
+       evas_object_smart_callback_add(obj, "preedit,changed", _searchbar_entry_changed_cb, mailbox_ugd);
+       if (!elm_entry_is_empty(obj))
+               elm_object_signal_emit(mailbox_ugd->searchbar_area, "elm,state,eraser,show", "elm");
+       elm_object_signal_emit(mailbox_ugd->searchbar_area, "elm,state,guidetext,hide", "elm");
+       elm_object_signal_emit(mailbox_ugd->searchbar_area, "cancel,in", "");
+}
+
+static void _searchbar_entry_unfocus_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data;
+
+
+       if (elm_entry_is_empty(obj))
+               elm_object_signal_emit(mailbox_ugd->searchbar_area, "elm,state,guidetext,show", "elm");
+       elm_object_signal_emit(mailbox_ugd->searchbar_area, "elm,state,eraser,hide", "elm");
+}
+
+static void _searchbar_entry_changed_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data;
+       if (elm_object_focus_get(mailbox_ugd->searchbar_area)) {
+               if (elm_entry_is_empty(obj))
+                       elm_object_signal_emit(mailbox_ugd->searchbar_area, "elm,state,eraser,hide", "elm");
+               else
+                       elm_object_signal_emit(mailbox_ugd->searchbar_area, "elm,state,eraser,show", "elm");
+       }
+       late_search(mailbox_ugd);
+//     evas_render(evas_object_evas_get(obj));
+}
+
+static void _searchbar_cancel_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data;
+       evas_object_smart_callback_del(mailbox_ugd->searchbar_en, "changed", _searchbar_entry_changed_cb);
+       evas_object_smart_callback_del(mailbox_ugd->searchbar_en, "preedit,changed", _searchbar_entry_changed_cb);
+
+       elm_object_focus_set(mailbox_ugd->main_back_btn, EINA_TRUE);
+       mailbox_finish_search_mode(mailbox_ugd);
+}
+
+void mailbox_finish_search_mode(EmailMailboxUGD *mailbox_ugd)
+{
+       debug_log("");
+       debug_log("[Search Bar] Canceled Callback Called");
+
+       if (!g_focus_lock)
+               return;
+       else
+               g_focus_lock = false;
+
+       evas_object_smart_callback_del(mailbox_ugd->searchbar_en, "changed", _searchbar_entry_changed_cb);
+       elm_entry_entry_set(mailbox_ugd->searchbar_en, "");
+       elm_object_signal_emit(mailbox_ugd->searchbar_area, "elm,state,guidetext,show", "elm");
+       elm_object_signal_emit(mailbox_ugd->searchbar_area, "cancel,out", "");
+       elm_object_focus_set(mailbox_ugd->searchbar_area, EINA_FALSE);
+       elm_object_focus_set(mailbox_ugd->gl[mailbox_ugd->view_type], EINA_TRUE);
+
+       elm_object_disabled_set(mailbox_ugd->folder_button, EINA_FALSE);
+
+       mailbox_ugd->view_type = mailbox_ugd->previous_view;
+
+       list_lock = false;
+
+       _update_navigationbar_title(mailbox_ugd);
+       _refresh_mailbox(mailbox_ugd);
+}
+
+
+static void _searchsymbol_clicked_cb(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+       debug_log("");
+       debug_log("[Search Bar] SearchSymbol Callback Called");
+}
+
+static int late_search(EmailMailboxUGD *mailbox_ugd)
+{
+       debug_log("");
+
+       EmailSearchData search_data = {0};
+
+       if (!mailbox_ugd)
+               return 0;
+
+       if (mailbox_ugd->search_type == EMAIL_SEARCH_ALL) {
+               search_data.subject = (char *)elm_entry_markup_to_utf8(elm_object_text_get(mailbox_ugd->searchbar_en));
+               if((mailbox_ugd->mailbox_type == EMAIL_MAILBOX_TYPE_SENTBOX)
+                               || (mailbox_ugd->mailbox_type == EMAIL_MAILBOX_TYPE_OUTBOX)
+                               || (mailbox_ugd->mailbox_type == EMAIL_MAILBOX_TYPE_DRAFT)) {
+                       search_data.recipient= (char *)elm_entry_markup_to_utf8(elm_object_text_get(mailbox_ugd->searchbar_en));
+               } else {
+                       search_data.sender= (char *)elm_entry_markup_to_utf8(elm_object_text_get(mailbox_ugd->searchbar_en));
+               }
+               debug_log("[EMAIL_SEARCH_ALL] %s", search_data.subject);
+       } else if (mailbox_ugd->search_type == EMAIL_SEARCH_SUBJECT) {
+               search_data.subject = (char *)elm_entry_markup_to_utf8(elm_object_text_get(mailbox_ugd->searchbar_en));
+               debug_log("[EMAIL_SEARCH_SUBJECT] %s", search_data.subject);
+       } else if (mailbox_ugd->search_type == EMAIL_SEARCH_FROM) {
+               search_data.sender = (char *)elm_entry_markup_to_utf8(elm_object_text_get(mailbox_ugd->searchbar_en));
+               debug_log("[EMAIL_SEARCH_FROM] %s", search_data.sender);
+       } else if (mailbox_ugd->search_type == EMAIL_SEARCH_TO) {
+               search_data.recipient = (char *)elm_entry_markup_to_utf8(elm_object_text_get(mailbox_ugd->searchbar_en));
+               debug_log("[EMAIL_SEARCH_RECIPIENT] %s", search_data.recipient);
+       }
+       else if (mailbox_ugd->search_type == EMAIL_SEARCH_DATE) {
+               if(mailbox_ugd->adv_search_info) {
+                       search_data.from_time = mailbox_ugd->adv_search_info->from_date ? mailbox_ugd->adv_search_info->from_date : 0;
+                       search_data.to_time = mailbox_ugd->adv_search_info->to_date ? mailbox_ugd->adv_search_info->to_date : 0;
+                       debug_log("[EMAIL_SEARCH_DATE] from_time : %d, to_time : %d", search_data.from_time, search_data.to_time);
+               }
+       } else if (mailbox_ugd->search_type == EMAIL_SEARCH_ADVANCED) {
+               if(mailbox_ugd->adv_search_info) {
+                       if(mailbox_ugd->adv_search_info->str_title)
+                               search_data.subject = g_strdup(mailbox_ugd->adv_search_info->str_title);
+
+                       if(mailbox_ugd->adv_search_info->str_sender_address) {
+                               if((mailbox_ugd->mailbox_type == EMAIL_MAILBOX_TYPE_SENTBOX)
+                                               || (mailbox_ugd->mailbox_type == EMAIL_MAILBOX_TYPE_OUTBOX)
+                                               || (mailbox_ugd->mailbox_type == EMAIL_MAILBOX_TYPE_DRAFT))
+                                       search_data.recipient = g_strdup(mailbox_ugd->adv_search_info->str_sender_address);
+                               else
+                                       search_data.sender = g_strdup(mailbox_ugd->adv_search_info->str_sender_address);
+                       }
+
+                       search_data.from_time = mailbox_ugd->adv_search_info->from_date ? mailbox_ugd->adv_search_info->from_date : 0;
+                       search_data.to_time = mailbox_ugd->adv_search_info->to_date ? mailbox_ugd->adv_search_info->to_date : 0;
+                       debug_log("[EMAIL_SEARCH_ADVANCED] subject : %s, sender : %s, recipient : %s", search_data.subject, search_data.sender, search_data.recipient);
+                       debug_log("[EMAIL_SEARCH_ADVANCED] from_time : %d, to_time : %d", search_data.from_time, search_data.to_time);
+               }
+       }
+
+       _mailbox_list_clear(mailbox_ugd);
+       _make_mail_list(mailbox_ugd, &search_data);
+
+       FREE(search_data.subject);
+       FREE(search_data.sender);
+       FREE(search_data.recipient);
+
+       return 0;
+}
+
+static Eina_Bool _mailbox_create_search_criteria_view(int search_type, void *data)
+{
+       debug_log("");
+       EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data;
+       Elm_Object_Item* navi_item;
+       Evas_Object *btn_ok;
+       Evas_Object *btn_cancel;
+       Evas_Object *btn_back;
+       MailboxAdvSearchViewInfo *adv_search_info = NULL;
+
+       if (!mailbox_ugd || (search_type != EMAIL_SEARCH_ADVANCED && search_type != EMAIL_SEARCH_DATE)) {
+               debug_log("_create_search_criteria_view failed search type is invalid(or mailbox_ugd : null)\n");
+               return 0;
+       }
+
+       if(mailbox_ugd->adv_search_info)
+               _mailbox_free_search_list_data(mailbox_ugd->adv_search_info);
+
+       adv_search_info = (MailboxAdvSearchViewInfo *) calloc(1, sizeof(MailboxAdvSearchViewInfo));
+
+       if (!adv_search_info)   {
+               debug_log("adv_search_info: memory alloc failed!\n");
+               return 0;
+       }
+
+       adv_search_info->mailbox_ugd = (EmailMailboxUGD *)data;
+       mailbox_ugd->adv_search_info = adv_search_info;
+       mailbox_ugd->b_advanced_search_view = true;
+
+       genlist_for_search = elm_genlist_add(mailbox_ugd->navi_bar);
+
+       _mailbox_create_list_view_for_advanced_search(data, search_type);
+
+       /* back button */
+       btn_back = elm_button_add(mailbox_ugd->navi_bar);
+       evas_object_smart_callback_add(btn_back, "clicked", _mailbox_advanced_search_cancel_cb, data);
+       elm_object_style_set(btn_back, "naviframe/back_btn/default");
+
+       //should be replaced with new string
+       if ( search_type == EMAIL_SEARCH_ADVANCED ) {
+               navi_item = elm_naviframe_item_push(mailbox_ugd->navi_bar, N_("Advanced search"), btn_back, NULL, genlist_for_search, NULL);
+       } else if ( search_type == EMAIL_SEARCH_DATE ) {
+               navi_item = elm_naviframe_item_push(mailbox_ugd->navi_bar, N_("Date range"), btn_back, NULL, genlist_for_search, NULL);
+       }
+
+       btn_ok = elm_button_add(mailbox_ugd->navi_bar);
+       _mailbox_advanced_view_create_controlbar_button(btn_ok, dgettext("sys_string", "IDS_COM_SK_OK"), "naviframe/title/default", _mailbox_advanced_search_start_cb, data);
+       elm_object_item_part_content_set(navi_item, "title_left_btn", btn_ok);
+
+       btn_cancel = elm_button_add(mailbox_ugd->navi_bar);
+       _mailbox_advanced_view_create_controlbar_button(btn_cancel, dgettext("sys_string", "IDS_COM_SK_CANCEL"), "naviframe/title/default", _mailbox_advanced_search_cancel_cb, data);
+       elm_object_item_part_content_set(navi_item, "title_right_btn", btn_cancel);
+
+       elm_object_item_signal_emit(mailbox_ugd->navibar_item[mailbox_ugd->view_type], "elm,state,controlbar,close", "");
+
+       return 0;
+}
+void _mailbox_free_search_list_data(MailboxAdvSearchViewInfo *search_info)
+{
+       debug_log("");
+       if (search_info == NULL) {
+               return;
+       }
+
+       FREE(search_info->str_title);
+       FREE(search_info->str_sender_address);
+       FREE(search_info->str_from_date);
+       FREE(search_info->str_to_date);
+       FREE(search_info->str_search_criteria);
+
+       FREE(search_info);
+}
+static void _mailbox_advanced_view_create_controlbar_button(Evas_Object *btn, char *label, char *style, void (*func) (void *data, Evas_Object *obj, void *event_info), void* data)
+{
+       EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data;
+
+       elm_object_style_set(btn, style);
+       evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(btn, EVAS_HINT_FILL, 0.5);
+       elm_object_text_set(btn, label);
+       evas_object_smart_callback_add(btn, "clicked", func, mailbox_ugd);
+       evas_object_show(btn);
+}
+static void _mailbox_advanced_search_cancel_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data;
+
+       elm_naviframe_item_pop(mailbox_ugd->navi_bar);
+       mailbox_ugd->b_advanced_search_view = false;
+
+       if(g_focus_lock) {
+               evas_object_smart_callback_del(mailbox_ugd->searchbar_en, "changed", _searchbar_entry_changed_cb);
+               evas_object_smart_callback_del(mailbox_ugd->searchbar_en, "preedit,changed", _searchbar_entry_changed_cb);
+
+               elm_object_focus_set(mailbox_ugd->main_back_btn, EINA_TRUE);
+               mailbox_finish_search_mode(mailbox_ugd);
+       }else {
+               _update_navigationbar_title(mailbox_ugd);
+       }
+
+}
+static void _mailbox_advanced_search_start_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data;
+       MailboxAdvSearchViewInfo* search_info = NULL;
+
+       struct tm tm_from;
+       struct tm tm_to;
+
+       elm_naviframe_item_pop(mailbox_ugd->navi_bar);
+
+       if (mailbox_ugd) {
+               search_info = mailbox_ugd->adv_search_info;
+
+               if (search_info)
+               {
+                       localtime_r(&search_info->from_date, &tm_from);
+                       localtime_r(&search_info->to_date, &tm_to);
+
+                       search_info->str_search_criteria = g_strdup_printf("%s%s%s%s%d.%d.%d~%d.%d.%d",
+                                       search_info->str_title ? search_info->str_title : "", search_info->str_title ? ";" : "",
+                                       search_info->str_sender_address ? search_info->str_sender_address : "", search_info->str_sender_address ? ";" : "",
+                                       tm_from.tm_year + 1900, tm_from.tm_mon + 1, tm_from.tm_mday,
+                                       tm_to.tm_year + 1900, tm_to.tm_mon + 1, tm_to.tm_mday);
+
+                       elm_entry_entry_set(mailbox_ugd->searchbar_en, search_info->str_search_criteria);
+                       debug_log("search_info->str_search_criteria[%s]",search_info->str_search_criteria);
+               }
+
+               mailbox_ugd->b_advanced_search_view = false;
+
+               elm_object_item_signal_emit(mailbox_ugd->navibar_item[mailbox_ugd->view_type], "elm,state,controlbar,close", "");
+
+               elm_object_item_text_set(mailbox_ugd->navibar_item[mailbox_ugd->view_type], _("IDS_EMAIL_HEADER_SEARCH"));
+
+               if(!g_focus_lock) {
+                       mailbox_ugd->previous_view = mailbox_ugd->view_type;
+                       mailbox_ugd->view_type = EMAIL_VIEW_SEARCH;
+                       g_focus_lock = true;
+                       mailbox_ugd->gl[mailbox_ugd->view_type] = mailbox_ugd->gl[mailbox_ugd->previous_view];
+               }
+
+
+               debug_log("view_type = %d mailbox_ugd->previous_view = %d", mailbox_ugd->view_type, mailbox_ugd->previous_view);
+
+               _stop_emf_job(mailbox_ugd, mailbox_ugd->emf_handle, true);
+
+               elm_object_signal_emit(mailbox_ugd->searchbar_area, "elm,state,guidetext,hide", "elm");
+               elm_object_signal_emit(mailbox_ugd->searchbar_area, "cancel,in", "");
+               late_search(mailbox_ugd);
+       }
+}
+static void _mailbox_create_list_view_for_advanced_search(void *data, int search_type)
+{
+       debug_log("");
+       EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data;
+       int i = -1;
+       Elm_Object_Item *item = NULL;
+       mailbox_search_list_item *item_data = NULL;
+
+       elm_object_style_set(genlist_for_search, "dialogue");
+
+       itc_search_view.item_style = "dialogue/1icon";
+       itc_search_view.func.text_get = NULL;
+       itc_search_view.func.content_get = _gl_advanced_searcn_view_content_get_cb;
+       itc_search_view.func.state_get = NULL;
+       itc_search_view.func.del = NULL;
+
+       if (search_type == EMAIL_SEARCH_ADVANCED) {
+               item_data = (mailbox_search_list_item *)calloc(4, sizeof(mailbox_search_list_item));
+
+               /* Title */
+               i = 2;
+               item_data[i].type = MAILBOX_SEARCH_LIST_TYPE_TITLE;
+               item_data[i].search_info = mailbox_ugd->adv_search_info;
+               item = elm_genlist_item_append(genlist_for_search, &itc_search_view, &item_data[i], NULL,
+                               ELM_GENLIST_ITEM_NONE, _gl_advanced_search_sel_cb, &item_data[i]);
+               /* Sender */
+               i = 3;
+               item_data[i].type = MAILBOX_SEARCH_LIST_TYPE_SENDER;
+               item_data[i].search_info = mailbox_ugd->adv_search_info;
+               item = elm_genlist_item_append(genlist_for_search, &itc_search_view, &item_data[i], NULL,
+                               ELM_GENLIST_ITEM_NONE, _gl_advanced_search_sel_cb, &item_data[i]);
+       } else if (search_type == EMAIL_SEARCH_DATE) {
+               item_data = (mailbox_search_list_item *)calloc(2, sizeof(mailbox_search_list_item));
+       }
+
+       /* Date From*/
+       i = 0;
+       item_data[i].type = MAILBOX_SEARCH_LIST_TYPE_FROM_DATE;
+       item_data[i].search_info = mailbox_ugd->adv_search_info;
+       item = elm_genlist_item_append(genlist_for_search, &itc_search_view, &item_data[i], NULL,
+                       ELM_GENLIST_ITEM_NONE, _gl_advanced_search_sel_cb, &item_data[i]);
+       elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_NONE);
+
+       /* Date To*/
+       i = 1;
+       item_data[i].type = MAILBOX_SEARCH_LIST_TYPE_TO_DATE;
+       item_data[i].search_info = mailbox_ugd->adv_search_info;
+       item = elm_genlist_item_append(genlist_for_search, &itc_search_view, &item_data[i], NULL,
+                       ELM_GENLIST_ITEM_NONE, _gl_advanced_search_sel_cb, &item_data[i]);
+       elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_NONE);
+
+}
+static void _gl_advanced_search_sel_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       const Elm_Object_Item *it = (Elm_Object_Item *)event_info;
+       const void *item_data = elm_object_item_data_get(it);
+       mailbox_search_list_item *list_item_data = (mailbox_search_list_item *)item_data;
+       MailboxAdvSearchViewInfo *adv_search_info = (MailboxAdvSearchViewInfo *)list_item_data->search_info;
+
+       Elm_Object_Item *item = (Elm_Object_Item *)event_info;
+       elm_genlist_item_selected_set(item, EINA_FALSE);
+
+       debug_log("_gl_search_sel_cb type[%d]", list_item_data->type);
+       switch (list_item_data->type) {
+       case MAILBOX_SEARCH_LIST_TYPE_FROM_DATE:
+               adv_search_info->clicked_object = adv_search_info->entry_date_from;
+               break;
+       case MAILBOX_SEARCH_LIST_TYPE_TO_DATE:
+               adv_search_info->clicked_object = adv_search_info->entry_date_to;
+               break;
+       case MAILBOX_SEARCH_LIST_TYPE_TITLE:
+               adv_search_info->clicked_object = adv_search_info->entry_title;
+               break;
+       case MAILBOX_SEARCH_LIST_TYPE_SENDER:
+               adv_search_info->clicked_object = adv_search_info->entry_sender_address;
+               break;
+       default:
+               adv_search_info->clicked_object = NULL;
+               debug_warning("No corresponding item");
+               break;
+       }
+}
+static Evas_Object *_gl_advanced_searcn_view_content_get_cb(void *data, Evas_Object *obj, const char *part)
+{
+       debug_log("");
+       mailbox_search_list_item *item_data = (mailbox_search_list_item *)data;
+       MailboxAdvSearchViewInfo *search_info = (MailboxAdvSearchViewInfo *) item_data->search_info;
+       EmailMailboxUGD *mailbox_ugd = NULL;
+
+       if(!search_info)
+               return NULL;
+
+       mailbox_ugd = search_info->mailbox_ugd;
+
+       time_t t;
+       struct tm time1;
+
+       if (!g_strcmp0(part, "elm.icon")) {
+               switch (item_data->type) {
+               case MAILBOX_SEARCH_LIST_TYPE_TITLE:
+                       search_info->search_title = elm_layout_add(genlist_for_search);
+                       elm_layout_theme_set(search_info->search_title, "layout", "editfield", "title");
+                       search_info->entry_title = elm_entry_add(genlist_for_search);
+                       elm_entry_scrollable_set(search_info->entry_title, EINA_TRUE);
+                       elm_entry_single_line_set(search_info->entry_title, EINA_TRUE);
+                       elm_entry_cnp_mode_set(search_info->entry_title, ELM_CNP_MODE_PLAINTEXT);
+                       elm_entry_input_panel_layout_set(search_info->entry_title, ELM_INPUT_PANEL_LAYOUT_EMAIL);
+                       elm_entry_editable_set(search_info->entry_title, TRUE);
+                       evas_object_event_callback_add(search_info->entry_title, EVAS_CALLBACK_KEY_DOWN, _mailbox_advanced_search_key_down_cb, data);
+                       evas_object_smart_callback_add(search_info->entry_title, "changed", _mailbox_advanced_search_backup_input_cb, data);
+                       evas_object_smart_callback_add(search_info->entry_title, "changed", _mailbox_advanced_edit_entry_changed_cb, search_info->search_title);
+                       evas_object_smart_callback_add(search_info->entry_title, "focused", _mailbox_advanced_edit_entry_focused_cb, search_info->search_title);
+                       evas_object_smart_callback_add(search_info->entry_title, "unfocused", _mailbox_advanced_edit_entry_unfocused_cb, search_info->search_title);
+                       evas_object_show(search_info->entry_title);
+
+                       elm_object_part_content_set(search_info->search_title, "elm.swallow.content", search_info->entry_title);
+                       elm_object_part_text_set(search_info->search_title, "elm.text", _("IDS_EMAIL_OPT_TITLE"));
+                       elm_object_signal_callback_add(search_info->search_title, "elm,eraser,clicked", "elm", _mailbox_advanced_edit_eraser_clicked_cb, search_info->entry_title);
+
+                       evas_object_size_hint_weight_set(search_info->search_title, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+                       evas_object_show(search_info->search_title);
+
+                       if (search_info->str_title)
+                               elm_entry_entry_set(search_info->entry_title, search_info->str_title);
+
+                       return search_info->search_title;
+
+               case MAILBOX_SEARCH_LIST_TYPE_SENDER:
+                       search_info->search_sender_address = elm_layout_add(genlist_for_search);
+                       elm_layout_theme_set(search_info->search_sender_address, "layout", "editfield", "title");
+                       search_info->entry_sender_address = elm_entry_add(genlist_for_search);
+                       elm_entry_scrollable_set(search_info->entry_sender_address, EINA_TRUE);
+                       elm_entry_single_line_set(search_info->entry_sender_address, EINA_TRUE);
+                       elm_entry_cnp_mode_set(search_info->entry_sender_address, ELM_CNP_MODE_PLAINTEXT);
+                       elm_entry_input_panel_layout_set(search_info->entry_sender_address, ELM_INPUT_PANEL_LAYOUT_EMAIL);
+                       elm_entry_editable_set(search_info->entry_sender_address, TRUE);
+                       evas_object_event_callback_add(search_info->entry_sender_address, EVAS_CALLBACK_KEY_DOWN, _mailbox_advanced_search_key_down_cb, data);
+                       evas_object_smart_callback_add(search_info->entry_sender_address, "changed", _mailbox_advanced_search_backup_input_cb, data);
+                       evas_object_smart_callback_add(search_info->entry_sender_address, "changed", _mailbox_advanced_edit_entry_changed_cb, search_info->search_sender_address);
+                       evas_object_smart_callback_add(search_info->entry_sender_address, "focused", _mailbox_advanced_edit_entry_focused_cb, search_info->search_sender_address);
+                       evas_object_smart_callback_add(search_info->entry_sender_address, "unfocused", _mailbox_advanced_edit_entry_unfocused_cb, search_info->search_sender_address);
+                       evas_object_show(search_info->entry_sender_address);
+
+                       elm_object_part_content_set(search_info->search_sender_address, "elm.swallow.content", search_info->entry_sender_address);
+
+                       if ((mailbox_ugd->mailbox_type == EMAIL_MAILBOX_TYPE_SENTBOX)
+                                       || (mailbox_ugd->mailbox_type == EMAIL_MAILBOX_TYPE_OUTBOX)
+                                       || (mailbox_ugd->mailbox_type == EMAIL_MAILBOX_TYPE_DRAFT)) {
+                               elm_object_part_text_set(search_info->search_sender_address, "elm.text", _("IDS_EMAIL_OPT_RECIPIENT"));
+                       } else {
+                               elm_object_part_text_set(search_info->search_sender_address, "elm.text", _("IDS_EMAIL_OPT_SENDER"));
+                       }
+
+                       elm_object_signal_callback_add(search_info->search_sender_address, "elm,eraser,clicked", "elm", _mailbox_advanced_edit_eraser_clicked_cb, search_info->entry_sender_address);
+
+                       evas_object_size_hint_weight_set(search_info->search_sender_address, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+                       evas_object_show(search_info->search_sender_address);
+
+                       if (search_info->str_sender_address)
+                               elm_entry_entry_set(search_info->entry_sender_address, search_info->str_sender_address);
+
+                       return search_info->search_sender_address;
+
+               case MAILBOX_SEARCH_LIST_TYPE_FROM_DATE:
+                       search_info->search_date_from = elm_layout_add(genlist_for_search);
+                       elm_layout_file_set(search_info->search_date_from, THEME_PATH, "dialoguegroup/email_datetime");
+                       evas_object_size_hint_weight_set(search_info->search_date_from, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+                       search_info->entry_date_from = elm_datetime_add(search_info->search_date_from);
+
+                       elm_datetime_field_visible_set(search_info->entry_date_from, ELM_DATETIME_HOUR, EINA_FALSE);
+                       elm_datetime_field_visible_set(search_info->entry_date_from, ELM_DATETIME_MINUTE, EINA_FALSE);
+                       elm_datetime_field_visible_set(search_info->entry_date_from, ELM_DATETIME_AMPM, EINA_FALSE);
+
+                       t = time(NULL);
+                       t = t - (60*60*24*7);
+                       localtime_r(&t, &time1);
+
+                       elm_datetime_value_set(search_info->entry_date_from, &time1);
+                       search_info->from_date = t;
+                       //should be replaced with new string
+                       elm_object_part_content_set(search_info->search_date_from, "elm.icon", search_info->entry_date_from);
+                       elm_object_part_text_set(search_info->search_date_from, "elm.text", N_("From"));
+                       evas_object_smart_callback_add(search_info->entry_date_from, "changed", _mailbox_search_from_date_changed_cb, data);
+
+                       evas_object_show(search_info->entry_date_from);
+
+                       return search_info->search_date_from;
+
+               case MAILBOX_SEARCH_LIST_TYPE_TO_DATE:
+                       search_info->search_date_to = elm_layout_add(genlist_for_search);
+                       elm_layout_file_set(search_info->search_date_to, THEME_PATH, "dialoguegroup/email_datetime");
+                       evas_object_size_hint_weight_set(search_info->search_date_to, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+                       search_info->entry_date_to = elm_datetime_add(search_info->search_date_to);
+
+                       elm_datetime_field_visible_set(search_info->entry_date_to, ELM_DATETIME_HOUR, EINA_FALSE);
+                       elm_datetime_field_visible_set(search_info->entry_date_to, ELM_DATETIME_MINUTE, EINA_FALSE);
+                       elm_datetime_field_visible_set(search_info->entry_date_to, ELM_DATETIME_AMPM, EINA_FALSE);
+
+                       t = time(NULL);
+                       localtime_r(&t, &time1);
+
+                       elm_datetime_value_set(search_info->entry_date_to, &time1);
+                       search_info->to_date = t;
+                       //should be replaced with new string
+                       elm_object_part_content_set(search_info->search_date_to, "elm.icon", search_info->entry_date_to);
+                       elm_object_part_text_set(search_info->search_date_to, "elm.text", N_("To"));
+                       evas_object_smart_callback_add(search_info->entry_date_to, "changed", _mailbix_search_to_date_changed_cb, data);
+
+                       evas_object_show(search_info->entry_date_to);
+
+                       return search_info->search_date_to;
+
+               default:
+                       debug_warning("No corresponding item for index(%d)", index);
+                       return NULL;
+               }
+       }
+
+       return NULL;
+}
+static void _mailbox_advanced_search_key_down_cb(void *data, Evas * e, Evas_Object * obj, void *event_info)
+{
+       debug_log("");
+       Evas_Object *eo = (Evas_Object *)obj;
+       mailbox_search_list_item *item_data = (mailbox_search_list_item *)data;
+       MailboxAdvSearchViewInfo *search_info = (MailboxAdvSearchViewInfo *) item_data->search_info;
+       Evas_Event_Key_Down *ev = (Evas_Event_Key_Down *) event_info;
+
+       debug_log("ev->key : %s", ev->key);
+
+       if (STR_CMP(ev->key, "Return")) {
+               debug_log("Return key is pressed. hide the entry ");
+               if(eo == search_info->entry_title) {
+                       ecore_imf_context_input_panel_hide((Ecore_IMF_Context *)elm_entry_imf_context_get(search_info->entry_title));
+               }else if (eo == search_info->entry_sender_address) {
+                       ecore_imf_context_input_panel_hide((Ecore_IMF_Context *)elm_entry_imf_context_get(search_info->entry_sender_address));
+               }
+       }
+}
+static void _mailbox_advanced_search_backup_input_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       Evas_Object *eo = (Evas_Object *)obj;
+       mailbox_search_list_item *item_data = (mailbox_search_list_item *)data;
+       MailboxAdvSearchViewInfo *search_info = (MailboxAdvSearchViewInfo *) item_data->search_info;
+
+       if (eo == search_info->entry_title) {
+               debug_log("entry_title");
+               if (search_info->str_title) {
+                       g_free(search_info->str_title);
+                       search_info->str_title = NULL;
+               }
+               char *str_title = elm_entry_markup_to_utf8(elm_entry_entry_get(eo));
+               search_info->str_title = g_strdup(str_title);
+               debug_log("search_info->str_title[%s]", search_info->str_title);
+               g_free(str_title);
+       } else if (eo == search_info->entry_sender_address) {
+               debug_log("entry_sender_address");
+               if (search_info->str_sender_address) {
+                       g_free(search_info->str_sender_address);
+                       search_info->str_sender_address = NULL;
+               }
+               char *str_sender_address = elm_entry_markup_to_utf8(elm_entry_entry_get(eo));
+               search_info->str_sender_address = g_strdup(str_sender_address);
+               g_free(str_sender_address);
+               debug_log("search_info->str_sender_address[%s]", search_info->str_sender_address);
+       } else
+               debug_warning("No corresponding item");
+}
+
+static void _mailbox_advanced_edit_entry_changed_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+
+       if (!data || !obj) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       if (elm_object_focus_get(data)) {
+               elm_object_signal_emit(data, "elm,state,eraser,show", "elm");
+       }
+       else {
+               if (elm_entry_is_empty(obj))
+                       elm_object_signal_emit(data, "elm,state,guidetext,show", "elm");
+               else
+                       elm_object_signal_emit(data, "elm,state,guidetext,hide", "elm");
+       }
+}
+static void _mailbox_advanced_edit_entry_focused_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+
+       if (!data || !obj) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       if (!elm_entry_is_empty(obj))
+               elm_object_signal_emit(data, "elm,state,eraser,show", "elm");
+       elm_object_signal_emit(data, "elm,state,guidetext,hide", "elm");
+}
+
+static void _mailbox_advanced_edit_entry_unfocused_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+
+       if (!data || !obj) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       if (elm_entry_is_empty(obj))
+               elm_object_signal_emit(data, "elm,state,guidetext,show", "elm");
+       elm_object_signal_emit(data, "elm,state,eraser,hide", "elm");
+}
+static void _mailbox_advanced_edit_eraser_clicked_cb(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+       debug_log("");
+
+       if (!data || !obj) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       elm_entry_entry_set(data, "");
+}
+static void _mailbox_search_from_date_changed_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       struct tm tm;
+       mailbox_search_list_item *item_data = (mailbox_search_list_item *)data;
+       MailboxAdvSearchViewInfo *search_info = (MailboxAdvSearchViewInfo *)item_data->search_info;
+
+       //time_t t = time(NULL);
+       search_info->from_date = time(NULL);
+       localtime_r(&search_info->from_date, &tm); // to fill hidden field
+
+       elm_datetime_value_get(obj, &tm);
+
+       search_info->from_date = mktime(&tm);
+       debug_log("search_info->from_date : %d", search_info->from_date);
+
+}
+static void _mailbix_search_to_date_changed_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       struct tm tm;
+       mailbox_search_list_item *item_data = (mailbox_search_list_item *)data;
+       MailboxAdvSearchViewInfo *search_info = (MailboxAdvSearchViewInfo *)item_data->search_info;
+
+       search_info->to_date = time(NULL);
+       localtime_r(&search_info->to_date, &tm); // to fill hidden field
+       elm_datetime_value_get(obj, &tm);
+
+       search_info->to_date = mktime(&tm);
+       debug_log("search_info->to_date : %d", search_info->to_date);
+}
diff --git a/mailbox/src/email-mailbox-sweep.c b/mailbox/src/email-mailbox-sweep.c
new file mode 100755 (executable)
index 0000000..045fbd6
--- /dev/null
@@ -0,0 +1,417 @@
+/*
+ * Copyright 2012  Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *    http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "email-mailbox.h"
+#include "email-mailbox-sweep.h"
+#include "email-mailbox-item.h"
+
+
+extern Eina_List *edit_list;
+
+
+static void _sweep_move_cb(void *data, Evas_Object *obj, void *event_info);
+static void _sweep_delete_cb(void *data, Evas_Object *obj, void *event_info);
+static void _sweep_reply_cb(void *data, Evas_Object *obj, void *event_info);
+static void _sweep_forward_cb(void *data, Evas_Object *obj, void *event_info);
+static void _sweep_mark_as_read_unread_cb(void *data, Evas_Object *obj, void *event_info);
+static void _popup_response_cb(void *data, Evas_Object *obj, void *event_info);
+static void _popup_response_sweep_delete_ok_cb(void *data, Evas_Object *obj, void *event_info);
+
+Evas_Object* _create_sweep_delete_button(Evas_Object* parent,list_data* ld)
+{
+
+       Evas_Object *button = elm_button_add(parent);
+       elm_object_style_set(button, "sweep/delete");
+
+       if(ld->thread_count > 1 && ld->mailbox_ugd->b_thread_list) {
+               elm_object_text_set(button, dgettext("sys_string", "IDS_COM_BODY_DELETE_ALL"));
+       }
+       else{
+               elm_object_text_set(button, dgettext("sys_string", "IDS_COM_SK_DELETE"));
+       }
+
+       evas_object_smart_callback_add(button, "clicked", _sweep_delete_cb, ld);
+
+       if (ld != NULL && (ld->is_sending_now == EMAIL_MAIL_STATUS_SENDING || ld->is_sending_now == EMAIL_MAIL_STATUS_SEND_WAIT))
+               elm_object_disabled_set(button,EINA_TRUE);
+
+       return button;
+
+}
+
+Evas_Object* _create_sweep_read_unread_button(Evas_Object* parent,list_data* ld)
+{
+
+       Evas_Object *button = elm_button_add(parent);
+       elm_object_style_set(button, "sweep/multiline");
+       if (ld->is_seen == false)
+               elm_object_text_set(button, _("IDS_EMAIL_OPT_MARK_AS_READ"));
+       else
+               elm_object_text_set(button, _("IDS_EMAIL_OPT_MARK_AS_UNREAD"));
+
+       evas_object_smart_callback_add(button, "clicked", _sweep_mark_as_read_unread_cb, ld);
+
+       if ((ld != NULL && (ld->is_sending_now == EMAIL_MAIL_STATUS_SENDING || ld->is_sending_now == EMAIL_MAIL_STATUS_SEND_WAIT))
+               || (ld->thread_count > 1 && ld->mailbox_ugd->b_thread_list))
+       {
+               elm_object_disabled_set(button,EINA_TRUE);
+       }
+
+       return button;
+}
+
+Evas_Object* _create_sweep_move_button(Evas_Object* parent,list_data* ld)
+{
+
+       Evas_Object *button = elm_button_add(parent);
+       elm_object_style_set(button, "sweep/multiline");
+       elm_object_text_set(button, dgettext("sys_string", "IDS_COM_BODY_MOVE"));
+       evas_object_smart_callback_add(button, "clicked", _sweep_move_cb, ld);
+
+       if (ld != NULL && (ld->is_sending_now == EMAIL_MAIL_STATUS_SENDING || ld->is_sending_now == EMAIL_MAIL_STATUS_SEND_WAIT))
+               elm_object_disabled_set(button,EINA_TRUE);
+
+       return button;
+}
+
+Evas_Object* _create_sweep_reply_button(Evas_Object* parent,list_data* ld)
+{
+
+       Evas_Object *button = elm_button_add(parent);
+       elm_object_style_set(button, "sweep/multiline");
+       elm_object_text_set(button, dgettext("sys_string", "IDS_COM_SK_REPLY"));
+       evas_object_smart_callback_add(button, "clicked", _sweep_reply_cb, ld);
+
+       if (ld != NULL && (ld->is_sending_now == EMAIL_MAIL_STATUS_SENDING || ld->is_sending_now == EMAIL_MAIL_STATUS_SEND_WAIT))
+               elm_object_disabled_set(button,EINA_TRUE);
+
+       return button;
+
+}
+
+Evas_Object* _create_sweep_forward_button(Evas_Object* parent,list_data* ld)
+{
+
+       Evas_Object *button = elm_button_add(parent);
+       elm_object_style_set(button, "sweep/multiline");
+       elm_object_text_set(button, dgettext("sys_string", "IDS_COM_BODY_FORWARD"));
+       evas_object_smart_callback_add(button, "clicked", _sweep_forward_cb, ld);
+
+       if (ld != NULL && (ld->is_sending_now == EMAIL_MAIL_STATUS_SENDING || ld->is_sending_now == EMAIL_MAIL_STATUS_SEND_WAIT))
+               elm_object_disabled_set(button,EINA_TRUE);
+
+       return button;
+
+}
+
+static void _sweep_move_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_enter();
+
+       if (!data) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       list_data *ld = (list_data *)data;
+       int prev_view = ld->mailbox_ugd->previous_view;
+       ld->mailbox_ugd->previous_view = ld->mailbox_ugd->view_type;
+
+       if(edit_list) {
+               debug_warning("edit_list is not released in previous use");
+               edit_list = eina_list_free(edit_list);
+       }
+       edit_list = eina_list_append(edit_list, ld);
+       mailbox_process_move_mail(ld->mailbox_ugd);
+       edit_list = eina_list_free(edit_list);
+
+       ld->mailbox_ugd->previous_view = prev_view;
+}
+
+static void _sweep_delete_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       if (data == NULL) {
+               debug_log("data == NULL");
+               return;
+       }
+       list_data *ld = (list_data *)data;
+       EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)(ld->mailbox_ugd);
+       debug_log("ld->thread_id: %d, ld->account_id: %d", ld->thread_id, ld->account_id);
+       debug_log("ld->mail_id: %d", ld->mail_id);
+       debug_log("mailbox_ugd->mailbox_id: %d", mailbox_ugd->mailbox_id);
+
+       if (mailbox_ugd->delete_popup) {
+               evas_object_del(mailbox_ugd->delete_popup);
+               mailbox_ugd->delete_popup = NULL;
+       }
+
+       Evas_Object *notify = elm_popup_add(mailbox_ugd->win_main);
+       evas_object_size_hint_weight_set(notify, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       elm_object_text_set(notify, dgettext("sys_string", "IDS_COM_POP_DELETE_Q"));
+       mailbox_ugd->delete_popup = notify;
+
+       Evas_Object *btn1 = elm_button_add(notify);
+       elm_object_style_set(btn1, "popup_button/default");
+       elm_object_text_set(btn1, dgettext("sys_string", "IDS_COM_SK_DELETE"));
+       elm_object_part_content_set(notify, "button1", btn1);
+       evas_object_smart_callback_add(btn1, "clicked", _popup_response_sweep_delete_ok_cb, data);
+
+       Evas_Object *btn2 = elm_button_add(notify);
+       elm_object_style_set(btn2, "popup_button/default");
+       elm_object_text_set(btn2, dgettext("sys_string", "IDS_COM_SK_CANCEL"));
+       elm_object_part_content_set(notify, "button2", btn2);
+       evas_object_smart_callback_add(btn2, "clicked", _popup_response_cb, mailbox_ugd);
+
+       evas_object_show(notify);
+}
+
+static void _popup_response_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+
+       if (!data) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data;
+
+       if (mailbox_ugd->delete_popup) {
+               evas_object_del(mailbox_ugd->delete_popup);
+               mailbox_ugd->delete_popup = NULL;
+       }
+}
+
+static void _sweep_reply_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       if (!data) {
+               debug_log("data is NULL");
+               return;
+       }
+       list_data *ld = (list_data *)data;
+//     EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)(ld->mailbox_ugd);
+
+       debug_log("mailbox_ugd->account_id: %d", ld->account_id);
+       debug_log("ld->mail_id: %d", ld->mail_id);
+
+       email_mailbox_t *mbox = NULL;
+       int e = email_get_mailbox_by_mailbox_id(ld->mailbox_id, &mbox);
+       if (e != EMAIL_ERROR_NONE) {
+               debug_log("email_get_mailbox_by_mailbox_id mailbox_id(%d)- err[%d]", ld->mailbox_id, e);
+               goto CLEANUP;
+       }
+
+       if (ld->mailbox_ugd->ug_composer) {
+               debug_log("Composer UG is already launched");
+               goto CLEANUP;
+       }
+
+       service_h service;
+       if (SERVICE_ERROR_NONE != service_create(&service))
+       {
+               debug_log("creating service handle failed");
+               goto CLEANUP;
+       }
+
+       char cmd[30] = { 0, };
+       snprintf(cmd, sizeof(cmd), "%d", RUN_COMPOSER_REPLY);
+
+       char mailid[30] = { 0, };
+       snprintf(mailid, sizeof(mailid), "%d", ld->mail_id);
+       char acctid[30] = { 0, };
+       snprintf(acctid, sizeof(acctid), "%d", ld->account_id);
+       char mailboxid[30] = { 0, };
+       snprintf(mailboxid, sizeof(mailboxid), "%d", ld->mailbox_id);
+       service_add_extra_data(service, EMAIL_BUNDLE_KEY_RUN_TYPE, cmd);
+       service_add_extra_data(service, EMAIL_BUNDLE_KEY_ACCOUNT_ID, acctid);
+       service_add_extra_data(service, EMAIL_BUNDLE_KEY_MAILBOX, mailboxid);
+       service_add_extra_data(service, EMAIL_BUNDLE_KEY_MAIL_ID, mailid);
+
+       ld->mailbox_ugd->ug_composer = create_composer_ug(UG_NAME_EMAIL_COMPOSER, service, ld->mailbox_ugd);
+       service_destroy(service);
+
+CLEANUP:
+       email_free_mailbox(&mbox, 1);
+
+}
+
+static void _sweep_forward_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       if (!data) {
+               debug_log("data is NULL");
+               return;
+       }
+       list_data *ld = (list_data *)data;
+//     EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)(ld->mailbox_ugd);
+
+       debug_log("mailbox_ugd->account_id: %d", ld->account_id);
+       debug_log("ld->mail_id: %d", ld->mail_id);
+
+       email_mailbox_t *mbox = NULL;
+       int e = email_get_mailbox_by_mailbox_id(ld->mailbox_id, &mbox);
+       if (e != EMAIL_ERROR_NONE) {
+               debug_log("email_get_mailbox_by_mailbox_id mailbox_id(%d)- err[%d]", ld->mailbox_id, e);
+               goto CLEANUP;
+       }
+
+       if (ld->mailbox_ugd->ug_composer) {
+               debug_log("Composer UG is already launched");
+               goto CLEANUP;
+       }
+
+       service_h service;
+       if (SERVICE_ERROR_NONE != service_create(&service))
+       {
+               debug_log("creating service handle failed");
+               goto CLEANUP;
+       }
+
+       char cmd[30] = { 0, };
+       snprintf(cmd, sizeof(cmd), "%d", RUN_COMPOSER_FORWARD);
+
+       char mailid[30] = { 0, };
+       snprintf(mailid, sizeof(mailid), "%d", ld->mail_id);
+       char acctid[30] = { 0, };
+       snprintf(acctid, sizeof(acctid), "%d", ld->account_id);
+       char mailboxid[30] = { 0, };
+       snprintf(mailboxid, sizeof(mailboxid), "%d", ld->mailbox_id);
+       service_add_extra_data(service, EMAIL_BUNDLE_KEY_RUN_TYPE, cmd);
+       service_add_extra_data(service, EMAIL_BUNDLE_KEY_ACCOUNT_ID, acctid);
+       service_add_extra_data(service, EMAIL_BUNDLE_KEY_MAILBOX, mailboxid);
+       service_add_extra_data(service, EMAIL_BUNDLE_KEY_MAIL_ID, mailid);
+
+       ld->mailbox_ugd->ug_composer = create_composer_ug(UG_NAME_EMAIL_COMPOSER, service, ld->mailbox_ugd);
+       service_destroy(service);
+
+CLEANUP:
+       email_free_mailbox(&mbox, 1);
+
+}
+
+static void _sweep_mark_as_read_unread_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+
+       if (!data) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       list_data *ld = (list_data *)data;
+       EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)(ld->mailbox_ugd);
+
+       debug_log("mailbox_ugd->account_id: %d", ld->account_id);
+       debug_log("mailbox_ugd->mailbox_id: %d", mailbox_ugd->mailbox_id);
+       debug_log("ld->mail_id: %d", ld->mail_id);
+       debug_log("mailbox_ugd->previous_view: %d", mailbox_ugd->previous_view);
+       debug_log("current view: %d, thread_list: %d", mailbox_ugd->view_type, mailbox_ugd->b_thread_list);
+       debug_log("thread id: %d", ld->thread_id);
+       debug_log("mode: %d", mailbox_ugd->mode);
+
+       /* Finish genlist sweep */
+       elm_genlist_item_decorate_mode_set(ld->item, "slide", EINA_FALSE);
+       elm_genlist_item_select_mode_set(ld->item, ELM_OBJECT_SELECT_MODE_DEFAULT);
+
+       int seen_flag = (ld->is_seen == false)? 1/* make it read */ : 0/* make it unread */;
+       debug_log("updated seen_flag(%d)", seen_flag);
+       ld->is_seen = seen_flag;
+       elm_genlist_item_update(ld->item);
+
+       if ( mailbox_ugd->view_type == EMAIL_VIEW_DATE &&
+               mailbox_ugd->b_thread_list == true) {
+
+               int *mail_id_list = NULL;
+               email_mail_list_item_t *mail_list = NULL;
+               int count = 0;
+               int err = email_get_mail_list(ld->account_id, 0, ld->thread_id,
+                                                       -1,     /* start_index */
+                                                       -1,     /* limit_count */
+                                                       _mailbox_conv_sort_type(mailbox_ugd->sort_type),
+                                                       &mail_list, &count);
+               if ( err != EMAIL_ERROR_NONE || !mail_list ) {
+                       debug_warning("email_get_mail_list_ex - err(%d) or mailbox_data NULL(%p)",
+                                                       err, mail_list);
+                       goto CLEANUP;
+               }
+
+               mail_id_list = MEM_ALLOC(mail_id_list, count);
+               if(!mail_id_list) return;
+               int i = 0;
+               for (i = 0; i < count; ++i)
+                       mail_id_list[i] = mail_list[i].mail_id;
+
+               err = email_set_flags_field(ld->account_id, mail_id_list, count, EMAIL_FLAGS_SEEN_FIELD, seen_flag, 1);
+               if (err != EMAIL_ERROR_NONE)
+                       debug_log("email_set_flags_field - err(%d)", err);
+
+CLEANUP:
+               FREE(mail_list);
+               FREE(mail_id_list);
+       }
+       else {
+               /* For all other views where mail list is present but threaded mail list is not present */
+               int err = email_set_flags_field(ld->account_id, &(ld->mail_id), 1, EMAIL_FLAGS_SEEN_FIELD, seen_flag, 1);
+               if (err != EMAIL_ERROR_NONE)
+                       debug_log("email_set_flags_field - err(%d)", err);
+       }
+}
+
+
+
+static void _popup_response_sweep_delete_ok_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       if (!data) {
+               debug_log("data is NULL");
+               return;
+       }
+       list_data *ld = (list_data *)data;
+       EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)(ld->mailbox_ugd);
+       debug_log("ld->thread_id: %d, ld->account_id: %d", ld->thread_id, ld->account_id);
+       debug_log("ld->mail_id: %d", ld->mail_id);
+       debug_log("mailbox_ugd->previous_view: %d", mailbox_ugd->previous_view);
+
+       if (mailbox_ugd->delete_popup) {
+               evas_object_del(mailbox_ugd->delete_popup);
+               mailbox_ugd->delete_popup = NULL;
+       }
+
+       int prev_view = ld->mailbox_ugd->previous_view;
+       ld->mailbox_ugd->previous_view = ld->mailbox_ugd->view_type;
+
+       if(edit_list) {
+               debug_warning("edit_list is not released in previous use");
+               edit_list = eina_list_free(edit_list);
+       }
+       edit_list = eina_list_append(edit_list, ld);
+
+       edit_req_t *req = MEM_ALLOC(req, 1);
+       if(!req){
+               debug_warning("edit_req_t alloc failed");
+               return;
+       }
+       req->previous_view = ld->mailbox_ugd->previous_view;
+       req->mailbox_ugd = ld->mailbox_ugd;
+
+       ecore_thread_feedback_run(mailbox_process_delete_mail, NULL, NULL, NULL, req, EINA_TRUE);
+       ld->mailbox_ugd->previous_view = prev_view;
+
+}
+
+
diff --git a/mailbox/src/email-mailbox.c b/mailbox/src/email-mailbox.c
new file mode 100755 (executable)
index 0000000..5c29727
--- /dev/null
@@ -0,0 +1,1951 @@
+/*
+ * Copyright 2012  Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *    http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef UG_MODULE_API
+#define UG_MODULE_API __attribute__ ((visibility("default")))
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "email-mailbox.h"
+#include "email-mailbox-controlbar.h"
+#include "email-mailbox-list.h"
+#include "email-mailbox-search.h"
+#include "email-mailbox-noti-mgr.h"
+
+//static Elm_Genlist_Item_Class itc_item_for_sender;
+Elm_Object_Item *item[3];
+int _g_fd, _g_ret;
+Evas_Object *sub_view[10];
+int ug_pushed = false;
+Eina_List *g_account_list = NULL;
+extern enum appcore_time_format icu_timeformat;
+extern Eina_List *edit_list;
+extern Elm_Object_Item *g_selected_item;
+
+
+/*
+ * Function prototype declaration
+ */
+static void _create_view(EmailMailboxUGD *mailbox_ugd);
+static void _win_profile_changed_cb(void *data, Evas_Object *obj, void *event);
+static void _title_clicked_cb(void *data, Evas_Object *obj, const char *emission, const char *source);
+static void _change_unread_icon_to_read_icon(Elm_Object_Item *item);
+static void _create_all_emails_view(Evas_Object *parent, EmailMailboxUGD *mailbox_ugd);
+static Evas_Object *_create_navigation_layout(Evas_Object *parent);
+static void _account_cb(void *data, Evas_Object *obj, void *event_info);
+static void _folder_cb(void *data, Evas_Object *obj, void *event_info);
+//static void _process_mailview_back(EmailMailboxUGD *mailbox_ugd);
+//static char *_gl_text_get(void *data, Evas_Object *obj, const char *part);
+//static Evas_Object *_gl_content_get(void *data, Evas_Object *obj, const char *part);
+//static void _create_sender_mail_list(void *data);
+//static void _delete_sender_mail_cb(void *data, Evas_Object *obj, void *event_info);
+//static void _process_sender_mail_delete(EmailMailboxUGD *mailbox_ugd);
+//static void _block_sender_mail_cb(void *data, Evas_Object *obj, void *event_info);
+//static void _process_sender_mail_block(EmailMailboxUGD *mailbox_ugd);
+//static void _move_sender_mail_cb(void *data, Evas_Object *obj, void *event_info);
+//static Evas_Object *_create_search_segment(EmailMailboxUGD *mailbox_ugd);
+//static email_mail_list_item_t *_get_sender_mail_list(EmailMailboxUGD *mailbox_ugd, const char *key, int* mail_count);
+//static void _create_recipient_list(EmailMailboxUGD *mailbox_ugd, const char *text);
+//static void _sender_item_clicked(void *data, Evas_Object *obj, void *event_info);
+static void _main_back_clicked(void *data, Evas_Object *obj, void *event_info);
+static void _account_dim_clicked(void *data, Evas_Object *obj, const char *emission, const char *source);
+
+/* Callback function for Control bar */
+static void _process_update(EmailMailboxUGD *mailbox_ugd);
+static void _mailbox_rotate_to_potrait(void *data, int angle);
+static void _mailbox_rotate_to_landscape(void *data, int angle);
+
+/* ============================================================*/
+/* appcore prototype declaration                                                       */
+/* ============================================================*/
+static void *on_create(ui_gadget_h ug, enum ug_mode mode, service_h service, void *priv);
+static void on_start(ui_gadget_h ug, service_h service, void *priv);
+static void on_pause(ui_gadget_h ug, service_h service, void *priv);
+static void on_resume(ui_gadget_h ug, service_h service, void *priv);
+static void on_destroy(ui_gadget_h ug, service_h service, void *priv);
+static void on_message(ui_gadget_h ug, service_h msg, service_h service, void *priv);
+static void on_event(ui_gadget_h ug, enum ug_event event, service_h service, void *priv);
+static void on_key_event(ui_gadget_h ug, enum ug_key_event event, service_h service, void *priv);
+
+/* ============================================================*/
+/* ui-gadget prototype declaration                                                     */
+/* ============================================================*/
+static Evas_Object *create_fullview(Evas_Object *parent, EmailMailboxUGD *mailbox_ugd);
+static void layout_account_cb(ui_gadget_h ug, enum ug_mode mode, void *priv);
+static void layout_viewer_cb(ui_gadget_h ug, enum ug_mode mode, void *priv);
+static void result_cb(ui_gadget_h ug, service_h service, void *priv);
+static void destroy_viewer_cb(ui_gadget_h ug, void *priv);
+static void destroy_composer_cb(ui_gadget_h ug, void *priv);
+static ui_gadget_h create_account_ug(char *ug_name, service_h service, void *data);
+static ui_gadget_h create_folder_ug(char *ug_name, service_h service, void *data);
+static ui_gadget_h create_viewer_ug(char *ug_name, service_h service, void *data);
+static void result_viewer_cb(ui_gadget_h ug, service_h service, void *priv);
+
+
+#define THREADID_MASK          0xFFFF
+#define MAILID_MASK            (THREADID_MASK << 16)
+#define MAX_UTF8_CHAR_SIZE 7
+
+
+#if 0
+struct timeval before_time;
+struct timeval after_time;
+long int elapsed_time = 0;
+
+void before_time_check()
+{
+       gettimeofday(&before_time, NULL);
+}
+
+void after_time_check(char *title)
+{
+       gettimeofday(&after_time, NULL);
+       elapsed_time = (after_time.tv_sec-before_time.tv_sec)*1000000 + (after_time.tv_usec-before_time.tv_usec);
+       debug_log("%6ld (microsec) : %s\n", elapsed_time, title);
+}
+#endif
+
+void email_rotate_landscape(EmailMailboxUGD *mailbox_ugd)
+{
+       if (mailbox_ugd->current_rotmode == APP_DEVICE_ORIENTATION_270)
+               on_event(NULL, UG_EVENT_ROTATE_LANDSCAPE, NULL, mailbox_ugd);
+       else
+               on_event(NULL, UG_EVENT_ROTATE_LANDSCAPE_UPSIDEDOWN, NULL, mailbox_ugd);
+}
+
+
+/*
+
+#define GET_MAIL_INFO(mail_id, mail_info, thread_id, thread_count) \
+               ({\
+                       char _where[256] = {0};\
+                       int count = 0;\
+                       email_mail_list_item_t* _list = NULL;\
+                       snprintf(_where, 255, "where mail_id=%d or (thread_id=%d and thread_item_count <> 0)", mail_id, thread_id);\
+                       int _e = email_query_message_ex(_where, &_list, &count);\
+                       if(_e != EMAIL_ERROR_NONE || !_list || (count != 1 && count != 2)) {\
+                               debug_warning("get mail info - err (%d) or list NULL(%p) or count not 1,2(%d)",\
+                                               _e, _list, count);\
+                       }\
+                       else {\
+                               switch( count ) {\
+                               case 1: mail_info = _list;\
+                                               thread_count = 1;\
+                                       break;\
+                               case 2: mail_info = (_list[0].thread_item_count) ? _list : _list + 1;\
+                                               thread_count = (_list[0].thread_item_count) ? _list[0].thread_item_count :\
+                                                                       _list[1].thread_item_count;\
+                                       break;\
+                               default: debug_log("never happens!!");\
+                               }\
+                       }\
+                       _list;\
+               })
+*/
+
+static Evas_Object *create_fullview(Evas_Object *parent, EmailMailboxUGD *mailbox_ugd)
+{
+       debug_log("");
+       mailbox_ugd->mode = EMAIL_MAILBOX_MODE_ALL;
+       mailbox_ugd->sort_type = EMAIL_SORT_DATE_RECENT;
+
+       /* thread id is null */
+       if (mailbox_ugd->thread_id < 0) {
+               mailbox_ugd->view_type = EMAIL_VIEW_DATE;
+               _create_all_emails_view(parent, mailbox_ugd);
+       }
+       return mailbox_ugd->ly;
+}
+
+static void *on_create(ui_gadget_h ug, enum ug_mode mode, service_h service, void *priv)
+{
+       debug_log("");
+       Evas_Object *parent;
+       EmailMailboxUGD *mailbox_ugd;
+
+       if (!ug || !priv)
+               return NULL;
+
+       mailbox_ugd = (EmailMailboxUGD *)priv;
+       mailbox_ugd->ug = ug;
+
+       parent = ug_get_window();
+       if (!parent)
+               return NULL;
+
+       /* init email common module */
+       email_engine_initialize();
+
+       /* init members of mailbox */
+       mailbox_ugd->account_id = 0;
+       mailbox_ugd->mailbox_id = 0;
+       mailbox_ugd->mailbox_type = EMAIL_MAILBOX_TYPE_INBOX;
+       int i;
+       for (i = 0; i < EMAIL_VIEW_MAX; ++i)
+               mailbox_ugd->gl[i] = NULL;
+       for (i = 0; i < EMAIL_VIEW_MAX; ++i)
+               mailbox_ugd->list_data[i] = NULL;
+       mailbox_ugd->sort_type = EMAIL_SORT_MAX;
+       mailbox_ugd->sort_type_index= VIEWBY_DATE_RECENT;
+       mailbox_ugd->search_type = EMAIL_SEARCH_ALL;
+       mailbox_ugd->download_idx = 0;
+       mailbox_ugd->isRotate = false;
+
+       int w, h;
+       ecore_x_window_size_get(ecore_x_window_root_first_get(), &w, &h);
+       debug_log("WINDOW W[%d] H[%d]", w, h);
+       mailbox_ugd->main_w = w;
+       mailbox_ugd->main_h = h;
+
+       /* theme extension */
+       /*mailbox_ugd->theme = elm_theme_new();
+       elm_theme_ref_set(mailbox_ugd->theme, NULL);
+       elm_theme_extension_add(mailbox_ugd->theme, THEME_PATH);*/
+
+       /* DBUS */
+       _dbus_receiver_setup(mailbox_ugd);
+
+       if (mode == UG_MODE_FULLVIEW) {
+               char *thread_id = NULL;
+               service_get_extra_data(service, EMAIL_BUNDLE_KEY_THREAD_ID, &(thread_id));
+               if (thread_id != NULL) {
+                       mailbox_ugd->thread_id = atoi(thread_id);
+                       g_free(thread_id);
+               } else {
+                       mailbox_ugd->thread_id = -1;
+               }
+
+               char *initial_run = NULL;
+               service_get_extra_data(service, EMAIL_BUNDLE_KEY_INITIAL_RUN, &(initial_run));
+               if (initial_run != NULL) {
+                       mailbox_ugd->initial_run = atoi(initial_run);
+                       g_free(initial_run);
+               }
+
+               mailbox_ugd->base = create_fullview(parent, mailbox_ugd);
+       } else {
+               mailbox_ugd->base = NULL;
+       }
+
+       return mailbox_ugd->layout_main;
+}
+
+static void on_start(ui_gadget_h ug, service_h service, void *priv)
+{
+       debug_log("");
+}
+
+static void on_pause(ui_gadget_h ug, service_h service, void *priv)
+{
+       debug_log("");
+}
+
+static void on_resume(ui_gadget_h ug, service_h service, void *priv)
+{
+       debug_log("");
+}
+
+static void on_destroy(ui_gadget_h ug, service_h service, void *priv)
+{
+       debug_log("");
+
+       EmailMailboxUGD *mailbox_ugd;
+
+       if (!ug || !priv) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       mailbox_ugd = (EmailMailboxUGD *)priv;
+
+       _stop_emf_job(mailbox_ugd, mailbox_ugd->emf_handle, true);
+       int view_type = 0;
+       for (view_type = 0; view_type < EMAIL_VIEW_MAX; ++view_type) {
+               if (mailbox_ugd->list_data[view_type]) {
+                       GList *view_list = mailbox_ugd->list_data[view_type];
+                       GList *cur = NULL;
+                       list_data *ld = NULL;
+                       G_LIST_FOREACH(view_list, cur, ld) {
+                               _free_list_data_simple(ld);
+                       }
+                       g_list_free(view_list);
+               }
+       }
+
+       email_engine_free_ca_mailbox_list_using_glist(&mailbox_ugd->folder_list);
+       email_engine_finalize();
+
+       FREE(mailbox_ugd->address);
+       FREE(mailbox_ugd->folder_alias);
+       FREE(mailbox_ugd->user_email);
+       FREE(mailbox_ugd->display_name);
+
+       /* theme extension */
+       /*elm_theme_extension_del(mailbox_ugd->theme, THEME_PATH);
+       elm_theme_free(mailbox_ugd->theme);*/
+
+       _remove_dbus_receiver(mailbox_ugd);
+
+       int ret = e_dbus_shutdown();
+       debug_log("ret: %d", ret);
+
+       if (mailbox_ugd->ly != NULL && elm_object_part_content_get(mailbox_ugd->panes, "left") == NULL) {
+               elm_object_part_content_set(mailbox_ugd->panes, "left", mailbox_ugd->ly);
+       }
+       evas_object_del(mailbox_ugd->base);
+       mailbox_ugd->base = NULL;
+}
+
+static void on_message(ui_gadget_h ug, service_h msg, service_h service, void *priv)
+{
+       debug_log("");
+
+       EmailMailboxUGD *mailbox_ugd;
+
+       if (!ug || !priv) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       mailbox_ugd = (EmailMailboxUGD *)priv;
+
+       char *msg_type = NULL;
+       service_get_extra_data(msg, EMAIL_BUNDLE_KEY_MSG, &(msg_type));
+       char *c_do_delete = NULL;
+       service_get_extra_data(msg, EMAIL_BUNDLE_KEY_DO_DELETE, &(c_do_delete));
+       int do_delete = 0;
+       if (c_do_delete)
+               do_delete = (int)atoi(c_do_delete);
+
+       if (g_strcmp0(msg_type, EMAIL_BUNDLE_KEY_UNLOCK_LIST) == 0) {
+               if (mailbox_ugd->isRotate == true) {
+                       if (evas_object_pass_events_get(mailbox_ugd->gl[mailbox_ugd->view_type]) == EINA_TRUE) {
+                               debug_log("Set pass event - EINA_FALSE");
+                               evas_object_pass_events_set(mailbox_ugd->gl[mailbox_ugd->view_type], EINA_FALSE);
+                       }
+               }
+       }
+       else if (g_strcmp0(msg_type, EMAIL_BUNDLE_VAL_NEXT_MSG) == 0) {
+               Elm_Object_Item *first = NULL, *last = NULL;
+               if(mailbox_ugd->view_type == EMAIL_VIEW_SEARCH || mailbox_ugd->view_type == EMAIL_VIEW_EDIT) {
+                       first = elm_genlist_first_item_get(mailbox_ugd->gl[mailbox_ugd->previous_view]);
+                       last = elm_genlist_last_item_get(mailbox_ugd->gl[mailbox_ugd->previous_view]);
+               } else {
+                       first = elm_genlist_first_item_get(mailbox_ugd->gl[mailbox_ugd->view_type]);
+                       last = elm_genlist_last_item_get(mailbox_ugd->gl[mailbox_ugd->view_type]);
+               }
+
+
+               first = elm_genlist_item_next_get(first);       /* The first item is group item */
+
+               if(g_selected_item != first || g_selected_item != last)
+               {
+                       debug_log("there are multiple items");
+                       if(g_selected_item != last)
+                       {
+                               do
+                               {
+                                       g_selected_item = elm_genlist_item_next_get(g_selected_item);
+                               } while(elm_genlist_item_parent_get(g_selected_item) == NULL && g_selected_item != NULL);
+                       }
+                       else
+                       {
+                               g_selected_item = first;
+                       }
+                       if(g_selected_item)
+                       {
+                               list_data *ld = (list_data *)elm_object_item_data_get(g_selected_item);
+                               if(ld)
+                                       _open_email_body(ld->mail_id, g_selected_item);
+                       }
+
+               }
+               else {
+                       debug_log("only one item exist");
+                       if(do_delete)
+                       {
+                               if(mailbox_ugd->isRotate)
+                               {
+                                       _create_email_no_content_view(mailbox_ugd);
+                               }
+                               else
+                               {
+                                       elm_panes_content_left_size_set(mailbox_ugd->panes, 1.0);
+                                       elm_object_part_content_unset(mailbox_ugd->panes, "right");
+                               }
+                       }
+                       else
+                       {
+                               list_data *ld = (list_data *)elm_object_item_data_get(g_selected_item);
+                               if(ld)
+                                       _open_email_body(ld->mail_id, g_selected_item);
+                       }
+
+               }
+       }
+       else if (g_strcmp0(msg_type, EMAIL_BUNDLE_VAL_PREV_MSG) == 0) {
+               Elm_Object_Item *first = NULL, *last = NULL;
+               if(mailbox_ugd->view_type == EMAIL_VIEW_SEARCH || mailbox_ugd->view_type == EMAIL_VIEW_EDIT) {
+                       first = elm_genlist_first_item_get(mailbox_ugd->gl[mailbox_ugd->previous_view]);
+                       last = elm_genlist_last_item_get(mailbox_ugd->gl[mailbox_ugd->previous_view]);
+               } else {
+                       first = elm_genlist_first_item_get(mailbox_ugd->gl[mailbox_ugd->view_type]);
+                       last = elm_genlist_last_item_get(mailbox_ugd->gl[mailbox_ugd->view_type]);
+               }
+
+               first = elm_genlist_item_next_get(first);       /* The first item is group item */
+
+               if(g_selected_item != first || g_selected_item != last)
+               {
+                       debug_log("there are multiple items");
+                       if(g_selected_item != first)
+                       {
+                               do
+                               {
+                                       g_selected_item = elm_genlist_item_prev_get(g_selected_item);
+                               } while(elm_genlist_item_parent_get(g_selected_item) == NULL && g_selected_item != NULL);
+                       }
+                       else
+                       {
+                               g_selected_item = last;
+                       }
+                       if(g_selected_item)
+                       {
+                               list_data *ld = (list_data *)elm_object_item_data_get(g_selected_item);
+                               if(ld)
+                                       _open_email_body(ld->mail_id, g_selected_item);
+                       }
+
+               }
+               else {
+                       debug_log("only one item exist");
+                       if(do_delete)
+                       {
+                               if(mailbox_ugd->isRotate)
+                               {
+                                       _create_email_no_content_view(mailbox_ugd);
+                               }
+                               else
+                               {
+                                       elm_panes_content_left_size_set(mailbox_ugd->panes, 1.0);
+                                       elm_object_part_content_unset(mailbox_ugd->panes, "right");
+                               }
+                       }
+                       else
+                       {
+                               list_data *ld = (list_data *)elm_object_item_data_get(g_selected_item);
+                               if(ld)
+                                       _open_email_body(ld->mail_id, g_selected_item);
+                       }
+
+               }
+       }
+       else if (g_strcmp0(msg_type, EMAIL_BUNDLE_VAL_UNREAD) == 0) {
+               list_data *ld = (list_data *)elm_object_item_data_get(g_selected_item);
+               if(ld)
+               {
+                       ld->is_seen = false;
+                       elm_genlist_item_update(g_selected_item);
+               }
+       }
+       else if (g_strcmp0(msg_type, EMAIL_BUNDLE_VAL_READ) == 0) {
+               list_data *ld = (list_data *)elm_object_item_data_get(g_selected_item);
+               if(ld)
+               {
+                       ld->is_seen = true;
+                       elm_genlist_item_update(g_selected_item);
+               }
+       }
+
+       g_free(msg_type);
+       g_free(c_do_delete);
+}
+
+static void on_event(ui_gadget_h ug, enum ug_event event, service_h service, void *priv)
+{
+       debug_log("ug event %d", event);
+
+       RETURN_IF_FAIL(priv);
+
+       EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)priv;
+       int angle = 0;
+       app_device_orientation_e rotmode = -1;
+
+       switch (event) {
+       case UG_EVENT_LOW_MEMORY:
+               break;
+       case UG_EVENT_LOW_BATTERY:
+               break;
+       case UG_EVENT_LANG_CHANGE:
+               break;
+
+       case UG_EVENT_ROTATE_PORTRAIT:
+               rotmode = APP_DEVICE_ORIENTATION_0;
+               angle = 0;
+               break;
+
+       case UG_EVENT_ROTATE_PORTRAIT_UPSIDEDOWN:
+               rotmode = APP_DEVICE_ORIENTATION_180;
+               angle = 180;
+               break;
+
+       case UG_EVENT_ROTATE_LANDSCAPE:
+               rotmode = APP_DEVICE_ORIENTATION_270;
+               angle = -90;
+               break;
+
+       case UG_EVENT_ROTATE_LANDSCAPE_UPSIDEDOWN:
+               rotmode = APP_DEVICE_ORIENTATION_90;
+               angle = 90;
+               break;
+
+       case UG_EVENT_REGION_CHANGE:
+               appcore_get_timeformat(&icu_timeformat);
+               _refresh_mailbox(mailbox_ugd);
+               break;
+
+       default:
+               break;
+       }
+
+       if (rotmode != -1) {
+               /* Rotation ug event has come */
+
+               mailbox_ugd->current_rotmode = rotmode;
+               int account_id = 0;
+               if (FALSE == email_engine_get_default_account(&account_id)) {
+                       /* Ignore Rotation if there are no accounts added */
+                       debug_log("No accounts");
+                       return;
+               }
+
+               if (rotmode == APP_DEVICE_ORIENTATION_0 || rotmode == APP_DEVICE_ORIENTATION_180) {
+                       if (mailbox_ugd->isRotate == true)
+                               mailbox_ugd->isRotate = false;
+               } else if (rotmode == APP_DEVICE_ORIENTATION_270 || rotmode == APP_DEVICE_ORIENTATION_90) {
+                       if (mailbox_ugd->isRotate == false)
+                               mailbox_ugd->isRotate = true;
+               }
+
+//             if (mailbox_ugd->view_type == EMAIL_VIEW_EDIT || b_editmode) {
+//                     elm_win_rotation_with_resize_set(mailbox_ugd->win_main, angle);
+//                     return; /* Ignore Rotation for Edit view and Search View and Sender View */
+//             }
+
+               if (rotmode == APP_DEVICE_ORIENTATION_0 || rotmode == APP_DEVICE_ORIENTATION_180) {
+                       if (elm_panes_content_left_size_get(mailbox_ugd->panes) == 0.4) {
+                               _mailbox_rotate_to_potrait(mailbox_ugd, angle);
+                       } else {
+                               _mailbox_rotate_to_landscape(mailbox_ugd, angle);
+                               _mailbox_rotate_to_potrait(mailbox_ugd, angle);
+                       }
+               } else if (rotmode == APP_DEVICE_ORIENTATION_270 || rotmode == APP_DEVICE_ORIENTATION_90) {
+                       if (elm_panes_content_left_size_get(mailbox_ugd->panes) != 0.4) {
+                               _mailbox_rotate_to_landscape(mailbox_ugd, angle);
+                       } else {
+                               _mailbox_rotate_to_potrait(mailbox_ugd, angle);
+                               _mailbox_rotate_to_landscape(mailbox_ugd, angle);
+                       }
+               }
+       }
+}
+
+static void _mailbox_rotate_to_potrait(void *data, int angle)
+{
+       debug_log("");
+       EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data;
+
+       debug_log("view type = %d, previous_view = %d", mailbox_ugd->view_type, mailbox_ugd->previous_view);
+
+       elm_object_item_part_content_unset(mailbox_ugd->navibar_item[mailbox_ugd->view_type], "controlbar");
+       _create_controlbar(mailbox_ugd);
+       if (mailbox_ugd->view_type == EMAIL_VIEW_EDIT)
+       {
+               elm_object_item_part_content_set(mailbox_ugd->navibar_item[mailbox_ugd->previous_view], "controlbar", mailbox_ugd->controlbar_btns);
+       }
+       else
+       {
+               elm_object_item_part_content_set(mailbox_ugd->navibar_item[mailbox_ugd->view_type], "controlbar", mailbox_ugd->controlbar_btns);
+       }
+
+       elm_win_rotation_with_resize_set(mailbox_ugd->win_main, angle);
+
+       if (!evas_object_visible_get(mailbox_ugd->navi_title_ly)) {
+               debug_log("title is not visible, show title. view_type:%d, previous_view:%d", mailbox_ugd->view_type, mailbox_ugd->previous_view);
+               if (mailbox_ugd->view_type == EMAIL_VIEW_EDIT)
+                       elm_object_item_part_content_set(mailbox_ugd->navibar_item[mailbox_ugd->previous_view], "title", mailbox_ugd->navi_title_ly);
+               else
+                       elm_object_item_part_content_set(mailbox_ugd->navibar_item[mailbox_ugd->view_type], "title", mailbox_ugd->navi_title_ly);
+       }
+
+       if (mailbox_ugd->view_type != EMAIL_VIEW_EDIT && !evas_object_visible_get(mailbox_ugd->searchbar_layout)) {
+               debug_log("search_bar is not visible, show search bar");
+               elm_object_part_content_set(mailbox_ugd->search_layout, "searchbar", mailbox_ugd->searchbar_layout);
+               edje_object_signal_emit(_EDJ(mailbox_ugd->search_layout), "show_searchbar", "search");
+       }
+
+       if (elm_object_part_content_get(mailbox_ugd->panes, "right") == mailbox_ugd->split_nocontent) {
+               elm_panes_content_left_size_set(mailbox_ugd->panes, 1.0);
+               Evas_Object *r_content = elm_object_part_content_get(mailbox_ugd->panes, "right");
+               if (r_content) evas_object_hide(r_content);
+               elm_object_part_content_unset(mailbox_ugd->panes, "right");
+       } else {
+               elm_panes_content_left_size_set(mailbox_ugd->panes, 0.0);
+               elm_object_part_content_unset(mailbox_ugd->panes, "left");
+               evas_object_hide(mailbox_ugd->ly);
+       }
+
+       if (mailbox_ugd->view_type == EMAIL_VIEW_EDIT)
+       {
+               email_maillist_select_info(mailbox_ugd);
+       }
+}
+
+
+
+
+static void _mailbox_rotate_to_landscape(void *data, int angle)
+{
+       debug_log("");
+       EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data;
+
+       debug_log("view type = %d, previous_view = %d", mailbox_ugd->view_type, mailbox_ugd->previous_view);
+
+       if (elm_panes_content_left_size_get(mailbox_ugd->panes) == 1.0) {
+               if(mailbox_ugd->b_advanced_search_view) {
+                       debug_log("advanced search view exists. should be removed");
+                       elm_naviframe_item_pop(mailbox_ugd->navi_bar);
+                       mailbox_ugd->b_advanced_search_view = false;
+               }
+
+               if(mailbox_ugd->view_type == EMAIL_VIEW_SEARCH)
+                       mailbox_finish_search_mode(mailbox_ugd);
+               elm_win_rotation_with_resize_set(mailbox_ugd->win_main, angle);
+               _create_email_no_content_view(mailbox_ugd);
+       }
+       else {
+               debug_log("Landscape from viewer, just set right size to 0.4");
+               elm_win_rotation_with_resize_set(mailbox_ugd->win_main, angle);
+
+               if (mailbox_ugd->ly != NULL && elm_object_part_content_get(mailbox_ugd->panes, "left") == NULL)
+                       elm_object_part_content_set(mailbox_ugd->panes, "left", mailbox_ugd->ly);
+
+               elm_panes_content_left_size_set(mailbox_ugd->panes, 0.4);
+       }
+
+       if (!evas_object_visible_get(mailbox_ugd->gl[mailbox_ugd->view_type]))
+               evas_object_show(mailbox_ugd->gl[mailbox_ugd->view_type]);
+
+
+       if (mailbox_ugd->view_type == EMAIL_VIEW_EDIT)
+       {
+               _create_controlbar(mailbox_ugd);
+               elm_object_item_part_content_set(mailbox_ugd->navibar_item[mailbox_ugd->previous_view], "controlbar", mailbox_ugd->controlbar_btns);
+               email_maillist_select_info(mailbox_ugd);
+       }
+       else
+       {
+               elm_object_item_part_content_unset(mailbox_ugd->navibar_item[mailbox_ugd->view_type], "controlbar");
+               _delete_controlbar(mailbox_ugd);
+       }
+
+       if (evas_object_visible_get(mailbox_ugd->navi_title_ly)) {
+               debug_log("title is visible, hide title");
+               debug_log("title is not visible, show title. view_type:%d, previous_view:%d", mailbox_ugd->view_type, mailbox_ugd->previous_view);
+
+               if (mailbox_ugd->view_type == EMAIL_VIEW_EDIT) {
+                       elm_object_item_part_content_unset(mailbox_ugd->navibar_item[mailbox_ugd->previous_view], "title");
+               } else {
+                       elm_object_item_part_content_unset(mailbox_ugd->navibar_item[mailbox_ugd->view_type], "title");
+               }
+               evas_object_hide(mailbox_ugd->navi_title_ly);
+       }
+
+       if (evas_object_visible_get(mailbox_ugd->searchbar_layout)) {
+               debug_log("search_bar is visible, hide search bar");
+               elm_entry_entry_set(mailbox_ugd->searchbar_en, "");
+               elm_object_focus_set(mailbox_ugd->searchbar_layout, EINA_FALSE);
+               elm_object_part_content_unset(mailbox_ugd->search_layout, "searchbar");
+               edje_object_signal_emit(_EDJ(mailbox_ugd->search_layout), "hide_searchbar", "search");
+               evas_object_hide(mailbox_ugd->searchbar_layout);
+       }
+
+       /* destroy account ug and create mailbox ug */
+       if (mailbox_ugd->ug_account && mailbox_ugd->account_dim) {
+               debug_log("account frameview is visible, destroy account view");
+               destroy_account_cb(mailbox_ugd->ug_account, mailbox_ugd);
+       }
+
+}
+
+static void on_key_event(ui_gadget_h ug, enum ug_key_event event, service_h service, void *priv)
+{
+       debug_log("");
+       EmailMailboxUGD *mailbox_ugd;
+
+       if (!ug || !priv) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       mailbox_ugd = (EmailMailboxUGD *)priv;
+
+       switch (event) {
+       case UG_KEY_EVENT_END:
+               break;
+
+       default:
+               break;
+       }
+}
+
+UG_MODULE_API int UG_MODULE_INIT(struct ug_module_ops *ops)
+{
+       debug_log("");
+       EmailMailboxUGD *ugd;
+
+       if (!ops)
+               return -1;
+
+       ugd = calloc(1, sizeof(EmailMailboxUGD));
+
+       if (!ugd)
+               return -1;
+
+       ops->create = on_create;
+       ops->start = on_start;
+       ops->pause = on_pause;
+       ops->resume = on_resume;
+       ops->destroy = on_destroy;
+       ops->message = on_message;
+       ops->event = on_event;
+       ops->key_event = on_key_event;
+       ops->priv = ugd;
+       ops->opt = UG_OPT_INDICATOR_ENABLE;
+
+       return 0;
+}
+
+UG_MODULE_API void UG_MODULE_EXIT(struct ug_module_ops *ops)
+{
+       debug_log("");
+       EmailMailboxUGD *ugd;
+
+       if (!ops)
+               return;
+
+       ugd = ops->priv;
+
+       FREE(ugd);
+}
+
+static void layout_account_cb(ui_gadget_h ug, enum ug_mode mode, void *priv)
+{
+       debug_log("");
+       Evas_Object *base;
+       EmailMailboxUGD *ugd;
+       Elm_Transit* transit;
+       Evas_Object *blk;
+
+       float scale_factor=0;
+       int acc_max_h=909, acc_w=688;
+
+       if (!ug || !priv)
+               return;
+
+       ugd = (EmailMailboxUGD *)priv;
+
+       base = ug_get_layout(ug);
+       if (!base)
+               return;
+
+       scale_factor = elm_scale_get();
+       debug_log("ELM Scale[%f]", scale_factor);
+
+       switch (mode) {
+       case UG_MODE_FULLVIEW:
+               evas_object_size_hint_weight_set(base, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+               elm_win_resize_object_add(ugd->win_main, base);
+               evas_object_show(base);
+               break;
+
+       case UG_MODE_FRAMEVIEW:
+               blk = edje_object_add(evas_object_evas_get(ugd->win_main));
+               edje_object_file_set(blk, THEME_PATH, "email/dim_area");
+               evas_object_size_hint_weight_set(blk, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+               elm_win_resize_object_add(ugd->win_main, blk);
+               ugd->account_dim = blk;
+               evas_object_show(blk);
+               edje_object_signal_callback_add(blk, "action,click", "", _account_dim_clicked, ugd);/*when dim area is clicked this signal is sent*/
+
+               // create frame view
+               evas_object_raise(base);
+               evas_object_resize(base, acc_w, acc_max_h);
+               evas_object_move(base, 16, 168);        // indicator(50)+Navi(108) + 10(gap)
+
+               //Hide wipe effect. and direction is up.
+               transit = elm_transit_add();
+               elm_transit_object_add(transit, base);
+               elm_transit_effect_wipe_add(transit, ELM_TRANSIT_EFFECT_WIPE_TYPE_SHOW, ELM_TRANSIT_EFFECT_WIPE_DIR_DOWN);
+               elm_transit_duration_set(transit, 0.5);
+               elm_transit_go(transit);
+               evas_object_show(base);
+               break;
+
+       default:
+               break;
+       }
+}
+
+void layout_composer_cb(ui_gadget_h ug, enum ug_mode mode, void *priv)
+{
+       debug_log("");
+       Evas_Object *base;
+       EmailMailboxUGD *ugd;
+
+       if (!ug || !priv)
+               return;
+
+       ugd = (EmailMailboxUGD *)priv;
+
+       base = ug_get_layout(ug);
+       if (!base)
+               return;
+
+       switch (mode) {
+       case UG_MODE_FULLVIEW:
+               evas_object_size_hint_weight_set(base, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+               elm_win_resize_object_add(ugd->win_main, base);
+               evas_object_show(base);
+               break;
+       default:
+               break;
+       }
+}
+
+static void layout_viewer_cb(ui_gadget_h ug, enum ug_mode mode, void *priv)
+{
+       debug_log("");
+
+       Evas_Object *base;
+       EmailMailboxUGD *ugd;
+
+       if (!ug || !priv)
+               return;
+
+       ugd = (EmailMailboxUGD *)priv;
+
+       base = ug_get_layout(ug);
+       if (!base)
+               return;
+
+       ugd->viewer_ly = base;
+
+       switch (mode) {
+       case UG_MODE_FULLVIEW:
+               evas_object_size_hint_weight_set(base, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+               ug_disable_effect(ug);
+               evas_object_show(base);
+               break;
+       default:
+               break;
+       }
+}
+
+static void result_cb(ui_gadget_h ug, service_h service, void *priv)
+{
+       debug_log("");
+       EmailMailboxUGD *mailbox_ugd;
+
+       if (!ug || !priv)
+               return;
+
+       mailbox_ugd = (EmailMailboxUGD *)priv;
+
+       FREE(mailbox_ugd->user_email);
+       FREE(mailbox_ugd->folder_alias);
+       mailbox_ugd->mailbox_type = EMAIL_MAILBOX_TYPE_NONE;
+       mailbox_ugd->mailbox_id = 0;
+
+       ug_pushed = false;
+       char *account_id = NULL;
+       char *c_is_null = NULL;
+       char *mailbox_type = NULL;
+
+       service_get_extra_data(service, EMAIL_BUNDLE_KEY_ACCOUNT_ID, &(account_id));
+       service_get_extra_data(service, EMAIL_BUNDLE_KEY_IS_NULL, &(c_is_null));
+
+       mailbox_ugd->account_id = (gint) atoi(account_id);
+       if (atoi(c_is_null)) {
+               if (mailbox_ugd->account_id != 0) {
+                       email_mailbox_t *mailbox = NULL;
+                       int e = email_get_mailbox_by_mailbox_type(mailbox_ugd->account_id, EMAIL_MAILBOX_TYPE_INBOX, &mailbox);
+
+                       if( e == EMAIL_ERROR_NONE && mailbox ) {
+                               debug_log("email_get_mailbox_by_mailbox_type : account_id(%d) type(INBOX) - err(%d) or mailbox is NULL(%p)", mailbox_ugd->account_id, e, mailbox);
+
+                               service_get_extra_data(service, EMAIL_BUNDLE_KEY_USER_EMAIL, &(mailbox_ugd->user_email));
+                               mailbox_ugd->mode = EMAIL_MAILBOX_MODE_MAILBOX;
+                               mailbox_ugd->mailbox_id = mailbox->mailbox_id;
+                               mailbox_ugd->mailbox_type = EMAIL_MAILBOX_TYPE_INBOX;
+                               mailbox_ugd->folder_alias = g_strdup(mailbox->alias);
+                               debug_log("account_id: [%d], mailbox_id: [%d], folder_alias[%s], user_email: [%s]",
+                                               mailbox_ugd->account_id, mailbox_ugd->mailbox_id, mailbox_ugd->folder_alias, mailbox_ugd->user_email);
+
+                               email_free_mailbox(&mailbox, 1);
+                       }
+               }
+               else
+               {
+                       service_get_extra_data(service, EMAIL_BUNDLE_KEY_MAILBOX_TYPE, &(mailbox_type));
+                       mailbox_ugd->mailbox_type = (gint) atoi(mailbox_type);
+                       mailbox_ugd->mode = EMAIL_MAILBOX_MODE_ALL;
+                       debug_log("account_id: [%d], mailbox_type: [%d]", mailbox_ugd->account_id, mailbox_ugd->mailbox_type);
+               }
+       }
+       else
+       {
+               char *mailbox_id = NULL;
+               service_get_extra_data(service, EMAIL_BUNDLE_KEY_MAILBOX, &(mailbox_id));
+               if (mailbox_id)
+               {
+                       mailbox_ugd->mailbox_id = (int)atoi(mailbox_id);
+                       g_free(mailbox_id);
+               }
+               else
+                       debug_critical("failure on getting mailbox_id");
+
+               service_get_extra_data(service, EMAIL_BUNDLE_KEY_MAILBOX_ALIAS, &(mailbox_ugd->folder_alias));
+               service_get_extra_data(service, EMAIL_BUNDLE_KEY_USER_EMAIL, &(mailbox_ugd->user_email));
+               mailbox_ugd->mode = EMAIL_MAILBOX_MODE_MAILBOX;
+               debug_log("account_id: [%d], mailbox_id: [%d], folder_alias[%s], user_email: [%s]",
+                       mailbox_ugd->account_id, mailbox_ugd->mailbox_id, mailbox_ugd->folder_alias, mailbox_ugd->user_email);
+       }
+       if (mailbox_ugd->ug_account) {
+               destroy_account_cb(mailbox_ugd->ug_account, mailbox_ugd);
+       }
+       ug_pushed = false;
+
+       _make_account_mail_list(mailbox_ugd);
+
+       g_free(account_id);
+       g_free(c_is_null);
+       g_free(mailbox_type);
+}
+
+static void result_viewer_cb(ui_gadget_h ug, service_h service, void *priv)
+{
+       EmailMailboxUGD *mailbox_ugd;
+       debug_log("");
+
+       if (NULL == ug || NULL == priv) {
+               return;
+       }
+
+       mailbox_ugd = priv;
+
+       char *mailbox_msg = NULL;
+       service_get_extra_data(service, EMAIL_BUNDLE_KEY_MAILBOX_SIZE, &(mailbox_msg));
+
+       if (NULL != mailbox_msg) {
+               if (0 == g_strcmp0(mailbox_msg, "MAILBOX_RESIZE_FULL")) {
+                       debug_log("MAILBOX_RESIZE_FULL");
+                       if (elm_genlist_item_selected_get((Elm_Object_Item *)g_selected_item) == EINA_TRUE)
+                               elm_genlist_item_selected_set((Elm_Object_Item *)g_selected_item, EINA_FALSE);
+
+                       if (!evas_object_visible_get(mailbox_ugd->gl[mailbox_ugd->view_type]))
+                               evas_object_show(mailbox_ugd->gl[mailbox_ugd->view_type]);
+
+                       elm_panes_content_left_size_set(mailbox_ugd->panes, 1.0);
+                       if (mailbox_ugd->ly != NULL && elm_object_part_content_get(mailbox_ugd->panes, "left") == NULL)
+                               elm_object_part_content_set(mailbox_ugd->panes, "left", mailbox_ugd->ly);
+
+                       Evas_Object *r_content = elm_object_part_content_get(mailbox_ugd->panes, "right");
+                       if (r_content) evas_object_hide(r_content);
+                       elm_object_part_content_unset(mailbox_ugd->panes, "right");
+               }
+
+               g_free(mailbox_msg);
+       } else {
+               debug_critical("Mailbox size string sent by viewer is NULL");
+       }
+}
+
+void result_composer_cb(ui_gadget_h ug, service_h service, void *priv)
+{
+       EmailMailboxUGD *mailbox_ugd;
+       debug_log("");
+
+       if (NULL == ug || NULL == priv) {
+               return;
+       }
+
+       mailbox_ugd = priv;
+}
+
+void destroy_account_cb(ui_gadget_h ug, void *priv)
+{
+       debug_log("");
+
+       if (!ug || !priv)
+               return;
+
+       EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)priv;
+
+       if (mailbox_ugd->ug_account) {
+
+               Elm_Object_Item *nf_it = mailbox_ugd->navibar_item[mailbox_ugd->view_type];
+               int oh_opened = (int) elm_object_item_data_get(nf_it);
+//             Evas_Object *title_content = elm_object_item_part_content_get(nf_it, "title");
+
+               if (oh_opened)
+               {
+                       elm_icon_file_set(mailbox_ugd->title_arrow, ICON_CLOSE, NULL);
+                       elm_object_item_data_set(nf_it, (void *) (!oh_opened));
+               }
+
+               ug_destroy(mailbox_ugd->ug_account);
+               mailbox_ugd->ug_account = NULL;
+       }
+
+       if(mailbox_ugd->account_dim)
+       {
+               evas_object_del(mailbox_ugd->account_dim);
+               mailbox_ugd->account_dim = NULL;
+       }
+       ug_pushed = false;
+}
+
+static void destroy_composer_cb(ui_gadget_h ug, void *priv)
+{
+       debug_log("");
+
+       if (!ug || !priv)
+               return;
+
+       EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)priv;
+
+       if (mailbox_ugd->isRotate == false) {
+               if (elm_genlist_item_selected_get((Elm_Object_Item *)g_selected_item) == EINA_TRUE)
+                       elm_genlist_item_selected_set((Elm_Object_Item *)g_selected_item, EINA_FALSE);
+
+               if (elm_panes_content_left_size_get(mailbox_ugd->panes) == 0.0 && elm_object_part_content_get(mailbox_ugd->panes, "right") != NULL) {
+                       Evas_Object *r_content = elm_object_part_content_get(mailbox_ugd->panes, "right");
+                       if (r_content) evas_object_hide(r_content);
+                       elm_object_part_content_unset(mailbox_ugd->panes, "right");
+
+                       elm_panes_content_left_size_set(mailbox_ugd->panes, 1.0);
+
+                       if (mailbox_ugd->ly != NULL)
+                               elm_object_part_content_set(mailbox_ugd->panes, "left", mailbox_ugd->ly);
+
+               }
+       }
+
+       if (mailbox_ugd->ug_composer) {
+               ug_destroy(mailbox_ugd->ug_composer);
+               mailbox_ugd->ug_composer = NULL;
+       }
+       ug_pushed = false;
+}
+
+static void destroy_viewer_cb(ui_gadget_h ug, void *priv)
+{
+       debug_log("");
+
+       if (!ug || !priv)
+               return;
+
+       EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)priv;
+
+       if (mailbox_ugd)
+               mailbox_ugd->viewer_refresh = 0;
+
+       ug_destroy(ug);
+}
+
+
+ui_gadget_h create_composer_ug(char *ug_name, service_h service, void *data)
+{
+       debug_log("");
+       ui_gadget_h ug;
+       struct ug_cbs cbs = { 0, };
+       EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data;
+
+       cbs.layout_cb = layout_composer_cb;
+       cbs.result_cb = result_composer_cb;
+       cbs.destroy_cb = destroy_composer_cb;
+       cbs.priv = mailbox_ugd;
+       mailbox_ugd->cbs = cbs;
+
+       ug = ug_create(mailbox_ugd->ug, ug_name, UG_MODE_FULLVIEW, service, &mailbox_ugd->cbs);
+
+       return ug;
+}
+
+static ui_gadget_h create_account_ug(char *ug_name, service_h service, void *data)
+{
+       debug_log("");
+       ui_gadget_h ug;
+       struct ug_cbs cbs = { 0, };
+       EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data;
+
+       cbs.layout_cb = layout_account_cb;
+       cbs.result_cb = result_cb;
+       cbs.destroy_cb = destroy_account_cb;
+       cbs.priv = mailbox_ugd;
+       mailbox_ugd->cbs = cbs;
+
+       ug = ug_create(mailbox_ugd->ug, ug_name, UG_MODE_FRAMEVIEW, service, &mailbox_ugd->cbs);
+
+       return ug;
+}
+
+static ui_gadget_h create_folder_ug(char *ug_name, service_h service, void *data)
+{
+       debug_log("");
+       ui_gadget_h ug;
+       struct ug_cbs cbs = { 0, };
+       EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data;
+
+       cbs.layout_cb = layout_account_cb;
+       cbs.result_cb = result_cb;
+       cbs.destroy_cb = destroy_account_cb;
+       cbs.priv = mailbox_ugd;
+       mailbox_ugd->cbs = cbs;
+
+       ug = ug_create(mailbox_ugd->ug, ug_name, UG_MODE_FULLVIEW, service, &mailbox_ugd->cbs);
+
+       return ug;
+}
+
+static ui_gadget_h create_viewer_ug(char *ug_name, service_h service, void *data)
+{
+       debug_log("");
+       struct ug_cbs cbs = { 0, };
+       EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data;
+
+       /* destroy account ug and create mailbox ug */
+       if (mailbox_ugd->ug_account) {
+               destroy_account_cb(mailbox_ugd->ug_account, mailbox_ugd);
+       }
+
+       cbs.layout_cb = layout_viewer_cb;
+       cbs.result_cb = result_viewer_cb;
+       cbs.destroy_cb = destroy_viewer_cb;
+       cbs.priv = data;
+
+       if (mailbox_ugd->viewer_refresh == 0) {
+               mailbox_ugd->viewer_refresh = 1;
+
+               mailbox_ugd->ug_viewer = ug_create(mailbox_ugd->ug, ug_name, UG_MODE_FULLVIEW, service, &cbs);
+       } else {
+               ug_send_message(mailbox_ugd->ug_viewer, service);
+       }
+
+       Evas_Object *r_content = elm_object_part_content_get(mailbox_ugd->panes, "right");
+
+       if (mailbox_ugd->isRotate == false) {
+               debug_log("@@@@@ Potrait @@@@@");
+               if (elm_object_part_content_get(mailbox_ugd->panes, "left") != NULL) {
+                       elm_object_part_content_unset(mailbox_ugd->panes, "left");
+                       evas_object_hide(mailbox_ugd->ly);
+                       elm_panes_content_left_size_set(mailbox_ugd->panes, 0.0);
+               }
+
+               if (elm_object_part_content_get(mailbox_ugd->panes, "right") != NULL) {
+                       elm_object_part_content_unset(mailbox_ugd->panes, "right");
+                       if (r_content) evas_object_hide(r_content);
+               }
+
+               if (mailbox_ugd->viewer_ly != NULL)
+                       elm_object_part_content_set(mailbox_ugd->panes, "right", mailbox_ugd->viewer_ly);
+       } else {
+               debug_log("@@@@@ Landscape @@@@@");
+               if (elm_object_part_content_get(mailbox_ugd->panes, "right") != NULL) {
+                       elm_object_part_content_unset(mailbox_ugd->panes, "right");
+                       if (r_content) evas_object_hide(r_content);
+               }
+
+               if (mailbox_ugd->viewer_ly != NULL)
+                       elm_object_part_content_set(mailbox_ugd->panes, "right", mailbox_ugd->viewer_ly);
+
+               if (elm_object_part_content_get(mailbox_ugd->panes, "left") != NULL) {
+                       elm_object_part_content_unset(mailbox_ugd->panes, "left");
+                       evas_object_hide(mailbox_ugd->ly);
+               }
+
+               if (mailbox_ugd->ly != NULL)
+                       elm_object_part_content_set(mailbox_ugd->panes, "left", mailbox_ugd->ly);
+
+               elm_panes_content_left_size_set(mailbox_ugd->panes, 0.4);
+       }
+
+       return mailbox_ugd->ug_viewer;
+}
+
+static void _create_all_emails_view(Evas_Object *parent, EmailMailboxUGD *mailbox_ugd)
+{
+       debug_log("");
+       mailbox_ugd->win_main = parent;
+       mailbox_ugd->evas = evas_object_evas_get(mailbox_ugd->win_main);
+
+       /* create accouts list view */
+       _create_view(mailbox_ugd);
+
+       _refresh_mailbox(mailbox_ugd);
+
+       /* download new mails */
+       _stop_emf_job(mailbox_ugd, mailbox_ugd->emf_handle, true);
+
+       if (mailbox_ugd->initial_run) {
+               _sync_all_folder(mailbox_ugd);
+               Evas_Object * sync_button = elm_object_part_content_get(mailbox_ugd->navi_title_ly, "right_btn");
+               if (sync_button == mailbox_ugd->update_button)
+               {
+                       elm_object_part_content_unset(mailbox_ugd->navi_title_ly, "right_btn");
+                       evas_object_hide(mailbox_ugd->update_button);
+                       elm_object_part_content_set(mailbox_ugd->navi_title_ly, "right_btn", mailbox_ugd->sync_progress);
+                       evas_object_show(mailbox_ugd->sync_progress);
+               }
+       }
+}
+
+
+
+static inline int index_check_utf8(char c)
+{
+       if (c < 128)
+               return 1;
+       else if ((c & 0xe0) == 0xc0)
+               return 2;
+       else if ((c & 0xf0) == 0xe0)
+               return 3;
+       else if ((c & 0xf8) == 0xf0)
+               return 4;
+       else if ((c & 0xfc) == 0xf8)
+               return 5;
+       else if ((c & 0xfe) == 0xfc)
+               return 6;
+       else
+               return -1;
+}
+
+Eina_Bool _state_get(void *data, Evas_Object *obj, const char *part)
+{
+       debug_log("");
+       return EINA_FALSE;
+}
+
+void _stop_emf_job(EmailMailboxUGD *mailbox_ugd, unsigned handle, gboolean change_download_label_in_panel)
+{
+       debug_log("");
+       gint account_id = mailbox_ugd->account_id;
+
+       if (handle > 0) {
+               debug_log("stop job - handle (%d)", handle);
+               email_engine_stop_working(account_id, handle);
+       } else {
+               debug_warning("handle1 is %d. so we can't call email_engine_stop_working()", handle);
+       }
+
+       mailbox_ugd->emf_handle = 0;
+       _reset_refer_item_and_idx(mailbox_ugd);
+}
+
+void _reset_refer_item_and_idx(EmailMailboxUGD *mailbox_ugd)
+{
+       debug_log("");
+       if (mailbox_ugd == NULL) {
+               debug_log("mailbox_ugd == NULL");
+               return;
+       }
+
+       mailbox_ugd->download_idx = 0;
+}
+
+void _sync_curr_folder(EmailMailboxUGD *mailbox_ugd, int mailbox_id)
+{
+       debug_log("");
+
+       unsigned handle = 0;
+       gboolean res = FALSE;
+       gint account_id = mailbox_ugd->account_id;
+
+       res = email_engine_sync_folder(account_id, mailbox_id, &handle);
+       debug_log("handle: %d", handle);
+
+       mailbox_ugd->emf_handle = handle;
+
+       int *_account_id = (int *)calloc(1, sizeof(int));
+       *_account_id = account_id;
+       g_account_list = eina_list_append(g_account_list, _account_id);
+
+}
+
+void _sync_all_folder(EmailMailboxUGD *mailbox_ugd)
+{
+       debug_log("");
+
+       unsigned handle = 0;
+       int err = 0;
+
+       err = email_sync_header_for_all_account(&handle);
+
+       if (err == 0) {
+               debug_critical("fail to sync header for all account - err(%d)", err);
+               return;
+       }
+       mailbox_ugd->emf_handle = handle;
+       email_account_t *account_list = NULL;
+       int account_cnt = 0, i = 0;
+       int e = email_get_account_list(&account_list, &account_cnt);
+       if (e != EMAIL_ERROR_NONE) {
+               debug_critical("email_get_account_list - err(%d)", e);
+               return;
+       }
+
+       /* free list before append all item */
+       int *data = NULL;
+       EINA_LIST_FREE(g_account_list, data) {
+               g_free(data);
+       }
+       for (i = 0; i < account_cnt; ++i) {
+               int *account_id = (int *)calloc(1, sizeof(int));
+               *account_id = account_list[i].account_id;
+               g_account_list = eina_list_append(g_account_list, account_id);
+       }
+       email_free_account(&account_list, account_cnt);
+}
+
+
+static void _create_view(EmailMailboxUGD *mailbox_ugd)
+{
+       debug_log("");
+
+       Evas_Object *win = mailbox_ugd->win_main;
+       Evas_Object *bg, *layout, *panes;
+
+       bg = elm_bg_add(win);
+       evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       /*elm_object_theme_set(bg, mailbox_ugd->theme);
+       elm_object_style_set(bg, "email_default");*/
+       elm_win_resize_object_add(win, bg);
+       evas_object_show(bg);
+
+       layout = elm_layout_add(win);
+       elm_layout_theme_set(layout, "layout", "application", "default");
+       evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       elm_object_part_content_set(layout, "elm.swallow.bg", bg);
+       evas_object_show(layout);
+       mailbox_ugd->layout_main = layout;
+
+       elm_win_indicator_mode_set(win, ELM_WIN_INDICATOR_SHOW);
+
+       evas_object_smart_callback_add(mailbox_ugd->win_main, "profile,changed", _win_profile_changed_cb, mailbox_ugd);
+
+       panes = elm_panes_add(layout);
+       evas_object_size_hint_weight_set(panes, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(panes, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(panes);
+       elm_panes_fixed_set(panes, EINA_TRUE);
+       elm_panes_content_left_size_set(panes, 1.0);
+       mailbox_ugd->panes = panes;
+
+       elm_object_part_content_set(mailbox_ugd->layout_main, "elm.swallow.content", mailbox_ugd->panes);
+
+       mailbox_ugd->ly = elm_layout_add(panes);
+       elm_layout_theme_set(mailbox_ugd->ly, "layout", "application", "noindicator");
+       evas_object_size_hint_weight_set(mailbox_ugd->ly, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+       if(elm_object_part_content_get(mailbox_ugd->panes, "right"))
+               elm_object_part_content_unset(mailbox_ugd->panes, "right");
+       if (mailbox_ugd->ly != NULL && elm_object_part_content_get(mailbox_ugd->panes, "left") == NULL)
+               elm_object_part_content_set(mailbox_ugd->panes, "left", mailbox_ugd->ly);
+
+       /* Navigation Bar */
+       mailbox_ugd->navi_bar = _create_navigation_layout(mailbox_ugd->ly);
+
+       mailbox_ugd->sub_layout[mailbox_ugd->view_type] = elm_layout_add(mailbox_ugd->navi_bar);
+       evas_object_size_hint_weight_set(mailbox_ugd->sub_layout[mailbox_ugd->view_type], EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       if (mailbox_ugd->main_w == 720)
+               elm_layout_file_set(mailbox_ugd->sub_layout[mailbox_ugd->view_type], THEME_PATH, "layout.email.mailbox.hd");
+       else
+               elm_layout_file_set(mailbox_ugd->sub_layout[mailbox_ugd->view_type], THEME_PATH, "layout.email.mailbox");
+       mailbox_create_searchbar(mailbox_ugd);
+
+       /* create genlist */
+       mailbox_create_list_view(mailbox_ugd);
+
+       Evas_Object *no_content = NULL;
+       no_content = elm_layout_add(mailbox_ugd->sub_layout[mailbox_ugd->view_type]);
+       elm_layout_theme_set(no_content, "layout", "nocontents", "full");
+       elm_object_part_text_set(no_content, "elm.text", dgettext("sys_string", "IDS_COM_BODY_NO_CONTENTS"));
+       mailbox_ugd->no_content = no_content;
+
+       //elm_object_part_content_set(mailbox_ugd->sub_layout[mailbox_ugd->view_type], "searchbar", mailbox_ugd->search_bar);
+       elm_object_part_content_set(mailbox_ugd->sub_layout[mailbox_ugd->view_type], "list", mailbox_ugd->gl[mailbox_ugd->view_type]);
+       elm_object_part_content_set(mailbox_ugd->sub_layout[mailbox_ugd->view_type], "noc", mailbox_ugd->no_content);
+       mailbox_ugd->search_layout = mailbox_ugd->sub_layout[mailbox_ugd->view_type];
+
+       Evas_Object *btn = elm_button_add(mailbox_ugd->navi_bar);
+       elm_object_style_set(btn, "naviframe/end_btn/default");
+       evas_object_smart_callback_add(btn, "clicked", _main_back_clicked, mailbox_ugd);
+       mailbox_ugd->main_back_btn = btn;
+
+       // push the content to naviframe.
+       mailbox_ugd->navibar_item[mailbox_ugd->view_type] = elm_naviframe_item_push(mailbox_ugd->navi_bar, NULL, btn, NULL, mailbox_ugd->sub_layout[mailbox_ugd->view_type], "empty");
+
+       // Create custom style layout
+       mailbox_ugd->navi_title_ly = elm_layout_add(mailbox_ugd->navi_bar);
+       elm_layout_file_set(mailbox_ugd->navi_title_ly, THEME_PATH, "title");
+       evas_object_size_hint_weight_set(mailbox_ugd->navi_title_ly, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(mailbox_ugd->navi_title_ly, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(mailbox_ugd->navi_title_ly);
+       elm_object_signal_callback_add(mailbox_ugd->navi_title_ly, "elm,action,title,clicked", "", _title_clicked_cb, mailbox_ugd);
+       elm_object_item_part_content_set(mailbox_ugd->navibar_item[mailbox_ugd->view_type], "title", mailbox_ugd->navi_title_ly);
+
+       //Title Left Button
+       mailbox_ugd->folder_button = elm_button_add(mailbox_ugd->navi_bar);
+       elm_object_style_set(mailbox_ugd->folder_button, "naviframe/title/default");
+       Evas_Object *folder_icon = elm_icon_add(mailbox_ugd->folder_button);
+       elm_icon_file_set(folder_icon, ICON_FOLDERS, NULL);
+       elm_icon_resizable_set(folder_icon, 1, 1);
+       evas_object_image_smooth_scale_set(folder_icon, 0);
+       elm_object_content_set(mailbox_ugd->folder_button, folder_icon);
+       evas_object_smart_callback_add(mailbox_ugd->folder_button, "clicked", _folder_cb, mailbox_ugd);
+       elm_object_part_content_set(mailbox_ugd->navi_title_ly, "left_btn", mailbox_ugd->folder_button);
+
+       //Title Right Button for update
+       mailbox_ugd->update_button = elm_button_add(mailbox_ugd->navi_bar);
+       elm_object_style_set(mailbox_ugd->update_button, "naviframe/title/default");
+       Evas_Object *update_icon = elm_icon_add(mailbox_ugd->update_button);
+       elm_icon_file_set(update_icon, ICON_UPDATE, NULL);
+       elm_icon_resizable_set(update_icon, 1, 1);
+       evas_object_image_smooth_scale_set(update_icon, 0);
+       elm_object_content_set(mailbox_ugd->update_button, update_icon);
+       evas_object_smart_callback_add(mailbox_ugd->update_button, "clicked", _update_toolbar_clicked_cb, mailbox_ugd);
+       elm_object_part_content_set(mailbox_ugd->navi_title_ly, "right_btn", mailbox_ugd->update_button);
+
+       //sync progress on Title Right
+       mailbox_ugd->sync_progress = elm_progressbar_add(mailbox_ugd->navi_bar);
+       elm_object_style_set(mailbox_ugd->sync_progress, "list_process");
+       evas_object_size_hint_align_set(mailbox_ugd->sync_progress, EVAS_HINT_FILL, 0.5);
+       evas_object_size_hint_weight_set(mailbox_ugd->sync_progress, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       elm_progressbar_pulse(mailbox_ugd->sync_progress, EINA_TRUE);
+
+       elm_object_part_text_set(mailbox_ugd->navi_title_ly, "txt_title", _("IDS_EMAIL_BODY_INBOX"));
+
+       if (mailbox_ugd->mode == EMAIL_MAILBOX_MODE_ALL)
+               elm_object_part_text_set(mailbox_ugd->navi_title_ly, "txt_sub", _("IDS_EMAIL_HEADER_ALL_ACCOUNTS"));
+       else
+               elm_object_part_text_set(mailbox_ugd->navi_title_ly, "txt_sub", mailbox_ugd->user_email);
+
+       // add service provider icon
+       mailbox_ugd->sp_icon = elm_icon_add(mailbox_ugd->navi_title_ly);
+       evas_object_show(mailbox_ugd->sp_icon);
+       elm_object_part_content_set(mailbox_ugd->navi_title_ly, "sub_left_icon", mailbox_ugd->sp_icon);
+       elm_icon_file_set(mailbox_ugd->sp_icon, ICON_TITLE_ALL_ACC, NULL);
+
+       // add expand/collapse icon
+       mailbox_ugd->title_arrow = elm_icon_add(mailbox_ugd->navi_title_ly);
+       evas_object_show(mailbox_ugd->title_arrow);
+       elm_object_part_content_set(mailbox_ugd->navi_title_ly, "sub_right_icon", mailbox_ugd->title_arrow);
+       elm_icon_file_set(mailbox_ugd->title_arrow, ICON_CLOSE, NULL);
+
+       _create_controlbar(mailbox_ugd);
+       elm_object_item_part_content_set(mailbox_ugd->navibar_item[mailbox_ugd->view_type], "controlbar", mailbox_ugd->controlbar_btns);
+
+       evas_object_show(mailbox_ugd->ly);
+}
+
+static void _win_profile_changed_cb(void *data, Evas_Object *obj, void *event)
+{
+       debug_log("");
+       if (!data) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data;
+
+       const char *profile = elm_config_profile_get();
+       if (!g_strcmp0(profile, "desktop"))
+               elm_layout_theme_set(mailbox_ugd->layout_main, "layout", "application", "noindicator");
+       else
+               elm_layout_theme_set(mailbox_ugd->layout_main, "layout", "application", "default");
+
+       evas_object_size_hint_weight_set(mailbox_ugd->layout_main, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       elm_win_resize_object_add(mailbox_ugd->win_main, mailbox_ugd->layout_main);
+       evas_object_show(mailbox_ugd->layout_main);
+}
+
+static void _title_clicked_cb(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+       debug_log("");
+       EmailMailboxUGD *mailbox_ugd = data;
+       Elm_Object_Item *nf_it = mailbox_ugd->navibar_item[mailbox_ugd->view_type];
+       int oh_opened = (int) elm_object_item_data_get(nf_it);
+//     Evas_Object *title_content = elm_object_item_part_content_get(nf_it, "title");
+
+       debug_log("mailbox_ugd->view_type(%d), oh_opened(%d)", mailbox_ugd->view_type, oh_opened);
+
+       if (oh_opened)
+       {
+               elm_icon_file_set(mailbox_ugd->title_arrow, ICON_CLOSE, NULL);
+               destroy_account_cb(mailbox_ugd->ug_account, mailbox_ugd);
+               elm_object_item_data_set(nf_it, (void *) (!oh_opened));
+       }
+       else
+       {
+               if (mailbox_ugd->view_type != EMAIL_VIEW_EDIT && mailbox_ugd->view_type != EMAIL_VIEW_SEARCH)
+               {
+                       elm_icon_file_set(mailbox_ugd->title_arrow, ICON_OPEN, NULL);
+                       _account_cb(data, obj, NULL);
+                       elm_object_item_data_set(nf_it, (void *) (!oh_opened));
+               }
+               else
+                       debug_log("account couldn't open. Edit/Search mode");
+       }
+
+}
+
+static void _main_back_clicked(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+
+       if (!data) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       EmailMailboxUGD *mailbox_ugd = data;
+       Evas_Object *cancel_btn = elm_object_part_content_get(mailbox_ugd->searchbar_layout, "button_cancel");
+       if (mailbox_ugd->view_type == EMAIL_VIEW_SEARCH) {
+               elm_object_focus_set(mailbox_ugd->gl[mailbox_ugd->view_type], EINA_TRUE);
+               //evas_object_smart_callback_call(mailbox_ugd->searchbar_layout, "cancel,clicked", mailbox_ugd);
+               evas_object_smart_callback_call(cancel_btn, "clicked", mailbox_ugd);
+       } else if (mailbox_ugd->view_type == EMAIL_VIEW_EDIT) {
+               //elm_toolbar_item_selected_set(mailbox_ugd->edit_cancel_button, EINA_TRUE);
+               _edit_back_cb(mailbox_ugd, NULL, NULL);
+       } else {
+               Elm_Object_Item* it_sweep = NULL;
+               it_sweep = (Elm_Object_Item *)elm_genlist_decorated_item_get(mailbox_ugd->gl[mailbox_ugd->view_type]);
+
+               if (it_sweep) {
+                       elm_genlist_item_decorate_mode_set(it_sweep, "slide", EINA_FALSE);
+                       elm_genlist_item_select_mode_set(it_sweep, ELM_OBJECT_SELECT_MODE_DEFAULT);
+               }
+
+               elm_win_lower(ug_get_window());
+       }
+}
+
+
+
+
+static void _change_unread_icon_to_read_icon(Elm_Object_Item *item)
+{
+       debug_log("");
+
+       if (item == NULL) {
+               debug_log("item == NULL");
+               return;
+       }
+
+       const void* item_data = elm_object_item_data_get(item);
+       list_data *ld = (list_data *)item_data;
+       ld->is_seen = true;
+       elm_genlist_item_update(item);
+}
+
+void _open_email_body(gint uid, Elm_Object_Item *item)
+{
+       debug_log("");
+       if (item == NULL) {
+               debug_log("item == NULL");
+               return;
+       }
+
+       if (uid <= 0) {
+               debug_log("uid <= 0");
+               return;
+       }
+
+       const void* item_data = elm_object_item_data_get(item);
+       list_data *ld = (list_data *)item_data;
+
+       if (ld == NULL) {
+               debug_critical(" ld == NULL");
+               return;
+       }
+       _change_unread_icon_to_read_icon(item);
+
+       EmailMailboxUGD *mailbox_ugd = ld->mailbox_ugd;
+       if (mailbox_ugd == NULL) {
+               debug_log("mailbox_ugd == NULL");
+               return;
+       }
+
+       debug_log("account_id: %d, mailbox_id: %d, mail_id; %d", ld->account_id, ld->mailbox_id, uid);
+
+       char id[30] = { 0, };
+       snprintf(id, sizeof(id), "%d", ld->account_id);
+       char suid[30] = { 0, };
+       snprintf(suid, sizeof(suid), "%d", uid);
+       char mailboxid[30] = { 0, };
+       snprintf(mailboxid, sizeof(mailboxid), "%d", ld->mailbox_id);
+
+       int nidx = g_list_index(mailbox_ugd->list_data[mailbox_ugd->view_type], ld);
+       debug_log("nidx: %d", nidx);
+
+       char idx[30] = { 0, };
+       snprintf(idx, sizeof(idx), "%d", nidx);
+
+       char internal[30] = { 0, };
+       snprintf(internal, sizeof(internal), "%d", 1);
+
+       debug_log("account_id: %s", id);
+       debug_log("idx: %d", nidx);
+
+       service_h service;
+       if (SERVICE_ERROR_NONE != service_create(&service))
+       {
+               debug_log("creating service handle failed");
+               return;
+       }
+
+       service_add_extra_data(service, EMAIL_BUNDLE_KEY_ACCOUNT_ID, id);
+       service_add_extra_data(service, EMAIL_BUNDLE_KEY_MAIL_ID, suid);
+       service_add_extra_data(service, EMAIL_BUNDLE_KEY_MAILBOX, mailboxid);
+       service_add_extra_data(service, EMAIL_BUNDLE_KEY_INTERNAL, internal);
+
+       char bLandscape[30] = { 0, };
+       memset(bLandscape, 0x00, 30 * sizeof(char));
+
+       if (mailbox_ugd->isRotate)
+               sprintf(bLandscape, "%d", 1);
+       else
+               sprintf(bLandscape, "%d", 0);
+
+       service_add_extra_data(service, EMAIL_BUNDLE_KEY_FIRST_LANDSCAPE, bLandscape);
+       mailbox_ugd->ug_viewer = create_viewer_ug(UG_NAME_EMAIL_VIEWER, service, ld->mailbox_ugd);
+
+       service_destroy(service);
+}
+
+void _create_email_no_content_view(EmailMailboxUGD *mailbox_ugd)
+{
+       debug_log("");
+
+       if (mailbox_ugd->split_nocontent == NULL) {
+               Evas_Object *no_content = elm_layout_add(mailbox_ugd->navi_bar);
+               elm_layout_theme_set(no_content, "layout", "nocontents", "full");
+               elm_object_part_text_set(no_content, "elm.text", dgettext("sys_string", "IDS_COM_BODY_NO_CONTENTS"));
+               mailbox_ugd->split_nocontent = no_content;
+       }
+
+       Evas_Object *r_content = elm_object_part_content_get(mailbox_ugd->panes, "right");
+       if (r_content) evas_object_hide(r_content);
+       elm_object_part_content_unset(mailbox_ugd->panes, "right");
+       elm_object_part_content_set(mailbox_ugd->panes, "right", mailbox_ugd->split_nocontent);
+
+       elm_panes_content_left_size_set(mailbox_ugd->panes, 0.4);
+}
+
+static Evas_Object *_create_navigation_layout(Evas_Object *parent)
+{
+       debug_log("");
+
+       if (parent == NULL) {
+               debug_log("parent == NULL");
+               return NULL;
+       }
+
+       Evas_Object *navi_bar;
+       navi_bar = elm_naviframe_add(parent);
+       elm_object_part_content_set(parent, "elm.swallow.content", navi_bar);
+       evas_object_show(navi_bar);
+
+       return navi_bar;
+}
+
+static void _block_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       evas_object_del(obj);
+}
+
+
+
+
+static void _account_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data;
+       int account_id = 0;
+       if (email_engine_get_default_account(&account_id) == false) {
+               Evas_Object *popup = elm_popup_add(mailbox_ugd->win_main);
+
+               evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+               elm_object_part_text_set(popup, "title,text", dgettext("sys_string", "IDS_COM_POP_WARNING"));
+               elm_object_text_set(popup, _("IDS_EMAIL_POP_THERE_IS_NO_ACCOUNT_CREATE_A_NEW_ACCOUNT_FIRST"));
+               //elm_popup_mode_set(popup, ELM_POPUP_TYPE_ALERT);
+               evas_object_smart_callback_add(popup, "block,clicked", _block_clicked_cb, NULL);
+               elm_popup_timeout_set(popup, 3);
+               evas_object_show(popup);
+               return;
+       }
+
+       if (ug_pushed == false) {
+               ug_pushed = true;
+
+               _stop_emf_job(mailbox_ugd, mailbox_ugd->emf_handle, true);
+
+               service_h service;
+               if (SERVICE_ERROR_NONE != service_create(&service))
+               {
+                       debug_log("creating service handle failed");
+                       return;
+               }
+
+               mailbox_ugd->ug_account = create_account_ug(UG_NAME_EMAIL_ACCOUNT, service, mailbox_ugd);
+               service_destroy(service);
+       } else
+               return;
+}
+
+static void _folder_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data;
+       int account_id = 0;
+
+       if (email_engine_get_default_account(&account_id) == false) {
+               Evas_Object *popup = elm_popup_add(mailbox_ugd->win_main);
+
+               evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+               elm_object_part_text_set(popup, "title,text", dgettext("sys_string", "IDS_COM_POP_WARNING"));
+               elm_object_text_set(popup, _("IDS_EMAIL_POP_THERE_IS_NO_ACCOUNT_CREATE_A_NEW_ACCOUNT_FIRST"));
+               //elm_popup_mode_set(popup, ELM_POPUP_TYPE_ALERT);
+               evas_object_smart_callback_add(popup, "block,clicked", _block_clicked_cb, NULL);
+               elm_popup_timeout_set(popup, 3);
+               evas_object_show(popup);
+               return;
+       }
+
+       if (ug_pushed == false) {
+               ug_pushed = true;
+
+               _stop_emf_job(mailbox_ugd, mailbox_ugd->emf_handle, true);
+
+               service_h service;
+               if (SERVICE_ERROR_NONE != service_create(&service))
+               {
+                       debug_log("creating service handle failed");
+                       return;
+               }
+
+               char acctid[30] = { 0, };
+               snprintf(acctid, sizeof(acctid), "%d", mailbox_ugd->account_id);
+               char mailboxid[30] = { 0, };
+               snprintf(mailboxid, sizeof(mailboxid), "%d", mailbox_ugd->mailbox_id);
+               service_add_extra_data(service, EMAIL_BUNDLE_KEY_ACCOUNT_ID, acctid);
+               service_add_extra_data(service, EMAIL_BUNDLE_KEY_MAILBOX, mailboxid);
+               debug_log("account_id: %s, mailbox_id: %s", acctid, mailboxid);
+
+               mailbox_ugd->ug_account = create_folder_ug(UG_NAME_EMAIL_ACCOUNT, service, mailbox_ugd);
+               service_destroy(service);
+       }
+       else
+       {
+               /* destroy account ug and create mailbox ug */
+               if (mailbox_ugd->ug_account) {
+                       destroy_account_cb(mailbox_ugd->ug_account, mailbox_ugd);
+               }
+       }
+       return;
+}
+
+
+
+
+
+
+
+static void _process_update(EmailMailboxUGD *mailbox_ugd)
+{
+       debug_enter();
+       int account_id = 0;
+
+       if (email_engine_get_default_account(&account_id) == false) {
+               Evas_Object *popup = elm_popup_add(mailbox_ugd->win_main);
+
+               evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+               elm_object_part_text_set(popup, "title,text", dgettext("sys_string", "IDS_COM_POP_WARNING"));
+               elm_object_text_set(popup, _("IDS_EMAIL_POP_THERE_IS_NO_ACCOUNT_CREATE_A_NEW_ACCOUNT_FIRST"));
+               //elm_popup_mode_set(popup, ELM_POPUP_TYPE_ALERT);
+               evas_object_smart_callback_add(popup, "block,clicked", _block_clicked_cb, NULL);
+               elm_popup_timeout_set(popup, 3);
+               evas_object_show(popup);
+               return;
+       }
+       _stop_emf_job(mailbox_ugd, mailbox_ugd->emf_handle, true);
+
+       if (mailbox_ugd->mode == EMAIL_MAILBOX_MODE_ALL) {
+               _sync_all_folder(mailbox_ugd);
+       } else {
+               _sync_curr_folder(mailbox_ugd, mailbox_ugd->mailbox_id);
+       }
+
+       elm_object_focus_set(mailbox_ugd->gl[mailbox_ugd->view_type], EINA_TRUE);
+
+       if (mailbox_ugd->update_button == elm_object_part_content_get(mailbox_ugd->navi_title_ly, "right_btn"))
+       {
+               elm_object_part_content_unset(mailbox_ugd->navi_title_ly, "right_btn");
+               evas_object_hide(mailbox_ugd->update_button);
+               elm_object_part_content_set(mailbox_ugd->navi_title_ly, "right_btn", mailbox_ugd->sync_progress);
+               evas_object_show(mailbox_ugd->sync_progress);
+       }
+
+       debug_leave();
+}
+
+void _update_toolbar_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data;
+       _process_update(mailbox_ugd);
+}
+
+void _update_toolbar_cancel_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data;
+       _stop_emf_job(mailbox_ugd, mailbox_ugd->emf_handle, true);
+}
+
+
+/*
+static void email_delete_mail_bulk(EmailMailboxUGD *mailbox_ugd, const GList* del_list)
+{
+       debug_enter();
+       if ( !del_list ) return;
+
+       int account_id = mailbox_ugd->account_id;
+       GList *dlist = (GList*) del_list;
+       guint size = g_list_length(dlist);
+       int mail_ids[size];
+       memset(mail_ids, 0, sizeof(mail_ids));
+
+       email_mailbox_t mail_box = {0};
+       mail_box.account_id = account_id;
+
+       GList *cur = NULL;
+       int data = 0;
+       int i=0;
+       G_LIST_FOREACH(dlist, cur, data)
+               mail_ids[i++] = data;
+
+       int err = email_delete_message(&mail_box, mail_ids, (int)size, EMAIL_DELETE_LOCAL_AND_SERVER);
+
+       if (err != EMAIL_ERROR_NONE) {
+               debug_warning("email_delete_message account_id(%d) - err (%d)",
+                                                                       account_id, err);
+       }
+}
+*/
+
+
+void _update_navigationbar_title(EmailMailboxUGD *mailbox_ugd)
+{
+       debug_log("");
+       debug_log("mailbox_ugd->view_type: [%d], mailbox_ugd->mode: [%d]", mailbox_ugd->view_type, mailbox_ugd->mode);
+       debug_log("mailbox_ugd->account_id: [%d], mailbox_ugd->folder_alias: [%s]", mailbox_ugd->account_id, mailbox_ugd->folder_alias);
+
+       if (mailbox_ugd->mode == EMAIL_MAILBOX_MODE_ALL) {
+
+               elm_icon_file_set(mailbox_ugd->sp_icon, ICON_TITLE_ALL_ACC, NULL);
+
+               {
+                       elm_object_item_text_set(mailbox_ugd->navibar_item[mailbox_ugd->view_type], _("IDS_EMAIL_BODY_INBOX"));
+                       elm_object_part_text_set(mailbox_ugd->navi_title_ly, "txt_title", _("IDS_EMAIL_BODY_INBOX"));
+                       elm_object_part_text_set(mailbox_ugd->navi_title_ly, "txt_sub", _("IDS_EMAIL_HEADER_ALL_ACCOUNTS"));
+
+                       if (mailbox_ugd->isRotate == false) {
+                               _create_controlbar(mailbox_ugd);
+                               elm_object_item_part_content_set(mailbox_ugd->navibar_item[mailbox_ugd->view_type], "controlbar", mailbox_ugd->controlbar_btns);
+                       }
+               }
+       } else {
+               _create_controlbar(mailbox_ugd);
+               elm_object_item_text_set(mailbox_ugd->navibar_item[mailbox_ugd->view_type], mailbox_ugd->folder_alias);
+               elm_object_part_text_set(mailbox_ugd->navi_title_ly, "txt_title", mailbox_ugd->folder_alias);
+               elm_object_part_text_set(mailbox_ugd->navi_title_ly, "txt_sub", mailbox_ugd->user_email);
+
+               email_account_t *account;
+               email_get_account(mailbox_ugd->account_id, 0, &account);
+               elm_icon_file_set(mailbox_ugd->sp_icon, account->logo_icon_path, NULL);
+               if(account) email_free_account(&account, 1);
+
+               elm_object_item_part_content_set(mailbox_ugd->navibar_item[mailbox_ugd->view_type], "controlbar", mailbox_ugd->controlbar_btns);
+
+       }
+}
+
+static void _account_dim_clicked(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+       debug_log("");
+
+       EmailMailboxUGD *mailbox_ugd;
+       mailbox_ugd = (EmailMailboxUGD *)data;
+
+       /* destroy account ug and create mailbox ug */
+       if (mailbox_ugd->ug_account) {
+               destroy_account_cb(mailbox_ugd->ug_account, mailbox_ugd);
+       }
+}
+
+email_sort_type_t _mailbox_conv_sort_type(EmailSortType sort_type)
+{
+       email_sort_type_t email_svc_sort_type = EMAIL_SORT_END;
+
+       if (sort_type == EMAIL_SORT_DATE_RECENT)
+               email_svc_sort_type = EMAIL_SORT_DATETIME_HIGH;
+       else if (sort_type == EMAIL_SORT_DATE_OLDEST)
+               email_svc_sort_type = EMAIL_SORT_DATETIME_LOW;
+       else if (sort_type == EMAIL_SORT_SENDER_ATOZ)
+               email_svc_sort_type = EMAIL_SORT_SENDER_HIGH;
+       else if (sort_type == EMAIL_SORT_SENDER_ZTOA)
+               email_svc_sort_type = EMAIL_SORT_SENDER_LOW;
+       else if (sort_type == EMAIL_SORT_RCPT_ATOZ)
+               email_svc_sort_type = EMAIL_SORT_RCPT_HIGH;
+       else if (sort_type == EMAIL_SORT_RCPT_ZTOA)
+               email_svc_sort_type = EMAIL_SORT_RCPT_LOW;
+       else if (sort_type == EMAIL_SORT_UNREAD)
+               email_svc_sort_type = EMAIL_SORT_SEEN_FLAG_HIGH;
+       else if (sort_type == EMAIL_SORT_IMPORTANT)
+               email_svc_sort_type = EMAIL_SORT_FAVORITE_HIGH;
+       else if (sort_type == EMAIL_SORT_PRIORITY)
+               email_svc_sort_type = EMAIL_SORT_PRIORITY_HIGH;
+       else if (sort_type == EMAIL_SORT_ATTACHMENTS)
+               email_svc_sort_type = EMAIL_SORT_ATTACHMENT_HIGH;
+       else
+               debug_error("INVALID sort_type");
+
+       return email_svc_sort_type;
+}
diff --git a/mailbox/theme/email-mailbox-theme-macro.edc b/mailbox/theme/email-mailbox-theme-macro.edc
new file mode 100755 (executable)
index 0000000..aac48f4
--- /dev/null
@@ -0,0 +1,1235 @@
+/*
+ * Copyright 2012  Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *    http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#define GENLIST_HEIGHT_1_INC 1
+#define GENLIST_HEIGHT_16_INC 16
+#define GENLIST_HEIGHT_33_INC 33
+#define GENLIST_HEIGHT_49_INC 49
+#define GENLIST_HEIGHT_62_INC 62
+#define GENLIST_HEIGHT_65_INC 65
+#define GENLIST_HEIGHT_73_INC 73
+#define GENLIST_HEIGHT_77_INC 77
+#define GENLIST_HEIGHT_89_INC 89
+#define GENLIST_HEIGHT_93_INC 93
+#define GENLIST_HEIGHT_97_INC 97
+#define GENLIST_HEIGHT_113_INC 113
+#define GENLIST_HEIGHT_129_INC 129
+#define GENLIST_HEIGHT_177_INC 177
+#define GENLIST_HEIGHT_182_INC 182
+#define GENLIST_HEIGHT_190_INC 190
+#define GENLIST_HEIGHT_207_INC 207
+#define GENLIST_HEIGHT_260_INC 260
+#define GENLIST_HEIGHT_291_INC 291
+#define GENLIST_HEIGHT_454_INC 454
+#define GENLIST_HEIGHT_566_INC 566
+
+#define GENLIST_PADDING_4_INC 4
+#define GENLIST_PADDING_5_INC 5
+#define GENLIST_PADDING_6_INC 6
+#define GENLIST_PADDING_8_INC 8
+#define GENLIST_PADDING_10_INC 10
+#define GENLIST_PADDING_11_INC 11
+#define GENLIST_PADDING_12_INC 12
+#define GENLIST_PADDING_13_INC 13
+#define GENLIST_PADDING_14_INC 14
+#define GENLIST_PADDING_16_INC 16
+#define GENLIST_PADDING_18_INC 18
+#define GENLIST_PADDING_21_INC 21
+#define GENLIST_PADDING_22_INC 22
+#define GENLIST_PADDING_24_INC 24
+#define GENLIST_PADDING_27_INC 27
+#define GENLIST_PADDING_32_INC 32
+#define GENLIST_PADDING_34_INC 34
+#define GENLIST_PADDING_46_INC 46
+#define GENLIST_PADDING_48_INC 48
+#define GENLIST_PADDING_64_INC 64
+#define GENLIST_PADDING_74_INC 74
+#define GENLIST_PADDING_88_INC 88
+#define GENLIST_PADDING_124_INC 124
+
+#define GENLIST_FONT_27_INC 27
+#define GENLIST_FONT_28_INC 28
+#define GENLIST_FONT_30_INC 30
+#define GENLIST_FONT_32_INC 32
+#define GENLIST_FONT_STYLE_32_INC "32"
+#define GENLIST_FONT_36_INC 36
+#define GENLIST_FONT_STYLE_36_INC "36"
+#define GENLIST_FONT_40_INC 40
+#define GENLIST_FONT_STYLE_40_INC "40"
+#define GENLIST_FONT_42_INC 42
+#define GENLIST_FONT_STYLE_42_INC "42"
+#define GENLIST_FONT_44_INC 44
+#define GENLIST_FONT_STYLE_44_INC "44"
+#define GENLIST_FONT_48_INC 48
+#define GENLIST_FONT_STYLE_48_INC "48"
+
+#define GENLIST_SIZE_6_INC 6
+#define GENLIST_SIZE_8_INC 8
+#define GENLIST_SIZE_10_INC 10
+#define GENLIST_SIZE_13_INC 13
+#define GENLIST_SIZE_16_INC 16
+#define GENLIST_SIZE_18_INC 18
+#define GENLIST_SIZE_21_INC 21
+#define GENLIST_SIZE_32_INC 32
+#define GENLIST_SIZE_35_INC 35
+#define GENLIST_SIZE_38_INC 38
+#define GENLIST_SIZE_40_INC 40
+#define GENLIST_SIZE_42_INC 42
+#define GENLIST_SIZE_44_INC 44
+#define GENLIST_SIZE_45_INC 45
+#define GENLIST_SIZE_46_INC 46
+#define GENLIST_SIZE_48_INC 48
+#define GENLIST_SIZE_54_INC 54
+#define GENLIST_SIZE_56_INC 56
+#define GENLIST_SIZE_57_INC 57
+#define GENLIST_SIZE_61_INC 61
+#define GENLIST_SIZE_SLIDE_60_INC 60
+#define GENLIST_SIZE_64_INC 64
+#define GENLIST_SIZE_74_INC 74
+#define GENLIST_SIZE_SLIDE_74_INC 74
+#define GENLIST_SIZE_80_INC 80
+#define GENLIST_SIZE_90_INC 90
+#define GENLIST_SIZE_96_INC 96
+#define GENLIST_SIZE_112_INC 112
+#define GENLIST_SIZE_116_INC 116
+#define GENLIST_SIZE_128_INC 128
+#define GENLIST_SIZE_133_INC 133
+#define GENLIST_SIZE_141_INC 141
+#define GENLIST_SIZE_144_INC 144
+#define GENLIST_SIZE_154_INC 154
+#define GENLIST_SIZE_160_INC 160
+#define GENLIST_SIZE_163_INC 163
+#define GENLIST_SIZE_168_INC 168
+#define GENLIST_SIZE_174_INC 174
+#define GENLIST_SIZE_SLIDE_165_INC 165
+#define GENLIST_SIZE_176_INC 176
+#define GENLIST_SIZE_177_INC 177
+#define GENLIST_SIZE_192_INC 192
+#define GENLIST_SIZE_195_INC 195
+#define GENLIST_SIZE_197_INC 197
+#define GENLIST_SIZE_206_INC 206
+#define GENLIST_SIZE_234_INC 234
+#define GENLIST_SIZE_235_INC 235
+#define GENLIST_SIZE_SLIDE_220_INC 220
+#define GENLIST_SIZE_304_INC 304
+#define GENLIST_SIZE_390_INC 390
+#define GENLIST_SIZE_448_INC 448
+#define GENLIST_SIZE_560_INC 560
+#define GENLIST_SIZE_576_INC 576
+#define GENLIST_SIZE_672_INC 672
+
+#define GENLIST_TREESIZE_16_INC 16
+#define GENLIST_TREESIZE_20_INC 20
+#define GENLIST_TREESIZE_32_INC 32
+
+#define GENLIST_PART_FONT_LIST_MAIN_TEXT_READ_COLOR_INC 158 158 158 255
+#define GENLIST_PART_FONT_LIST_MAIN_TEXT_UNREAD_COLOR_INC 249 249 249 255
+#define GENLIST_PART_FONT_LIST_MAIN_TEXT_FOCUS_COLOR_INC 249 249 249 255
+#define GENLIST_PART_FONT_LIST_SUB_TEXT_COLOR_INC 100 100 100 255
+#define GENLIST_PART_FONT_LIST_SUB_TEXT_SETTINGS_COLOR_INC 0 140 210 255
+#define GENLIST_PART_FONT_LIST_SUB_TEXT_FOCUS_COLOR_INC 249 249 249 255
+#define GENLIST_PART_FONT_FLEXIBLE_TEXT_MAIN_COLOR_INC 249 249 249 255
+#define GENLIST_PART_FONT_FLEXIBLE_TEXT_SUB_COLOR_INC 149 149 149 255
+#define GENLIST_PART_FONT_INDEX_LIST_COLOR_INC 164 164 164 255
+#define GENLIST_PART_FONT_EDITFIELD_TEXT_COLOR_INC 70 70 70 255
+#define GENLIST_PART_FONT_EDITFIELD_TEXT_CURSOR_COLOR_INC 0 140 210 255
+#define GENLIST_PART_FONT_MULTILINE_TEXT_COLOR_INC 149 149 149 255
+#define GENLIST_PART_FONT_3LINE_MAIN_TEXT_READ_COLOR_INC 249 249 249 255
+#define GENLIST_PART_FONT_3LINE_MAIN_TEXT_UNREAD_COLOR_INC 249 249 249 255
+#define GENLIST_PART_FONT_3LINE_MAIN_TEXT_FOCUS_COLOR_INC 249 249 249 255
+#define GENLIST_PART_FONT_3LINE_MAIN_TEXT_2_COLOR_INC 104 137 152 255
+#define GENLIST_PART_FONT_3LINE_MAIN_TEXT_2_FOCUS_COLOR_INC 249 249 249 255
+#define GENLIST_PART_FONT_CONVERTOR_STYLE_COLOR_INC 249 249 249 255
+#define GENLIST_PART_FONT_CONVERTOR_STYLE_FOCUS_COLOR_INC 249 249 249 255
+#define GENLIST_PART_FONT_UNREAD_EMAIL_COLOR_INC 249 249 249 255
+#define GENLIST_PART_FONT_CONTENTS_TEXT_COLOR_INC 119 119 119 255
+#define GENLIST_PART_FONT_NAME_TEXT_COLOR_INC 129 129 129 255
+#define GENLIST_PART_FONT_NAME_TEXT_DIM_COLOR_INC 0 140 210 255
+#define GENLIST_PART_FONT_BUBBLE_READ_MESSAGE_COLOR_INC 0 0 0 255
+#define GENLIST_PART_FONT_BUBBLE_MESSAGE_TIME_COLOR_INC 96 96 96 255
+#define GENLIST_PART_FONT_BUBBLE_SENT_MESSAGE_COLOR_INC 0 0 0 255
+#define GENLIST_PART_FONT_BUBBLE_SOS_MESSAGE_COLOR_INC 211 0 0 255
+#define GENLIST_PART_FONT_BUBBLE_MESSAGE_DATE_COLOR_INC 164 164 164 255
+#define GENLIST_PART_FONT_BUBBLE_LINK_MESSAGE_COLOR_INC 34 129 157 255
+#define GENLIST_PART_FONT_BUBBLE_MESSAGE_FAILED_COLOR_INC 211 0 0 255
+#define GENLIST_PART_FONT_BUBBLE_READ_MESSAGE_NAME_COLOR_INC 57 166 215 255
+#define GENLIST_PART_FONT_BUBBLE_MESSAGE_HELP_COLOR_INC 146 146 146 255
+#define GENLIST_PART_FONT_SWEEP_STYLE_COLOR_INC 118 118 118 255
+
+#define GENLIST_PART_FONT_LIST_MAIN_TEXT_UNREAD_STYLE_COLOR_INC "#F9F9F9FF"
+#define GENLIST_PART_FONT_LIST_SUB_TEXT_STYLE_COLOR_INC "#646464FF"
+#define GENLIST_PART_FONT_FLEXIBLE_TEXT_MAIN_STYLE_COLOR_INC "#F9F9F9FF"
+#define GENLIST_PART_FONT_FLEXIBLE_TEXT_SUB_STYLE_COLOR_INC "#959595FF"
+#define GENLIST_PART_FONT_MULTILINE_TEXT_STYLE_COLOR_INC "#959595FF"
+#define GENLIST_PART_FONT_3LINE_MAIN_TEXT_READ_STYLE_COLOR_INC "#F9F9F9FF"
+#define GENLIST_PART_FONT_3LINE_MAIN_TEXT_UNREAD_STYLE_COLOR_INC "#F9F9F9FF"
+#define GENLIST_PART_FONT_3LINE_MAIN_TEXT_FOCUS_STYLE_COLOR_INC "#F9F9F9FF"
+#define GENLIST_PART_FONT_3LINE_MAIN_TEXT_2_STYLE_COLOR_INC "#688998FF"
+#define GENLIST_PART_FONT_3LINE_MAIN_TEXT_2_FOCUS_STYLE_COLOR_INC "#F9F9F9FF"
+#define GENLIST_PART_FONT_HELP_TEXT_STYLE_COLOR_INC "#929292FF"
+
+#define GENLIST_PART_DISCLIP_COLOR_INC 255 255 255 110 // alpha was 64
+#define GENLIST_PART_BG_COLOR_INC 239 239 239 255
+#define GENLIST_PART_LIST_BG_COLOR_INC 239 239 239 255
+#define GENLIST_PART_LIST_LINE_COLOR_INC 187 187 187 255
+#define GENLIST_PART_LIST_PRESS_COLOR_INC 0 140 210 255
+#define GENLIST_PART_TEXT_PRESS_COLOR_INC 68 120 169 255
+#define GENLIST_PART_EXPANDABLE_2ND_DEPTH_BG_COLOR_INC 31 31 31 255
+#define GENLIST_PART_EXPANDABLE_3ND_DEPTH_BG_COLOR_INC 46 46 46 255
+#define GENLIST_PART_EDIT_SELECT_ALL_BG_COLOR_INC 36 36 36 255
+#define GENLIST_PART_EDIT_REORDER_BG_COLOR_INC 36 36 36 255
+#define GENLIST_PART_EDIT_1PIXEL_LINE_COLOR_INC 68 68 68 255
+#define GENLIST_PART_BUBBLE_DATE_BG_COLOR_INC 66 66 66 255
+#define GENLIST_PART_BUBBLE_1PIXEL_LINE_COLOR_INC 153 153 153 255
+#define GENLIST_PART_INDEX_LIST_BASE_EVENT_INC \
+         part { name: "base_event";\
+            type: RECT;\
+            repeat_events: 0;\
+            description { state: "default" 0.0;\
+               color: 0 0 0 0;\
+            }\
+         }
+#define GENLIST_PART_INDEX_LIST_BASE_IMAGE_INC \
+         part { name: "base_image";\
+            repeat_events: 1;\
+            description { state: "default" 0.0;\
+               rel1.to: "rect";\
+               rel2.to: "rect";\
+               image {\
+                  normal: "00_index_list_bg.png";\
+               }\
+            }\
+         }
+
+#define GENLIST_PART_TEXT_PRESS_STYLE_COLOR_INC "#F9F9F9FF"
+#define GENLIST_PART_MATCH_TAG_COLOR_INC "+ color=#3F8DAD"
+
+#define GENLIST_DIALOGUE_FONT_SUB_TITLE_COLOR_INC 102 102 102 255
+#define GENLIST_DIALOGUE_FONT_EDIT_MODE_TEXT_01_COLOR_INC 153 153 153 255
+#define GENLIST_DIALOGUE_FONT_EDIT_MODE_TEXT_01_FOCUS_COLOR_INC 249 249 249 255
+#define GENLIST_DIALOGUE_FONT_EDIT_MODE_TEXT_02_COLOR_INC 63 141 173 255
+#define GENLIST_DIALOGUE_FONT_EDIT_MODE_TEXT_02_DIM_COLOR_INC 63 141 173 255
+#define GENLIST_DIALOGUE_FONT_EDIT_MODE_TEXT_02_FOCUS_COLOR_INC 249 249 249 255
+#define GENLIST_DIALOGUE_FONT_DETAIL_TEXT_MAIN_COLOR_INC 249 249 249 255
+#define GENLIST_DIALOGUE_FONT_DETAIL_TEXT_SUB_COLOR_INC 146 146 146 255
+#define GENLIST_DIALOGUE_FONT_APPS_NAME_COLOR_INC 249 249 249 255
+#define GENLIST_DIALOGUE_FONT_APPS_INC_COLOR_INC 146 146 146 255
+#define GENLIST_DIALOGUE_FONT_APPS_RATING_COLOR_INC 146 146 146 255
+#define GENLIST_DIALOGUE_FONT_APPS_PRICE_ORIGINAL_COLOR_INC 0 140 210 255
+#define GENLIST_DIALOGUE_FONT_APPS_PRICE_SALE_COLOR_INC 221 134 21 255
+#define GENLIST_DIALOGUE_FONT_APPS_PRICE_FREE_COLOR_INC 0 140 210 255
+#define GENLIST_DIALOGUE_FONT_PASSWORD_TITLE_COLOR_INC 153 153 153 255
+#define GENLIST_DIALOGUE_FONT_PASSWORD_INPUT_TEXT_COLOR_INC 249 249 249 255
+#define GENLIST_DIALOGUE_FONT_DETAIL_WORD_COLOR_INC 249 249 249 255
+#define GENLIST_DIALOGUE_FONT_DETAIL_PRONUNCIATION_COLOR_INC 152 89 0 255
+#define GENLIST_DIALOGUE_FONT_DETAIL_NATION_COLOR_INC 146 146 146 255
+#define GENLIST_DIALOGUE_FONT_DETAIL_INFO_01_COLOR_INC 249 249 249 255
+#define GENLIST_DIALOGUE_FONT_DETAIL_INFO_02_COLOR_INC 146 146 146 255
+
+#define GENLIST_DIALOGUE_GROUP_BG_COLOR_INC 36 36 36 255
+#define GENLIST_DIALOGUE_GROUP_LIST_BG_COLOR_INC 36 36 36 255
+#define GENLIST_DIALOGUE_GROUP_LEFT_BG_COLOR_INC 68 68 68 255
+#define GENLIST_DIALOGUE_1PIXEL_LINE_COLOR_INC 68 68 68 255
+#define GENLIST_DIALOGUE_ICON_1PIXEL_LINE_COLOR_INC 68 68 68 255
+#define GENLIST_DIALOGUE_PHOTO_ID_1PIXEL_LINE_COLOR_INC 68 68 68 255
+
+#define GENLIST_PART_TEXTBLOCK_READ_STYLE_COLOR_INC "#9E9E9EFF"
+#define GENLIST_PART_TEXTBLOCK_UNREAD_STYLE_COLOR_INC "#000000FF"
+#define GENLIST_PART_TEXTBLOCK_URGENCY_READ_STYLE_COLOR_INC "#AB5252"
+#define GENLIST_PART_TEXTBLOCK_URGENCY_UNREAD_STYLE_COLOR_INC "#CF2525"
+#define GENLIST_PART_TEXTBLOCK_STYLE_COLOR_INC "#818181FF"
+#define GENLIST_PART_TEXTBLOCK_STYLE_SELECTED_COLOR_INC "#4478A9FF"
+
+#define GENLIST_PART_BASE( param_item_height ) \
+         part { name: "base"; \
+            type: RECT; \
+            repeat_events: 1; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               min: 0 param_item_height; \
+               color: GENLIST_PART_BG_COLOR_INC; \
+            } \
+         }
+
+#define GENLIST_PART_BG \
+         part { name: "bg"; \
+            type: RECT; \
+            clip_to: "disclip"; \
+            mouse_events: 0; \
+            description { state: "default" 0.0; \
+               color: GENLIST_PART_BG_COLOR_INC; \
+            } \
+            description { state: "hide" 0.0; \
+               inherit: "default" 0.0; \
+               rel1 { relative: 0.025 0.0; } \
+               rel2 { relative: 1.025 1.0; } \
+            } \
+            description { state: "hide" 0.1;  \
+               inherit: "default" 0.0; \
+               rel1 { relative: 0.13 0.0; } \
+               rel2 { relative: 1.13 1.0; } \
+            } \
+            description { state: "hide" 0.2; \
+               inherit: "default" 0.0; \
+               rel1 { relative: 0.5 0.0; } \
+               rel2 { relative: 1.5 1.0; } \
+            } \
+            description { state: "hide" 0.3; \
+               inherit: "default" 0.0; \
+               rel1 { relative: 1.0 0.0; } \
+               rel2 { relative: 2.0 1.0; } \
+            } \
+         }
+
+#define GENLIST_PART_BG_IMAGE \
+         part { name: "bg_image"; \
+            type: RECT; \
+            clip_to: "disclip"; \
+            mouse_events: 0; \
+            description { state: "default" 0.0; \
+               color: GENLIST_PART_LIST_BG_COLOR_INC; \
+            } \
+            description { state: "selected" 0.0; \
+               inherit: "default" 0.0; \
+               color: GENLIST_PART_LIST_PRESS_COLOR_INC; \
+            } \
+         }
+
+#define GENLIST_PART_BOTTOM_LINE \
+         part { name: "bottom_line"; \
+            type: RECT; \
+            mouse_events: 0; \
+            description { state: "default" 0.0; \
+               min: 0 1; \
+               fixed: 0 1; \
+               visible: 1; \
+               color: GENLIST_PART_LIST_LINE_COLOR_INC; \
+               rel1 { \
+                  relative: 0.0 1.0; \
+                  offset: 0 -1; \
+               } \
+            } \
+         }
+
+#define GENLIST_PART_BOTTOM_EFFECT_LINE \
+         part { name: "bottom_line"; \
+            type: RECT; \
+            mouse_events: 0; \
+            description { state: "default" 0.0; \
+               min: 0 1; \
+               fixed: 0 1; \
+               visible: 1; \
+               color: GENLIST_PART_LIST_LINE_COLOR_INC; \
+               rel1 { \
+                  relative: 0.0 1.0; \
+                  offset: 0 -1; \
+               } \
+            } \
+            GENLIST_PART_MAP_START(-90.0, 0.0, 0.0) \
+            GENLIST_PART_MAP_FINISH(0.0, 0.0, 0.0) \
+         }
+
+#define GENLIST_PART_PADDING_TOP( param_padding_size ) \
+       part { name: "elm.padding.top"; \
+            type: RECT; \
+            scale: 1; \
+            description { \
+               state: "default" 0.0; \
+               min: 0 param_padding_size; \
+               fixed: 0 1; \
+               visible: 0; \
+               rel2.relative: 1.0 0.0; \
+               align: 0.0 0.0; \
+            } \
+         }
+
+#define GENLIST_PART_PADDING_TEXT_TOP( param_padding_size ) \
+       part { name: "elm.padding.text.top"; \
+            type: RECT; \
+            scale: 1; \
+            description { \
+               state: "default" 0.0; \
+               min: 0 param_padding_size; \
+               fixed: 0 1; \
+               visible: 0; \
+               rel2.relative: 1.0 0.0; \
+               align: 0.0 0.0; \
+            } \
+         }
+
+#define GENLIST_PART_PADDING_BOTTOM( param_padding_size ) \
+       part { name: "elm.padding.bottom"; \
+            type: RECT; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               min: 0 param_padding_size; \
+               fixed: 0 1; \
+               visible: 0; \
+               rel1.relative: 0.0 1.0; \
+               align: 0.0 1.0; \
+            } \
+         }
+
+#define GENLIST_PART_PADDING_LEFT( param_padding_size ) \
+         part { name: "elm.padding.left"; \
+            type: RECT; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               min: param_padding_size 0; \
+               fixed: 1 0; \
+               visible: 0; \
+               rel2.relative: 0.0 1.0; \
+               align: 0.0 0.0; \
+            } \
+         }
+
+#define GENLIST_PART_PADDING_RIGHT( param_padding_size ) \
+       part { name: "elm.padding.right"; \
+            type: RECT; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               min: param_padding_size 0; \
+               fixed: 1 0; \
+               visible: 0; \
+               rel1.relative: 1.0  0.0; \
+               align: 1.0 0.0; \
+            } \
+         }
+
+#define GENLIST_PART_DIALOGUE_BASE( param_item_height ) \
+         part { name: "base"; \
+            type: RECT; \
+            clip_to: "disclip"; \
+            repeat_events: 1; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               min: 0 param_item_height; \
+               color: LAYOUT_GROUP_LIST_BG_COLOR_INC; \
+            } \
+         }
+
+#define GENLIST_PART_DIALOGUE_ITEM \
+         part { name: "elm.rect.dialogue"; \
+            type: RECT; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               min: GENLIST_PADDING_12_INC 0; \
+               fixed: 1 0; \
+               color: GENLIST_DIALOGUE_GROUP_LEFT_BG_COLOR_INC; \
+               rel2.relative: 0.0 1.0; \
+               align: 0.0 0.0; \
+            } \
+         }
+
+#define GENLIST_PART_DIALOGUE_EXPANDABLE_ITEM \
+         part { name: "elm.rect.dialogue"; \
+            type: RECT; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               min: GENLIST_PADDING_12_INC 0; \
+               fixed: 1 0; \
+               color: GENLIST_DIALOGUE_GROUP_LEFT_BG_COLOR_INC; \
+               rel2.relative: 0.0 1.0; \
+               align: 0.0 0.0; \
+            } \
+            GENLIST_PART_MAP_START(-90.0, 0.0, 0.0) \
+            GENLIST_PART_MAP_FINISH(0.0, 0.0, 0.0) \
+         }
+
+#define GENLIST_PART_SWALLOW_END( param_padding_size ) \
+         part { name: "elm.padding.left.swallow.end";\
+            clip_to: "disclip"; \
+            type: RECT;\
+            scale: 1;\
+            description { state: "default" 0.0;\
+               min: param_padding_size 0;\
+               fixed: 1 0;\
+               visible: 0; \
+               rel1.to_x: "elm.swallow.end";\
+               rel2 {\
+                  relative: 0.0  1.0;\
+                  to_x: "elm.swallow.end";\
+               }\
+               align: 1.0 0.5;\
+            }\
+         }\
+         part { name: "elm.swallow.end";\
+            clip_to: "disclip"; \
+            type: SWALLOW;\
+            scale: 1;\
+            description { state: "default" 0.0;\
+               fixed: 1 0;\
+               align: 1.0 0.5;\
+               rel1.to_x: "elm.padding.right";\
+               rel2 {\
+                  relative: 0.0  1.0;\
+                  to_x: "elm.padding.right";\
+               }\
+            }\
+         }
+
+#define GENLIST_PART_DISCLIP \
+        part { name: "disclip"; \
+            type: RECT; \
+            description { state: "default" 0.0; \
+            } \
+            description { state: "disabled" 0.0; \
+               inherit: "default" 0.0; \
+               color: GENLIST_PART_DISCLIP_COLOR_INC; \
+            } \
+         }
+
+#define GENLIST_EXPANDABLE_PART_PERSPECTIVE_POINT() \
+               part { name: "point"; \
+                       type: RECT; \
+                       scale: 1; \
+                        description { \
+                                state: "default" 0.0; \
+                                color: 0 0 0 0; \
+                                rel1 { relative: 0.0 0.0; } \
+                                rel2 { relative: 1.0 0.0; } \
+                        } \
+                }
+
+#define GENLIST_PART_MAP_START( param_x, param_y, param_z ) \
+               description { state: "map_transition" 0.0; \
+                   inherit: "default" 0.0; \
+                   color: 50 50 50 100; \
+                   map { \
+                      perspective: "point"; \
+                      on: 1; \
+                      smooth: 1; \
+                      perspective_on: 1; \
+                      backface_cull: 1; \
+                      rotation { \
+                         center: "point"; \
+                         x: param_x; \
+                         y: param_y; \
+                         z: param_z; \
+                      } \
+                  } \
+                } \
+                description { \
+                        state: "hide" 0.0; \
+                        inherit: "default" 0.0; \
+                        visible: 0; \
+                }
+
+#define GENLIST_PART_MAP_FINISH( param_x, param_y, param_z ) \
+                description { \
+                        state: "map_rotate" 0.0; \
+                        inherit: "default" 0.0; \
+                        map { \
+                                perspective: "point"; \
+                                on: 1; \
+                                smooth: 1; \
+                                perspective_on: 1; \
+                                backface_cull: 1; \
+                                rotation { \
+                                        center: "point"; \
+                                        x: param_x; \
+                                        y: param_y; \
+                                        z: param_z; \
+                                } \
+                       } \
+               } \
+
+#define GENLIST_PART_MAP_BASE( param_item_height ) \
+         part { name: "base"; \
+            type: RECT; \
+            repeat_events: 1; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               min: 0 param_item_height; \
+               color: GENLIST_PART_BG_COLOR_INC; \
+            } \
+            GENLIST_PART_MAP_START(-90.0, 0.0, 0.0) \
+            GENLIST_PART_MAP_FINISH(0.0, 0.0, 0.0) \
+         }
+
+#define GENLIST_EXPANDABLE_PART_BASE( GE_HEIGHT , GE_COLOR ) \
+         part { name: "base"; \
+            type: RECT; \
+            repeat_events: 1; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               min: 0 GE_HEIGHT; \
+               color: GE_COLOR; \
+            } \
+            description { state: "selected" 0.0; \
+               inherit: "default" 0.0; \
+               color: GENLIST_PART_LIST_PRESS_COLOR_INC; \
+            } \
+            GENLIST_PART_MAP_START(-90.0, 0.0, 0.0) \
+            GENLIST_PART_MAP_FINISH(0.0, 0.0, 0.0) \
+         }
+
+/* XXX: refactor expandable edc first.
+        and use GENLIST_EXPANDABLE_PART_BASE_NEW as GENLIST_EXPANDABLE_PART_BASE.
+*/
+#define GENLIST_EXPANDABLE_PART_BASE_NEW( GE_HEIGHT , GE_COLOR ) \
+         part { name: "base"; \
+            type: RECT; \
+            repeat_events: 1; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               min: 0 GE_HEIGHT; \
+               color: GE_COLOR; \
+            } \
+            description { state: "selected" 0.0; \
+               inherit: "default" 0.0; \
+               color: GENLIST_PART_LIST_PRESS_COLOR_INC; \
+            } \
+         }
+
+#define GENLIST_PROGRAM_MAP_ROTATE_EXPAND_START() \
+                name: "rotaion_transition"; \
+                signal: "flip_item"; \
+                action: STATE_SET "map_transition" 0.0; \
+                after: "rotation";
+
+#define GENLIST_PROGRAM_MAP_ROTATE_EXPAND_FINISH( second ) \
+                name: "rotation"; \
+                action: STATE_SET "map_rotate" 0.0; \
+                transition: LINEAR second; \
+                after: "rotation_end";
+
+#define GENLIST_PROGRAM_MAP_EXPAND_END() \
+                name: "rotation_end"; \
+                action: STATE_SET "default" 0.0;
+
+#define GENLIST_PROGRAM_MAP_ROTATE_CONTRACT_START() \
+                name: "rotation_transition2"; \
+                signal: "elm,state,contract_flip"; \
+                action: STATE_SET "map_rotate" 0.0; \
+                after: "rotation2";
+
+#define GENLIST_PROGRAM_MAP_ROTATE_CONTRACT_FINISH( second ) \
+                name: "rotation2"; \
+                action: STATE_SET "map_transition" 0.0; \
+                transition: LINEAR second; \
+                after: "rotation3";
+
+#define GENLIST_PROGRAM_MAP_CONTRACT_END() \
+                name: "rotation3"; \
+                action: STATE_SET "hide" 0.0;
+
+#define GENLIST_PART_EXPANDABLE2_NOSHADOW_BASE( param_item_height ) \
+         part { name: "base"; \
+            type: RECT; \
+            repeat_events: 1; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               min: 0 param_item_height; \
+               color: GENLIST_PART_EXPANDABLE_2ND_DEPTH_BG_COLOR_INC; \
+            } \
+            GENLIST_PART_MAP_START(-90.0, 0.0, 0.0) \
+            GENLIST_PART_MAP_FINISH(0.0, 0.0, 0.0) \
+         }
+
+#define GENLIST_PART_EXPANDABLE_SWALLOW_PADDING \
+         part { name: "elm.swallow.pad"; \
+            type: SWALLOW; \
+            description { state: "default" 0.0; \
+               fixed: 1 0; \
+               align: 0.0 0.5; \
+               rel1 { \
+                  relative: 1.0 0.0;\
+                  to_x: "elm.padding.left"; \
+               } \
+               rel2.to_x: "elm.padding.left"; \
+            } \
+            GENLIST_PART_MAP_START(-90.0, 0.0, 0.0) \
+            GENLIST_PART_MAP_FINISH(0.0, 0.0, 0.0) \
+         } \
+
+#define GENLIST_PART_PADDING_LEFT_SLIDE( param_padding_size ) \
+         part { name: "elm.padding.left"; \
+            type: RECT; \
+            scale: 1; \
+            description { \
+               state: "default" 0.0; \
+               min: param_padding_size 0; \
+               fixed: 1 0; \
+               visible: 0; \
+               rel1 { relative: 0.0 0.0; to: "bg"; } \
+               rel2 { relative: 0.0 1.0; to: "bg"; } \
+               align: 0.0 0.0; \
+            } \
+         }
+
+/* only for demo */
+#define GENLIST_PART_BUTTON( param_name, param_text_name, param_text, param_left, param_right, param_top, param_bottom ) \
+       part { name: param_name; \
+         mouse_events: 1; \
+         description { state: "default" 0.0; \
+            visible: 1; \
+            rel1 { relative: param_left param_top; offset: 0 0; } \
+            rel2 { relative: param_right param_bottom; offset: -1 -1; } \
+            image { \
+               normal: "btn_normal.png"; \
+               border: 10 10 10 10; \
+               border_scale: 1; \
+            } \
+            image.middle: SOLID; \
+            fill.smooth: 0; \
+         } \
+         description { state: "selected" 0.0;  \
+            inherit: "default" 0.0;  \
+            image { \
+               normal: "btn_selected.png"; \
+            } \
+         } \
+      } \
+      part { name: param_text_name;  \
+         type: TEXT;  \
+         mouse_events: 0; \
+         scale: 1; \
+         description {  \
+            align: 0.0 0.0; \
+            state: "default" 0.0;  \
+            color: 0 0 0 255;  \
+            rel1 { relative: 0.0 0.0; to: param_name; } \
+            rel2 { relative: 1.0 1.0; to: param_name; } \
+            text {  \
+               text: param_text; \
+               font: "SLP:style=Roman"; \
+               size: 24;  \
+               min: 1 1;  \
+               align: 0.5 0.5;  \
+               text_class: "list_item"; \
+            }  \
+         }  \
+      }
+
+/* only for demo */
+#define GENLIST_PROGRAM_BUTTON( param_name_focused, param_name_normal, param_part_name ) \
+      program { name: param_name_focused; \
+         source: param_part_name; \
+         signal: "mouse,down,1"; \
+         action:  STATE_SET "selected" 0.0;  \
+         target: param_part_name; \
+      } \
+      program { name: param_name_normal; \
+         source: param_part_name; \
+         signal: "mouse,up,1"; \
+         action:  STATE_SET "default" 0.0;  \
+         target: param_part_name; \
+      }
+
+#define GENLIST_PROGRAM_SLIDE_WITH_AFTER( param_name, param_state, param_next ) \
+      program { name: param_name; \
+         action:  STATE_SET "hide" param_state; \
+         target: "bg"; \
+         transition: LINEAR 0.3; \
+         after: param_next; \
+      }
+
+#define GENLIST_PROGRAM_SLIDE( param_name, param_state_name, param_state_value ) \
+      program { name: param_name; \
+         action:  STATE_SET param_state_name param_state_value; \
+         target: "bg"; \
+         transition: LINEAR 0.3; \
+      }
+
+#define DESC_FLIP_IMAGE( param_state_value, param_image_file_name ) \
+      description { state: "flipping" param_state_value; \
+         inherit: "default" 0.0; \
+         image { normal: param_image_file_name; } \
+      }
+
+#define DESC_TEXT_HIDE( param_state_value ) \
+   description { state: "hide" param_state_value; \
+      inherit: "default" 0.0; \
+      color: 0 0 0 (255*(1-param_state_value/0.20)); \
+   }
+
+#define GENLIST_EDIT_PART_BASE( param_item_height ) \
+         part { name: "base"; \
+            type: RECT; \
+            repeat_events: 0; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               min: 0 param_item_height; \
+               color: 0 0 0 0; \
+            } \
+         }
+
+#define GENLIST_PART_FLIP \
+         part { name: "elm.flip.content"; \
+            clip_to: "disclip"; \
+            type: SWALLOW; \
+            mouse_events: 1; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               visible: 0; \
+               fixed: 1 1; \
+               rel1 { \
+                  relative: 1.0  0.5; \
+                  to_x: "elm.padding.left"; \
+               } \
+               rel2 { \
+                  relative: 0.0  0.5; \
+                  to_x: "elm.padding.right"; \
+               } \
+            } \
+            description { state: "flip_enabled" 0.0; \
+               inherit: "default" 0.0; \
+               visible: 1; \
+            } \
+         }
+
+#define GENLIST_DESCRIPTION_INVISIBLE_SELECTED \
+            description { state: "selected" 1.0; \
+               inherit: "default" 0.0; \
+               visible: 0; \
+            }
+
+#define GENLIST_DESCRIPTION_FLIP_ENABLED \
+            description { state: "flip_enabled" 0.0; \
+               inherit: "default" 0.0; \
+               visible: 0; \
+            }
+
+#define GENLIST_PROGRAM_SCRIPT_FLIP_SELECT_1TEXT \
+            script { \
+               new st[31]; \
+               new Float:vl; \
+               get_state(PART:"elm.text", st, 30, vl); \
+               set_state(PART:"bg_image", "selected", 0.0); \
+               if (!strcmp(st, "flip_enabled")) \
+                  set_state(PART:"elm.text", "selected", 1.0); \
+               else \
+                  set_state(PART:"elm.text", "selected", 0.0); \
+            }
+
+#define GENLIST_PROGRAM_SCRIPT_FLIP_SELECT_2TEXT \
+            script { \
+               new st[31]; \
+               new Float:vl; \
+               get_state(PART:"elm.text.1", st, 30, vl); \
+               set_state(PART:"bg_image", "selected", 0.0); \
+               if (!strcmp(st, "flip_enabled")) { \
+                  set_state(PART:"elm.text.1", "selected", 1.0); \
+                  set_state(PART:"elm.text.2", "selected", 1.0); \
+               } \
+               else { \
+                  set_state(PART:"elm.text.1", "selected", 0.0); \
+                  set_state(PART:"elm.text.2", "selected", 0.0); \
+               } \
+            }
+
+#define GENLIST_PROGRAM_SCRIPT_FLIP_SELECT_3TEXT \
+            script { \
+               new st[31]; \
+               new Float:vl; \
+               get_state(PART:"elm.text.1", st, 30, vl); \
+               set_state(PART:"bg_image", "selected", 0.0); \
+               if (!strcmp(st, "flip_enabled")) { \
+                  set_state(PART:"elm.text.1", "selected", 1.0); \
+                  set_state(PART:"elm.text.2", "selected", 1.0); \
+                  set_state(PART:"elm.text.3", "selected", 1.0); \
+               } \
+               else { \
+                  set_state(PART:"elm.text.1", "selected", 0.0); \
+                  set_state(PART:"elm.text.2", "selected", 0.0); \
+                  set_state(PART:"elm.text.3", "selected", 0.0); \
+               } \
+            }
+
+#define GENLIST_PROGRAM_FLIP_1TEXT \
+         program { name: "flip_enabled"; \
+            signal: "elm,state,flip,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "flip_enabled" 0.0; \
+            target: "elm.text"; \
+            target: "elm.flip.content"; \
+         } \
+         program { name: "flip_disabled"; \
+            signal: "elm,state,flip,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "elm.text"; \
+            target: "elm.flip.content"; \
+         }
+
+#define GENLIST_PROGRAM_FLIP_1TEXT_1ICON \
+         program { name: "flip_enabled"; \
+            signal: "elm,state,flip,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "flip_enabled" 0.0; \
+            target: "elm.text"; \
+            target: "elm.icon"; \
+            target: "elm.flip.content"; \
+         } \
+         program { name: "flip_disabled"; \
+            signal: "elm,state,flip,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "elm.text"; \
+            target: "elm.icon"; \
+            target: "elm.flip.content"; \
+         }
+
+#define GENLIST_PROGRAM_FLIP_1TEXT_2ICON \
+         program { name: "flip_enabled"; \
+            signal: "elm,state,flip,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "flip_enabled" 0.0; \
+            target: "elm.text"; \
+            target: "elm.icon.1"; \
+            target: "elm.icon.2"; \
+            target: "elm.flip.content"; \
+         } \
+         program { name: "flip_disabled"; \
+            signal: "elm,state,flip,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "elm.text"; \
+            target: "elm.icon.1"; \
+            target: "elm.icon.2"; \
+            target: "elm.flip.content"; \
+         }
+
+#define GENLIST_PROGRAM_FLIP_1TEXT_3ICON \
+         program { name: "flip_enabled"; \
+            signal: "elm,state,flip,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "flip_enabled" 0.0; \
+            target: "elm.text"; \
+            target: "elm.icon.1"; \
+            target: "elm.icon.2"; \
+            target: "elm.icon.3"; \
+            target: "elm.flip.content"; \
+         } \
+         program { name: "flip_disabled"; \
+            signal: "elm,state,flip,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "elm.text"; \
+            target: "elm.icon.1"; \
+            target: "elm.icon.2"; \
+            target: "elm.icon.3"; \
+            target: "elm.flip.content"; \
+         }
+
+#define GENLIST_PROGRAM_FLIP_2TEXT \
+         program { name: "flip_enabled"; \
+            signal: "elm,state,flip,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "flip_enabled" 0.0; \
+            target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.flip.content"; \
+         } \
+         program { name: "flip_disabled"; \
+            signal: "elm,state,flip,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.flip.content"; \
+         }
+
+#define GENLIST_PROGRAM_FLIP_2TEXT_1ICON \
+         program { name: "flip_enabled"; \
+            signal: "elm,state,flip,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "flip_enabled" 0.0; \
+            target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.icon"; \
+            target: "elm.flip.content"; \
+         } \
+         program { name: "flip_disabled"; \
+            signal: "elm,state,flip,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.icon"; \
+            target: "elm.flip.content"; \
+         }
+
+#define GENLIST_PROGRAM_FLIP_2TEXT_2ICON \
+         program { name: "flip_enabled"; \
+            signal: "elm,state,flip,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "flip_enabled" 0.0; \
+            target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.icon.1"; \
+            target: "elm.icon.2"; \
+            target: "elm.flip.content"; \
+         } \
+         program { name: "flip_disabled"; \
+            signal: "elm,state,flip,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+             target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.icon.1"; \
+            target: "elm.icon.2"; \
+            target: "elm.flip.content"; \
+         }
+
+#define GENLIST_PROGRAM_FLIP_2TEXT_3ICON \
+         program { name: "flip_enabled"; \
+            signal: "elm,state,flip,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "flip_enabled" 0.0; \
+            target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.icon.1"; \
+            target: "elm.icon.2"; \
+            target: "elm.icon.3"; \
+            target: "elm.flip.content"; \
+         } \
+         program { name: "flip_disabled"; \
+            signal: "elm,state,flip,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.icon.1"; \
+            target: "elm.icon.2"; \
+            target: "elm.icon.3"; \
+            target: "elm.flip.content"; \
+         }
+
+#define GENLIST_PROGRAM_FLIP_3TEXT \
+         program { name: "flip_enabled"; \
+            signal: "elm,state,flip,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "flip_enabled" 0.0; \
+            target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.text.3"; \
+            target: "elm.flip.content"; \
+         } \
+         program { name: "flip_disabled"; \
+            signal: "elm,state,flip,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.text.3"; \
+            target: "elm.flip.content"; \
+         }
+
+#define GENLIST_PROGRAM_FLIP_3TEXT_1ICON \
+         program { name: "flip_enabled"; \
+            signal: "elm,state,flip,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "flip_enabled" 0.0; \
+            target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.text.3"; \
+            target: "elm.icon"; \
+            target: "elm.flip.content"; \
+         } \
+         program { name: "flip_disabled"; \
+            signal: "elm,state,flip,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.text.3"; \
+            target: "elm.icon"; \
+            target: "elm.flip.content"; \
+         }
+
+#define GENLIST_PROGRAM_FLIP_3TEXT_2ICON \
+         program { name: "flip_enabled"; \
+            signal: "elm,state,flip,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "flip_enabled" 0.0; \
+            target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.text.3"; \
+            target: "elm.icon.1"; \
+            target: "elm.icon.2"; \
+            target: "elm.flip.content"; \
+         } \
+         program { name: "flip_disabled"; \
+            signal: "elm,state,flip,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.text.3"; \
+            target: "elm.icon.1"; \
+            target: "elm.icon.2"; \
+            target: "elm.flip.content"; \
+         }
+
+#define GENLIST_PROGRAM_FLIP_3TEXT_3ICON \
+         program { name: "flip_enabled"; \
+            signal: "elm,state,flip,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "flip_enabled" 0.0; \
+            target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.text.3"; \
+            target: "elm.icon.1"; \
+            target: "elm.icon.2"; \
+            target: "elm.icon.3"; \
+            target: "elm.flip.content"; \
+         } \
+         program { name: "flip_disabled"; \
+            signal: "elm,state,flip,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.text.3"; \
+            target: "elm.icon.1"; \
+            target: "elm.icon.2"; \
+            target: "elm.icon.3"; \
+            target: "elm.flip.content"; \
+         }
+
+/* genlist multisense macro - start */
+#define GENLIST_PROGRAM_AFTER_PLAY_BUTTON_PRESS \
+            after: "play_button_press";
+
+#define GENLIST_PROGRAM_PLAY_BUTTON_PRESS \
+         program { name: "play_button_press"; \
+            action: PLAY_SAMPLE "button-pressed" 1.0; \
+         }
+
+
+#define TEXTBLOCK_TAG \
+      tag:  "br" "\n";\
+      tag:  "ps" "ps";\
+      tag:  "tab" "\t";\
+      tag:  "b" "+ font=SLP:style=Bold";\
+      tag:  "match" GENLIST_PART_MATCH_TAG_COLOR_INC;
+
+styles {
+   style { name: "text_style"; // TODO: remove this later
+      base: "font=SLP:style=Roman font_size=28 color=#000000 wrap=char ellipsis=1.0 text_class=list_item";
+      tag:  "br" "\n";
+      tag:  "ps" "ps";
+      tag:  "tab" "\t";
+      tag:  "b" "+ font=SLP:style=Bold";
+      tag:  "match" "+ color=#E58616FF";
+   }
+   style { name: "genlist_default_textblock_style";
+      base: "font=SLP:style=Roman font_size="GENLIST_FONT_STYLE_44_INC" color="GENLIST_PART_FONT_LIST_MAIN_TEXT_UNREAD_STYLE_COLOR_INC" text_class=list_item ellipsis=1.0";
+      TEXTBLOCK_TAG
+   }
+   style { name: "genlist_default_textblock_selected_style";
+      base: "font=SLP:style=Roman font_size="GENLIST_FONT_STYLE_44_INC" color="GENLIST_PART_TEXT_PRESS_STYLE_COLOR_INC" text_class=list_item ellipsis=1.0";
+      TEXTBLOCK_TAG
+   }
+   style { name: "genlist_sub_textblock_style";
+      base: "font=SLP:style=Medium font_size="GENLIST_FONT_STYLE_32_INC" color="GENLIST_PART_FONT_LIST_SUB_TEXT_STYLE_COLOR_INC" text_class=list_item ellipsis=1.0";
+      TEXTBLOCK_TAG
+   }
+   style { name: "genlist_sub_textblock_selected_style";
+      base: "font=SLP:style=Medium font_size="GENLIST_FONT_STYLE_32_INC" color="GENLIST_PART_TEXT_PRESS_STYLE_COLOR_INC" text_class=list_item ellipsis=1.0";
+      TEXTBLOCK_TAG
+   }
+   style { name: "genlist_multiline_textblock_style";
+      base: "font=SLP:style=Medium font_size="GENLIST_FONT_STYLE_32_INC" color="GENLIST_PART_FONT_MULTILINE_TEXT_STYLE_COLOR_INC" wrap=char text_class=list_item";
+      TEXTBLOCK_TAG
+   }
+   style { name: "genlist_multiline_textblock_selected_style";
+      base: "font=SLP:style=Medium font_size="GENLIST_FONT_STYLE_32_INC" color="GENLIST_PART_TEXT_PRESS_STYLE_COLOR_INC" wrap=char text_class=list_item";
+      TEXTBLOCK_TAG
+   }
+   style { name: "genlist_textblock_style";
+      base: "font=SLP:style=Roman font_size="GENLIST_FONT_STYLE_42_INC" color="GENLIST_PART_FONT_3LINE_MAIN_TEXT_UNREAD_STYLE_COLOR_INC" wrap=char text_class=list_item";
+      TEXTBLOCK_TAG
+   }
+   style { name: "genlist_textblock_selected_style";
+      base: "font=SLP:style=Roman font_size="GENLIST_FONT_STYLE_42_INC" color="GENLIST_PART_TEXT_PRESS_STYLE_COLOR_INC" wrap=char text_class=list_item";
+      TEXTBLOCK_TAG
+   }
+   style { name: "genlist_textblock_sub_style";
+      base: "font=SLP:style=Medium font_size="GENLIST_FONT_STYLE_36_INC" color="GENLIST_PART_FONT_3LINE_MAIN_TEXT_2_STYLE_COLOR_INC" wrap=char text_class=list_item";
+      TEXTBLOCK_TAG
+   }
+   style { name: "genlist_textblock_sub_selected_style";
+      base: "font=SLP:style=Medium font_size="GENLIST_FONT_STYLE_36_INC" color="GENLIST_PART_TEXT_PRESS_STYLE_COLOR_INC" wrap=char text_class=list_item";
+      TEXTBLOCK_TAG
+   }
+   style { name: "genlist_textblock_flexible_style";
+      base: "font=SLP:style=Roman font_size="GENLIST_FONT_STYLE_48_INC" color="GENLIST_PART_FONT_FLEXIBLE_TEXT_MAIN_STYLE_COLOR_INC" wrap=char text_class=list_item";
+      TEXTBLOCK_TAG
+   }
+   style { name: "genlist_textblock_flexible_selected_style";
+      base: "font=SLP:style=Roman font_size="GENLIST_FONT_STYLE_48_INC" color="GENLIST_PART_TEXT_PRESS_STYLE_COLOR_INC" wrap=char text_class=list_item";
+      TEXTBLOCK_TAG
+   }
+   style { name: "genlist_textblock_flexible_sub_style";
+      base: "font=SLP:style=Roman font_size="GENLIST_FONT_STYLE_36_INC" color="GENLIST_PART_FONT_FLEXIBLE_TEXT_SUB_STYLE_COLOR_INC" wrap=char text_class=list_item";
+      TEXTBLOCK_TAG
+   }
+   style { name: "genlist_textblock_flexible_sub_selected_style";
+      base: "font=SLP:style=Roman font_size="GENLIST_FONT_STYLE_36_INC" color="GENLIST_PART_TEXT_PRESS_STYLE_COLOR_INC" wrap=char text_class=list_item";
+      TEXTBLOCK_TAG
+   }
+   style { name: "genlist_textblock_help_style";
+      base: "font=SLP:style=Medium font_size="GENLIST_FONT_STYLE_32_INC" color="GENLIST_PART_FONT_HELP_TEXT_STYLE_COLOR_INC" wrap=mixed text_class=list_item";
+      TEXTBLOCK_TAG
+   }
+
+   /* email styles */
+   style { name: "genlist_email_textblock_selected_style";
+      base: "font=SLP:style=Roman font_size="GENLIST_FONT_44_INC" color="GENLIST_PART_TEXTBLOCK_STYLE_SELECTED_COLOR_INC" text_class=list_item ellipsis=1.0";
+      TEXTBLOCK_TAG
+   }
+   style { name: "genlist_email_textblock_read_style";
+      base: "font=SLP:style=Roman font_size="GENLIST_FONT_44_INC" color="GENLIST_PART_TEXTBLOCK_READ_STYLE_COLOR_INC" text_class=list_item ellipsis=1.0";
+      TEXTBLOCK_TAG
+   }
+   style { name: "genlist_email_textblock_unread_style";
+      base: "font=SLP:style=Roman font_size="GENLIST_FONT_44_INC" color="GENLIST_PART_TEXTBLOCK_UNREAD_STYLE_COLOR_INC" text_class=list_item ellipsis=1.0";
+      TEXTBLOCK_TAG
+   }
+   style { name: "genlist_email_textblock_urgency_unread_style";
+      base: "font=SLP:style=Roman font_size="GENLIST_FONT_44_INC" color="GENLIST_PART_TEXTBLOCK_URGENCY_UNREAD_STYLE_COLOR_INC" text_class=list_item ellipsis=1.0";
+      TEXTBLOCK_TAG
+   }
+   style { name: "genlist_email_textblock_urgency_read_style";
+      base: "font=SLP:style=Roman font_size="GENLIST_FONT_44_INC" color="GENLIST_PART_TEXTBLOCK_URGENCY_READ_STYLE_COLOR_INC" text_class=list_item ellipsis=1.0";
+      TEXTBLOCK_TAG
+   }
+   style { name: "genlist_email_textblock2_style";
+      base: "font=SLP:style=Medium font_size="GENLIST_FONT_32_INC" color="GENLIST_PART_TEXTBLOCK_STYLE_COLOR_INC" text_class=list_item ellipsis=1.0";
+      TEXTBLOCK_TAG
+   }
+   style { name: "genlist_email_textblock2_selected_style";
+      base: "font=SLP:style=Medium font_size="GENLIST_FONT_32_INC" color="GENLIST_PART_TEXTBLOCK_STYLE_SELECTED_COLOR_INC" text_class=list_item ellipsis=1.0";
+      TEXTBLOCK_TAG
+   }
+}
+/* genlist multisense macro - end */
+
+#define SEARCHBAR_BACKGROUND_COLOR_DEFAULT 215 225 232 255
+#define SEARCHBAR_BACKGROUND_COLOR_BLACK 36 36 36 255
+#define SEARCHBAR_BACKGROUND_COLOR_BLUE  17 23 27 255
+#define SEARCHBAR_BACKGROUND_COLOR_WHITE 215 225 232 255
+
+#define SELECTION_INFO_BACKGROUND_COLOR_INC          215 225 232 255
+#define SELECTION_INFO_TEXT_COLOR_INC                1 1 1 255
+#define SELECTION_INFO_MIN_VER_W_INC                 512
+#define SELECTION_INFO_MIN_HORZ_W_INC                1280
+#define SELECTION_INFO_VER_PADDING_INC               48
+#define SELECTION_INFO_TEXT_FONT_SIZE_INC            32
+#define SELECTION_INFO_MIN_VER_BOTTOM_64_H_INC       150
diff --git a/mailbox/theme/email-mailbox-theme.edc b/mailbox/theme/email-mailbox-theme.edc
new file mode 100755 (executable)
index 0000000..66bf60c
--- /dev/null
@@ -0,0 +1,2841 @@
+/*
+ * Copyright 2012  Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *    http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "email-mailbox-theme-macro.edc"
+
+collections
+{
+       group
+       {
+               name: "layout.email.mailbox.hd";
+               parts
+               {
+                       part { name: "bg";
+                               mouse_events: 0;
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       color: 255 255 255 0;
+                               }
+                       }
+
+                       part
+                       {
+                               name: "searchbar.bg";
+                               type: RECT;
+                               scale: 1;
+
+                               description
+                               {
+                                       state: "default" 0.0;
+                                       min: 0 106;
+                                       fixed: 0 1;
+                                       align: 0.5 0.0;
+                                       visible: 1;
+                                       color: 255 255 255 0;
+                                       rel1 { relative: 0.0 0.0; to: "bg";}
+                                       rel2 { relative: 1.0 0.0; to: "bg";}
+                               }
+                               description
+                               {
+                                       state: "searchbar_hide" 0.0;
+                                       inherit: "default" 0.0;
+                                       min: 0 0;
+                                       visible: 0;
+                                       color: 255 255 255 0;
+                               }
+                       }
+                       part {
+                               name: "searchbar";
+                               type: SWALLOW;
+                               description {
+                                       state: "default" 0.0;
+                                       fixed: 0 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; }
+                                       rel2 { relative: 1.0 0.0; }
+                               }
+                       }
+
+                       part
+                       {
+                               name: "list";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.0 0.0;
+                                       visible: 1;
+                                       color: 255 255 255 0;
+                                       rel1 { relative: 0.0 1.0; to: "searchbar";}
+                                       rel2 { relative: 1.0 1.0; to: "bg";}
+                               }
+                               description
+                               {
+                                       state: "list_hide" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+
+                       part
+                       {
+                               name: "noc";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.0 0.5;
+                                       color: 255 255 255 0;
+                                       visible: 0;
+                                       rel1 { relative: 0.0 1.0; to: "searchbar";}
+                                       rel2 { relative: 1.0 1.0; to: "bg";}
+                               }
+                               description
+                               {
+                                       state: "noc_show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+               } //end parts
+
+               programs {
+                               program {
+                                               name: "searchbar_show";
+                                               signal: "show_searchbar";
+                                               source: "search";
+                                               action: STATE_SET "default" 0.0;
+                                               target: "searchbar.bg";
+                                               transition: LINEAR 0.1;
+                               }
+                               program {
+                                               name: "searchbar_hide";
+                                               signal: "hide_searchbar";
+                                               source: "search";
+                                               action: STATE_SET "searchbar_hide" 0.0;
+                                               target: "searchbar.bg";
+                                               transition: LINEAR 0.1;
+                               }
+
+                               program {
+                                               name: "list_show";
+                                               signal: "show_list";
+                                               source: "elm";
+                                               action: STATE_SET "default" 0.0;
+                                               target: "list";
+                                               transition: LINEAR 0.1;
+                               }
+                               program {
+                                               name: "list_hide";
+                                               signal: "hide_list";
+                                               source: "elm";
+                                               action: STATE_SET "list_hide" 0.0;
+                                               target: "list";
+                                               transition: LINEAR 0.1;
+                               }
+                               program {
+                                               name: "noc_show";
+                                               signal: "show_noc";
+                                               source: "elm";
+                                               action: STATE_SET "noc_show" 0.0;
+                                               target: "noc";
+                                               transition: LINEAR 0.1;
+                               }
+                               program {
+                                               name: "noc_hide";
+                                               signal: "hide_noc";
+                                               source: "elm";
+                                               action: STATE_SET "default" 0.0;
+                                               target: "noc";
+                                               transition: LINEAR 0.1;
+                               }
+               }
+       } //end group
+
+       group {
+               name: "search";
+               parts {
+                       part {
+                               name: "bg";
+                               mouse_events: 0;
+                               type: RECT;
+                               scale: 1;
+                               description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               rel1 { relative: 0.0 0.0;}
+                               rel2 { relative: 1.0 1.0;}
+                               color: SEARCHBAR_BACKGROUND_COLOR_DEFAULT;
+                               }
+                       }
+               part {
+                   name: "searchbar_area_category_pad_left";
+                   type: RECT;
+                   mouse_events: 0;
+                   scale: 1;
+                   description {
+                       state: "default" 0.0;
+                       visible: 1;
+                       min: 16 0;
+                       fixed: 1 0;
+                       align: 0.0 0.5;
+                       rel1 { relative: 0.0 0.0; to: "bg";}
+                       rel2 { relative: 0.0 1.0; to: "bg";}
+                       color: SEARCHBAR_BACKGROUND_COLOR_DEFAULT;
+                   }
+               }
+               part {
+                   name: "searchbar_area_category_top";
+                   type: RECT;
+                   mouse_events: 1;
+                   scale: 1;
+                   description {
+                       state: "default" 0.0;
+                       visible: 1;
+                       min: 80 16;
+                       fixed: 1 1;
+                       align: 0.0 0.0;
+                       rel1 { relative: 1.0 0.0; to: "searchbar_area_category_pad_left";}
+                       rel2 { relative: 1.0 0.0; to: "searchbar_area_category_pad_left";}
+                       color: SEARCHBAR_BACKGROUND_COLOR_DEFAULT;
+                   }
+               }
+               part {
+                   name: "searchbar_area_category_bottom";
+                   type: RECT;
+                   mouse_events: 1;
+                   scale: 1;
+                   description {
+                       state: "default" 0.0;
+                       visible: 1;
+                       min: 80 16;
+                       fixed: 1 1;
+                       align: 0.0 1.0;
+                       rel1 { relative: 1.0 1.0; to: "searchbar_area_category_pad_left";}
+                       rel2 { relative: 1.0 1.0; to: "searchbar_area_category_pad_left";}
+                       color: SEARCHBAR_BACKGROUND_COLOR_DEFAULT;
+                   }
+               }
+               part {
+                   name: "searchbar_area_category";
+                   type: SWALLOW;
+                   mouse_events: 1;
+                   scale: 1;
+                   description {
+                       state: "default" 0.0;
+                       visible: 1;
+                       min: 80 80;
+                       max: 80 80;
+                       fixed: 1 1;
+                       align: 0.0 0.5;
+                       rel1 { relative: 1.0 1.0;
+                                       to_x: "searchbar_area_category_pad_left";
+                                       to_y: "searchbar_area_category_top";}
+                       rel2 { relative: 1.0 0.0;
+                                       to_x: "searchbar_area_category_pad_left";
+                                       to_y: "searchbar_area_category_bottom";}
+                   }
+               }
+               part {
+                               name: "searchbar_area_entry";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 107;
+                                       rel1 { relative: 1.0 0.0;
+                                                       to_x: "searchbar_area_category";
+                                                       to_y: "bg";
+                                                       }
+                                       rel2 { relative: 1.0 1.0;
+                                                       to_x: "bg";
+                                                       to_y: "bg";}
+                               }
+                       }
+               } //end parts
+       } //end group
+
+group { name: "horizontal_bottom_64";
+   parts {
+      part {
+         name: "bg";
+         type: RECT;
+         mouse_events: 1;
+         repeat_events: 1;
+         scale : 1;
+         description {
+            state: "default" 0.0;
+            min: SELECTION_INFO_MIN_VER_W_INC SELECTION_INFO_MIN_VER_BOTTOM_64_H_INC;
+            fixed: 1 1;
+            align: 0.5 1.0;
+            rel1.relative: 0.5 1.0;
+            rel2.relative: 0.5 1.0;
+            color: 0 0 0 0;
+         }
+      }
+      part { name: "base";
+         type: RECT;
+         mouse_events: 1;
+         scale : 1;
+         description {
+            state: "default" 0.0;
+            min: 0 SELECTION_INFO_VER_PADDING_INC;
+            fixed: 0 1;
+            align: 0.5 0.0;
+            rel1 { relative: 0.0 0.0; to: "bg"; }
+            rel2 { relative: 1.0 0.32; to: "bg"; }
+            color: SELECTION_INFO_BACKGROUND_COLOR_INC;
+         }
+      }
+      part {
+         name: "elm.text";
+         type: TEXT;
+         mouse_events: 0;
+         scale: 1;
+         description {
+            state: "default" 0.0;
+            align: 0.5 0.0;
+            rel1 { to: "base"; }
+            rel2 { to: "base"; }
+            color: SELECTION_INFO_TEXT_COLOR_INC;
+            text {
+               font: "SLP";
+               size: SELECTION_INFO_TEXT_FONT_SIZE_INC;
+               text: "";
+               text_class: "slp";
+            }
+         }
+      }
+   }
+   programs {
+      program {
+         name: "clicked";
+         signal: "mouse,clicked,1";
+         source: "base";
+         action: SIGNAL_EMIT "elm,action,click" "";
+      }
+   }
+}
+       group
+       {
+               name: "layout.email.mailbox";
+               parts
+               {
+                       part { name: "bg";
+                               mouse_events: 0;
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       color: 255 255 255 0;
+                               }
+                       }
+
+                       part
+                       {
+                               name: "searchbar.bg";
+                               type: RECT;
+
+                               description
+                               {
+                                       state: "default" 0.0;
+                                       min: 0 69;
+                                       fixed: 1 1;
+                                       align: 0.0 0.0;
+                                       visible: 1;
+                                       color: 255 255 255 0;
+                                       rel1 { relative: 0.0 0.0; to: "bg";}
+                                       rel2 { relative: 1.0 0.0; to: "bg";}
+                               }
+                               description
+                               {
+                                       state: "searchbar_hide" 0.0;
+                                       inherit: "default" 0.0;
+                                       min: 0 0;
+                                       visible: 0;
+                                       color: 255 255 255 0;
+                               }
+                       }
+
+                       part {
+                               name: "searchbar";
+                               type: SWALLOW;
+                               description {
+                                       state: "default" 0.0;
+                                       fixed: 1 1;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "searchbar.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "searchbar.bg";}
+                               }
+                       }
+
+                       part
+                       {
+                               name: "list";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.0 0.0;
+                                       visible: 1;
+                                       color: 255 255 255 0;
+                                       rel1 { relative: 0.0 1.0; to: "searchbar.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "bg";}
+                               }
+                               description
+                               {
+                                       state: "list_hide" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+
+                       part
+                       {
+                               name: "noc";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.0 0.0;
+                                       color: 255 255 255 0;
+                                       visible: 1;
+                                       rel1 { relative: 0.0 1.0; to: "searchbar.bg";}
+                                       rel2 { relative: 1.0 1.0; to: "bg";}
+                               }
+                               description
+                               {
+                                       state: "noc_hide" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+               } //end parts
+
+               programs {
+                               program {
+                                               name: "searchbar_show";
+                                               signal: "show_searchbar";
+                                               source: "search";
+                                               action: STATE_SET "default" 0.0;
+                                               target: "searchbar.bg";
+                                               transition: LINEAR 0.1;
+                               }
+                               program {
+                                               name: "searchbar_hide";
+                                               signal: "hide_searchbar";
+                                               source: "search";
+                                               action: STATE_SET "searchbar_hide" 0.0;
+                                               target: "searchbar.bg";
+                                               transition: LINEAR 0.1;
+                               }
+
+                               program {
+                                               name: "list_show";
+                                               signal: "show_list";
+                                               source: "elm";
+                                               action: STATE_SET "default" 0.0;
+                                               target: "list";
+                                               transition: LINEAR 0.1;
+                               }
+                               program {
+                                               name: "list_hide";
+                                               signal: "hide_list";
+                                               source: "elm";
+                                               action: STATE_SET "list_hide" 0.0;
+                                               target: "list";
+                                               transition: LINEAR 0.1;
+                               }
+                               program {
+                                               name: "noc_show";
+                                               signal: "show_noc";
+                                               source: "elm";
+                                               action: STATE_SET "default" 0.0;
+                                               target: "noc";
+                                               transition: LINEAR 0.1;
+                               }
+                               program {
+                                               name: "noc_hide";
+                                               signal: "hide_noc";
+                                               source: "elm";
+                                               action: STATE_SET "noc_hide" 0.0;
+                                               target: "noc";
+                                               transition: LINEAR 0.1;
+                               }
+               }
+       } //end group
+
+       group { name: "title";
+               images {
+                       image: "00_winset_title_line.png" COMP;
+                       image: "optionheader_arrow.png" COMP;
+               }
+
+               script {
+                       public more_show = 0;
+               }
+
+               parts
+               {
+                       part {
+                               name: "bg";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 108;
+                                       rel1 { relative: 0.0 0.0; }
+                                       rel2 { relative: 1.0 1.0; }
+                                       color: 0 0 0 0;
+                                       align: 0.0 0.5;
+                               }
+                       }
+
+                       part { name: "top_padding";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 11;
+                                       fixed: 0 1;
+                                       visible: 0;
+                                       rel1 { to: "bg"; relative: 0 0; }
+                                       rel2 { to: "bg"; relative: 1 0; }
+                                       align: 0.0 0.0;
+                               }
+                       }
+
+                       part { name: "bottom_padding";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 11;
+                                       fixed: 0 1;
+                                       visible: 0;
+                                       rel1 { to: "bg"; relative: 0 1; }
+                                       rel2 { to: "bg"; relative: 1 1; }
+                                       align: 0.0 1.0;
+                               }
+                       }
+
+                       part { name: "left_padding";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 5 0;
+                                       fixed: 1 0;
+                                       visible: 0;
+                                       rel1 { to: "bg"; relative: 0 0; }
+                                       rel2 { to: "bg"; relative: 0 1; }
+                                       align: 0.0 0.0;
+                               }
+                       }
+
+                       part { name: "right_padding";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 5 0;
+                                       fixed: 1 0;
+                                       visible: 0;
+                                       rel1 { to: "bg"; relative: 1 0; }
+                                       rel2 { to: "bg"; relative: 1 1; }
+                                       align: 1.0 0.0;
+                               }
+                       }
+
+                       part {
+                               name: "title_area";
+                               type: RECT;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 {
+                                               relative: 1.0 1.0;
+                                               to_x: "left_padding";
+                                               to_y: "top_padding";
+                                       }
+                                       rel2 {
+                                               relative: (440/720) 0.0;
+                                               to_x: "bg";
+                                               to_y: "bottom_padding";
+                                       }
+                                       color: 0 0 0 10;
+                               }
+                       }
+
+                       part {
+                               name: "txt_title";
+                               type: TEXT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: (16/440) 0.0; to: "title_area";}
+                                       rel2 { relative: (424/440) (52/88); to: "title_area";}
+                                       color : 249 249 249 255;
+                                       text { font: "SLP:style=Medium";
+                                               size: 40;
+                                               min: 0 0;
+                                               max: 1 0;
+                                               align: 0.0 0.5;
+                                               text_class: "slp";
+                                       }
+                                       align: 0.0 0.0;
+                                       fixed: 1 1;
+                                       min: 0 48;
+                               }
+                       }
+
+                       part { name: "sub_left_padding";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 21 0;
+                                       fixed: 1 0;
+                                       visible: 0;
+                                       rel1 {
+                                               relative: 1.0 1.0;
+                                               to_x: "left_padding";
+                                               to_y: "txt_title";
+                                       }
+                                       rel2 {
+                                               relative: 1.0 0.0;
+                                               to_x: "left_padding";
+                                               to_y: "bottom_padding";
+                                       }
+                                       align: 0.0 0.0;
+                               }
+                       }
+
+                       part {
+                               name: "sub_left_icon";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       fixed: 1 1;
+                                       min: 32 32;
+                                       max: 32 32;
+                                       rel1 {
+                                               relative: 1.0 1.0;
+                                               to_x: "sub_left_padding";
+                                               to_y: "txt_title";
+                                       }
+                                       rel2 {
+                                               relative: 1.0 0.0;
+                                               to_x: "sub_left_padding";
+                                               to_y: "bottom_padding";
+                                       }
+                                       align: 0.0 0.5;
+                               }
+                       }
+
+                       part { name: "sub_mid_padding";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 10 0;
+                                       fixed: 1 0;
+                                       visible: 0;
+                                       rel1 {
+                                               relative: 1.0 1.0;
+                                               to_x: "sub_left_icon";
+                                               to_y: "txt_title";
+                                       }
+                                       rel2 {
+                                               relative: 1.0 0.0;
+                                               to_x: "sub_left_icon";
+                                               to_y: "bottom_padding";
+                                       }
+                                       align: 0.0 0.0;
+                               }
+                       }
+
+                       part {
+                               name: "sub_right_icon";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       fixed: 1 1;
+                                       min: 32 32;
+                                       max: 32 32;
+                                       rel1 {
+                                               relative: 1.0 1.0;
+                                               to_x: "title_area";
+                                               to_y: "txt_title";
+                                       }
+                                       rel2 {
+                                               relative: 1.0 0.0;
+                                               to_x: "title_area";
+                                               to_y: "bottom_padding";
+                                       }
+                                       align: 1.0 0.0;
+                               }
+                       }
+
+                       part {
+                               name: "txt_sub";
+                               type: TEXT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 {
+                                               relative: 1.0 1.0;
+                                               to_x: "sub_mid_padding";
+                                               to_y: "txt_title";
+                                       }
+                                       rel2 {
+                                               relative: 0.0 0.0;
+                                               to_x: "sub_right_icon";
+                                               to_y: "bottom_padding";
+                                       }
+                                       color : 249 249 249 255;
+                                       text { font: "SLP:style=Medium";
+                                               size: 32;
+                                               min: 0 0;
+                                               max: 1 0;
+                                               align: 0.0 0.5;
+                                               text_class: "slp";
+                                       }
+                                       align: 0.0 0.0;
+                                       fixed: 1 1;
+                                       min: 0 40;
+                               }
+                       }
+
+                       part {
+                               name: "right_btn";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       fixed: 1 0;
+                                       min: 120 78;
+                                       max: 120 78;
+                                       align: 1.0 0.5;
+                                       rel1 {
+                                               relative: 0.0 1.0;
+                                               to_x: "right_padding";
+                                               to_y: "top_padding";
+                                       }
+                                       rel2 {
+                                               relative: 0.0 0.0;
+                                               to_x: "right_padding";
+                                               to_y: "bottom_padding";
+                                       }
+                               }
+                       }
+
+                       part {
+                               name: "seperator1";
+                               type: IMAGE;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       fixed: 1 1;
+                                       min: 2 48;
+                                       max: 2 48;
+                                       align: 1.0 0.5;
+                                       rel1 {
+                                               relative: 0.0 1.0;
+                                               to_x: "right_btn";
+                                               to_y: "top_padding";
+                                       }
+                                       rel2 {
+                                               relative: 0.0 0.0;
+                                               to_x: "right_btn";
+                                               to_y: "bottom_padding";
+                                       }
+                                       image.normal: "00_winset_title_line.png";
+                               }
+                       }
+
+                       part {
+                               name: "left_btn";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       fixed: 1 0;
+                                       min: 120 78;
+                                       max: 120 78;
+                                       align: 1.0 0.5;
+                                       rel1 {
+                                               relative: 0.0 1.0;
+                                               to_x: "seperator1";
+                                               to_y: "top_padding";
+                                       }
+                                       rel2 {
+                                               relative: 0.0 0.0;
+                                               to_x: "seperator1";
+                                               to_y: "bottom_padding";
+                                       }
+                               }
+                       }
+
+                       part {
+                               name: "seperator2";
+                               type: IMAGE;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       fixed: 1 1;
+                                       min: 2 48;
+                                       max: 2 48;
+                                       align: 1.0 0.5;
+                                       rel1 {
+                                               relative: 0.0 1.0;
+                                               to_x: "left_btn";
+                                               to_y: "top_padding";
+                                       }
+                                       rel2 {
+                                               relative: 0.0 0.0;
+                                               to_x: "left_btn";
+                                               to_y: "bottom_padding";
+                                       }
+                                       image.normal: "00_winset_title_line.png";
+                               }
+                       }
+
+                       part {
+                               name: "event_area";
+                               ignore_flags: ON_HOLD;
+                               repeat_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { to: "title_area"; relative: 0 0; }
+                                       rel2 { to: "title_area"; relative: 1 1; }
+                               }
+                       }
+
+                       part {
+                               name: "arrow";
+                               type: IMAGE;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 28 24;
+                                       max: 28 24;
+                                       fixed: 1 1;
+                                       align: 0.0 0.0;
+                                       rel1 {
+                                               relative: 1.0 1.0;
+                                               to_x: "title_area";
+                                               to_y: "top_padding";
+                                       }
+                                       rel2 {
+                                               relative: 1.0 0.0;
+                                               to_x: "title_area";
+                                               to_y: "bottom_padding";
+                                       }
+                                       image.normal: "optionheader_arrow.png";
+                                       visible: 0;
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+               }
+
+               programs {
+                       program {
+                               name: "title_clicked";
+                               signal: "mouse,clicked,1";
+                               source: "event_area";
+                               action: SIGNAL_EMIT "elm,action,title,clicked" "";
+                       }
+
+                       program {
+                               name: "more_show";
+                               signal: "elm,state,more,show";
+                               source: "";
+                               script {
+                                       set_int(more_show, 1);
+                                       set_state(PART:"arrow", "show", 0.0);
+                               }
+                       }
+
+                       program {
+                               name: "more_hide";
+                               signal: "elm,state,more,hide";
+                               source: "";
+                               script {
+                                       set_int(more_show, 0);
+                                       set_state(PART:"arrow", "default", 0.0);
+                               }
+                       }
+               }
+       }
+
+       group { name: "email/dim_area";
+               images {
+                       image: "M02_email_popup_bubble_tail_top.png" COMP;
+               }
+
+               parts {
+                       part { name: "block_events";
+                               type: RECT;
+                               description { state: "default" 0.0;
+                               color: 0 0 0 153;
+                               min: 0 1127;            //213; height(1280) - (indicator(50)+Navi(108)+frameview(909)+10) +5
+                               max: 9999 213;
+                               fixed: 1 1;
+                               visible: 1;
+                               align: 0.0 1.0;
+                               }
+                       }
+                       part { name: "bubble_tail";
+                               type: IMAGE;
+                               scale: 1;
+                               description {
+                               state: "default" 0.0;
+                               fixed: 1 1;
+                               min: 26 21;
+                               max: 26 21;
+                               align: 0.5 1.0;
+
+                               rel1 { relative: (56/720) (10/1122); to: "block_events";}
+                               rel2 { relative: (82/720) (10/1122); to: "block_events";}
+                               image.normal: "M02_email_popup_bubble_tail_top.png";
+                               }
+                       }
+               }
+          programs {
+             program {
+                name: "block_clicked";
+                signal: "mouse,clicked,1";
+                source: "block_events";
+                action: SIGNAL_EMIT "action,click" "";
+             }
+          }
+       }
+
+   group { name: "elm/genlist/item/email.4text.8icon/default";
+      alias: "elm/genlist/item_odd/email.4text.8icon/default";
+      alias: "elm/genlist/item_compress/email.4text.8icon/default";
+      alias: "elm/genlist/item_compress_odd/email.4text.8icon/default";
+      data.item: "stacking" "above";
+      data.item: "selectraise" "on";
+      data.item: "texts" "elm.text.subject elm.text.name elm.text.date elm.text.preview elm.text.num";
+      data.item: "contents" "elm.icon.important elm.icon.important.touch elm.icon.num elm.icon.attach elm.icon.colorbar elm.swallow.outbox.progress elm.icon.checkbox elm.icon.checkbox.touch elm.icon.priority elm.icon.lastverb elm.icon.appointment";
+      data.item: "flips" "elm.flip.content";
+      images {
+         image: "00_list_bar_press_1x80.png" COMP;
+         image: "M02_button_06_normal.png" COMP;
+      }
+
+      parts {
+         GENLIST_PART_BASE( GENLIST_SIZE_160_INC )
+         GENLIST_PART_BG
+         GENLIST_PART_BG_IMAGE
+         GENLIST_PART_BOTTOM_LINE
+         GENLIST_PART_PADDING_TOP( GENLIST_PADDING_8_INC )
+         GENLIST_PART_PADDING_BOTTOM( GENLIST_PADDING_8_INC )
+         GENLIST_PART_PADDING_LEFT( GENLIST_PADDING_16_INC )
+         GENLIST_PART_PADDING_RIGHT( GENLIST_PADDING_16_INC )
+         part { name: "elm.icon.colorbar";
+            clip_to: "disclip";
+            type: SWALLOW;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: GENLIST_SIZE_10_INC GENLIST_SIZE_21_INC;
+               fixed: 1 1;
+               rel2.relative: 0.0 0.0;
+               align: 0.0 0.0;
+            }
+         }
+
+         part { name: "elm.icon.checkbox.touch";
+            clip_to: "disclip";
+            type: SWALLOW;
+            mouse_events: 1;
+            scale: 1;
+            description { state: "default" 0.0;
+               max: GENLIST_PADDING_74_INC GENLIST_SIZE_160_INC;
+               fixed: 1 1;
+               rel1 {
+                  relative: 0.0 0.0;
+                  to_x: "elm.padding.left";
+                  to_y: "elm.padding.top";
+               }
+               rel2 {
+                  relative: 0.0 0.0;
+                  to_x: "elm.padding.right";
+                  to_y: "elm.padding.bottom";
+               }
+               align: 0.0 0.5;
+            }
+         }
+         part { name: "elm.icon.checkbox";
+            clip_to: "disclip";
+            type: SWALLOW;
+            mouse_events: 1;
+            scale: 1;
+            description { state: "default" 0.0;
+               max: GENLIST_SIZE_42_INC 0;
+               fixed: 1 1;
+               rel1 {
+                  relative: 1.0 0.0;
+                  to_x: "elm.padding.left";
+                  to_y: "elm.padding.top";
+               }
+               rel2 {
+                  relative: 0.0 0.0;
+                  to_x: "elm.padding.right";
+                  to_y: "elm.padding.bottom";
+               }
+               align: 0.0 0.5;
+            }
+         }
+         part { name: "elm.padding.icon.checkbox.right";
+            clip_to: "disclip";
+            type: RECT;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: GENLIST_PADDING_16_INC 0;
+               fixed: 1 0;
+               rel1 {
+                  relative: 1.0 0.0;
+                  to_x: "elm.icon.checkbox";
+                  to_y: "elm.padding.top";
+               }
+               rel2 {
+                  relative: 1.0 0.0;
+                  to_x:  "elm.icon.checkbox";
+                  to_y: "elm.padding.bottom";
+               }
+               align: 1.0 0.0;
+               visible: 0;
+            }
+         }
+
+         part { name: "elm.icon.important";
+            clip_to: "disclip";
+            type: SWALLOW;
+            mouse_events: 1;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: GENLIST_SIZE_56_INC GENLIST_SIZE_SLIDE_60_INC;
+               fixed: 1 1;
+               rel1 {
+                  relative: 0.0 1.0;
+                  to_x: "elm.padding.right";
+                  to_y: "elm.padding.top";
+               }
+               rel2 {
+                  relative: 0.0 1.0;
+                  to_x: "elm.padding.right";
+                  to_y: "elm.padding.top";
+               }
+               align: 1.0 0.0;
+            }
+            GENLIST_DESCRIPTION_FLIP_ENABLED
+         }
+
+         part { name: "elm.icon.important.touch";
+            clip_to: "disclip";
+            type: SWALLOW;
+            mouse_events: 1;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: GENLIST_SIZE_56_INC GENLIST_SIZE_SLIDE_60_INC;
+               fixed: 1 1;
+               rel1 {
+                  relative: 0.0 1.0;
+                  to_x: "elm.padding.right";
+                  to_y: "elm.padding.top";
+               }
+               rel2 {
+                  relative: 0.0 1.0;
+                  to_x: "elm.padding.right";
+                  to_y: "elm.padding.top";
+               }
+               align: 1.0 0.0;
+            }
+            GENLIST_DESCRIPTION_FLIP_ENABLED
+         }
+
+         part { name: "elm.padding.icon.important.left";
+            clip_to: "disclip";
+            type: RECT;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: GENLIST_PADDING_16_INC 0;
+               fixed: 1 0;
+               rel1{
+                  relative: 0.0 1.0;
+                  to_x: "elm.icon.important";
+               }
+               rel2 {
+                  relative: 0.0 1.0;
+                  to_x: "elm.icon.important";
+               }
+               align: 1.0 0.0;
+               visible: 0;
+            }
+         }
+
+         part { name: "elm.icon.num";
+            clip_to: "disclip";
+            type: IMAGE;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               max: 0 GENLIST_SIZE_SLIDE_60_INC;
+               fixed: 1 1;
+               rel1 {
+                  relative: 0.0 1.0;
+                  offset: 0 GENLIST_SIZE_8_INC;
+                  to_x: "elm.padding.icon.important.left";
+                  to_y: "elm.padding.top";
+               }
+               rel2 {
+                  relative: 0.0 1.0;
+                  offset: 0 GENLIST_SIZE_8_INC;
+                  to_x: "elm.padding.icon.important.left";
+                  to_y: "elm.padding.top";
+               }
+               align: 1.0 0.0;
+               image.normal: "M02_button_06_normal.png";
+               image.border: 5 5 5 5;
+            }
+            description { state: "num_enable" 0.0;
+               inherit: "default" 0.0;
+               max: GENLIST_HEIGHT_62_INC GENLIST_SIZE_SLIDE_60_INC;
+               min: GENLIST_SIZE_46_INC GENLIST_SIZE_44_INC;
+            }
+            GENLIST_DESCRIPTION_FLIP_ENABLED
+         }
+
+         part { name: "elm.text.num";
+            clip_to: "disclip";
+            type: TEXT;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               max: 0 GENLIST_SIZE_SLIDE_60_INC;
+               fixed: 1 1;
+               rel1 {
+                  relative: 0.0 1.0;
+                  offset: 0 GENLIST_SIZE_8_INC;
+                  to_x: "elm.padding.icon.important.left";
+                  to_y: "elm.padding.top";
+               }
+               rel2 {
+                  relative: 0.0 1.0;
+                  offset: 0 GENLIST_SIZE_8_INC;
+                  to_x: "elm.padding.icon.important.left";
+                  to_y: "elm.padding.top";
+               }
+               align: 1.0 0.0;
+            }
+            description { state: "num_enable" 0.0;
+               inherit: "default" 0.0;
+               max: GENLIST_HEIGHT_62_INC GENLIST_SIZE_SLIDE_60_INC;
+               min: GENLIST_SIZE_46_INC GENLIST_SIZE_44_INC;
+               text {
+                  font: "SLP:style=Medium";
+                  size: GENLIST_FONT_32_INC;
+                  min: 1 1;
+                  align: 0.5 0.5;
+                  text_class: "slp_medium";
+               }
+               color: GENLIST_PART_FONT_CONVERTOR_STYLE_COLOR_INC;
+            }
+            GENLIST_DESCRIPTION_FLIP_ENABLED
+         }
+
+         part { name: "elm.icon.attach";
+            clip_to: "disclip";
+            type: SWALLOW;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: 0 GENLIST_SIZE_SLIDE_60_INC;
+               fixed: 1 1;
+               rel1 {
+                  relative: 0.0 1.0;
+                  to_x: "elm.icon.num";
+                  to_y: "elm.padding.top";
+               }
+               rel2 {
+                  relative: 0.0 1.0;
+                  to_x: "elm.icon.num";
+                  to_y: "elm.padding.top";
+               }
+               align: 1.0 0.0;
+            }
+            description { state: "attach_enable" 0.0;
+               inherit: "default" 0.0;
+               min: GENLIST_SIZE_48_INC GENLIST_SIZE_SLIDE_60_INC;
+            }
+            GENLIST_DESCRIPTION_FLIP_ENABLED
+         }
+         part { name: "elm.text.subject";
+            clip_to: "disclip";
+            type: TEXTBLOCK;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: 0 GENLIST_SIZE_SLIDE_60_INC;
+               fixed: 1 1;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to_x: "elm.padding.icon.checkbox.right";
+                  to_y: "elm.padding.top";
+               }
+               rel2{
+                  relative: 0.0 1.0;
+                  to_x: "elm.icon.attach";
+                  to_y: "elm.padding.top";
+               }
+               align: 0.0 0.0;
+               text {
+                  style: "genlist_email_textblock_unread_style";
+                  min: 0 1;
+                  max: 0 1;
+                  align: 0.0 0.5;
+               }
+            }
+            description { state: "selected" 0.0;
+               inherit: "default" 0.0;
+               text.style: "genlist_email_textblock_selected_style";
+            }
+            description { state: "read" 0.0;
+               inherit: "default" 0.0;
+               text.style: "genlist_email_textblock_read_style";
+            }
+            description { state: "unread" 0.0;
+               inherit: "default" 0.0;
+               text.style: "genlist_email_textblock_unread_style";
+            }
+            GENLIST_DESCRIPTION_FLIP_ENABLED
+         }
+
+         part { name: "elm.padding.intermediate";
+            clip_to: "disclip";
+            type: RECT;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: 0 GENLIST_PADDING_4_INC;
+               fixed: 0 1;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to_x: "elm.padding.icon.checkbox.right";
+                  to_y: "elm.icon.attach";
+               }
+               rel2 {
+                  relative: 1.0 1.0;
+                  to_x:  "elm.padding.icon.checkbox.right";
+                  to_y: "elm.icon.attach";
+               }
+               align: 1.0 0.0;
+               visible: 0;
+            }
+         }
+
+         part { name: "elm.icon.priority";
+            clip_to: "disclip";
+            type: SWALLOW;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: 0 GENLIST_SIZE_40_INC;
+               fixed: 1 1;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to_x: "elm.padding.icon.checkbox.right";
+                  to_y: "elm.padding.intermediate";
+               }
+               rel2 {
+                  relative: 1.0 1.0;
+                  to_x: "elm.padding.icon.checkbox.right";
+                  to_y: "elm.padding.intermediate";
+               }
+               align: 0.0 0.0;
+            }
+            description { state: "priority_enable" 0.0;
+               inherit: "default" 0.0;
+               min: GENLIST_SIZE_48_INC GENLIST_SIZE_40_INC;
+            }
+            GENLIST_DESCRIPTION_FLIP_ENABLED
+         }
+         part { name: "elm.icon.lastverb";
+            clip_to: "disclip";
+            type: SWALLOW;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: 0 GENLIST_SIZE_40_INC;
+               fixed: 1 1;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to_x: "elm.padding.icon.checkbox.right";
+                  to_y: "elm.icon.priority";
+               }
+               rel2 {
+                  relative: 1.0 1.0;
+                  to_x: "elm.padding.icon.checkbox.right";
+                  to_y: "elm.icon.priority";
+               }
+               align: 0.0 0.0;
+            }
+            description { state: "lastverb_enable" 0.0;
+               inherit: "default" 0.0;
+               min: GENLIST_SIZE_48_INC GENLIST_SIZE_40_INC;
+            }
+            GENLIST_DESCRIPTION_FLIP_ENABLED
+         }
+
+         part { name: "elm.text.date";
+            clip_to: "disclip";
+            type: TEXT;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: GENLIST_SIZE_154_INC GENLIST_SIZE_40_INC;
+               fixed: 1 1;
+               rel1 {
+                  to_x: "elm.padding.right";
+                  to_y: "elm.padding.bottom";
+               }
+               rel2 {
+                  relative: 0.0 0.0;
+                  to_x: "elm.padding.right";
+                  to_y: "elm.padding.bottom";
+               }
+               align: 1.0 1.0;
+               color: GENLIST_PART_FONT_LIST_SUB_TEXT_COLOR_INC;
+               text {
+                  font: "SLP:style=Medium";
+                  size: GENLIST_FONT_32_INC;
+                  min: 0 1;
+                  align: 1.0 0.5;
+                  text_class: "slp_medium";
+               }
+            }
+            description { state: "selected" 0.0;
+               inherit: "default" 0.0;
+               color: GENLIST_PART_TEXT_PRESS_COLOR_INC;
+            }
+            GENLIST_DESCRIPTION_FLIP_ENABLED
+         }
+
+         part { name: "elm.icon.appointment";
+            clip_to: "disclip";
+            type: SWALLOW;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: 0 GENLIST_SIZE_40_INC;
+               fixed: 1 1;
+               rel1 {
+                  relative: 0.0 1.0;
+                  to_x: "elm.padding.right";
+                  to_y: "elm.padding.intermediate";
+               }
+               rel2 {
+                  relative: 0.0 1.0;
+                  to_x: "elm.padding.right";
+                  to_y: "elm.padding.intermediate";
+               }
+               align: 1.0 0.0;
+            }
+            GENLIST_DESCRIPTION_FLIP_ENABLED
+         }
+         part { name: "elm.text.name";
+            clip_to: "disclip";
+            type: TEXTBLOCK;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: 0 GENLIST_SIZE_40_INC;
+               fixed: 1 1;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to_x: "elm.icon.priority";
+                  to_y: "elm.padding.intermediate";
+               }
+               rel2 {
+                  relative: 0.0 1.0;
+                  to_x: "elm.icon.appointment";
+                  to_y: "elm.padding.intermediate";
+               }
+               align: 0.0 0.0;
+               text {
+                  style: "genlist_email_textblock2_style";
+                  min: 0 1;
+                  align: 0.0 0.5;
+               }
+            }
+            description { state: "selected" 0.0;
+               inherit: "default" 0.0;
+               text.style: "genlist_email_textblock2_selected_style";
+            }
+            GENLIST_DESCRIPTION_FLIP_ENABLED
+         }
+         part { name: "elm.text.preview";
+            clip_to: "disclip";
+            type: TEXT;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: 0 GENLIST_SIZE_40_INC;
+               fixed: 1 1;
+               rel1 {
+                  relative: 1.0 0.0;
+                  to_x: "elm.icon.lastverb";
+                  to_y: "elm.padding.bottom";
+               }
+               rel2 {
+                  relative: 0.0 0.0;
+                  to_x: "elm.text.date";
+                  to_y: "elm.padding.bottom";
+               }
+               align: 0.0 1.0;
+               color: GENLIST_PART_FONT_CONTENTS_TEXT_COLOR_INC;
+               text {
+                  font: "SLP:style=Medium";
+                  size: GENLIST_FONT_30_INC;
+                  min: 0 1;
+                  align: 0.0 0.5;
+                  text_class: "slp_medium";
+               }
+            }
+            description { state: "selected" 0.0;
+               inherit: "default" 0.0;
+               color: GENLIST_PART_TEXT_PRESS_COLOR_INC;
+            }
+            GENLIST_DESCRIPTION_FLIP_ENABLED
+         }
+         part { name: "elm.swallow.outbox.progress";
+            type: SWALLOW;
+            scale: 1;
+            mouse_events: 1;
+            repeat_events: 0;
+            description { state: "default" 0.0;
+               min: GENLIST_SIZE_168_INC 0;
+               fixed: 1 1;
+               color: 0 0 0 0;
+               align: 1.0 0.5;
+               rel1 {
+                  relative: 0.0 1.0;
+                  offset: 0 0;
+                  to_x: "elm.padding.right";
+                  to_y: "elm.padding.top";
+               }
+               rel2 {
+                  relative: 0.0 0.0;
+                  offset: 0 0;
+                  to_x: "elm.padding.right";
+                  to_y: "elm.padding.bottom";
+               }
+            }
+         }
+         GENLIST_PART_FLIP
+         GENLIST_PART_DISCLIP
+      }
+
+      programs {
+         // signal: elm,state,%s,active
+         //   a "check" item named %s went active
+         // signal: elm,state,%s,passive
+         //   a "check" item named %s went passive
+         // default is passive
+         program { name: "go_active";
+            signal: "elm,state,selected";
+            source: "elm";
+            action: STATE_SET "selected" 0.0;
+            target: "bg_image";
+            target: "elm.text.subject";
+            target: "elm.text.name";
+            target: "elm.text.date";
+            target: "elm.text.preview";
+            //GENLIST_PROGRAM_AFTER_PLAY_BUTTON_PRESS
+         }
+         program { name: "go_passive";
+            signal: "elm,state,unselected";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "bg_image";
+            target: "elm.text.subject";
+            target: "elm.text.name";
+            target: "elm.text.date";
+            target: "elm.text.preview";
+            transition: LINEAR 0.1;
+         }
+         program { name: "go_disabled";
+            signal: "elm,state,disabled";
+            source: "elm";
+            action: STATE_SET "disabled" 0.0;
+            target: "disclip";
+         }
+         program { name: "go_enabled";
+            signal: "elm,state,enabled";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "disclip";
+         }
+         program { name: "go_read";
+            signal: "elm,state,read";
+            source: "elm";
+            action: STATE_SET "read" 0.0;
+            target: "elm.text.subject";
+         }
+         program { name: "go_unread";
+            signal: "elm,state,unread";
+            source: "elm";
+            action: STATE_SET "unread" 0.0;
+            target: "elm.text.subject";
+         }
+         program { name: "go_attach";
+            signal: "elm,state,attach";
+            source: "elm";
+            action: STATE_SET "attach_enable" 0.0;
+            target: "elm.icon.attach";
+         }
+         program { name: "go_priority";
+            signal: "elm,state,priority";
+            source: "elm";
+            action: STATE_SET "priority_enable" 0.0;
+            target: "elm.icon.priority";
+         }
+         program { name: "go_lastverb";
+            signal: "elm,state,lastverb";
+            source: "elm";
+            action: STATE_SET "lastverb_enable" 0.0;
+            target: "elm.icon.lastverb";
+         }
+         program { name: "go_num";
+            signal: "elm,state,num";
+            source: "elm";
+            action: STATE_SET "num_enable" 0.0;
+            target: "elm.icon.num";
+            target: "elm.text.num";
+         }
+         program { name: "click";
+            signal: "mouse,up,1";
+            source: "elm.icon.checkbox.touch";
+            action: SIGNAL_EMIT "elm,action,check,toggle" "";
+         }
+         //GENLIST_PROGRAM_PLAY_BUTTON_PRESS
+      }
+   }
+
+   /* NOTE: This style is a temporary style for email application. Otherwise do not use this. */
+   group { name: "elm/genlist/item/email.3text.6icon/default";
+      alias: "elm/genlist/item_odd/email.3text.6icon/default";
+      alias: "elm/genlist/item_compress/email.3text.6icon/default";
+      alias: "elm/genlist/item_compress_odd/email.3text.6icon/default";
+      data.item: "stacking" "above";
+      data.item: "selectraise" "on";
+      data.item: "texts" "elm.text.1 elm.text.2 elm.text.3";
+      data.item: "contents" "elm.icon.1 elm.icon.2 elm.icon.3 elm.icon.4 elm.swallow.colorbar elm.swallow.outbox.progress";
+      data.item: "flips" "elm.flip.content";
+      images {
+         image: "00_list_bar_press_1x80.png" COMP;
+      }
+      parts {
+         GENLIST_PART_BASE( GENLIST_HEIGHT_129_INC )
+         GENLIST_PART_BG
+         GENLIST_PART_BG_IMAGE
+         GENLIST_PART_BOTTOM_LINE
+         GENLIST_PART_PADDING_TOP( GENLIST_PADDING_10_INC )
+         GENLIST_PART_PADDING_BOTTOM( GENLIST_PADDING_10_INC )
+         GENLIST_PART_PADDING_LEFT( GENLIST_PADDING_16_INC )
+         GENLIST_PART_PADDING_RIGHT( GENLIST_PADDING_16_INC )
+         part { name: "elm.swallow.colorbar";
+            clip_to: "disclip";
+            type: SWALLOW;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: GENLIST_SIZE_10_INC GENLIST_SIZE_21_INC;
+               rel2.relative: 0.0 0.0;
+               align: 0.0 0.0;
+            }
+         }
+         part { name: "elm.text.3";
+            clip_to: "disclip";
+            type: TEXT;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: GENLIST_SIZE_154_INC GENLIST_SIZE_61_INC;
+               rel1 {
+                  relative: 0.0 0.0;
+                  to_x: "elm.padding.right";
+                  to_y: "elm.padding.bottom";
+               }
+               rel2 {
+                  relative: 0.0 0.0;
+                  to_x: "elm.padding.right";
+                  to_y: "elm.padding.bottom";
+               }
+               align: 1.0 1.0;
+               color: GENLIST_PART_FONT_LIST_SUB_TEXT_COLOR_INC;
+               text {
+                  font: "SLP:style=Medium";
+                  size: GENLIST_FONT_32_INC;
+                  min: 0 1;
+                  align: 1.0 0.5;
+                  text_class: "slp_medium";
+               }
+            }
+            description { state: "selected" 0.0;
+               inherit: "default" 0.0;
+               color: GENLIST_PART_TEXT_PRESS_COLOR_INC;
+            }
+            GENLIST_DESCRIPTION_FLIP_ENABLED
+         }
+         part { name: "elm.icon.1";
+            clip_to: "disclip";
+            type: SWALLOW;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               rel1 {
+                  relative: 0.0 1.0;
+                  to_x: "elm.padding.right";
+                  to_y: "elm.padding.top";
+               }
+               rel2 {
+                  relative: 0.0 0.0;
+                  to_x: "elm.padding.right";
+                  to_y: "elm.text.3";
+               }
+               align: 1.0 0.0;
+            }
+            GENLIST_DESCRIPTION_FLIP_ENABLED
+         }
+         part { name: "elm.padding.icon1.left";
+            clip_to: "disclip";
+            type: RECT;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: GENLIST_PADDING_16_INC 0;
+               rel1.to_x: "elm.icon.1";
+               rel2 {
+                  relative: 0.0 1.0;
+                  to_x: "elm.icon.1";
+               }
+               align: 1.0 0.0;
+               visible: 0;
+            }
+         }
+         part { name: "elm.text1.rect";
+            clip_to: "disclip";
+            type: RECT;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: 0 GENLIST_SIZE_61_INC;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to_x: "elm.swallow.colorbar";
+                  to_y: "elm.padding.top";
+               }
+               rel2 {
+                  relative: 0.0 0.0;
+                  to_x: "elm.padding.icon1.left";
+                  to_y: "elm.padding.top";
+               }
+               align: 0.0 0.0;
+               visible: 0;
+            }
+         }
+         part { name: "elm.text.1";
+            clip_to: "disclip";
+            type: TEXTBLOCK;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               rel1.to: "elm.text1.rect";
+               rel2.to: "elm.text1.rect";
+               align: 0.0 0.0;
+               text {
+                  style: "genlist_email_textblock_unread_style";
+                  min: 0 1;
+                  max: 0 1;
+                  align: 0.0 0.5;
+               }
+            }
+            description { state: "selected" 0.0;
+               inherit: "default" 0.0;
+               text.style: "genlist_email_textblock_selected_style";
+            }
+            description { state: "read" 0.0;
+               inherit: "default" 0.0;
+               text.style: "genlist_email_textblock_read_style";
+            }
+            description { state: "unread" 0.0;
+               inherit: "default" 0.0;
+               text.style: "genlist_email_textblock_unread_style";
+            }
+            description { state: "urgency_read" 0.0;
+               inherit: "default" 0.0;
+               text.style: "genlist_email_textblock_urgency_read_style";
+            }
+            description { state: "urgency_unread" 0.0;
+               inherit: "default" 0.0;
+               text.style: "genlist_email_textblock_urgency_unread_style";
+            }
+            GENLIST_DESCRIPTION_FLIP_ENABLED
+         }
+         part { name: "elm.text.2";
+            clip_to: "disclip";
+            type: TEXTBLOCK;
+            scale: 1;
+            description { state: "default" 0.0;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to_x: "elm.padding.left";
+                  to_y: "elm.text.1";
+               }
+               rel2 {
+                  relative: 0.0 0.0;
+                  to_x: "elm.padding.icon2.left";
+                  to_y: "elm.padding.bottom";
+               }
+               align: 0.0 0.5;
+               text {
+                  style: "genlist_email_textblock2_style";
+                  min: 0 1;
+                  align: 0.0 0.5;
+               }
+            }
+            description { state: "selected" 0.0;
+               inherit: "default" 0.0;
+               text.style: "genlist_email_textblock2_selected_style";
+            }
+            GENLIST_DESCRIPTION_FLIP_ENABLED
+         }
+         part { name: "elm.padding.icon2.left";
+            clip_to: "disclip";
+            type: RECT;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: GENLIST_PADDING_16_INC 0;
+               rel1 {
+                  relative: 0.0 1.0;
+                  to_x: "elm.icon.2";
+                  to_y: "elm.text.1";
+               }
+               rel2 {
+                  relative: 0.0 0.0;
+                  to_x: "elm.icon.2";
+                  to_y: "elm.padding.bottom";
+               }
+               align: 1.0 0.0;
+               visible: 0;
+            }
+         }
+         part { name: "elm.icon.2";
+            clip_to: "disclip";
+            type: SWALLOW;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: GENLIST_SIZE_32_INC GENLIST_SIZE_32_INC;
+               max: GENLIST_SIZE_32_INC GENLIST_SIZE_32_INC;
+               rel1 {
+                  relative: 0.0 1.0;
+                  to_x: "elm.padding.icon3.left";
+                  to_y: "elm.text.1";
+               }
+               rel2 {
+                  relative: 0.0 0.0;
+                  to_x: "elm.padding.icon3.left";
+                  to_y: "elm.padding.bottom";
+               }
+               align: 1.0 0.5;
+            }
+            GENLIST_DESCRIPTION_FLIP_ENABLED
+         }
+         part { name: "elm.padding.icon3.left";
+            clip_to: "disclip";
+            type: RECT;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: GENLIST_PADDING_16_INC 0;
+               rel1 {
+                  relative: 0.0 1.0;
+                  to_x: "elm.icon.3";
+                  to_y: "elm.text.1";
+               }
+               rel2 {
+                  relative: 0.0 0.0;
+                  to_x: "elm.icon.3";
+                  to_y: "elm.padding.bottom";
+               }
+               align: 1.0 0.0;
+               visible: 0;
+            }
+         }
+         part { name: "elm.icon.3";
+            clip_to: "disclip";
+            type: SWALLOW;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: GENLIST_SIZE_32_INC GENLIST_SIZE_32_INC;
+               max: GENLIST_SIZE_32_INC GENLIST_SIZE_32_INC;
+               rel1 {
+                  relative: 0.0 1.0;
+                  to_x: "elm.padding.icon4.left";
+                  to_y: "elm.text.1";
+               }
+               rel2 {
+                  relative: 0.0 0.0;
+                  to_x: "elm.padding.icon4.left";
+                  to_y: "elm.padding.bottom";
+               }
+               align: 1.0 0.5;
+            }
+            GENLIST_DESCRIPTION_FLIP_ENABLED
+         }
+         part { name: "elm.padding.icon4.left";
+            clip_to: "disclip";
+            type: RECT;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: GENLIST_PADDING_16_INC 0;
+               rel1 {
+                  relative: 0.0 1.0;
+                  to_x: "elm.icon.4";
+                  to_y: "elm.text.1";
+               }
+               rel2 {
+                  relative: 0.0 0.0;
+                  to_x: "elm.icon.4";
+                  to_y: "elm.padding.bottom";
+               }
+               align: 1.0 0.0;
+               visible: 0;
+            }
+         }
+         part { name: "elm.icon.4";
+            clip_to: "disclip";
+            type: SWALLOW;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: GENLIST_SIZE_32_INC GENLIST_SIZE_32_INC;
+               max: GENLIST_SIZE_32_INC GENLIST_SIZE_32_INC;
+               rel1 {
+                  relative: 0.0 1.0;
+                  to_x: "elm.text.3";
+                  to_y: "elm.text.1";
+               }
+               rel2 {
+                  relative: 0.0 0.0;
+                  to_x: "elm.text.3";
+                  to_y: "elm.padding.bottom";
+               }
+               align: 1.0 0.5;
+            }
+            GENLIST_DESCRIPTION_FLIP_ENABLED
+         }
+         part { name: "elm.swallow.outbox.progress";
+            type: SWALLOW;
+            scale: 1;
+            mouse_events: 1;
+            repeat_events: 0;
+            description { state: "default" 0.0;
+               min: GENLIST_SIZE_168_INC 0;
+               color: 0 0 0 0;
+               align: 1.0 0.5;
+               rel1 {
+                  relative: 0.0 1.0;
+                  offset: 0 0;
+                  to_x: "elm.padding.right";
+                  to_y: "elm.padding.top";
+               }
+               rel2 {
+                  relative: 0.0 0.0;
+                  offset: 0 0;
+                  to_x: "elm.padding.right";
+                  to_y: "elm.padding.bottom";
+               }
+            }
+         }
+         GENLIST_PART_FLIP
+         GENLIST_PART_DISCLIP
+      }
+      programs {
+         // signal: elm,state,%s,active
+         //   a "check" item named %s went active
+         // signal: elm,state,%s,passive
+         //   a "check" item named %s went passive
+         // default is passive
+         program { name: "go_active";
+            signal: "elm,state,selected";
+            source: "elm";
+            action: STATE_SET "selected" 0.0;
+            target: "bg_image";
+            target: "elm.text.1";
+            target: "elm.text.2";
+            target: "elm.text.3";
+            //GENLIST_PROGRAM_AFTER_PLAY_BUTTON_PRESS
+         }
+         program { name: "go_passive";
+            signal: "elm,state,unselected";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "bg_image";
+            target: "elm.text.1";
+            target: "elm.text.2";
+            target: "elm.text.3";
+            transition: LINEAR 0.1;
+         }
+         program { name: "go_disabled";
+            signal: "elm,state,disabled";
+            source: "elm";
+            action: STATE_SET "disabled" 0.0;
+            target: "disclip";
+         }
+         program { name: "go_enabled";
+            signal: "elm,state,enabled";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "disclip";
+         }
+         GENLIST_PROGRAM_FLIP_3TEXT_2ICON
+         program { name: "go_read";
+            signal: "elm,state,read";
+            source: "elm";
+            action: STATE_SET "read" 0.0;
+            target: "elm.text.1";
+         }
+         program { name: "go_unread";
+            signal: "elm,state,unread";
+            source: "elm";
+            action: STATE_SET "unread" 0.0;
+            target: "elm.text.1";
+         }
+         program { name: "go_urgeny_unread";
+            signal: "elm,state,urgency_unread";
+            source: "elm";
+            action: STATE_SET "urgency_unread" 0.0;
+            target: "elm.text.1";
+         }
+         program { name: "go_urgency_read";
+            signal: "elm,state,urgency_read";
+            source: "elm";
+            action: STATE_SET "urgency_read" 0.0;
+            target: "elm.text.1";
+         }
+         //GENLIST_PROGRAM_PLAY_BUTTON_PRESS
+      }
+   }
+
+
+  group { name: "elm/genlist/item/email.grouptitle/default";
+      alias: "elm/genlist/item_odd/email.grouptitle/default";
+      alias: "elm/genlist/item_compress/email.grouptitle/default";
+      alias: "elm/genlist/item_compress_odd/email.grouptitle/default";
+
+      data.item: "stacking" "above";
+      data.item: "selectraise" "on";
+      data.item: "texts" "elm.text";
+      data.item: "treesize" "GENLIST_TREESIZE_32_INC";
+
+      images {
+         image: "00_index_list_bg.png" COMP;
+      }
+      parts {
+         GENLIST_PART_INDEX_LIST_BASE_EVENT_INC
+         GENLIST_PART_PADDING_LEFT( GENLIST_PADDING_16_INC )
+         GENLIST_PART_PADDING_RIGHT( GENLIST_PADDING_16_INC )
+         part { name: "rect";
+            type: RECT;
+            repeat_events: 1;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: 0 GENLIST_HEIGHT_49_INC;
+               color: GENLIST_DIALOGUE_GROUP_BG_COLOR_INC;
+            }
+            description { state: "alpha_off" 0.0;
+               min: 0 GENLIST_SIZE_48_INC;
+               color: GENLIST_DIALOGUE_GROUP_BG_COLOR_INC;
+            }
+         }
+         GENLIST_PART_INDEX_LIST_BASE_IMAGE_INC
+
+         part { name: "elm.text";
+            type: TEXT;
+            scale: 1;
+            description { state: "default" 0.0;
+               align: 0.0 0.5;
+               rel1 {
+                  relative: 1.0 0.0;
+                  to_x: "elm.padding.left";
+               }
+               rel2 {
+                  relative: 0.0 1.0;
+                  offset: 0 0;
+                  to_x: "elm.padding.right";
+               }
+               color: GENLIST_PART_FONT_INDEX_LIST_COLOR_INC;
+               text {
+                  font: "SLP:style=Medium";
+                  size: GENLIST_FONT_32_INC;
+                  min: 1 1;
+                  align: 0.0 0.5;
+                  text_class: "list_item";
+               }
+            }
+         }
+      }
+       program {
+          name:    "enable_alpha";
+          signal:  "elm,state,alpha,enable";
+          source:  "elm";
+          action:  STATE_SET "default" 0.0;
+          target:  "rect";
+       }
+       program {
+          name:    "disable_alpha";
+          signal:  "elm,state,alpha,disable";
+          source:  "elm";
+          action:  STATE_SET "alpha_off" 0.0;
+          target:  "rect";
+       }
+      program {
+          name: "selected";
+         source: "rect";
+         signal: "mouse,clicked,1";
+         action:  SIGNAL_EMIT "elm,title_action,item,click" "elm";
+      }
+   }
+
+   group { name: "elm/genlist/item/dialogue/email.1text.1icon.2/default";
+      alias: "elm/genlist/item_odd/dialogue/email.1text.1icon.2/default";
+      alias: "elm/genlist/item_compress/dialogue/email.1text.1icon.2/default";
+      alias: "elm/genlist/item_compress_odd/dialogue/email.1text.1icon.2/default";
+      alias: "elm/layout/dialogue/email.1text.1icon.2";
+      data.item: "stacking" "above";
+      data.item: "selectraise" "on";
+      data.item: "texts" "elm.text";
+      data.item: "contents" "elm.icon";
+      data.item: "flips" "elm.flip.content";
+      parts {
+         GENLIST_PART_BASE( GENLIST_HEIGHT_113_INC )
+         GENLIST_PART_BG_IMAGE
+         GENLIST_PART_BOTTOM_LINE
+         GENLIST_PART_PADDING_LEFT( GENLIST_PADDING_32_INC )
+         GENLIST_PART_PADDING_RIGHT( GENLIST_PADDING_16_INC )
+         GENLIST_PART_DIALOGUE_ITEM
+         part { name: "elm.icon";
+            clip_to: "disclip";
+            type: SWALLOW;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: GENLIST_SIZE_64_INC GENLIST_SIZE_64_INC;
+               max: GENLIST_SIZE_64_INC GENLIST_SIZE_64_INC;
+               fixed: 1 1;
+               rel1 {
+                  relative: 1.0 0.0;
+                  to_x: "elm.padding.left";
+               }
+               rel2 {
+                  relative: 1.0 1.0;
+                  to_x: "elm.padding.left";
+               }
+               align: 0.0 0.5;
+            }
+            GENLIST_DESCRIPTION_FLIP_ENABLED
+         }
+         part { name: "elm.padding.icon.right";
+            clip_to: "disclip";
+            type: RECT;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: GENLIST_PADDING_16_INC 0;
+               fixed: 1 0;
+               rel1 {
+                  relative: 1.0 0.0;
+                  to_x: "elm.icon";
+               }
+               rel2.to_x: "elm.icon";
+               align: 0.0 0.0;
+               visible: 0;
+            }
+         }
+         part { name: "elm.text";
+            clip_to: "disclip";
+            type: TEXT;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               rel1 {
+                  relative: 1.0 0.0;
+                  to_x: "elm.padding.icon.right";
+               }
+               rel2 {
+                  relative: 0.0 1.0;
+                  to_x: "elm.padding.right";
+               }
+               align: 0.0 0.0;
+               color: GENLIST_PART_FONT_LIST_MAIN_TEXT_UNREAD_COLOR_INC;
+               text {
+                  font: "SLP:style=Roman";
+                  size: GENLIST_FONT_44_INC;
+                  min: 0 1;
+                  align: 0.0 0.5;
+                  text_class: "list_item";
+               }
+            }
+            description { state: "selected" 0.0;
+               inherit: "default" 0.0;
+               color: GENLIST_PART_TEXT_PRESS_COLOR_INC;
+            }
+            GENLIST_DESCRIPTION_INVISIBLE_SELECTED
+            GENLIST_DESCRIPTION_FLIP_ENABLED
+         }
+         GENLIST_PART_FLIP
+         GENLIST_PART_DISCLIP
+      }
+      programs {
+         program { name: "go_active";
+            signal: "elm,state,selected";
+            source: "elm";
+            action: STATE_SET "selected" 0.0;
+            GENLIST_PROGRAM_SCRIPT_FLIP_SELECT_1TEXT
+            //GENLIST_PROGRAM_AFTER_PLAY_BUTTON_PRESS
+         }
+         program { name: "go_passive";
+            signal: "elm,state,unselected";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "bg_image";
+            target: "elm.text";
+            transition: LINEAR 0.1;
+         }
+         program { name: "go_disabled";
+            signal: "elm,state,disabled";
+            source: "elm";
+            action: STATE_SET "disabled" 0.0;
+            target: "disclip";
+         }
+         program { name: "go_enabled";
+            signal: "elm,state,enabled";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "disclip";
+         }
+         GENLIST_PROGRAM_FLIP_1TEXT_1ICON
+         //GENLIST_PROGRAM_PLAY_BUTTON_PRESS
+      }
+   }
+
+   group { name: "elm/genlist/item/email.edit_default/default";
+      alias: "elm/genlist/item_odd/email.edit_default/default";
+      alias: "elm/genlist/item_compress/email.edit_default/default";
+      alias: "elm/genlist/item_compress_odd/email.edit_default/default";
+      alias: "elm/genlist/tree/email.edit_default/default";
+      alias: "elm/genlist/tree_odd/email.edit_default/default";
+      alias: "elm/genlist/tree_compress/email.edit_default/default";
+      alias: "elm/genlist/tree_compress_odd/email.edit_default/default";
+      data.item: "stacking" "above";
+      data.item: "decorate_contents" "elm.edit.icon.1 elm.edit.icon.2";
+
+      images {
+         image: "01_list_reorder_bg_above.png" COMP;
+         image: "01_list_reorder_bg_below.png" COMP;
+      }
+      parts {
+         part { name: "base";
+            type: RECT;
+            repeat_events: 1;
+            scale: 1;
+            description { state: "default" 0.0;
+               color: 0 0 0 0;
+            }
+         }
+         GENLIST_PART_PADDING_TOP( 0 )
+         GENLIST_PART_PADDING_BOTTOM( 0 )
+         GENLIST_PART_PADDING_RIGHT( GENLIST_PADDING_16_INC )
+
+         part { name: "elm.padding.reorder";
+            type: RECT;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: GENLIST_SIZE_16_INC 0;
+               fixed: 1 0;
+               visible: 0;
+               rel2.relative: 0.0 1.0;
+               align: 1.0 0.0;
+            }
+            description { state: "reorder" 0.0;
+               inherit: "default" 0.0;
+               align: 0.0 0.0;
+            }
+         }
+         part { name: "elm.decorate_bg";
+            type: RECT;
+            scale: 1;
+            description { state: "default" 0.0;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to_x: "elm.padding.reorder";
+                  to_y: "elm.padding.top";
+               }
+               rel2 {
+                  relative: 1.0 0.0;
+                  to_y: "elm.padding.bottom";
+               }
+             color: GENLIST_PART_BG_COLOR_INC;
+           }
+           description { state: "selected" 0.0;
+               inherit: "default" 0.0;
+               visible: 1;
+               color: GENLIST_PART_LIST_PRESS_COLOR_INC;
+           }
+        }
+
+        part { name: "elm.padding.left";
+           type: RECT;
+           scale: 1;
+           description { state: "default" 0.0;
+              min: GENLIST_SIZE_16_INC 0;
+              fixed: 1 0;
+              visible: 0;
+              rel1 {
+                 relative: 1.0 0.0;
+                 to_x: "elm.padding.reorder";
+              }
+              rel2.to_x: "elm.padding.reorder";
+              rel2.relative: 0.0  1.0;
+              align: 0.0 0.0;
+           }
+        }
+
+        part { name: "elm.edit.icon.1";
+            clip_to: "disclip";
+            type: SWALLOW;
+            scale: 1;
+            description { state: "default" 0.0;
+               fixed: 1 1;
+               align: 1.0 0.5;
+               rel1 {
+                  relative: 1.0 1.0;
+                  offset: 0 0;
+                  to_x: "elm.padding.left";
+                  to_y: "elm.padding.top";
+               }
+               rel2 {
+                  relative: 1.0 0.0;
+                  offset: 0 0;
+                  to_x: "elm.padding.left";
+                  to_y: "elm.padding.bottom";
+               }
+            }
+          description { state: "enabled" 0.0;
+             inherit: "default" 0.0;
+               align: 0.0 0.5;
+            }
+         }
+
+         part { name: "elm.padding.icon1.right";
+            type: RECT;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: GENLIST_SIZE_16_INC 0;
+               fixed: 1 0;
+               visible: 0;
+               rel1 {
+                  relative: 1.0 0.0;
+                  to_x: "elm.edit.icon.1";
+               }
+               rel2.to_x: "elm.edit.icon.1";
+               align: 0.0 0.0;
+            }
+         }
+
+         part { name: "elm.swallow.decorate.content";
+            clip_to: "disclip";
+            type: SWALLOW;
+            mouse_events: 1;
+            scale: 1;
+            description { state: "default" 0.0;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to_x: "elm.padding.icon1.right";
+                  to_y: "elm.padding.top";
+               }
+               rel2 {
+                  relative: 0.2 0.0;
+                  to_x: "elm.edit.icon.2";
+                  to_y: "elm.padding.bottom";
+               }
+            }
+            description { state: "disabled" 0.0;
+               inherit: "default" 0.0;
+               visible: 0;
+            }
+            description { state: "flipped" 0.0;
+               inherit: "default" 0.0;
+               rel1 {
+                  relative: 0.0 1.0;
+                  to_x: "elm.padding.left";
+                  to_y: "elm.padding.top";
+               }
+               rel2 {
+                  relative: 1.3 0.0;
+                  to_x: "elm.padding.right";
+                  to_y: "elm.padding.bottom";
+               }
+            }
+         }
+         part { name: "elm.padding.icon2.left";
+            type: RECT;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: GENLIST_SIZE_16_INC 0;
+               fixed: 1 0;
+               visible: 0;
+               rel1 {
+                  relative: 1.0 0.0;
+                  to_x: "elm.swallow.decorate.content";
+               }
+               rel2.to_x: "elm.swallow.decorate.content";
+               align: 0.0 0.0;
+            }
+         }
+
+       part { name: "elm.edit.icon.2";
+            clip_to: "disclip";
+            type: SWALLOW;
+            description { state: "default" 0.0;
+               fixed: 1 0;
+               align: 0.0 0.5;
+               visible: 1;
+               rel1 {
+                  relative: 1.0  0.0;
+                  offset:   -GENLIST_SIZE_16_INC    GENLIST_SIZE_6_INC;
+               }
+               rel2 {
+                  relative: 1.0  1.0;
+                  offset:   -GENLIST_SIZE_16_INC -GENLIST_SIZE_8_INC;
+               }
+            }
+          description { state: "disabled" 0.0;
+             inherit: "default" 0.0;
+             visible: 0;
+          }
+          description { state: "enabled" 0.0;
+             inherit: "default" 0.0;
+               align: 1.0 0.5;
+          }
+       }
+
+       part { name: "bottom_line";
+          type: RECT;
+          clip_to: "disclip";
+          mouse_events: 0;
+          description { state: "default" 0.0;
+             min: 0 0;
+             fixed: 0 1;
+             visible: 1;
+             color: GENLIST_PART_LIST_LINE_COLOR_INC;
+             rel1 {
+                relative: 0.0 1.0;
+                to_x: "elm.decorate_bg";
+                offset: 0 -1;
+             }
+          }
+          description {
+              state: "hide" 0.0;
+              inherit: "default" 0.0;
+              visible: 0;
+          }
+          description {
+              state: "enabled" 0.0;
+              inherit: "default" 0.0;
+              min: 0 GENLIST_SIZE_8_INC;
+              fixed: 0 1;
+          }
+       }
+       part { name: "reorder_glow_above";
+          mouse_events: 0;
+          description { state: "default" 0.0;
+             visible: 0;
+             rel1.relative: 0.0 -0.3;
+             rel2.relative: 1.0 0.0;
+             image {
+                normal: "01_list_reorder_bg_above.png";
+             }
+             fill.smooth: 0;
+          }
+          description { state: "reorder" 0.0;
+             inherit: "default" 0.0;
+             visible: 1;
+          }
+       }
+       part { name: "reorder_glow_below";
+          mouse_events: 0;
+          description { state: "default" 0.0;
+             visible: 0;
+             rel1.relative: 0.0 1.0;
+             rel2.relative: 1.0 1.3;
+             image {
+                normal: "01_list_reorder_bg_below.png";
+             }
+             fill.smooth: 0;
+          }
+          description { state: "reorder" 0.0;
+             inherit: "default" 0.0;
+             visible: 1;
+          }
+       }
+       GENLIST_PART_DISCLIP
+      }
+      programs {
+         program { name:    "go_active";
+            signal:  "elm,state,selected";
+            source:  "elm";
+            action: STATE_SET "selected" 0.0;
+            target:  "elm.decorate_bg";
+         }
+         program { name:    "go_passive";
+            signal:  "elm,state,unselected";
+            source:  "elm";
+            action: STATE_SET "default" 0.0;
+            transition: LINEAR 0.1;
+            target:  "elm.decorate_bg";
+         }
+         program { name: "go_disabled";
+            signal: "elm,state,disabled";
+            source: "elm";
+            action: STATE_SET "disabled" 0.0;
+            target: "disclip";
+         }
+         program { name: "go_enabled";
+            signal: "elm,state,enabled";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "disclip";
+         }
+         // decorate mode enable signal
+         program { name: "decorate_mode_enabled_effect";
+            signal: "elm,state,decorate,enabled,effect";
+            source: "elm";
+            action: STATE_SET "enabled" 0.0;
+            transition: DECELERATE 0.7;
+            target: "elm.edit.icon.1";
+            target: "elm.edit.icon.2";
+            target: "bottom_line";
+         }
+         program { name: "decorate_mode_disabled_effect";
+            signal: "elm,state,decorate,disabled,effect";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            transition: DECELERATE 0.7;
+            target: "elm.edit.icon.1";
+            target: "elm.edit.icon.2";
+            target: "bottom_line";
+         }
+         program { name: "decorate_mode_enabled";
+            signal: "elm,state,decorate,enabled";
+            source: "elm";
+            action: STATE_SET "enabled" 0.0;
+            target: "elm.edit.icon.1";
+            target: "elm.edit.icon.2";
+            target: "bottom_line";
+         }
+         program { name: "decorate_mode_disabled";
+            signal: "elm,state,decorate,disabled";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "elm.edit.icon.1";
+            target: "elm.edit.icon.2";
+            target: "bottom_line";
+         }
+
+         // reorder signal
+         program { name: "reorder_enabled";
+            signal: "elm,state,reorder,enabled";
+            source: "elm";
+            action: STATE_SET "reorder" 0.0;
+            target: "elm.padding.reorder";
+         }
+         program { name: "reorder_disabled";
+            signal: "elm,state,reorder,disabled";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "elm.padding.reorder";
+         }
+
+         program { name: "reorder_enabled_effect";
+            signal: "elm,state,reorder_enabled_effect";
+            source: "elm";
+            action: STATE_SET "reorder" 0.0;
+            transition: DECELERATE 0.7;
+            target: "elm.padding.reorder";
+         }
+         program { name: "reorder_disabled_effect";
+            signal: "elm,state,reorder_disabled_effect";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            transition: DECELERATE 0.7;
+            target: "elm.padding.reorder";
+         }
+        // reorder glow
+        program {
+            name:    "show_reorder_glow";
+            signal:  "elm,action,item,reorder_start";
+            source:  "elm";
+            action:  STATE_SET "reorder" 0.0;
+            target:  "reorder_glow_above";
+            target:  "reorder_glow_below";
+        }
+        program {
+            name:    "hide_reorder_glow";
+            signal:  "elm,action,item,reorder_end";
+            source:  "elm";
+            action:  STATE_SET "default" 0.0;
+            target:  "reorder_glow_above";
+            target:  "reorder_glow_below";
+        }
+        // flip
+        program {
+            name:    "enable_flip_mode";
+            signal:  "elm,state,flip,enabled";
+            source:  "elm";
+            action:  STATE_SET "disabled" 0.0;
+            target:  "elm.edit.icon.2";
+            after:   "enable_flip_mode_next";
+        }
+        program {
+            name:    "enable_flip_mode_next";
+            action:  STATE_SET "flipped" 0.0;
+            transition: DECELERATE 0.5;
+            target:  "elm.swallow.decorate.content";
+        }
+        program {
+            name:    "disable_flip_mode";
+            signal:  "elm,state,flip,disabled";
+            source:  "elm";
+            action:  STATE_SET "default" 0.0;
+            transition: DECELERATE 0.5;
+            target:  "elm.swallow.decorate.content";
+            target:  "elm.edit.icon.2";
+        }
+      }
+   }
+
+
+   group { name: "elm/bg/base/email_default";
+      parts {
+         part { name: "base";
+            type: RECT;
+            mouse_events:  0;
+            description { state: "default" 0.0;
+               color: 239 239 239 255;
+            }
+         }
+         part { name: "elm.swallow.rectangle";
+            type: SWALLOW;
+            description { state: "default" 0.0;
+            }
+         }
+         part { name: "elm.swallow.background";
+            type: SWALLOW;
+            description { state: "default" 0.0;
+            }
+         }
+         part { name: "elm.swallow.content";
+            type: SWALLOW;
+            description { state: "default" 0.0;
+            }
+         }
+      }
+   }
+
+       group { name, "dialoguegroup/email_datetime";
+      parts {
+               part { name, "base";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 0 100;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "left_padding";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 30 0;
+                               fixed, 1 0;
+                               rel1.to, "base";
+                               rel2 {
+                                       relative: 0.0 1.0;
+                                       to: "base";
+                               }
+                               align, 0.0 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "right_padding";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 30 0;
+                               fixed, 1 0;
+                               rel1 {
+                                       relative: 1.0 0.0;
+                                       to: "base";
+                               }
+                               rel2.to, "base";
+                               align, 1.0 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name: "elm.text";
+                       type: TEXT;
+                       scale: 1;
+                       mouse_events: 0;
+                       description { state: "default" 0.0;
+                               min: 50 20;
+                               fixed: 1 1;
+                               visible: 1;
+                               rel1 {
+                                       relative: 0.0 0.1;
+                                       to_x: "left_padding";
+                               }
+                               rel2 {
+                                       relative: 1.0 0.1;
+                                       to_y: "left_padding";
+                               }
+                               align: 0.0 0.2;
+                               color: 165 165 165 255;
+                               text {
+                                       font: "SLP:style=Roman";
+                                       size: 33;
+                                       min: 0 1;
+                                       align: 0.0 0.5;
+                               }
+                       }
+               }
+               part { name: "elm.icon";
+                       type: SWALLOW;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               align: 1.0 0.5;
+                               fixed: 1 1;
+                               rel1 {
+                                       relative: 0.0 1.0;
+                                       offset: 0 0;
+                                       to_x: "left_padding";
+                                       to_y: "elm.text";
+                               }
+                               rel2 {
+                                       relative: 0.0 1.0;
+                                       offset: 0 0;
+                                       to_x: "right_padding";
+                                       to_y: "base";
+                               }
+                       }
+               }
+      }
+   }
+   group { name: "email/popup_smartstay1_internal";
+      parts {
+         part { name: "elm.swallow.content1";
+            type: SWALLOW;
+            scale : 1;
+            description { state: "default" 0.0;
+               align: 0.0 0.0;
+               rel2.relative: 1.0 0.0;
+            }
+         }
+         part { name: "elm.content.bg";
+            type: RECT;
+            scale : 1;
+            description { state: "default" 0.0;
+               min: 0 443;
+               visible: 0;
+               align: 0.0 0.0;
+               rel1 {
+                  relative: 0.0 1.0;
+                  to: "elm.swallow.content1";
+               }
+               rel2.to: "elm.swallow.content1";
+            }
+         }
+         part { name: "elm.swallow.content2";
+            type: SWALLOW;
+            scale : 1;
+            description { state: "default" 0.0;
+               min: 390 390;
+               max: 390 390;
+               fixed: 1 1;
+               aspect: 1.0 1.0;
+               aspect_preference: VERTICAL;
+               rel1.to: "elm.content.bg";
+               rel2.to: "elm.content.bg";
+            }
+         }
+         part { name: "elm.swallow.content3";
+            type: SWALLOW;
+            scale : 1;
+            description { state: "default" 0.0;
+               align: 0.0 1.0;
+               rel1 {
+                  relative: 0.0 1.0;
+                  to: "elm.content.bg";
+               }
+            }
+         }
+      }
+   }
+   group { name: "email/popup_smartstay1";
+      parts {
+         part { name: "pad_t";
+            scale: 1;
+            mouse_events: 0;
+            repeat_events: 1;
+            description { state: "default" 0.0;
+               align: 0.5 0.0;
+               min: 0 5;
+               fixed: 0 1;
+               rel1 {
+                  relative: 1.0 0.0;to_x: "pad_l";
+               }
+               rel2 {
+                  relative: 0.0 0.0;to_x: "pad_r";
+               }
+            }
+         }
+         part { name: "pad_l";
+            scale: 1;
+            description { state: "default" 0.0;
+               min : 32 0;
+               fixed: 1 0;
+               rel1 {
+                  relative: 0.0 0.0;
+               }
+               rel2 {
+                  relative: 0.0 1.0;
+               }
+               align: 0.0 0.0;
+            }
+         }
+         part { name: "pad_r";
+            scale: 1;
+            description { state: "default" 0.0;
+               min : 32 0;
+               fixed: 1 0;
+               rel1 {
+                  relative: 1.0 0.0;
+               }
+               rel2 {
+                  relative: 1.0 1.0;
+               }
+               align: 1.0 0.0;
+            }
+         }
+         part { name:"elm.swallow.layout";
+            type: SWALLOW;
+            scale : 1;
+            mouse_events: 1;
+            repeat_events: 1;
+            description { state: "default" 0.0;
+               min: 0 600;
+               align: 0.5 1.0;
+               fixed: 1 0;
+               rel1 {
+                  relative: 0.0 1.0;
+                  to: "pad_t";
+               }
+               rel2 {
+                  relative: 1.0 0.0;
+                  to: "pad_b";
+               }
+            }
+         }
+         part { name: "pad_b";
+            scale : 1;
+            mouse_events: 0;
+            type: RECT;
+            description { state: "default" 0.0;
+               align: 0.5 1.0;
+               min: 0 66;
+               visible: 0;
+               fixed: 0 1;
+               rel1 {
+                  relative: 1.0 1.0;to_x: "pad_l";
+               }
+               rel2 {
+                  relative: 0.0 1.0;to_x: "pad_r";
+               }
+            }
+         }
+         part { name: "elm.swallow.check";
+            type: SWALLOW;
+            scale : 1;
+            mouse_events: 1;
+            repeat_events: 1;
+            description { state: "default" 0.0;
+               align: 0.0 0.5;
+               min: 42 42;
+               max: 42 42;
+               fixed: 1 1;
+               rel1 {
+                  relative: 0.0 0.0;
+                  to: "pad_b";
+               }
+               rel2 {
+                  relative: 0.0 1.0;
+                  to: "pad_b";
+               }
+            }
+         }
+         part { name: "elm.text";
+            type: TEXT;
+            scale : 1;
+            description { state: "default" 0.0;
+               text {
+                  font: "SLP:style=Medium";
+                  size: 38;
+                  min: 0 0;
+                  align: 0.0 0.5;
+               }
+               color: 0 0 0 255;
+               align: 0.0 0.5;
+               rel1 {
+                  relative: 1.0 0.0;
+                  to_x:"elm.swallow.check"; to_y: "pad_b";
+               }
+               rel2 {
+                  relative: 1.0 1.0;
+                  to: "pad_b";
+               }
+            }
+         }
+      }
+   }
+}
+
diff --git a/main/CMakeLists.txt b/main/CMakeLists.txt
new file mode 100755 (executable)
index 0000000..2ed2473
--- /dev/null
@@ -0,0 +1,61 @@
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+PROJECT(email C)
+
+SET(SRCS email.c)
+SET(CMAKE_SKIP_BUILD_RPATH TRUE)
+
+SET(VENDOR "tizen")
+SET(PACKAGE ${PROJECT_NAME})
+SET(PKGNAME "org.${VENDOR}.${PACKAGE}")
+
+IF("${CMAKE_BUILD_TYPE}" STREQUAL "")
+       SET(CMAKE_BUILD_TYPE "Release")
+ENDIF("${CMAKE_BUILD_TYPE}" STREQUAL "")
+MESSAGE("Build type: ${CMAKE_BUILD_TYPE}")
+
+SET(CMAKE_EMAIL_SOURCE_DIR "${CMAKE_SOURCE_DIR}/main")
+SET(CMAKE_EMAIL_BINARY_DIR "${CMAKE_BINARY_DIR}/main")
+INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR})
+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)
+
+FOREACH(flag ${pkgs-email_CFLAGS})
+       SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
+ENDFOREACH(flag)
+#SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -finstrument-functions")
+
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fpie")
+SET(CMAKE_C_FLAGS_DEBUG "-O0 -g")
+SET(CMAKE_C_FLAGS_RELEASE "-O2")
+SET(CMAKE_LDFLAGS "-Wl,-zdefs -Wl,-rpath=${LIBDIR}")
+
+FIND_PROGRAM(UNAME NAMES uname)
+EXEC_PROGRAM("${UNAME}" ARGS "-m" OUTPUT_VARIABLE "ARCH")
+IF("${ARCH}" STREQUAL "arm")
+       ADD_DEFINITIONS("-DTARGET")
+       MESSAGE("add -DTARGET")
+       SET(CMAKE_C_FLAGS_RELEASE "-mabi=aapcs-linux -msoft-float -O2")
+ENDIF("${ARCH}" STREQUAL "arm")
+
+ADD_DEFINITIONS("-DVENDOR=\"${VENDOR}\"")
+ADD_DEFINITIONS("-DPACKAGE=\"${PACKAGE}\"")
+ADD_DEFINITIONS("-DPACKAGE_NAME=\"${PKGNAME}\"")
+ADD_DEFINITIONS("-DDEBUG")
+
+SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -pie")
+
+ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS})
+TARGET_LINK_LIBRARIES(${PROJECT_NAME} email-common ${CMAKE_LDFLAGS} ${pkgs-email_LDFLAGS})
+
+INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${BINDIR})
+
+# install xml file & icon
+INSTALL(FILES ${CMAKE_EMAIL_BINARY_DIR}/${PKGNAME}.xml DESTINATION /opt/share/packages)
+INSTALL(FILES ${CMAKE_EMAIL_SOURCE_DIR}/${PKGNAME}.png DESTINATION ${ICONDIR})
+INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/images DESTINATION ${RESDIR} FILES_MATCHING PATTERN "*.png")
+
+# install ini file
+INSTALL(FILES ${CMAKE_EMAIL_SOURCE_DIR}/${PROJECT_NAME}.ini DESTINATION /usr/share/process-info)
+
diff --git a/main/email.c b/main/email.c
new file mode 100755 (executable)
index 0000000..b7ac5dc
--- /dev/null
@@ -0,0 +1,1106 @@
+/*
+ * Copyright 2012  Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *    http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <stdio.h>
+#include <appcore-efl.h>
+#undef _
+#include <ui-gadget-module.h>
+#include <Ecore_X.h>
+#include <utilX.h>
+#include <vconf.h>
+#include <glib.h>
+#include <glib/gstdio.h>
+#include <aul.h>
+#include <E_DBus.h>
+#include <email-api.h>
+
+#include "email.h"
+#include "email-debug.h"
+#include "email-utils.h"
+#include "email-common-types.h"
+#include "email-engine.h"
+
+#define URI_SCHEME_MAILTO "mailto:"
+#define URI_SCHEME_FILE "file://"
+#define URI_SCHEME_HTTP "http://"
+
+typedef struct appdata appdata;
+struct appdata {
+       int root_w;
+       int root_h;
+       int root_x;
+       int root_y;
+
+       Evas *evas;
+       Evas_Object *win_main;
+
+       int account_id;
+       char *account_name;
+
+       ui_gadget_h mailbox_ug;
+       ui_gadget_h setting_ug;
+       ui_gadget_h composer_ug;
+       ui_gadget_h viewer_ug;
+};
+
+gboolean _b_setting_opened = false;
+extern ui_gadget_h _g_mailbox_ug;
+
+static bool app_create(void *data);
+static int app_terminate(void *data);
+static int app_pause(void *data);
+static int app_resume(void *data);
+static int app_reset(service_h b, void *data);
+static int app_low_memory(void *data);
+static int app_low_battery(void *data);
+static int app_lang_changed(void *data);
+static int app_region_changed(void *data);
+
+static Evas_Object *create_win(const char *name);
+static void win_del(void *data, Evas_Object *obj, void *event);
+static void launch_email_ug(service_h b, struct appdata *ad);
+static int check_app_svc_operation(service_h b, struct appdata *ad, gint account_id);
+static int check_aul_mime_operation(service_h b, struct appdata *ad);
+static int check_aul_launch_operation(service_h b, struct appdata *ad);
+static void block_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+static void popup_block_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+static void popup_response_cb(void *data, Evas_Object *obj, void *event_info);
+static void layout_cb(ui_gadget_h ug, enum ug_mode mode, void *priv);
+static void result_cb(ui_gadget_h ug, service_h result, void *priv);
+static void destroy_cb(ui_gadget_h ug, void *priv);
+static void aul_destroy_cb(ui_gadget_h ug, void *priv);
+ui_gadget_h create_ug(char *ug_name, service_h bd, void *data);
+static int _email_main_rotation_cb(app_device_orientation_e m, void *data);
+
+
+static void layout_cb(ui_gadget_h ug, enum ug_mode mode, void *priv)
+{
+       debug_log("");
+       Evas_Object *base, *win;
+
+       if (!ug || !priv)
+               return;
+
+       base = ug_get_layout(ug);
+       if (!base) {
+               debug_log("ug_get_layout returns NULL");
+               return;
+       }
+
+       win = ug_get_window();
+
+       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;
+       default:
+               break;
+       }
+}
+
+static void result_cb(ui_gadget_h ug, service_h result, void *priv)
+{
+       debug_log("");
+
+       if (!ug || !priv)
+               return;
+
+       ug_destroy(ug);
+}
+
+static void destroy_cb(ui_gadget_h ug, void *priv)
+{
+       debug_log("");
+
+       if (!ug || !priv)
+               return;
+
+       struct appdata *ad = (struct appdata *)priv;
+
+       if (_b_setting_opened == true && ug == ad->setting_ug) {
+               _b_setting_opened = false;
+
+               int ret;
+               ug_destroy(ad->setting_ug);
+               ad->setting_ug = NULL;
+
+               /*relaunch setting when account deleted immediately*/
+               if (!email_engine_get_default_account(&ad->account_id)) {
+                       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_VIEW_TYPE, EMAIL_BUNDLE_VAL_VIEW_FIRST_SETUP);
+                       debug_log("service_add_extra_data: %d", ret);
+
+                       if (NULL != (ad->setting_ug = create_ug(UG_NAME_EMAIL_SETTING, service, ad))) {
+                               _b_setting_opened = true;
+                       }
+
+                       ret = service_destroy(service);
+                       debug_log("service_destroy: %d", ret);
+                       return;
+               }
+
+               if (ad->mailbox_ug) {
+                       debug_log("Mailbox is already running");
+                       return;
+               }
+
+               service_h service = NULL;
+
+               ret = service_create(&service);
+               debug_log("service_create: %d", ret);
+               if (!service) {
+                       debug_log("service create failed");
+                       return;
+               }
+
+               char initial[4] = { 0, };
+               snprintf(initial, sizeof(initial), "%d", 0);
+
+               ret = service_add_extra_data(service, EMAIL_BUNDLE_KEY_INITIAL_RUN, initial);
+               debug_log("service_add_extra_data: %d", ret);
+
+               ad->mailbox_ug = create_ug(UG_NAME_EMAIL_MAILBOX, service, ad);
+               _g_mailbox_ug = ad->mailbox_ug;
+
+               ret = service_destroy(service);
+               debug_log("service_destroy: %d", ret);
+
+               return;
+       }
+
+       if (ug == ad->mailbox_ug) {
+               if (!email_engine_get_default_account(&ad->account_id)) {
+                       ug_destroy(ad->mailbox_ug);
+                       ad->mailbox_ug = NULL;
+
+                       if (ad->setting_ug) {
+                               debug_log("Setting is already running");
+                               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;
+                       }
+
+                       ret = service_add_extra_data(service, EMAIL_BUNDLE_KEY_VIEW_TYPE, EMAIL_BUNDLE_VAL_VIEW_FIRST_SETUP);
+                       debug_log("service_add_extra_data: %d", ret);
+
+                       if (NULL != (ad->setting_ug = create_ug(UG_NAME_EMAIL_SETTING, service, ad))) {
+                               _b_setting_opened = true;
+                       }
+
+                       ret = service_destroy(service);
+                       debug_log("service_destroy: %d", ret);
+
+                       return;
+               }
+       }
+
+       if (ug == ad->composer_ug) {
+               debug_log("destroy composer_ug");
+               ug_destroy(ad->composer_ug);
+               ad->composer_ug = NULL;
+       }
+
+       if (ug == ad->viewer_ug) {
+               debug_log("destroy viewer_ug");
+               ug_destroy(ad->viewer_ug);
+               ad->viewer_ug = NULL;
+       }
+
+       elm_exit();
+       return;
+}
+
+static void aul_destroy_cb(ui_gadget_h ug, void *priv)
+{
+       debug_log("");
+
+       if (!ug || !priv)
+               return;
+
+       elm_exit();
+}
+
+ui_gadget_h create_ug(char *ug_name, service_h bd, void *data)
+{
+       debug_log("");
+       ui_gadget_h ug;
+       struct ug_cbs cbs = { 0, };
+
+       cbs.layout_cb = layout_cb;
+       cbs.result_cb = result_cb;
+       cbs.destroy_cb = destroy_cb;
+       cbs.priv = data;
+
+       ug = ug_create(NULL, ug_name, UG_MODE_FULLVIEW, bd, &cbs);
+
+       return ug;
+}
+
+static int _email_main_rotation_cb(app_device_orientation_e m, void *data)
+{
+       debug_log("");
+       struct appdata *ad = data;
+
+       if (ad == NULL || ad->win_main == NULL) {
+               return -1;
+       }
+       debug_log("%d", m);
+
+       switch (m) {
+       case APP_DEVICE_ORIENTATION_0:
+               ug_send_event(UG_EVENT_ROTATE_PORTRAIT);
+               break;
+
+       case APP_DEVICE_ORIENTATION_180:
+               ug_send_event(UG_EVENT_ROTATE_PORTRAIT_UPSIDEDOWN);
+               break;
+
+       case APP_DEVICE_ORIENTATION_270:
+               ug_send_event(UG_EVENT_ROTATE_LANDSCAPE);
+               break;
+
+       case APP_DEVICE_ORIENTATION_90:
+               ug_send_event(UG_EVENT_ROTATE_LANDSCAPE_UPSIDEDOWN);
+               break;
+
+       default:
+               break;
+       }
+
+       return 0;
+}
+
+static bool app_create(void *data)
+{
+       debug_log("");
+
+       struct appdata *ad = data;
+       Evas_Object *win;
+
+       elm_config_preferred_engine_set("opengl_x11");  //"software_x11"
+
+       /* create window */
+       win = create_win(PACKAGE);
+       if (win == NULL) {
+               debug_log("create_win returns NULL");
+               return false;
+       }
+       ad->win_main = win;
+
+       UG_INIT_EFL(ad->win_main, UG_OPT_INDICATOR_ENABLE);
+
+       /* icu */
+       email_open_icu_pattern_generator();
+
+       return true;
+}
+
+static int app_terminate(void *data)
+{
+       debug_log("");
+
+       set_app_terminated();
+
+       email_engine_finalize_force();
+
+       int ret = e_dbus_shutdown();
+       debug_log("ret: %d", ret);
+
+       return 0;
+}
+
+static int app_pause(void *data)
+{
+       debug_log("");
+
+       set_app_paused();
+       ug_pause();
+
+       return 0;
+}
+
+static int app_resume(void *data)
+{
+       debug_log("");
+
+       reset_app_paused();
+       ug_resume();
+
+       email_clear_all_notification_bar();
+
+       return 0;
+}
+
+static int app_reset(service_h b, void *data)
+{
+       debug_log("");
+       struct appdata *ad = data;
+
+       if (ad->win_main)
+               elm_win_activate(ad->win_main);
+
+       /* init email common module */
+       if (email_engine_initialize() == FALSE) {
+               debug_log("Failed to initialize email engine");
+               evas_object_show(ad->win_main);
+
+               Evas_Object *popup = elm_popup_add(ad->win_main);
+               evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+               elm_popup_timeout_set(popup, 2.0);
+               elm_object_part_text_set(popup, "title,text", dgettext("sys_string", "IDS_COM_POP_WARNING"));
+               elm_object_text_set(popup, _("IDS_EMAIL_POP_FAILED_TO_START_EMAIL_APPLICATION"));
+               evas_object_smart_callback_add(popup, "block,clicked", popup_block_clicked_cb, NULL);
+               evas_object_smart_callback_add(popup, "timeout", popup_response_cb, NULL);
+               evas_object_show(popup);
+               return -1;
+       }
+
+       if (ad->setting_ug) {
+               debug_log("destroy setting_ug");
+               ug_destroy(ad->setting_ug);
+               ad->setting_ug = NULL;
+       }
+
+       email_clear_all_notification_bar();
+
+       launch_email_ug(b, ad);
+
+       evas_object_show(ad->win_main);
+
+       return 0;
+}
+
+static int app_low_memory(void *data)
+{
+       debug_log("");
+       ug_send_event(UG_EVENT_LOW_MEMORY);
+       return 0;
+}
+
+static int app_low_battery(void *data)
+{
+       debug_log("");
+       ug_send_event(UG_EVENT_LOW_BATTERY);
+       return 0;
+}
+
+static int app_lang_changed(void *data)
+{
+       debug_log("");
+       ug_send_event(UG_EVENT_LANG_CHANGE);
+       return 0;
+}
+
+static int app_region_changed(void *data)
+{
+       debug_log("");
+       ug_send_event(UG_EVENT_REGION_CHANGE);
+       return 0;
+}
+
+int main(int argc, char *argv[])
+{
+       debug_log("");
+
+       if (!g_thread_supported()) {
+               g_thread_init(NULL);
+       }
+       g_type_init();
+
+       app_event_callback_s ops;
+       memset(&ops, 0x0, sizeof(app_event_callback_s));
+
+       ops.create = (app_create_cb)app_create;
+       ops.terminate = (app_terminate_cb)app_terminate;
+       ops.pause = (app_pause_cb)app_pause;
+       ops.resume = (app_resume_cb)app_resume;
+       ops.service = (app_service_cb)app_reset;
+       ops.low_memory = (app_low_memory_cb)app_low_memory;
+       ops.low_battery = (app_low_battery_cb)app_low_battery;
+       ops.device_orientation = (app_device_orientation_cb)_email_main_rotation_cb;
+       ops.language_changed = (app_language_changed_cb)app_lang_changed;
+       ops.region_format_changed = (app_region_format_changed_cb)app_region_changed;
+
+       ecore_init();
+       ecore_thread_max_set(1); /* spawn 1 thread for getting mail list in mailbox */
+
+       struct appdata ad;
+       memset(&ad, 0x0, sizeof(struct appdata));
+
+       return app_efl_main(&argc, &argv, &ops, &ad);
+}
+
+static Evas_Object *create_win(const char *name)
+{
+       debug_log("");
+       Evas_Object *eo;
+       int w, h;
+
+       eo = elm_win_add(NULL, name, ELM_WIN_BASIC);
+       if (eo) {
+               elm_win_title_set(eo, name);
+               evas_object_smart_callback_add(eo, "delete,request", win_del, NULL);
+               ecore_x_window_size_get(ecore_x_window_root_first_get(), &w, &h);
+               evas_object_resize(eo, w, h);
+       }
+
+       return eo;
+}
+
+static void win_del(void *data, Evas_Object *obj, void *event)
+{
+       debug_log("");
+       elm_exit();
+}
+
+static void launch_email_ug(service_h b, struct appdata *ad)
+{
+       debug_log("");
+
+       if (b == NULL || ad == NULL) {
+               debug_log("bundle data is NULL");
+               return;
+       }
+
+       gint acct_id = 0;
+
+       /* 0. run email in no default account */
+       if (!email_engine_get_default_account(&acct_id)) {
+               debug_log("Initial Access");
+
+               if (ad->setting_ug) {
+                       debug_log("Setting is already running");
+                       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;
+               }
+
+               ret = service_add_extra_data(service, EMAIL_BUNDLE_KEY_VIEW_TYPE, EMAIL_BUNDLE_VAL_VIEW_FIRST_SETUP);
+               debug_log("service_add_extra_data: %d", ret);
+
+               ad->setting_ug = create_ug(UG_NAME_EMAIL_SETTING, service, ad);
+
+               if (NULL != ad->setting_ug) {
+                       _b_setting_opened = true;
+               }
+
+               ret = service_destroy(service);
+               debug_log("service_destroy: %d", ret);
+       }
+
+       /* 1. run email ug from app service */
+       if (check_app_svc_operation(b, ad, acct_id)) {
+               return;
+       }
+
+       /* 2. run email ug from mime type parsing */
+       if (check_aul_mime_operation(b, ad)) {
+               return;
+       }
+
+       /* 3. run email ug from run type */
+       if (check_aul_launch_operation(b, ad)) {
+               return;
+       }
+
+       /* 4. run email in normal case (from menuscreen) */
+       if (email_engine_get_default_account(&acct_id)) {
+               debug_log("run email in normal case");
+               if (ad->mailbox_ug) {
+                       debug_log("Mailbox is already running");
+                       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;
+               }
+
+               char initial[4] = { 0, };
+               snprintf(initial, sizeof(initial), "%d", 1);
+
+               ret = service_add_extra_data(service, EMAIL_BUNDLE_KEY_INITIAL_RUN, initial);
+               debug_log("service_add_extra_data: %d", ret);
+
+               ad->mailbox_ug = create_ug(UG_NAME_EMAIL_MAILBOX, service, ad);
+               _g_mailbox_ug = ad->mailbox_ug;
+
+               ret = service_destroy(service);
+               debug_log("service_destroy: %d", ret);
+       }
+}
+
+static int check_app_svc_operation(service_h b, struct appdata *ad, gint account_id)
+{
+       debug_log("");
+
+       char *uri = NULL;
+       char *mime = NULL;
+       char *to = NULL;
+       char *cc = NULL;
+       char *bcc = NULL;
+       char *subject = NULL;
+       char *body = NULL;
+       char *operation = NULL;
+       char rtype[10] = { 0, };
+
+       service_get_operation(b, &operation);
+       debug_log("operation = %s", operation);
+
+       if (!operation) {
+               return FALSE;
+       } else {
+               if (g_strcmp0(operation, SERVICE_OPERATION_SEND) != 0 &&
+                               g_strcmp0(operation, SERVICE_OPERATION_SEND_TEXT) != 0) {
+                       return FALSE;
+               }
+
+               if (email_engine_get_default_account(&account_id) == FALSE) {
+                       Evas_Object *popup = elm_popup_add(ad->win_main);
+                       evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+                       elm_popup_timeout_set(popup, 2.0);
+                       elm_object_part_text_set(popup, "title,text", dgettext("sys_string", "IDS_COM_POP_WARNING"));
+                       elm_object_text_set(popup, _("IDS_EMAIL_POP_THERE_IS_NO_ACCOUNT_CREATE_A_NEW_ACCOUNT_FIRST"));
+                       evas_object_smart_callback_add(popup, "block,clicked", block_clicked_cb, NULL);
+                       evas_object_show(popup);
+                       return FALSE;
+               }
+
+               int ret;
+               service_h service = NULL;
+
+               ret = service_create(&service);
+               debug_log("service_create: %d", ret);
+               if (!service) {
+                       debug_log("service create failed");
+                       return FALSE;
+               }
+
+               snprintf(rtype, sizeof(rtype), "%d", RUN_COMPOSER_EXTERNAL);
+
+               ret = service_add_extra_data(service, EMAIL_BUNDLE_KEY_RUN_TYPE, rtype);
+               debug_log("service_add_extra_data: %d", ret);
+
+               if (g_strcmp0(operation, SERVICE_OPERATION_SEND) == 0) {
+                       service_get_uri(b, &uri);
+                       if (uri) {
+                               debug_log("uri: %s", uri);
+
+                               if (g_str_has_prefix(uri, URI_SCHEME_MAILTO)) {
+                                       gchar **vector;
+                                       vector = g_strsplit_set(uri, "?", -1);
+                                       if (vector != NULL) {
+                                               char *mailto_uri = g_strdup(vector[0]);
+                                               g_strfreev(vector);
+
+                                               if (mailto_uri && (strlen(mailto_uri) - strlen(URI_SCHEME_MAILTO)) > 0) {
+                                                       to = g_strndup(mailto_uri + strlen(URI_SCHEME_MAILTO),
+                                                                       strlen(mailto_uri) - strlen(URI_SCHEME_MAILTO));
+                                               }
+
+                                               g_free(mailto_uri);
+                                       }
+                               } else if (g_str_has_prefix(uri, URI_SCHEME_FILE)) {
+                                       char *file_uri = g_strndup(uri + strlen(URI_SCHEME_FILE),
+                                                       strlen(uri) - strlen(URI_SCHEME_FILE));
+                                       ret = service_add_extra_data(service, EMAIL_BUNDLE_KEY_ATTACHMENT, file_uri);
+                                       debug_log("service_add_extra_data: %d", ret);
+                               } else if (g_str_has_prefix(uri, URI_SCHEME_HTTP)) {
+                                       ret = service_add_extra_data(service, EMAIL_BUNDLE_KEY_BODY, uri);
+                                       debug_log("service_add_extra_data: %d", ret);
+                               } else if (g_str_has_prefix(uri, "/")) {
+                                       ret = service_add_extra_data(service, EMAIL_BUNDLE_KEY_ATTACHMENT, uri);
+                                       debug_log("service_add_extra_data: %d", ret);
+                               }
+                       }
+
+                       service_get_mime(b, &mime);
+                       if (mime)
+                               debug_log("mime: %s", mime);
+               }
+
+               if (!to)
+                       service_get_extra_data(b, SERVICE_DATA_TO, &to);
+               if (to) {
+                       debug_log("to address = %s", to);
+                       ret = service_add_extra_data(service, EMAIL_BUNDLE_KEY_TO, to);
+                       debug_log("service_add_extra_data: %d", ret);
+               }
+
+               service_get_extra_data(b, SERVICE_DATA_CC, &cc);
+
+               if (cc) {
+                       debug_log("cc address = %s", cc);
+                       ret = service_add_extra_data(service, EMAIL_BUNDLE_KEY_CC, cc);
+                       debug_log("service_add_extra_data: %d", ret);
+               }
+
+               service_get_extra_data(b, SERVICE_DATA_BCC, &bcc);
+
+               if (bcc) {
+                       debug_log("bcc address = %s", bcc);
+                       ret = service_add_extra_data(service, EMAIL_BUNDLE_KEY_BCC, bcc);
+                       debug_log("service_add_extra_data: %d", ret);
+               }
+
+               service_get_extra_data(b, SERVICE_DATA_SUBJECT, &subject);
+
+               if (subject) {
+                       debug_log("subject = %s", subject);
+                       ret = service_add_extra_data(service, EMAIL_BUNDLE_KEY_SUBJECT, subject);
+                       debug_log("service_add_extra_data: %d", ret);
+               }
+
+               service_get_extra_data(b, SERVICE_DATA_TEXT, &body);
+
+               if (body) {
+                       debug_log("body = %s", body);
+                       ret = service_add_extra_data(service, EMAIL_BUNDLE_KEY_BODY, body);
+                       debug_log("service_add_extra_data: %d", ret);
+               }
+
+               ad->composer_ug = create_ug(UG_NAME_EMAIL_COMPOSER, service, ad);
+
+               ret = service_destroy(service);
+               debug_log("service_destroy: %d", ret);
+
+               if (to)
+                       g_free(to);
+               if (cc)
+                       g_free(cc);
+               if (bcc)
+                       g_free(bcc);
+               if (subject)
+                       g_free(subject);
+               if (body)
+                       g_free(body);
+
+               return TRUE;
+       }
+}
+
+static int check_aul_mime_operation(service_h b, struct appdata *ad)
+{
+       debug_log("");
+       char *aul_content = NULL;
+       char *aul_mime_type = NULL;
+       char rtype[10] = { 0, };
+
+       int ret = service_get_extra_data(b, AUL_K_MIME_TYPE, &aul_mime_type);   //"__AUL_MIME_TYPE__"
+       debug_log("service_get_extra_data: %d", ret);
+       ret = service_get_extra_data(b, AUL_K_MIME_CONTENT, &aul_content);      //"__AUL_MIME_CONTENT__"
+       debug_log("service_get_extra_data: %d", ret);
+
+       debug_log("mime_type:%s, content:%s", aul_mime_type, aul_content);
+       if (aul_mime_type != NULL && aul_content != NULL) {
+               if (strcmp(aul_mime_type, "email.uri") == 0) {
+                       debug_log("AUL CONTENT OPEN, launch composer");
+                       struct ug_cbs cbs = { 0, };
+
+                       cbs.layout_cb = layout_cb;
+                       cbs.result_cb = result_cb;
+                       cbs.destroy_cb = aul_destroy_cb;
+                       cbs.priv = ad;
+
+                       service_h service = NULL;
+
+                       ret = service_create(&service);
+                       debug_log("service_create: %d", ret);
+                       if (!service) {
+                               debug_log("service create failed");
+                               goto FINISH_MIME_LAUNCH;
+                       }
+
+                       snprintf(rtype, sizeof(rtype), "%d", RUN_COMPOSER_EXTERNAL);
+
+                       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_TO, aul_content);
+                       debug_log("service_add_extra_data: %d", ret);
+
+                       ad->composer_ug = ug_create(NULL, UG_NAME_EMAIL_COMPOSER, UG_MODE_FULLVIEW, service, &cbs);
+
+                       ret = service_destroy(service);
+                       debug_log("service_destroy: %d", ret);
+               } else {
+                       debug_log("Not supported mime type : %s", aul_mime_type);
+               }
+
+FINISH_MIME_LAUNCH:
+               g_free(aul_content);
+               g_free(aul_mime_type);
+               return TRUE;
+       } else {
+               if (aul_content)
+                       g_free(aul_content);
+               if (aul_mime_type)
+                       g_free(aul_mime_type);
+               return FALSE;
+       }
+}
+
+static int check_aul_launch_operation(service_h b, struct appdata *ad)
+{
+       debug_log("");
+
+       char *runtype = NULL;
+       char *account_id = NULL;
+       char *mail_id = NULL;
+       char *mailbox_id = NULL;
+       char *thread_id = NULL;
+       char *to = NULL;
+       char *cc = NULL;
+       char *bcc = NULL;
+       char *subject = NULL;
+       char *body = NULL;
+       char *attachment = NULL;
+
+       int ret = service_get_extra_data(b, EMAIL_BUNDLE_KEY_RUN_TYPE, &runtype);
+       debug_log("service_get_extra_data: %d", ret);
+
+       debug_log("runtype:%s", runtype);
+       if (runtype != NULL) {
+               if (atoi(runtype) == RUN_COMPOSER_EDIT) {
+                       debug_log("RUN_COMPOSER_EDIT");
+                       if (ad->composer_ug) {
+                               debug_log("Composer is already running");
+                               goto FINISH_AUL_LAUNCH;
+                       }
+
+                       ret = service_get_extra_data(b, EMAIL_BUNDLE_KEY_MAILBOX, &mailbox_id);
+                       debug_log("service_get_extra_data: %d", ret);
+                       ret = service_get_extra_data(b, EMAIL_BUNDLE_KEY_MAIL_ID, &mail_id);
+                       debug_log("service_get_extra_data: %d", ret);
+
+                       service_h service = NULL;
+
+                       ret = service_create(&service);
+                       debug_log("service_create: %d", ret);
+                       if (!service) {
+                               debug_log("service create failed");
+                               goto ERROR_AUL_LAUNCH;
+                       }
+
+                       ret = service_add_extra_data(service, EMAIL_BUNDLE_KEY_RUN_TYPE, runtype);
+                       debug_log("service_add_extra_data: %d", ret);
+                       ret = service_add_extra_data(service, EMAIL_BUNDLE_KEY_MAILBOX, mailbox_id);
+                       debug_log("service_add_extra_data: %d", ret);
+                       ret = service_add_extra_data(service, EMAIL_BUNDLE_KEY_MAIL_ID, mail_id);
+                       debug_log("service_add_extra_data: %d", ret);
+
+                       ad->composer_ug = create_ug(UG_NAME_EMAIL_COMPOSER, service, ad);
+
+                       ret = service_destroy(service);
+                       debug_log("service_destroy: %d", ret);
+
+                       goto FINISH_AUL_LAUNCH;
+               }
+
+               else if (atoi(runtype) == RUN_COMPOSER_NEW) {
+                       debug_log("RUN_COMPOSER_NEW");
+                       if (ad->composer_ug) {
+                               debug_log("Composer is already running");
+                               goto FINISH_AUL_LAUNCH;
+                       }
+
+                       int acc_id;
+                       email_engine_get_default_account(&acc_id);
+
+                       service_h service = NULL;
+
+                       ret = service_create(&service);
+                       debug_log("service_create: %d", ret);
+                       if (!service) {
+                               debug_log("service create failed");
+                               goto ERROR_AUL_LAUNCH;
+                       }
+
+                       char s_composer_type[14] = { 0, };
+                       char s_account_id[14] = { 0, };
+                       snprintf(s_composer_type, sizeof(s_composer_type), "%d", RUN_COMPOSER_NEW);
+                       snprintf(s_account_id, sizeof(s_account_id), "%d", acc_id);
+
+                       ret = service_add_extra_data(service, EMAIL_BUNDLE_KEY_RUN_TYPE, s_composer_type);
+                       debug_log("service_add_extra_data: %d", ret);
+                       ret = service_add_extra_data(service, EMAIL_BUNDLE_KEY_ACCOUNT_ID, s_account_id);
+                       debug_log("service_add_extra_data: %d", ret);
+
+                       ad->composer_ug = create_ug(UG_NAME_EMAIL_COMPOSER, service, ad);
+
+                       ret = service_destroy(service);
+                       debug_log("service_destroy: %d", ret);
+
+                       goto FINISH_AUL_LAUNCH;
+               }
+
+               else if (atoi(runtype) == RUN_COMPOSER_EXTERNAL) {
+                       debug_log("RUN_COMPOSER_EXTERNAL");
+                       if (ad->composer_ug) {
+                               debug_log("Composer is already running");
+                               goto FINISH_AUL_LAUNCH;
+                       }
+
+                       ret = service_get_extra_data(b, EMAIL_BUNDLE_KEY_TO, &to);
+                       debug_log("service_get_extra_data: %d", ret);
+                       ret = service_get_extra_data(b, EMAIL_BUNDLE_KEY_CC, &cc);
+                       debug_log("service_get_extra_data: %d", ret);
+                       ret = service_get_extra_data(b, EMAIL_BUNDLE_KEY_BCC, &bcc);
+                       debug_log("service_get_extra_data: %d", ret);
+                       ret = service_get_extra_data(b, EMAIL_BUNDLE_KEY_SUBJECT, &subject);
+                       debug_log("service_get_extra_data: %d", ret);
+                       ret = service_get_extra_data(b, EMAIL_BUNDLE_KEY_BODY, &body);
+                       debug_log("service_get_extra_data: %d", ret);
+                       ret = service_get_extra_data(b, EMAIL_BUNDLE_KEY_ATTACHMENT, &attachment);
+                       debug_log("service_get_extra_data: %d", ret);
+
+                       int acc_id;
+                       email_engine_get_default_account(&acc_id);
+
+                       service_h service = NULL;
+
+                       ret = service_create(&service);
+                       debug_log("service_create: %d", ret);
+                       if (!service) {
+                               debug_log("service create failed");
+                               goto ERROR_AUL_LAUNCH;
+                       }
+
+                       char s_composer_type[14] = { 0, };
+                       char s_account_id[14] = { 0, };
+
+                       snprintf(s_composer_type, sizeof(s_composer_type), "%d", RUN_COMPOSER_EXTERNAL);
+                       snprintf(s_account_id, sizeof(s_account_id), "%d", acc_id);
+
+                       ret = service_add_extra_data(service, EMAIL_BUNDLE_KEY_RUN_TYPE, s_composer_type);
+                       debug_log("service_add_extra_data: %d", ret);
+                       ret = service_add_extra_data(service, EMAIL_BUNDLE_KEY_ACCOUNT_ID, s_account_id);
+                       debug_log("service_add_extra_data: %d", ret);
+                       ret = service_add_extra_data(service, EMAIL_BUNDLE_KEY_TO, to);
+                       debug_log("service_add_extra_data: %d", ret);
+                       ret = service_add_extra_data(service, EMAIL_BUNDLE_KEY_CC, cc);
+                       debug_log("service_add_extra_data: %d", ret);
+                       ret = service_add_extra_data(service, EMAIL_BUNDLE_KEY_BCC, bcc);
+                       debug_log("service_add_extra_data: %d", ret);
+                       ret = service_add_extra_data(service, EMAIL_BUNDLE_KEY_SUBJECT, subject);
+                       debug_log("service_add_extra_data: %d", ret);
+                       ret = service_add_extra_data(service, EMAIL_BUNDLE_KEY_BODY, body);
+                       debug_log("service_add_extra_data: %d", ret);
+                       ret = service_add_extra_data(service, EMAIL_BUNDLE_KEY_ATTACHMENT, attachment);
+                       debug_log("service_add_extra_data: %d", ret);
+
+                       ad->composer_ug = create_ug(UG_NAME_EMAIL_COMPOSER, service, ad);
+
+                       ret = service_destroy(service);
+                       debug_log("service_destroy: %d", ret);
+
+                       goto FINISH_AUL_LAUNCH;
+               }
+
+               else if (atoi(runtype) == RUN_VIEWER) {
+                       debug_log("RUN_VIEWER");
+                       if (ad->viewer_ug) {
+                               debug_log("Viewer is already running");
+                               goto FINISH_AUL_LAUNCH;
+                       }
+
+                       char internal[10] = { 0, };
+
+                       snprintf(internal, sizeof(internal), "%d", 0);
+
+                       ret = service_get_extra_data(b, EMAIL_BUNDLE_KEY_ACCOUNT_ID, &account_id);
+                       debug_log("service_get_extra_data: %d", ret);
+                       ret = service_get_extra_data(b, EMAIL_BUNDLE_KEY_MAIL_ID, &mail_id);
+                       debug_log("service_get_extra_data: %d", ret);
+                       ret = service_get_extra_data(b, EMAIL_BUNDLE_KEY_MAILBOX, &mailbox_id);
+                       debug_log("service_get_extra_data: %d", ret);
+
+                       service_h service = NULL;
+
+                       ret = service_create(&service);
+                       debug_log("service_create: %d", ret);
+                       if (!service) {
+                               debug_log("service create failed");
+                               goto ERROR_AUL_LAUNCH;
+                       }
+
+                       ret = service_add_extra_data(service, EMAIL_BUNDLE_KEY_ACCOUNT_ID, account_id);
+                       debug_log("service_add_extra_data: %d", ret);
+                       ret = service_add_extra_data(service, EMAIL_BUNDLE_KEY_MAIL_ID, mail_id);
+                       debug_log("service_add_extra_data: %d", ret);
+                       ret = service_add_extra_data(service, EMAIL_BUNDLE_KEY_MAILBOX, mailbox_id);
+                       debug_log("service_add_extra_data: %d", ret);
+                       ret = service_add_extra_data(service, EMAIL_BUNDLE_KEY_INTERNAL, internal);
+                       debug_log("service_add_extra_data: %d", ret);
+
+                       ad->viewer_ug = create_ug(UG_NAME_EMAIL_VIEWER, service, ad);
+
+                       ret = service_destroy(service);
+                       debug_log("service_destroy: %d", ret);
+
+                       goto FINISH_AUL_LAUNCH;
+               }
+
+               else if (atoi(runtype) == RUN_MAILBOX_THREAD) {
+                       debug_log("RUN_MAILBOX_THREAD");
+                       if (ad->mailbox_ug) {
+                               debug_log("Mailbox is already running");
+                               goto FINISH_AUL_LAUNCH;
+                       }
+
+                       ret = service_get_extra_data(b, EMAIL_BUNDLE_KEY_THREAD_ID, &thread_id);
+                       debug_log("service_get_extra_data: %d", ret);
+                       debug_log("thread_id: [%d]", atoi(thread_id));
+
+                       service_h service = NULL;
+
+                       ret = service_create(&service);
+                       debug_log("service_create: %d", ret);
+                       if (!service) {
+                               debug_log("service create failed");
+                               goto ERROR_AUL_LAUNCH;
+                       }
+
+                       ret = service_add_extra_data(service, EMAIL_BUNDLE_KEY_THREAD_ID, thread_id);
+                       debug_log("service_add_extra_data: %d", ret);
+
+                       ad->mailbox_ug = create_ug(UG_NAME_EMAIL_MAILBOX, service, ad);
+
+                       ret = service_destroy(service);
+                       debug_log("service_destroy: %d", ret);
+
+                       goto FINISH_AUL_LAUNCH;
+               }
+
+               else if (atoi(runtype) == RUN_SETTING_ACCOUNT_ADD) {
+                       debug_log("RUN_SETTING_ACCOUNT_ADD");
+
+                       gint acct_id = 0;
+                       if (email_engine_get_default_account(&acct_id)) {
+                               debug_log("Default accont is exist");
+                               goto ERROR_AUL_LAUNCH;
+                       }
+
+                       if (ad->setting_ug) {
+                               debug_log("Setting is already running");
+                               goto FINISH_AUL_LAUNCH;
+                       }
+
+                       service_h service = NULL;
+
+                       ret = service_create(&service);
+                       debug_log("service_create: %d", ret);
+                       if (!service) {
+                               debug_log("service create failed");
+                               goto ERROR_AUL_LAUNCH;
+                       }
+
+                       ret = service_add_extra_data(service, EMAIL_BUNDLE_KEY_VIEW_TYPE, EMAIL_BUNDLE_VAL_VIEW_FIRST_SETUP);
+                       debug_log("service_add_extra_data: %d", ret);
+
+                       ad->setting_ug = create_ug(UG_NAME_EMAIL_SETTING, service, ad);
+
+                       ret = service_destroy(service);
+                       debug_log("service_destroy: %d", ret);
+
+                       goto FINISH_AUL_LAUNCH;
+               }
+
+FINISH_AUL_LAUNCH:
+               g_free(runtype);
+               g_free(mailbox_id);
+               g_free(mail_id);
+               g_free(account_id);
+               g_free(thread_id);
+               g_free(to);
+               g_free(cc);
+               g_free(bcc);
+               g_free(subject);
+               g_free(body);
+               g_free(attachment);
+               return TRUE;
+
+ERROR_AUL_LAUNCH:
+               g_free(runtype);
+               g_free(mailbox_id);
+               g_free(mail_id);
+               g_free(account_id);
+               g_free(thread_id);
+               g_free(to);
+               g_free(cc);
+               g_free(bcc);
+               g_free(subject);
+               g_free(body);
+               g_free(attachment);
+               return FALSE;
+       }
+
+       return FALSE;
+}
+
+static void block_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       evas_object_del(obj);
+}
+
+static void popup_block_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+
+       if (obj)
+               evas_object_del(obj);
+
+       elm_exit();
+}
+
+static void popup_response_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       elm_exit();
+}
+
+/* EOF */
diff --git a/main/email.h b/main/email.h
new file mode 100755 (executable)
index 0000000..c90b12c
--- /dev/null
@@ -0,0 +1,26 @@
+/*
+ * Copyright 2012  Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *    http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __DEF_EMAIL_H_
+#define __DEF_EMAIL_H_
+
+#include <Elementary.h>
+
+#include "email-locale.h"
+
+#endif
+
+/* EOF */
diff --git a/main/email.ini b/main/email.ini
new file mode 100755 (executable)
index 0000000..5abbace
--- /dev/null
@@ -0,0 +1,2 @@
+[ProcessSetting]
+BG_SCHEDULE=true
diff --git a/main/org.tizen.email.png b/main/org.tizen.email.png
new file mode 100755 (executable)
index 0000000..2b9edb4
Binary files /dev/null and b/main/org.tizen.email.png differ
diff --git a/main/org.tizen.email.xml b/main/org.tizen.email.xml
new file mode 100755 (executable)
index 0000000..91e9a11
--- /dev/null
@@ -0,0 +1,44 @@
+<manifest xmlns="http://tizen.org/ns/packages" package="org.tizen.email" version="0.0.1" install-location="internal-only">
+       <label>Email</label>
+       <author email="minnsoo.kim@samsung.com" href="www.samsung.com">Minsoo Kim</author>
+       <description>Email Application</description>
+       <ui-application appid="org.tizen.email" exec="/opt/apps/org.tizen.email/bin/email" nodisplay="false" taskmanage="true" multiple="false" type = "capp">
+               <label>Email</label>
+               <icon>org.tizen.email.png</icon>
+               <label xml:lang="en-us">Email</label>
+               <label xml:lang="nl-nl">E-mail</label>
+               <label xml:lang="de-de">E-Mail</label>
+               <label xml:lang="zh-hk">電子郵件</label>
+               <label xml:lang="zh-cn">电子邮件</label>
+               <label xml:lang="ru-ru">E-mail</label>
+               <label xml:lang="zh-tw">電子郵件</label>
+               <label xml:lang="ja-jp">Eメール</label>
+               <label xml:lang="es-es">Email</label>
+               <label xml:lang="el-gr">Email</label>
+               <label xml:lang="it-it">E-mail</label>
+               <label xml:lang="tr-tr">E-posta</label>
+               <label xml:lang="pt-pt">E-mail</label>
+               <label xml:lang="fr-fr">E-mail</label>
+               <label xml:lang="ko-kr">이메일</label>
+               <application-service>
+                       <operation name="http://tizen.org/appcontrol/operation/send"/>
+                       <mime name="*/*"/>
+               </application-service>
+               <application-service>
+                       <operation name="http://tizen.org/appcontrol/operation/send_text"/>
+               </application-service>
+               <application-service>
+                       <operation name="http://tizen.org/appcontrol/operation/send"/>
+                       <uri name="mailto"/>
+               </application-service>
+       </ui-application>
+       <ui-application appid="email-composer-efl" exec="/opt/ug/bin/email-composer-efl" nodisplay="true" multiple="true" type="capp" taskmanage="false">
+               <label>Email composer</label>
+               <application-service>
+                       <mime name="*/*"/>
+               </application-service>
+               <application-service>
+                       <uri name="mailto"/>
+               </application-service>
+       </ui-application>
+</manifest>
index a7fb4ce..23993a8 100755 (executable)
@@ -12,6 +12,7 @@ License:    Flora
 Source0:    %{name}-%{version}.tar.gz
 Requires(post): /usr/bin/vconftool
 BuildRequires:  cmake
+BuildRequires:  libug-contacts-devel
 BuildRequires:  libicu-devel
 BuildRequires:  edje-tools
 BuildRequires:  embryo-bin
@@ -40,10 +41,11 @@ BuildRequires:  pkgconfig(mmutil-jpeg)
 BuildRequires:  pkgconfig(mmutil-imgp)
 BuildRequires:  pkgconfig(libmedia-service)
 BuildRequires:  pkgconfig(libmedia-utils)
+BuildRequires:  pkgconfig(calendar)
 BuildRequires:  pkgconfig(drm-client)
-BuildRequires:  pkgconfig(heynoti)
-BuildRequires:  pkgconfig(syspopup-caller)
 BuildRequires:  pkgconfig(status)
+BuildRequires:  pkgconfig(capi-media-metadata-extractor)
+BuildRequires:  pkgconfig(capi-media-image-util)
 
 
 %description
@@ -69,68 +71,80 @@ rm -rf %{buildroot}
 
 
 %post
-/usr/bin/vconftool set -t int    file/private/com.samsung.email/defaultaccount "1" -g 6514
-/usr/bin/vconftool set -t int    file/private/com.samsung.email/slot_size "50" -g 6514
-/usr/bin/vconftool set -t int    file/private/com.samsung.email/spam_rule_changed "0" -g 6514
-/usr/bin/vconftool set -t int    file/private/com.samsung.email/threadlist "1" -g 6514
-/usr/bin/vconftool set -t string file/private/com.samsung.email/aol_sending_address   "smtp.aol.com" -g 6514
-/usr/bin/vconftool set -t int    file/private/com.samsung.email/aol_sending_port      "587" -g 6514
-/usr/bin/vconftool set -t int    file/private/com.samsung.email/aol_sending_ssl       "0" -g 6514
-/usr/bin/vconftool set -t int    file/private/com.samsung.email/aol_receiving_type    "2" -g 6514
-/usr/bin/vconftool set -t string file/private/com.samsung.email/aol_receiving_address "imap.aol.com" -g 6514
-/usr/bin/vconftool set -t int    file/private/com.samsung.email/aol_receiving_port    "143" -g 6514
-/usr/bin/vconftool set -t int    file/private/com.samsung.email/aol_receiving_ssl     "0" -g 6514
-/usr/bin/vconftool set -t string file/private/com.samsung.email/gmail_sending_address   "smtp.gmail.com" -g 6514
-/usr/bin/vconftool set -t int    file/private/com.samsung.email/gmail_sending_port      "465" -g 6514
-/usr/bin/vconftool set -t int    file/private/com.samsung.email/gmail_sending_ssl       "1" -g 6514
-/usr/bin/vconftool set -t int    file/private/com.samsung.email/gmail_receiving_type    "2" -g 6514
-/usr/bin/vconftool set -t string file/private/com.samsung.email/gmail_receiving_address "imap.gmail.com" -g 6514
-/usr/bin/vconftool set -t int    file/private/com.samsung.email/gmail_receiving_port    "993" -g 6514
-/usr/bin/vconftool set -t int    file/private/com.samsung.email/gmail_receiving_ssl     "1" -g 6514
-/usr/bin/vconftool set -t string file/private/com.samsung.email/yahoo_sending_address   "smtp.mail.yahoo.co.kr" -g 6514
-/usr/bin/vconftool set -t int    file/private/com.samsung.email/yahoo_sending_port      "465" -g 6514
-/usr/bin/vconftool set -t int    file/private/com.samsung.email/yahoo_sending_ssl       "1" -g 6514
-/usr/bin/vconftool set -t int    file/private/com.samsung.email/yahoo_receiving_type    "1" -g 6514
-/usr/bin/vconftool set -t string file/private/com.samsung.email/yahoo_receiving_address "pop.mail.yahoo.co.kr" -g 6514
-/usr/bin/vconftool set -t int    file/private/com.samsung.email/yahoo_receiving_port    "995" -g 6514
-/usr/bin/vconftool set -t int    file/private/com.samsung.email/yahoo_receiving_ssl     "1" -g 6514
-/usr/bin/vconftool set -t string file/private/com.samsung.email/hotmail_sending_address   "smtp.live.com" -g 6514
-/usr/bin/vconftool set -t int    file/private/com.samsung.email/hotmail_sending_port      "587" -g 6514
-/usr/bin/vconftool set -t int    file/private/com.samsung.email/hotmail_sending_ssl       "2" -g 6514
-/usr/bin/vconftool set -t int    file/private/com.samsung.email/hotmail_receiving_type    "1" -g 6514
-/usr/bin/vconftool set -t string file/private/com.samsung.email/hotmail_receiving_address "pop3.live.com" -g 6514
-/usr/bin/vconftool set -t int    file/private/com.samsung.email/hotmail_receiving_port    "995" -g 6514
-/usr/bin/vconftool set -t int    file/private/com.samsung.email/hotmail_receiving_ssl     "1" -g 6514
-/usr/bin/vconftool set -t string file/private/com.samsung.email/samsung_pop3_sending_address   "165.213.73.235" -g 6514
-/usr/bin/vconftool set -t int    file/private/com.samsung.email/samsung_pop3_sending_port      "465" -g 6514
-/usr/bin/vconftool set -t int    file/private/com.samsung.email/samsung_pop3_sending_ssl       "1" -g 6514
-/usr/bin/vconftool set -t int    file/private/com.samsung.email/samsung_pop3_receiving_type    "1" -g 6514
-/usr/bin/vconftool set -t string file/private/com.samsung.email/samsung_pop3_receiving_address "165.213.73.235" -g 6514
-/usr/bin/vconftool set -t int    file/private/com.samsung.email/samsung_pop3_receiving_port    "995" -g 6514
-/usr/bin/vconftool set -t int    file/private/com.samsung.email/samsung_pop3_receiving_ssl     "1" -g 6514
-/usr/bin/vconftool set -t string file/private/com.samsung.email/samsung_imap4_sending_address   "165.213.73.235" -g 6514
-/usr/bin/vconftool set -t int    file/private/com.samsung.email/samsung_imap4_sending_port      "465" -g 6514
-/usr/bin/vconftool set -t int    file/private/com.samsung.email/samsung_imap4_sending_ssl       "1" -g 6514
-/usr/bin/vconftool set -t int    file/private/com.samsung.email/samsung_imap4_receiving_type    "2" -g 6514
-/usr/bin/vconftool set -t string file/private/com.samsung.email/samsung_imap4_receiving_address "165.213.73.235" -g 6514
-/usr/bin/vconftool set -t int    file/private/com.samsung.email/samsung_imap4_receiving_port    "993" -g 6514
-/usr/bin/vconftool set -t int    file/private/com.samsung.email/samsung_imap4_receiving_ssl     "1" -g 6514
+/usr/bin/vconftool set -t int    file/private/org.tizen.email/defaultaccount "1" -g 6514
+/usr/bin/vconftool set -t int    file/private/org.tizen.email/slot_size "50" -g 6514
+/usr/bin/vconftool set -t int    file/private/org.tizen.email/spam_rule_changed "0" -g 6514
+/usr/bin/vconftool set -t int    file/private/org.tizen.email/threadlist "1" -g 6514
+/usr/bin/vconftool set -t string file/private/org.tizen.email/aol_sending_address   "smtp.aol.com" -g 6514
+/usr/bin/vconftool set -t int    file/private/org.tizen.email/aol_sending_port      "587" -g 6514
+/usr/bin/vconftool set -t int    file/private/org.tizen.email/aol_sending_ssl       "0" -g 6514
+/usr/bin/vconftool set -t int    file/private/org.tizen.email/aol_receiving_type    "2" -g 6514
+/usr/bin/vconftool set -t string file/private/org.tizen.email/aol_receiving_address "imap.aol.com" -g 6514
+/usr/bin/vconftool set -t int    file/private/org.tizen.email/aol_receiving_port    "143" -g 6514
+/usr/bin/vconftool set -t int    file/private/org.tizen.email/aol_receiving_ssl     "0" -g 6514
+/usr/bin/vconftool set -t string file/private/org.tizen.email/gmail_sending_address   "smtp.gmail.com" -g 6514
+/usr/bin/vconftool set -t int    file/private/org.tizen.email/gmail_sending_port      "465" -g 6514
+/usr/bin/vconftool set -t int    file/private/org.tizen.email/gmail_sending_ssl       "1" -g 6514
+/usr/bin/vconftool set -t int    file/private/org.tizen.email/gmail_receiving_type    "2" -g 6514
+/usr/bin/vconftool set -t string file/private/org.tizen.email/gmail_receiving_address "imap.gmail.com" -g 6514
+/usr/bin/vconftool set -t int    file/private/org.tizen.email/gmail_receiving_port    "993" -g 6514
+/usr/bin/vconftool set -t int    file/private/org.tizen.email/gmail_receiving_ssl     "1" -g 6514
+/usr/bin/vconftool set -t string file/private/org.tizen.email/yahoo_sending_address   "smtp.mail.yahoo.co.kr" -g 6514
+/usr/bin/vconftool set -t int    file/private/org.tizen.email/yahoo_sending_port      "465" -g 6514
+/usr/bin/vconftool set -t int    file/private/org.tizen.email/yahoo_sending_ssl       "1" -g 6514
+/usr/bin/vconftool set -t int    file/private/org.tizen.email/yahoo_receiving_type    "1" -g 6514
+/usr/bin/vconftool set -t string file/private/org.tizen.email/yahoo_receiving_address "pop.mail.yahoo.co.kr" -g 6514
+/usr/bin/vconftool set -t int    file/private/org.tizen.email/yahoo_receiving_port    "995" -g 6514
+/usr/bin/vconftool set -t int    file/private/org.tizen.email/yahoo_receiving_ssl     "1" -g 6514
+/usr/bin/vconftool set -t string file/private/org.tizen.email/hotmail_sending_address   "smtp.live.com" -g 6514
+/usr/bin/vconftool set -t int    file/private/org.tizen.email/hotmail_sending_port      "587" -g 6514
+/usr/bin/vconftool set -t int    file/private/org.tizen.email/hotmail_sending_ssl       "2" -g 6514
+/usr/bin/vconftool set -t int    file/private/org.tizen.email/hotmail_receiving_type    "1" -g 6514
+/usr/bin/vconftool set -t string file/private/org.tizen.email/hotmail_receiving_address "pop3.live.com" -g 6514
+/usr/bin/vconftool set -t int    file/private/org.tizen.email/hotmail_receiving_port    "995" -g 6514
+/usr/bin/vconftool set -t int    file/private/org.tizen.email/hotmail_receiving_ssl     "1" -g 6514
+/usr/bin/vconftool set -t string file/private/org.tizen.email/samsung_pop3_sending_address   "165.213.73.235" -g 6514
+/usr/bin/vconftool set -t int    file/private/org.tizen.email/samsung_pop3_sending_port      "465" -g 6514
+/usr/bin/vconftool set -t int    file/private/org.tizen.email/samsung_pop3_sending_ssl       "1" -g 6514
+/usr/bin/vconftool set -t int    file/private/org.tizen.email/samsung_pop3_receiving_type    "1" -g 6514
+/usr/bin/vconftool set -t string file/private/org.tizen.email/samsung_pop3_receiving_address "165.213.73.235" -g 6514
+/usr/bin/vconftool set -t int    file/private/org.tizen.email/samsung_pop3_receiving_port    "995" -g 6514
+/usr/bin/vconftool set -t int    file/private/org.tizen.email/samsung_pop3_receiving_ssl     "1" -g 6514
+/usr/bin/vconftool set -t string file/private/org.tizen.email/samsung_imap4_sending_address   "165.213.73.235" -g 6514
+/usr/bin/vconftool set -t int    file/private/org.tizen.email/samsung_imap4_sending_port      "465" -g 6514
+/usr/bin/vconftool set -t int    file/private/org.tizen.email/samsung_imap4_sending_ssl       "1" -g 6514
+/usr/bin/vconftool set -t int    file/private/org.tizen.email/samsung_imap4_receiving_type    "2" -g 6514
+/usr/bin/vconftool set -t string file/private/org.tizen.email/samsung_imap4_receiving_address "165.213.73.235" -g 6514
+/usr/bin/vconftool set -t int    file/private/org.tizen.email/samsung_imap4_receiving_port    "993" -g 6514
+/usr/bin/vconftool set -t int    file/private/org.tizen.email/samsung_imap4_receiving_ssl     "1" -g 6514
 
 chown -R 5000:5000 /opt/apps/org.tizen.email/data
 
 mkdir -p /opt/ug/bin/
 ln -sf /usr/bin/ug-client /opt/ug/bin/email-composer-efl
 
+
 %files
 %defattr(-,root,root,-)
+%exclude %{_datadir}/process-info/email.ini
 %{_appdir}/org.tizen.email/lib/libemail-common.so
-%{_ugdir}/lib/libug-email-setting-efl.so
 %{_ugdir}/lib/libug-email-composer-efl.so
-%{_ugdir}/res/locale/*/LC_MESSAGES/*
+%{_ugdir}/lib/libug-email-viewer-efl.so
+%{_ugdir}/lib/libug-email-account-efl.so
+%{_ugdir}/lib/libug-email-block-efl.so
+%{_ugdir}/lib/libug-email-mailbox-efl.so
+%{_ugdir}/lib/libug-email-setting-efl.so
+%{_appdir}/org.tizen.email/res/edje/email-viewer-theme.edj
 %{_appdir}/org.tizen.email/res/edje/email-setting-theme.edj
+%{_appdir}/org.tizen.email/res/edje/email-block-theme.edj
+%{_appdir}/org.tizen.email/res/edje/email-account-theme.edj
+%{_appdir}/org.tizen.email/res/edje/email-effect-layout.edj
 %{_appdir}/org.tizen.email/res/edje/email-composer-view.edj
+%{_appdir}/org.tizen.email/res/edje/email-mailbox-theme.edj
 %{_appdir}/org.tizen.email/res/locale/*/LC_MESSAGES/*
 %{_appdir}/org.tizen.email/res/images/*
+%{_appdir}/org.tizen.email/bin/email
 %{_appdir}/org.tizen.email/data/_email_default.html
+%{_optdir}/share/packages/org.tizen.email.xml
 %{_optdir}/share/packages/ug-email-composer-efl.xml
 %{_optdir}/share/icons/default/small/org.tizen.email.png
index d5434c9..d1723e1 100755 (executable)
@@ -1,6 +1,6 @@
 # for i18n
 
-SET(POFILES en.po nl_NL.po de_DE.po zh_HK.po zh_CN.po ru_RU.po ko_KR.po zh_TW.po ja_JP.po es_ES.po el_GR.po it_IT.po tr_TR.po pt_PT.po fr_FR.po ar.po bg.po ca.po cs.po da.po en_US.po fi.po hi.po hr.po hu.po lt.po lv.po pl.po ro.po sk.po sl.po sr.po sv.po uk.po az.po en_PH.po es_US.po et.po eu.po fr_CA.po ga.po gl.po hy.po is.po ka.po kk.po mk.po pt_BR.po zh_SG.po)
+SET(POFILES en.po nl_NL.po de_DE.po zh_HK.po zh_CN.po ru_RU.po ko_KR.po zh_TW.po ja_JP.po es_ES.po el_GR.po it_IT.po tr_TR.po pt_PT.po fr_FR.po ar.po bg.po ca.po cs.po da.po en_US.po fi.po hi.po hr.po hu.po lt.po lv.po pl.po ro.po sk.po sl.po sr.po sv.po uk.po az.po en_PH.po es_US.po et.po eu.po fr_CA.po ga.po gl.po hy.po is.po ka.po kk.po mk.po pt_BR.po zh_SG.po nb.po uz.po)
 #he.po id.po ms.po no.po th.po vi.po
 
 SET(MSGFMT "/usr/bin/msgfmt")
@@ -19,9 +19,6 @@ FOREACH(pofile ${POFILES})
        INSTALL(FILES ${moFile}
                        DESTINATION ${LOCALEDIR}/${lang}/LC_MESSAGES RENAME email.mo)
 
-       INSTALL(FILES ${moFile}
-                       DESTINATION /opt/ug/res/locale/${lang}/LC_MESSAGES RENAME email.mo)
-
        SET(moFiles ${moFiles} ${moFile})
 ENDFOREACH(pofile)
 
index 33e202b..122ddd8 100755 (executable)
--- a/po/ar.po
+++ b/po/ar.po
@@ -1390,3 +1390,60 @@ msgstr "كل d% دقائق"
 msgid "IDS_EMAIL_BODY_ADD_ADDRESS"
 msgstr "إضافة عنوان"
 
+msgid "IDS_EMAIL_BODY_NEW_EMAIL"
+msgstr "بريد إلكتروني جديد"
+
+msgid "IDS_EMAIL_HEADER_SELECT_FOLDER_ABB"
+msgstr "تحديد مجلد"
+
+msgid "IDS_EMAIL_BODY_CAPTURE_VIDEO"
+msgstr "التقاط فيديو"
+
+msgid "IDS_EMAIL_BODY_MOVE_TO_TO"
+msgstr "نقل لـ إلى"
+
+msgid "IDS_EMAIL_HEADER_SELECT_EMAIL_ADDRESS"
+msgstr "تحديد عنوان بريد إلكتروني"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_SEARCH"
+msgstr "يتعذر البحث"
+
+msgid "IDS_EMAIL_OPT_READ"
+msgstr "المقروءة"
+
+msgid "IDS_EMAIL_POP_DOUBLE_TAP_TO_GO_TO_THE_TOP_OF_CONTACTS_LISTS_EMAIL_LISTS_AND_EMAIL_MESSAGES"
+msgstr "انقر نقرا مزدوجا للانتقال إلى أعلى قوائم جهات الاتصال وقوائم البريد الإلكتروني ورسائل البريد الإلكتروني"
+
+msgid "IDS_EMAIL_OPT_EDIT_RESPONSE_BEFORE_SENDING"
+msgstr "تعديل الرد قبل الإرسال"
+
+msgid "IDS_EMAIL_OPT_SEND_RESPONSE_NOW"
+msgstr "إرسال الرد الآن"
+
+msgid "IDS_EMAIL_OPT_DO_NOT_SEND_RESPONSE"
+msgstr "عدم إرسال الرد"
+
+msgid "IDS_EMAIL_BUTTON_VERIFY_SIGNATURE"
+msgstr "التحقق من التوقيع"
+
+msgid "IDS_EMAIL_HEADER_VERIFY_SIGNATURE_HEADER"
+msgstr "التحقق من التوقيع"
+
+msgid "IDS_EMAIL_BODY_UNABLE_TO_VERIFY_SIGNATURE_PUBLIC_KEY_IS_NOT_INSTALLED"
+msgstr "يتعذر التحقق من التوقيع. لم يتم تثبيت المفتاح العام"
+
+msgid "IDS_EMAIL_POP_THE_DIGITAL_SIGNATURE_ON_THIS_MESSAGE_IS_VALID_AND_TRUSTED"
+msgstr "التوقيع الرقمي الموجود في هذه الرسالة صالح وموثوق به"
+
+msgid "IDS_EMAIL_BUTTON_DECRYPT_MESSAGE"
+msgstr "فك تشفير الرسالة"
+
+msgid "IDS_EMAIL_OPT_SAVE_EMAIL_ABB"
+msgstr "حفظ بريد إلكتروني"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_CREATE_FOLDER"
+msgstr "غير قادر على إنشاء مجلد"
+
+msgid "IDS_EMAIL_BUTTON_TAKE_PICTURE"
+msgstr "التقاط صورة"
+
index ff354c0..ea78793 100755 (executable)
--- a/po/az.po
+++ b/po/az.po
@@ -1390,3 +1390,60 @@ msgstr "Hər %d dəqiqədən"
 msgid "IDS_EMAIL_BODY_ADD_ADDRESS"
 msgstr "Ünvan əlavə edin"
 
+msgid "IDS_EMAIL_BODY_NEW_EMAIL"
+msgstr "Yeni epoçt"
+
+msgid "IDS_EMAIL_HEADER_SELECT_FOLDER_ABB"
+msgstr "Qovluq seç"
+
+msgid "IDS_EMAIL_BODY_CAPTURE_VIDEO"
+msgstr "Video yaz"
+
+msgid "IDS_EMAIL_BODY_MOVE_TO_TO"
+msgstr "Kimə sahəsinə keç"
+
+msgid "IDS_EMAIL_HEADER_SELECT_EMAIL_ADDRESS"
+msgstr "E-poçt ünvanını seç"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_SEARCH"
+msgstr "Axtarış mümkün deyil"
+
+msgid "IDS_EMAIL_OPT_READ"
+msgstr "Oxu"
+
+msgid "IDS_EMAIL_POP_DOUBLE_TAP_TO_GO_TO_THE_TOP_OF_CONTACTS_LISTS_EMAIL_LISTS_AND_EMAIL_MESSAGES"
+msgstr "Kontakt siyahılarının, e-poçt siyahılarının və mesajların yuxarısına keçmək üçün iki dəfə vurun"
+
+msgid "IDS_EMAIL_OPT_EDIT_RESPONSE_BEFORE_SENDING"
+msgstr "Göndərməzdən əvvəl cavabı redaktə et"
+
+msgid "IDS_EMAIL_OPT_SEND_RESPONSE_NOW"
+msgstr "Cavabı indi göndər"
+
+msgid "IDS_EMAIL_OPT_DO_NOT_SEND_RESPONSE"
+msgstr "Cavab göndərmə"
+
+msgid "IDS_EMAIL_BUTTON_VERIFY_SIGNATURE"
+msgstr "İmzanı yoxla"
+
+msgid "IDS_EMAIL_HEADER_VERIFY_SIGNATURE_HEADER"
+msgstr "İmzanı yoxla"
+
+msgid "IDS_EMAIL_BODY_UNABLE_TO_VERIFY_SIGNATURE_PUBLIC_KEY_IS_NOT_INSTALLED"
+msgstr "İmzanı yoxlamaq mümkün deyil. Ümumi açar quraşdırılmayıb"
+
+msgid "IDS_EMAIL_POP_THE_DIGITAL_SIGNATURE_ON_THIS_MESSAGE_IS_VALID_AND_TRUSTED"
+msgstr "Bu mesajın rəqəmsal imzası etibarlı və doğrudur"
+
+msgid "IDS_EMAIL_BUTTON_DECRYPT_MESSAGE"
+msgstr "Mesajı şifrlə"
+
+msgid "IDS_EMAIL_OPT_SAVE_EMAIL_ABB"
+msgstr "E-poçtu saxla"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_CREATE_FOLDER"
+msgstr "Qovluq yaratmaq olmur"
+
+msgid "IDS_EMAIL_BUTTON_TAKE_PICTURE"
+msgstr "Şəkil çək"
+
index 168339b..6476132 100755 (executable)
--- a/po/bg.po
+++ b/po/bg.po
@@ -1390,3 +1390,60 @@ msgstr "През %d минути"
 msgid "IDS_EMAIL_BODY_ADD_ADDRESS"
 msgstr "Добавяне на адрес"
 
+msgid "IDS_EMAIL_BODY_NEW_EMAIL"
+msgstr "Нов имейл"
+
+msgid "IDS_EMAIL_HEADER_SELECT_FOLDER_ABB"
+msgstr "Изберете папка"
+
+msgid "IDS_EMAIL_BODY_CAPTURE_VIDEO"
+msgstr "Запис на видео"
+
+msgid "IDS_EMAIL_BODY_MOVE_TO_TO"
+msgstr "Преместване в До"
+
+msgid "IDS_EMAIL_HEADER_SELECT_EMAIL_ADDRESS"
+msgstr "Избор на email адрес"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_SEARCH"
+msgstr "Не може да се търси"
+
+msgid "IDS_EMAIL_OPT_READ"
+msgstr "Прочетено"
+
+msgid "IDS_EMAIL_POP_DOUBLE_TAP_TO_GO_TO_THE_TOP_OF_CONTACTS_LISTS_EMAIL_LISTS_AND_EMAIL_MESSAGES"
+msgstr "Чукнете двукратно, за да отидете в горната част на списъците със записи, списъците с имейли и имейл съобщенията"
+
+msgid "IDS_EMAIL_OPT_EDIT_RESPONSE_BEFORE_SENDING"
+msgstr "Редактиране на отговор преди изпращане"
+
+msgid "IDS_EMAIL_OPT_SEND_RESPONSE_NOW"
+msgstr "Изпращане на отговор сега"
+
+msgid "IDS_EMAIL_OPT_DO_NOT_SEND_RESPONSE"
+msgstr "Не изпращай отговор"
+
+msgid "IDS_EMAIL_BUTTON_VERIFY_SIGNATURE"
+msgstr "Потвържд. подпис"
+
+msgid "IDS_EMAIL_HEADER_VERIFY_SIGNATURE_HEADER"
+msgstr "Потвърждаване на подпис"
+
+msgid "IDS_EMAIL_BODY_UNABLE_TO_VERIFY_SIGNATURE_PUBLIC_KEY_IS_NOT_INSTALLED"
+msgstr "Подписът не може да бъде проверен. Няма инсталиран публичен ключ"
+
+msgid "IDS_EMAIL_POP_THE_DIGITAL_SIGNATURE_ON_THIS_MESSAGE_IS_VALID_AND_TRUSTED"
+msgstr "Цифровият подпис на това съобщение е валиден и е надежден"
+
+msgid "IDS_EMAIL_BUTTON_DECRYPT_MESSAGE"
+msgstr "Дешифров. на съобщ."
+
+msgid "IDS_EMAIL_OPT_SAVE_EMAIL_ABB"
+msgstr "Записване на имейл"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_CREATE_FOLDER"
+msgstr "Не може да се създаде папка"
+
+msgid "IDS_EMAIL_BUTTON_TAKE_PICTURE"
+msgstr "Направи снимка"
+
index a6e6059..423ff8f 100755 (executable)
--- a/po/ca.po
+++ b/po/ca.po
@@ -1390,3 +1390,60 @@ msgstr "Cada %d minuts"
 msgid "IDS_EMAIL_BODY_ADD_ADDRESS"
 msgstr "Afegir adreça"
 
+msgid "IDS_EMAIL_BODY_NEW_EMAIL"
+msgstr "Nou correu electrònic"
+
+msgid "IDS_EMAIL_HEADER_SELECT_FOLDER_ABB"
+msgstr "Seleccioni carpeta"
+
+msgid "IDS_EMAIL_BODY_CAPTURE_VIDEO"
+msgstr "Capturar vídeo"
+
+msgid "IDS_EMAIL_BODY_MOVE_TO_TO"
+msgstr "Moure a Per a"
+
+msgid "IDS_EMAIL_HEADER_SELECT_EMAIL_ADDRESS"
+msgstr "Seleccionar adreça de correu electrònic"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_SEARCH"
+msgstr "Error de cerca"
+
+msgid "IDS_EMAIL_OPT_READ"
+msgstr "Llegir"
+
+msgid "IDS_EMAIL_POP_DOUBLE_TAP_TO_GO_TO_THE_TOP_OF_CONTACTS_LISTS_EMAIL_LISTS_AND_EMAIL_MESSAGES"
+msgstr "Toqui dos cops per anar al principi de la llista de contactes, la llista de correus electrònics i els missatges de correu electrònic"
+
+msgid "IDS_EMAIL_OPT_EDIT_RESPONSE_BEFORE_SENDING"
+msgstr "Editar la resposta abans d'enviar"
+
+msgid "IDS_EMAIL_OPT_SEND_RESPONSE_NOW"
+msgstr "Enviar resposta ara"
+
+msgid "IDS_EMAIL_OPT_DO_NOT_SEND_RESPONSE"
+msgstr "No enviar resposta"
+
+msgid "IDS_EMAIL_BUTTON_VERIFY_SIGNATURE"
+msgstr "Verifiqui signatura"
+
+msgid "IDS_EMAIL_HEADER_VERIFY_SIGNATURE_HEADER"
+msgstr "Verifiqui la signatura"
+
+msgid "IDS_EMAIL_BODY_UNABLE_TO_VERIFY_SIGNATURE_PUBLIC_KEY_IS_NOT_INSTALLED"
+msgstr "Error en verificar la signatura. La clau pública no està instal·lada"
+
+msgid "IDS_EMAIL_POP_THE_DIGITAL_SIGNATURE_ON_THIS_MESSAGE_IS_VALID_AND_TRUSTED"
+msgstr "La signatura digital d'aquest missatge és vàlida i de confiança"
+
+msgid "IDS_EMAIL_BUTTON_DECRYPT_MESSAGE"
+msgstr "Desxifrar missatge"
+
+msgid "IDS_EMAIL_OPT_SAVE_EMAIL_ABB"
+msgstr "Desar correu elect"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_CREATE_FOLDER"
+msgstr "No es pot crear la carpeta"
+
+msgid "IDS_EMAIL_BUTTON_TAKE_PICTURE"
+msgstr "Fer foto"
+
index 1ac934e..53cb363 100755 (executable)
--- a/po/cs.po
+++ b/po/cs.po
@@ -1390,3 +1390,60 @@ msgstr "Každých %d minut"
 msgid "IDS_EMAIL_BODY_ADD_ADDRESS"
 msgstr "Přidat adresu"
 
+msgid "IDS_EMAIL_BODY_NEW_EMAIL"
+msgstr "Nový e-mail"
+
+msgid "IDS_EMAIL_HEADER_SELECT_FOLDER_ABB"
+msgstr "Vybrat složku"
+
+msgid "IDS_EMAIL_BODY_CAPTURE_VIDEO"
+msgstr "Nahrávání videoklipů"
+
+msgid "IDS_EMAIL_BODY_MOVE_TO_TO"
+msgstr "Přesunout do Komu"
+
+msgid "IDS_EMAIL_HEADER_SELECT_EMAIL_ADDRESS"
+msgstr "Vybrat e-mailovou adresu"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_SEARCH"
+msgstr "Chyba vyhledávání"
+
+msgid "IDS_EMAIL_OPT_READ"
+msgstr "Přečteno"
+
+msgid "IDS_EMAIL_POP_DOUBLE_TAP_TO_GO_TO_THE_TOP_OF_CONTACTS_LISTS_EMAIL_LISTS_AND_EMAIL_MESSAGES"
+msgstr "Poklepáním přejdete na začátek seznamů kontaktů, seznamů e-mailů a e-mailových zpráv"
+
+msgid "IDS_EMAIL_OPT_EDIT_RESPONSE_BEFORE_SENDING"
+msgstr "Upravit odpověď před odesláním"
+
+msgid "IDS_EMAIL_OPT_SEND_RESPONSE_NOW"
+msgstr "Odeslat odpověď"
+
+msgid "IDS_EMAIL_OPT_DO_NOT_SEND_RESPONSE"
+msgstr "Neodeslat odpověď"
+
+msgid "IDS_EMAIL_BUTTON_VERIFY_SIGNATURE"
+msgstr "Ověřit podpis"
+
+msgid "IDS_EMAIL_HEADER_VERIFY_SIGNATURE_HEADER"
+msgstr "Ověřit podpis"
+
+msgid "IDS_EMAIL_BODY_UNABLE_TO_VERIFY_SIGNATURE_PUBLIC_KEY_IS_NOT_INSTALLED"
+msgstr "Podpis nelze ověřit. Veřejný klíč není nainstalován"
+
+msgid "IDS_EMAIL_POP_THE_DIGITAL_SIGNATURE_ON_THIS_MESSAGE_IS_VALID_AND_TRUSTED"
+msgstr "Digitální podpis této zprávy je platný a důvěryhodný"
+
+msgid "IDS_EMAIL_BUTTON_DECRYPT_MESSAGE"
+msgstr "Dešifrovat zprávu"
+
+msgid "IDS_EMAIL_OPT_SAVE_EMAIL_ABB"
+msgstr "Uložit e-mail"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_CREATE_FOLDER"
+msgstr "Složku nelze vytvořit"
+
+msgid "IDS_EMAIL_BUTTON_TAKE_PICTURE"
+msgstr "Vyfotografovat"
+
index e4c0c11..cd47f5d 100755 (executable)
--- a/po/da.po
+++ b/po/da.po
@@ -590,7 +590,7 @@ msgid "IDS_EMAIL_OPT_SIGN"
 msgstr "Signatur"
 
 msgid "IDS_EMAIL_OPT_ENCRYPT"
-msgstr "Krypter"
+msgstr "Kryptér"
 
 msgid "IDS_EMAIL_POP_AUTHENTICATION_FAILED"
 msgstr "Godkendelse mislykkedes"
@@ -1310,13 +1310,13 @@ msgid "IDS_EMAIL_POP_CERTIFICATE_DOES_NOT_MATCH_EMAIL_ADDRESS"
 msgstr "Certifikat stemmer ikke overens med e-mail-adresse"
 
 msgid "IDS_EMAIL_BODY_ENCRYPT"
-msgstr "Krypter"
+msgstr "Kryptér"
 
 msgid "IDS_EMAIL_BODY_SIGN"
 msgstr "Signatur"
 
 msgid "IDS_EMAIL_POP_DECRYPTING_MESSAGE_ING"
-msgstr "Dekrypterer meddelelse..."
+msgstr "Dekrypterer meddelelse ..."
 
 msgid "IDS_EMAIL_BODY_1_MONTH_AGO"
 msgstr "1 måned siden"
@@ -1390,3 +1390,60 @@ msgstr "Hvert %d minut"
 msgid "IDS_EMAIL_BODY_ADD_ADDRESS"
 msgstr "Tilføj adresse"
 
+msgid "IDS_EMAIL_BODY_NEW_EMAIL"
+msgstr "Ny e-mail"
+
+msgid "IDS_EMAIL_HEADER_SELECT_FOLDER_ABB"
+msgstr "Vælg mappe"
+
+msgid "IDS_EMAIL_BODY_CAPTURE_VIDEO"
+msgstr "Optag video"
+
+msgid "IDS_EMAIL_BODY_MOVE_TO_TO"
+msgstr "Flyt til Til"
+
+msgid "IDS_EMAIL_HEADER_SELECT_EMAIL_ADDRESS"
+msgstr "Vælg e-mail-adresse"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_SEARCH"
+msgstr "Kan ikke søge"
+
+msgid "IDS_EMAIL_OPT_READ"
+msgstr "Læs"
+
+msgid "IDS_EMAIL_POP_DOUBLE_TAP_TO_GO_TO_THE_TOP_OF_CONTACTS_LISTS_EMAIL_LISTS_AND_EMAIL_MESSAGES"
+msgstr "Tap to gange for at gå til toppen af listen over kontakter, liste over e-mails og e-mail-meddelelser"
+
+msgid "IDS_EMAIL_OPT_EDIT_RESPONSE_BEFORE_SENDING"
+msgstr "Rediger svar før afsendelse"
+
+msgid "IDS_EMAIL_OPT_SEND_RESPONSE_NOW"
+msgstr "Send svar nu"
+
+msgid "IDS_EMAIL_OPT_DO_NOT_SEND_RESPONSE"
+msgstr "Send ikke svar"
+
+msgid "IDS_EMAIL_BUTTON_VERIFY_SIGNATURE"
+msgstr "Godkend signatur"
+
+msgid "IDS_EMAIL_HEADER_VERIFY_SIGNATURE_HEADER"
+msgstr "Godkend signatur"
+
+msgid "IDS_EMAIL_BODY_UNABLE_TO_VERIFY_SIGNATURE_PUBLIC_KEY_IS_NOT_INSTALLED"
+msgstr "Kunne ikke bekræfte signatur. Offentlig nøgle er ikke installeret"
+
+msgid "IDS_EMAIL_POP_THE_DIGITAL_SIGNATURE_ON_THIS_MESSAGE_IS_VALID_AND_TRUSTED"
+msgstr "Den digitale signatur på denne meddelelse er gyldig og er troværdig"
+
+msgid "IDS_EMAIL_BUTTON_DECRYPT_MESSAGE"
+msgstr "Dekryptér besked"
+
+msgid "IDS_EMAIL_OPT_SAVE_EMAIL_ABB"
+msgstr "Gem e-mail"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_CREATE_FOLDER"
+msgstr "Kunne ikke oprette mappe"
+
+msgid "IDS_EMAIL_BUTTON_TAKE_PICTURE"
+msgstr "Tag billede"
+
index 7f6c84e..9d464cd 100755 (executable)
@@ -1390,3 +1390,60 @@ msgstr "Alle %d Minuten"
 msgid "IDS_EMAIL_BODY_ADD_ADDRESS"
 msgstr "Adresse hinzufügen"
 
+msgid "IDS_EMAIL_BODY_NEW_EMAIL"
+msgstr "Neue E-Mail"
+
+msgid "IDS_EMAIL_HEADER_SELECT_FOLDER_ABB"
+msgstr "Ordner auswählen"
+
+msgid "IDS_EMAIL_BODY_CAPTURE_VIDEO"
+msgstr "Video aufnehmen"
+
+msgid "IDS_EMAIL_BODY_MOVE_TO_TO"
+msgstr "In 'An' verschieben"
+
+msgid "IDS_EMAIL_HEADER_SELECT_EMAIL_ADDRESS"
+msgstr "Wählen Sie eine E-Mail-Adresse aus"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_SEARCH"
+msgstr "Suche nicht möglich"
+
+msgid "IDS_EMAIL_OPT_READ"
+msgstr "Gelesen"
+
+msgid "IDS_EMAIL_POP_DOUBLE_TAP_TO_GO_TO_THE_TOP_OF_CONTACTS_LISTS_EMAIL_LISTS_AND_EMAIL_MESSAGES"
+msgstr "Tippen Sie zweimal, um zum Anfang der Kontakt-, E-Mail-Liste und der E-Mails zu gelangen."
+
+msgid "IDS_EMAIL_OPT_EDIT_RESPONSE_BEFORE_SENDING"
+msgstr "Antwort vor dem Senden bearbeiten"
+
+msgid "IDS_EMAIL_OPT_SEND_RESPONSE_NOW"
+msgstr "Antwort jetzt senden"
+
+msgid "IDS_EMAIL_OPT_DO_NOT_SEND_RESPONSE"
+msgstr "Antwort nicht senden"
+
+msgid "IDS_EMAIL_BUTTON_VERIFY_SIGNATURE"
+msgstr "Signatur überprüfen"
+
+msgid "IDS_EMAIL_HEADER_VERIFY_SIGNATURE_HEADER"
+msgstr "Signatur überprüfen"
+
+msgid "IDS_EMAIL_BODY_UNABLE_TO_VERIFY_SIGNATURE_PUBLIC_KEY_IS_NOT_INSTALLED"
+msgstr "Die Signatur kann nicht überprüft werden. Kein öffentlicher Schlüssel installiert."
+
+msgid "IDS_EMAIL_POP_THE_DIGITAL_SIGNATURE_ON_THIS_MESSAGE_IS_VALID_AND_TRUSTED"
+msgstr "Die digitale Signatur dieser Nachricht ist gültig und vertrauenswürdig."
+
+msgid "IDS_EMAIL_BUTTON_DECRYPT_MESSAGE"
+msgstr "Nachricht entschl."
+
+msgid "IDS_EMAIL_OPT_SAVE_EMAIL_ABB"
+msgstr "E-Mail speichern"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_CREATE_FOLDER"
+msgstr "Ordner kann nicht erstellt werden"
+
+msgid "IDS_EMAIL_BUTTON_TAKE_PICTURE"
+msgstr "Foto aufnehmen"
+
index 835bd7d..b8c6824 100755 (executable)
@@ -1390,3 +1390,60 @@ msgstr "Κάθε %d λεπτά"
 msgid "IDS_EMAIL_BODY_ADD_ADDRESS"
 msgstr "Προσθήκη διεύθυνσης"
 
+msgid "IDS_EMAIL_BODY_NEW_EMAIL"
+msgstr "Νέο email"
+
+msgid "IDS_EMAIL_HEADER_SELECT_FOLDER_ABB"
+msgstr "Επιλογή φακέλου"
+
+msgid "IDS_EMAIL_BODY_CAPTURE_VIDEO"
+msgstr "Λήψη βίντεο"
+
+msgid "IDS_EMAIL_BODY_MOVE_TO_TO"
+msgstr "Μετακίνηση σε Προς"
+
+msgid "IDS_EMAIL_HEADER_SELECT_EMAIL_ADDRESS"
+msgstr "Επιλογή διεύθυνσης email"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_SEARCH"
+msgstr "Δεν είναι δυνατή η αναζήτηση"
+
+msgid "IDS_EMAIL_OPT_READ"
+msgstr "Ανάγνωση"
+
+msgid "IDS_EMAIL_POP_DOUBLE_TAP_TO_GO_TO_THE_TOP_OF_CONTACTS_LISTS_EMAIL_LISTS_AND_EMAIL_MESSAGES"
+msgstr "Μεταβείτε στην κορυφή της λίστας επαφών, της λίστας email και των μηνυμάτων email με διπλό πάτημα"
+
+msgid "IDS_EMAIL_OPT_EDIT_RESPONSE_BEFORE_SENDING"
+msgstr "Επεξεργασία απάντησης πριν από την αποστολή"
+
+msgid "IDS_EMAIL_OPT_SEND_RESPONSE_NOW"
+msgstr "Αποστολή απάντησης τώρα"
+
+msgid "IDS_EMAIL_OPT_DO_NOT_SEND_RESPONSE"
+msgstr "Να μην γίνει αποστολή της απάντησης"
+
+msgid "IDS_EMAIL_BUTTON_VERIFY_SIGNATURE"
+msgstr "Επαλήθευση υπογραφής"
+
+msgid "IDS_EMAIL_HEADER_VERIFY_SIGNATURE_HEADER"
+msgstr "Επαλήθευση υπογραφής"
+
+msgid "IDS_EMAIL_BODY_UNABLE_TO_VERIFY_SIGNATURE_PUBLIC_KEY_IS_NOT_INSTALLED"
+msgstr "Δεν είναι δυνατή η επαλήθευση υπογραφής, Δεν έχει εγκατασταθεί δημόσιο κλειδί"
+
+msgid "IDS_EMAIL_POP_THE_DIGITAL_SIGNATURE_ON_THIS_MESSAGE_IS_VALID_AND_TRUSTED"
+msgstr "Η ψηφιακή υπογραφή αυτού του μηνύματος είναι έγκυρη και αξιόπιστη"
+
+msgid "IDS_EMAIL_BUTTON_DECRYPT_MESSAGE"
+msgstr "Αποκρυπτ. μηνύματος"
+
+msgid "IDS_EMAIL_OPT_SAVE_EMAIL_ABB"
+msgstr "Αποθήκευση email"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_CREATE_FOLDER"
+msgstr "Δεν είναι δυνατή η δημιουργία φακέλου"
+
+msgid "IDS_EMAIL_BUTTON_TAKE_PICTURE"
+msgstr "Λήψη φωτογραφίας"
+
index 0bb687d..f6a353b 100755 (executable)
--- a/po/en.po
+++ b/po/en.po
@@ -1390,3 +1390,60 @@ msgstr "Every %d minutes"
 msgid "IDS_EMAIL_BODY_ADD_ADDRESS"
 msgstr "Add address"
 
+msgid "IDS_EMAIL_BODY_NEW_EMAIL"
+msgstr "New email"
+
+msgid "IDS_EMAIL_HEADER_SELECT_FOLDER_ABB"
+msgstr "Select folder"
+
+msgid "IDS_EMAIL_BODY_CAPTURE_VIDEO"
+msgstr "Capture video"
+
+msgid "IDS_EMAIL_BODY_MOVE_TO_TO"
+msgstr "Move to To"
+
+msgid "IDS_EMAIL_HEADER_SELECT_EMAIL_ADDRESS"
+msgstr "Select email address"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_SEARCH"
+msgstr "Unable to search"
+
+msgid "IDS_EMAIL_OPT_READ"
+msgstr "Read"
+
+msgid "IDS_EMAIL_POP_DOUBLE_TAP_TO_GO_TO_THE_TOP_OF_CONTACTS_LISTS_EMAIL_LISTS_AND_EMAIL_MESSAGES"
+msgstr "Double tap to go to the top of contacts lists, email lists and email messages"
+
+msgid "IDS_EMAIL_OPT_EDIT_RESPONSE_BEFORE_SENDING"
+msgstr "Edit response before sending"
+
+msgid "IDS_EMAIL_OPT_SEND_RESPONSE_NOW"
+msgstr "Send response now"
+
+msgid "IDS_EMAIL_OPT_DO_NOT_SEND_RESPONSE"
+msgstr "Do not send response"
+
+msgid "IDS_EMAIL_BUTTON_VERIFY_SIGNATURE"
+msgstr "Verify signature"
+
+msgid "IDS_EMAIL_HEADER_VERIFY_SIGNATURE_HEADER"
+msgstr "Verify signature"
+
+msgid "IDS_EMAIL_BODY_UNABLE_TO_VERIFY_SIGNATURE_PUBLIC_KEY_IS_NOT_INSTALLED"
+msgstr "Unable to verify signature. Public key is not installed"
+
+msgid "IDS_EMAIL_POP_THE_DIGITAL_SIGNATURE_ON_THIS_MESSAGE_IS_VALID_AND_TRUSTED"
+msgstr "The digital signature on this message is valid and trusted"
+
+msgid "IDS_EMAIL_BUTTON_DECRYPT_MESSAGE"
+msgstr "Decrypt message"
+
+msgid "IDS_EMAIL_OPT_SAVE_EMAIL_ABB"
+msgstr "Save email"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_CREATE_FOLDER"
+msgstr "Unable to create folder"
+
+msgid "IDS_EMAIL_BUTTON_TAKE_PICTURE"
+msgstr "Take picture"
+
index 337dd91..28f76f1 100755 (executable)
@@ -1390,3 +1390,60 @@ msgstr "Every %d minutes"
 msgid "IDS_EMAIL_BODY_ADD_ADDRESS"
 msgstr "Add address"
 
+msgid "IDS_EMAIL_BODY_NEW_EMAIL"
+msgstr "New Email"
+
+msgid "IDS_EMAIL_HEADER_SELECT_FOLDER_ABB"
+msgstr "Select folder"
+
+msgid "IDS_EMAIL_BODY_CAPTURE_VIDEO"
+msgstr "Capture video"
+
+msgid "IDS_EMAIL_BODY_MOVE_TO_TO"
+msgstr "Move to To"
+
+msgid "IDS_EMAIL_HEADER_SELECT_EMAIL_ADDRESS"
+msgstr "Select Email address"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_SEARCH"
+msgstr "Unable to search"
+
+msgid "IDS_EMAIL_OPT_READ"
+msgstr "Read"
+
+msgid "IDS_EMAIL_POP_DOUBLE_TAP_TO_GO_TO_THE_TOP_OF_CONTACTS_LISTS_EMAIL_LISTS_AND_EMAIL_MESSAGES"
+msgstr "Double tap to go to the top of contacts lists, Email lists and email messages"
+
+msgid "IDS_EMAIL_OPT_EDIT_RESPONSE_BEFORE_SENDING"
+msgstr "Edit response before sending"
+
+msgid "IDS_EMAIL_OPT_SEND_RESPONSE_NOW"
+msgstr "Send response now"
+
+msgid "IDS_EMAIL_OPT_DO_NOT_SEND_RESPONSE"
+msgstr "Do not send response"
+
+msgid "IDS_EMAIL_BUTTON_VERIFY_SIGNATURE"
+msgstr "Verify signature"
+
+msgid "IDS_EMAIL_HEADER_VERIFY_SIGNATURE_HEADER"
+msgstr "Verify signature"
+
+msgid "IDS_EMAIL_BODY_UNABLE_TO_VERIFY_SIGNATURE_PUBLIC_KEY_IS_NOT_INSTALLED"
+msgstr "Unable to verify signature. Public key is not installed"
+
+msgid "IDS_EMAIL_POP_THE_DIGITAL_SIGNATURE_ON_THIS_MESSAGE_IS_VALID_AND_TRUSTED"
+msgstr "The digital signature on this message is valid and trusted"
+
+msgid "IDS_EMAIL_BUTTON_DECRYPT_MESSAGE"
+msgstr "Decrypt message"
+
+msgid "IDS_EMAIL_OPT_SAVE_EMAIL_ABB"
+msgstr "Save Email"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_CREATE_FOLDER"
+msgstr "Unable to create folder"
+
+msgid "IDS_EMAIL_BUTTON_TAKE_PICTURE"
+msgstr "Take picture"
+
index f596e6a..0760963 100755 (executable)
@@ -1175,7 +1175,7 @@ msgid "IDS_EMAIL_BODY_ADD_ACCOUNT"
 msgstr "Add account"
 
 msgid "IDS_EMAIL_BODY_REMOVE_EVENT_FROM_CALENDAR"
-msgstr "Remove event from Calendar"
+msgstr "Delete event from Calendar"
 
 msgid "IDS_EMAIL_POP_GETTING_RECIPIENTS_CERTIFICATES_ING"
 msgstr "Getting recipients certificates..."
@@ -1390,3 +1390,60 @@ msgstr "Every %d minutes"
 msgid "IDS_EMAIL_BODY_ADD_ADDRESS"
 msgstr "Add address"
 
+msgid "IDS_EMAIL_BODY_NEW_EMAIL"
+msgstr "New email"
+
+msgid "IDS_EMAIL_HEADER_SELECT_FOLDER_ABB"
+msgstr "Select folder"
+
+msgid "IDS_EMAIL_BODY_CAPTURE_VIDEO"
+msgstr "Capture video"
+
+msgid "IDS_EMAIL_BODY_MOVE_TO_TO"
+msgstr "Move to To"
+
+msgid "IDS_EMAIL_HEADER_SELECT_EMAIL_ADDRESS"
+msgstr "Select email address"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_SEARCH"
+msgstr "Unable to search"
+
+msgid "IDS_EMAIL_OPT_READ"
+msgstr "Read"
+
+msgid "IDS_EMAIL_POP_DOUBLE_TAP_TO_GO_TO_THE_TOP_OF_CONTACTS_LISTS_EMAIL_LISTS_AND_EMAIL_MESSAGES"
+msgstr "Double tap to go to the top of contacts lists, email lists and email messages"
+
+msgid "IDS_EMAIL_OPT_EDIT_RESPONSE_BEFORE_SENDING"
+msgstr "Edit response before sending"
+
+msgid "IDS_EMAIL_OPT_SEND_RESPONSE_NOW"
+msgstr "Send response now"
+
+msgid "IDS_EMAIL_OPT_DO_NOT_SEND_RESPONSE"
+msgstr "Do not send response"
+
+msgid "IDS_EMAIL_BUTTON_VERIFY_SIGNATURE"
+msgstr "Verify signature"
+
+msgid "IDS_EMAIL_HEADER_VERIFY_SIGNATURE_HEADER"
+msgstr "Verify signature"
+
+msgid "IDS_EMAIL_BODY_UNABLE_TO_VERIFY_SIGNATURE_PUBLIC_KEY_IS_NOT_INSTALLED"
+msgstr "Unable to verify signature. Public key is not installed"
+
+msgid "IDS_EMAIL_POP_THE_DIGITAL_SIGNATURE_ON_THIS_MESSAGE_IS_VALID_AND_TRUSTED"
+msgstr "The digital signature on this message is valid and trusted"
+
+msgid "IDS_EMAIL_BUTTON_DECRYPT_MESSAGE"
+msgstr "Decrypt message"
+
+msgid "IDS_EMAIL_OPT_SAVE_EMAIL_ABB"
+msgstr "Save email"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_CREATE_FOLDER"
+msgstr "Unable to create folder"
+
+msgid "IDS_EMAIL_BUTTON_TAKE_PICTURE"
+msgstr "Take picture"
+
index c530776..a297678 100755 (executable)
@@ -1390,3 +1390,60 @@ msgstr "Cada %d minutos"
 msgid "IDS_EMAIL_BODY_ADD_ADDRESS"
 msgstr "Añadir dirección"
 
+msgid "IDS_EMAIL_BODY_NEW_EMAIL"
+msgstr "Correo electrónico nuevo"
+
+msgid "IDS_EMAIL_HEADER_SELECT_FOLDER_ABB"
+msgstr "Seleccione carpeta"
+
+msgid "IDS_EMAIL_BODY_CAPTURE_VIDEO"
+msgstr "Capturar vídeo"
+
+msgid "IDS_EMAIL_BODY_MOVE_TO_TO"
+msgstr "Mover a Para"
+
+msgid "IDS_EMAIL_HEADER_SELECT_EMAIL_ADDRESS"
+msgstr "Seleccionar dirección de correo electrónico"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_SEARCH"
+msgstr "No se puede buscar"
+
+msgid "IDS_EMAIL_OPT_READ"
+msgstr "Leído"
+
+msgid "IDS_EMAIL_POP_DOUBLE_TAP_TO_GO_TO_THE_TOP_OF_CONTACTS_LISTS_EMAIL_LISTS_AND_EMAIL_MESSAGES"
+msgstr "Toque dos veces para ir al principio de la lista de contactos, la lista de correos electrónicos y los mensajes de correo electrónico"
+
+msgid "IDS_EMAIL_OPT_EDIT_RESPONSE_BEFORE_SENDING"
+msgstr "Editar respuesta antes de enviar"
+
+msgid "IDS_EMAIL_OPT_SEND_RESPONSE_NOW"
+msgstr "Enviar respuesta ahora"
+
+msgid "IDS_EMAIL_OPT_DO_NOT_SEND_RESPONSE"
+msgstr "No enviar respuesta"
+
+msgid "IDS_EMAIL_BUTTON_VERIFY_SIGNATURE"
+msgstr "Verifique la firma"
+
+msgid "IDS_EMAIL_HEADER_VERIFY_SIGNATURE_HEADER"
+msgstr "Verifique la firma"
+
+msgid "IDS_EMAIL_BODY_UNABLE_TO_VERIFY_SIGNATURE_PUBLIC_KEY_IS_NOT_INSTALLED"
+msgstr "No se puede verificar la firma. La clave pública no está instalada"
+
+msgid "IDS_EMAIL_POP_THE_DIGITAL_SIGNATURE_ON_THIS_MESSAGE_IS_VALID_AND_TRUSTED"
+msgstr "La firma digital de este mensaje es válida y de confianza"
+
+msgid "IDS_EMAIL_BUTTON_DECRYPT_MESSAGE"
+msgstr "Descifrar mensaje"
+
+msgid "IDS_EMAIL_OPT_SAVE_EMAIL_ABB"
+msgstr "Guardar correo electrónico"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_CREATE_FOLDER"
+msgstr "No se puede crear carpeta"
+
+msgid "IDS_EMAIL_BUTTON_TAKE_PICTURE"
+msgstr "Hacer foto"
+
index dd13fd9..7822a65 100755 (executable)
@@ -590,7 +590,7 @@ msgid "IDS_EMAIL_OPT_SIGN"
 msgstr "Firma"
 
 msgid "IDS_EMAIL_OPT_ENCRYPT"
-msgstr "Cifrar"
+msgstr "Encriptar"
 
 msgid "IDS_EMAIL_POP_AUTHENTICATION_FAILED"
 msgstr "Error de autentificación"
@@ -1136,7 +1136,7 @@ msgid "IDS_EMAIL_POP_UNABLE_TO_DECRYPT_MESSAGE_CERTIFICATE_NOT_INSTALLED"
 msgstr "No se puede descifrar el mensaje. Certificado no instalado"
 
 msgid "IDS_EMAIL_POP_UNABLE_TO_SIGN_OR_ENCRYPT_MESSAGE_CERTIFICATE_NOT_INSTALLED"
-msgstr "No se puede firmar o cifrar el mensaje. Certificado no instalado"
+msgstr "No se puede firmar o encriptar el mensaje. Certificado no instalado"
 
 msgid "IDS_EMAIL_POP_DOWNLOAD_MORE_DETAILS_TO_SHOW_S_MIME_MESSAGES_CONTINUE_Q"
 msgstr "Descargue más detalles para mostrar los mensajes S/MIME. ¿Continuar?"
@@ -1310,7 +1310,7 @@ msgid "IDS_EMAIL_POP_CERTIFICATE_DOES_NOT_MATCH_EMAIL_ADDRESS"
 msgstr "El certificado no coincide con la dirección de correo"
 
 msgid "IDS_EMAIL_BODY_ENCRYPT"
-msgstr "Cifrar"
+msgstr "Encriptar"
 
 msgid "IDS_EMAIL_BODY_SIGN"
 msgstr "Firma"
@@ -1390,3 +1390,60 @@ msgstr "Cada %d minutos"
 msgid "IDS_EMAIL_BODY_ADD_ADDRESS"
 msgstr "Añadir dirección"
 
+msgid "IDS_EMAIL_BODY_NEW_EMAIL"
+msgstr "Nuevo correo"
+
+msgid "IDS_EMAIL_HEADER_SELECT_FOLDER_ABB"
+msgstr "Seleccionar carpeta"
+
+msgid "IDS_EMAIL_BODY_CAPTURE_VIDEO"
+msgstr "Capturar video"
+
+msgid "IDS_EMAIL_BODY_MOVE_TO_TO"
+msgstr "Mover a A"
+
+msgid "IDS_EMAIL_HEADER_SELECT_EMAIL_ADDRESS"
+msgstr "Seleccionar dirección de correo"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_SEARCH"
+msgstr "No se puede buscar"
+
+msgid "IDS_EMAIL_OPT_READ"
+msgstr "Leídos"
+
+msgid "IDS_EMAIL_POP_DOUBLE_TAP_TO_GO_TO_THE_TOP_OF_CONTACTS_LISTS_EMAIL_LISTS_AND_EMAIL_MESSAGES"
+msgstr "Presione dos veces para ir al inicio de las listas de contactos, listas de correo y mensajes de correo"
+
+msgid "IDS_EMAIL_OPT_EDIT_RESPONSE_BEFORE_SENDING"
+msgstr "Editar respuesta antes de enviar"
+
+msgid "IDS_EMAIL_OPT_SEND_RESPONSE_NOW"
+msgstr "Enviar respuesta ahora"
+
+msgid "IDS_EMAIL_OPT_DO_NOT_SEND_RESPONSE"
+msgstr "No enviar respuesta"
+
+msgid "IDS_EMAIL_BUTTON_VERIFY_SIGNATURE"
+msgstr "Verificar firma"
+
+msgid "IDS_EMAIL_HEADER_VERIFY_SIGNATURE_HEADER"
+msgstr "Verificar firma"
+
+msgid "IDS_EMAIL_BODY_UNABLE_TO_VERIFY_SIGNATURE_PUBLIC_KEY_IS_NOT_INSTALLED"
+msgstr "No es posible verificar la firma. El código público no está instalado"
+
+msgid "IDS_EMAIL_POP_THE_DIGITAL_SIGNATURE_ON_THIS_MESSAGE_IS_VALID_AND_TRUSTED"
+msgstr "La firma digital en este mensaje es válida y es de confianza"
+
+msgid "IDS_EMAIL_BUTTON_DECRYPT_MESSAGE"
+msgstr "Descifrar mensaje"
+
+msgid "IDS_EMAIL_OPT_SAVE_EMAIL_ABB"
+msgstr "Guardar correo"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_CREATE_FOLDER"
+msgstr "No se puede crear la carpeta"
+
+msgid "IDS_EMAIL_BUTTON_TAKE_PICTURE"
+msgstr "Capturar imagen"
+
index 7c92a92..9c9385f 100755 (executable)
--- a/po/et.po
+++ b/po/et.po
@@ -1390,3 +1390,60 @@ msgstr "Iga %d minuti järel"
 msgid "IDS_EMAIL_BODY_ADD_ADDRESS"
 msgstr "Lisa aadress"
 
+msgid "IDS_EMAIL_BODY_NEW_EMAIL"
+msgstr "Uus e-kiri"
+
+msgid "IDS_EMAIL_HEADER_SELECT_FOLDER_ABB"
+msgstr "Vali kaust"
+
+msgid "IDS_EMAIL_BODY_CAPTURE_VIDEO"
+msgstr "Salvesta video"
+
+msgid "IDS_EMAIL_BODY_MOVE_TO_TO"
+msgstr "Teisalda kausta Kellele"
+
+msgid "IDS_EMAIL_HEADER_SELECT_EMAIL_ADDRESS"
+msgstr "Vali e-posti aadress"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_SEARCH"
+msgstr "Ei saa otsida"
+
+msgid "IDS_EMAIL_OPT_READ"
+msgstr "Loe"
+
+msgid "IDS_EMAIL_POP_DOUBLE_TAP_TO_GO_TO_THE_TOP_OF_CONTACTS_LISTS_EMAIL_LISTS_AND_EMAIL_MESSAGES"
+msgstr "Toksake kaks korda, et liikuda kontaktide loendi, e-kirjade loendi ja e-kirjade ülaossa"
+
+msgid "IDS_EMAIL_OPT_EDIT_RESPONSE_BEFORE_SENDING"
+msgstr "Redigeeri vastust enne saatmist"
+
+msgid "IDS_EMAIL_OPT_SEND_RESPONSE_NOW"
+msgstr "Saada vastus kohe"
+
+msgid "IDS_EMAIL_OPT_DO_NOT_SEND_RESPONSE"
+msgstr "Ära saada vastust"
+
+msgid "IDS_EMAIL_BUTTON_VERIFY_SIGNATURE"
+msgstr "Kinnitage allkiri"
+
+msgid "IDS_EMAIL_HEADER_VERIFY_SIGNATURE_HEADER"
+msgstr "Kinnitage allkiri"
+
+msgid "IDS_EMAIL_BODY_UNABLE_TO_VERIFY_SIGNATURE_PUBLIC_KEY_IS_NOT_INSTALLED"
+msgstr "Allkirja ei saa kinnitada. Avalikku võtit pole installitud"
+
+msgid "IDS_EMAIL_POP_THE_DIGITAL_SIGNATURE_ON_THIS_MESSAGE_IS_VALID_AND_TRUSTED"
+msgstr "Selles sõnumis olev digiallkiri on kehtiv ja usaldusväärne"
+
+msgid "IDS_EMAIL_BUTTON_DECRYPT_MESSAGE"
+msgstr "Dekrüpti sõnum"
+
+msgid "IDS_EMAIL_OPT_SAVE_EMAIL_ABB"
+msgstr "Salvesta e-kiri"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_CREATE_FOLDER"
+msgstr "Kausta ei saa luua"
+
+msgid "IDS_EMAIL_BUTTON_TAKE_PICTURE"
+msgstr "Pildista"
+
index c600e46..733b3ab 100755 (executable)
--- a/po/eu.po
+++ b/po/eu.po
@@ -1390,3 +1390,60 @@ msgstr "%d minuturo"
 msgid "IDS_EMAIL_BODY_ADD_ADDRESS"
 msgstr "Gehitu helbidea"
 
+msgid "IDS_EMAIL_BODY_NEW_EMAIL"
+msgstr "Mezu elektroniko berria"
+
+msgid "IDS_EMAIL_HEADER_SELECT_FOLDER_ABB"
+msgstr "Hautatu karpeta"
+
+msgid "IDS_EMAIL_BODY_CAPTURE_VIDEO"
+msgstr "Bideoa grabatu"
+
+msgid "IDS_EMAIL_BODY_MOVE_TO_TO"
+msgstr "Mugitu Nori-ra"
+
+msgid "IDS_EMAIL_HEADER_SELECT_EMAIL_ADDRESS"
+msgstr "Aukeratu helbide elektronikoa"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_SEARCH"
+msgstr "Ezin da bilatu"
+
+msgid "IDS_EMAIL_OPT_READ"
+msgstr "Irakurrita"
+
+msgid "IDS_EMAIL_POP_DOUBLE_TAP_TO_GO_TO_THE_TOP_OF_CONTACTS_LISTS_EMAIL_LISTS_AND_EMAIL_MESSAGES"
+msgstr "Ukitu bi aldiz kontaktu zerrendaren, mezu elektronikoen zerrendaren eta mezu elektronikoen goiko aldera joateko"
+
+msgid "IDS_EMAIL_OPT_EDIT_RESPONSE_BEFORE_SENDING"
+msgstr "Editatu erantzuna bidali aurretik"
+
+msgid "IDS_EMAIL_OPT_SEND_RESPONSE_NOW"
+msgstr "Bidali erantzuna orain"
+
+msgid "IDS_EMAIL_OPT_DO_NOT_SEND_RESPONSE"
+msgstr "Ez bidali erantzunik"
+
+msgid "IDS_EMAIL_BUTTON_VERIFY_SIGNATURE"
+msgstr "Egiaztatu sinadura"
+
+msgid "IDS_EMAIL_HEADER_VERIFY_SIGNATURE_HEADER"
+msgstr "Egiaztatu sinadura"
+
+msgid "IDS_EMAIL_BODY_UNABLE_TO_VERIFY_SIGNATURE_PUBLIC_KEY_IS_NOT_INSTALLED"
+msgstr "Ezin da sinadura egiaztatu. Gako publikoa ez da instalatu"
+
+msgid "IDS_EMAIL_POP_THE_DIGITAL_SIGNATURE_ON_THIS_MESSAGE_IS_VALID_AND_TRUSTED"
+msgstr "Mezu honetako sinadura digitala baliogarria eta fidagarria da"
+
+msgid "IDS_EMAIL_BUTTON_DECRYPT_MESSAGE"
+msgstr "Desenkriptatu mezua"
+
+msgid "IDS_EMAIL_OPT_SAVE_EMAIL_ABB"
+msgstr "Gorde mezu elekt."
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_CREATE_FOLDER"
+msgstr "Ezin da karpeta sortu"
+
+msgid "IDS_EMAIL_BUTTON_TAKE_PICTURE"
+msgstr "Atera argazkia"
+
index 8e3ba9f..325cddf 100755 (executable)
--- a/po/fi.po
+++ b/po/fi.po
@@ -1390,3 +1390,60 @@ msgstr "%d minuutin välein"
 msgid "IDS_EMAIL_BODY_ADD_ADDRESS"
 msgstr "Lisää osoite"
 
+msgid "IDS_EMAIL_BODY_NEW_EMAIL"
+msgstr "Uusi sähköposti"
+
+msgid "IDS_EMAIL_HEADER_SELECT_FOLDER_ABB"
+msgstr "Valitse kansio"
+
+msgid "IDS_EMAIL_BODY_CAPTURE_VIDEO"
+msgstr "Kuvaa video"
+
+msgid "IDS_EMAIL_BODY_MOVE_TO_TO"
+msgstr "Siirrä kohteeseen"
+
+msgid "IDS_EMAIL_HEADER_SELECT_EMAIL_ADDRESS"
+msgstr "Valitse sähköpostiosoite"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_SEARCH"
+msgstr "Ei voi hakea"
+
+msgid "IDS_EMAIL_OPT_READ"
+msgstr "Lue"
+
+msgid "IDS_EMAIL_POP_DOUBLE_TAP_TO_GO_TO_THE_TOP_OF_CONTACTS_LISTS_EMAIL_LISTS_AND_EMAIL_MESSAGES"
+msgstr "Siirry yhteystietoluetteloiden, sähköpostiluetteloiden ja sähköpostiviestien alkuun kaksoisnapauttamalla"
+
+msgid "IDS_EMAIL_OPT_EDIT_RESPONSE_BEFORE_SENDING"
+msgstr "Muokkaa vastausta ennen lähettämistä"
+
+msgid "IDS_EMAIL_OPT_SEND_RESPONSE_NOW"
+msgstr "Lähetä vastaus nyt"
+
+msgid "IDS_EMAIL_OPT_DO_NOT_SEND_RESPONSE"
+msgstr "Älä lähetä vastausta"
+
+msgid "IDS_EMAIL_BUTTON_VERIFY_SIGNATURE"
+msgstr "Tarkista allekirj."
+
+msgid "IDS_EMAIL_HEADER_VERIFY_SIGNATURE_HEADER"
+msgstr "Tarkista allekirjoitus"
+
+msgid "IDS_EMAIL_BODY_UNABLE_TO_VERIFY_SIGNATURE_PUBLIC_KEY_IS_NOT_INSTALLED"
+msgstr "Allekirjoitusta ei voi tarkistaa. Julkista avainta ei ole asennettu"
+
+msgid "IDS_EMAIL_POP_THE_DIGITAL_SIGNATURE_ON_THIS_MESSAGE_IS_VALID_AND_TRUSTED"
+msgstr "Tässä viestissä oleva digitaalinen allekirjoitus kelpaa ja on luotettu"
+
+msgid "IDS_EMAIL_BUTTON_DECRYPT_MESSAGE"
+msgstr "Poista salaus"
+
+msgid "IDS_EMAIL_OPT_SAVE_EMAIL_ABB"
+msgstr "Tallenna sähköposti"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_CREATE_FOLDER"
+msgstr "Kansion luonti epäonnistui"
+
+msgid "IDS_EMAIL_BUTTON_TAKE_PICTURE"
+msgstr "Ota kuva"
+
index 4e0a579..0742861 100755 (executable)
@@ -1390,3 +1390,60 @@ msgstr "Toutes les %d minutes"
 msgid "IDS_EMAIL_BODY_ADD_ADDRESS"
 msgstr "Ajouter l'adresse"
 
+msgid "IDS_EMAIL_BODY_NEW_EMAIL"
+msgstr "Nouveau courriel"
+
+msgid "IDS_EMAIL_HEADER_SELECT_FOLDER_ABB"
+msgstr "Sélectionner dossier"
+
+msgid "IDS_EMAIL_BODY_CAPTURE_VIDEO"
+msgstr "Saisir une vidéo"
+
+msgid "IDS_EMAIL_BODY_MOVE_TO_TO"
+msgstr "Déplacer vers A"
+
+msgid "IDS_EMAIL_HEADER_SELECT_EMAIL_ADDRESS"
+msgstr "Sélectionner une adresse courriel"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_SEARCH"
+msgstr "Impossible de rechercher"
+
+msgid "IDS_EMAIL_OPT_READ"
+msgstr "Lu"
+
+msgid "IDS_EMAIL_POP_DOUBLE_TAP_TO_GO_TO_THE_TOP_OF_CONTACTS_LISTS_EMAIL_LISTS_AND_EMAIL_MESSAGES"
+msgstr "Touchez deux fois pour revenir en haut des listes de contacts, des listes de courriels et des courriels"
+
+msgid "IDS_EMAIL_OPT_EDIT_RESPONSE_BEFORE_SENDING"
+msgstr "Modifier la réponse avant l'envoi"
+
+msgid "IDS_EMAIL_OPT_SEND_RESPONSE_NOW"
+msgstr "Envoyer la réponse maintenant"
+
+msgid "IDS_EMAIL_OPT_DO_NOT_SEND_RESPONSE"
+msgstr "Ne pas envoyer la réponse"
+
+msgid "IDS_EMAIL_BUTTON_VERIFY_SIGNATURE"
+msgstr "Vérifier signature"
+
+msgid "IDS_EMAIL_HEADER_VERIFY_SIGNATURE_HEADER"
+msgstr "Vérifier la signature"
+
+msgid "IDS_EMAIL_BODY_UNABLE_TO_VERIFY_SIGNATURE_PUBLIC_KEY_IS_NOT_INSTALLED"
+msgstr "Impossible de vérifier la signature. La clé publique n'est pas installée"
+
+msgid "IDS_EMAIL_POP_THE_DIGITAL_SIGNATURE_ON_THIS_MESSAGE_IS_VALID_AND_TRUSTED"
+msgstr "La signature numérique sur ce message est valide et fiable"
+
+msgid "IDS_EMAIL_BUTTON_DECRYPT_MESSAGE"
+msgstr "Décrypter le message"
+
+msgid "IDS_EMAIL_OPT_SAVE_EMAIL_ABB"
+msgstr "Enregistrer courriel"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_CREATE_FOLDER"
+msgstr "Impossible de créer un dossier"
+
+msgid "IDS_EMAIL_BUTTON_TAKE_PICTURE"
+msgstr "Prendre une photo"
+
index 52155ed..bb863bd 100755 (executable)
@@ -1390,3 +1390,60 @@ msgstr "Toutes les %d minutes"
 msgid "IDS_EMAIL_BODY_ADD_ADDRESS"
 msgstr "Ajouter adresse"
 
+msgid "IDS_EMAIL_BODY_NEW_EMAIL"
+msgstr "Nouvel e-mail"
+
+msgid "IDS_EMAIL_HEADER_SELECT_FOLDER_ABB"
+msgstr "Sélectionner dossier"
+
+msgid "IDS_EMAIL_BODY_CAPTURE_VIDEO"
+msgstr "Capturer une vidéo"
+
+msgid "IDS_EMAIL_BODY_MOVE_TO_TO"
+msgstr "Déplacer dans A"
+
+msgid "IDS_EMAIL_HEADER_SELECT_EMAIL_ADDRESS"
+msgstr "Sélectionner une adresse e-mail"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_SEARCH"
+msgstr "Impossible de rechercher"
+
+msgid "IDS_EMAIL_OPT_READ"
+msgstr "Lu"
+
+msgid "IDS_EMAIL_POP_DOUBLE_TAP_TO_GO_TO_THE_TOP_OF_CONTACTS_LISTS_EMAIL_LISTS_AND_EMAIL_MESSAGES"
+msgstr "Appuyez deux fois pour revenir en haut des listes de contacts, des listes d'e-mails et des e-mails"
+
+msgid "IDS_EMAIL_OPT_EDIT_RESPONSE_BEFORE_SENDING"
+msgstr "Modifier la réponse avant l'envoi"
+
+msgid "IDS_EMAIL_OPT_SEND_RESPONSE_NOW"
+msgstr "Envoyer la réponse maintenant"
+
+msgid "IDS_EMAIL_OPT_DO_NOT_SEND_RESPONSE"
+msgstr "Ne pas envoyer la réponse"
+
+msgid "IDS_EMAIL_BUTTON_VERIFY_SIGNATURE"
+msgstr "Vérifier signature"
+
+msgid "IDS_EMAIL_HEADER_VERIFY_SIGNATURE_HEADER"
+msgstr "Vérifier la signature"
+
+msgid "IDS_EMAIL_BODY_UNABLE_TO_VERIFY_SIGNATURE_PUBLIC_KEY_IS_NOT_INSTALLED"
+msgstr "Impossible de vérifier la signature. La clé publique n'est pas installée"
+
+msgid "IDS_EMAIL_POP_THE_DIGITAL_SIGNATURE_ON_THIS_MESSAGE_IS_VALID_AND_TRUSTED"
+msgstr "La signature numérique sur ce message est valide et fiable"
+
+msgid "IDS_EMAIL_BUTTON_DECRYPT_MESSAGE"
+msgstr "Décrypter le message"
+
+msgid "IDS_EMAIL_OPT_SAVE_EMAIL_ABB"
+msgstr "Enregistrer e-mail"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_CREATE_FOLDER"
+msgstr "Création de fichier impossible"
+
+msgid "IDS_EMAIL_BUTTON_TAKE_PICTURE"
+msgstr "Prendre une photo"
+
index ce3a4a2..2d301da 100755 (executable)
--- a/po/ga.po
+++ b/po/ga.po
@@ -1390,3 +1390,60 @@ msgstr "Gach %d nóiméad"
 msgid "IDS_EMAIL_BODY_ADD_ADDRESS"
 msgstr "Cuir seoladh leis"
 
+msgid "IDS_EMAIL_BODY_NEW_EMAIL"
+msgstr "R-phost nua"
+
+msgid "IDS_EMAIL_HEADER_SELECT_FOLDER_ABB"
+msgstr "Roghnaigh fillteán"
+
+msgid "IDS_EMAIL_BODY_CAPTURE_VIDEO"
+msgstr "Gabh físeán"
+
+msgid "IDS_EMAIL_BODY_MOVE_TO_TO"
+msgstr "Bog chuig Chuig"
+
+msgid "IDS_EMAIL_HEADER_SELECT_EMAIL_ADDRESS"
+msgstr "Roghnaigh seoladh r-phoist"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_SEARCH"
+msgstr "Ní féidir cuardach"
+
+msgid "IDS_EMAIL_OPT_READ"
+msgstr "Léite"
+
+msgid "IDS_EMAIL_POP_DOUBLE_TAP_TO_GO_TO_THE_TOP_OF_CONTACTS_LISTS_EMAIL_LISTS_AND_EMAIL_MESSAGES"
+msgstr "Déthapáil le dhul chuig barr an liosta teagmhálaithe, liostaí r-phoist, agus teachtaireachtaí r-phoist"
+
+msgid "IDS_EMAIL_OPT_EDIT_RESPONSE_BEFORE_SENDING"
+msgstr "Cuir an fhreagairt in eagar roimh seoladh"
+
+msgid "IDS_EMAIL_OPT_SEND_RESPONSE_NOW"
+msgstr "Seol freagairt anois"
+
+msgid "IDS_EMAIL_OPT_DO_NOT_SEND_RESPONSE"
+msgstr "Ná seol freagairt"
+
+msgid "IDS_EMAIL_BUTTON_VERIFY_SIGNATURE"
+msgstr "Fíoraigh an síniú"
+
+msgid "IDS_EMAIL_HEADER_VERIFY_SIGNATURE_HEADER"
+msgstr "Fíoraigh an síniú"
+
+msgid "IDS_EMAIL_BODY_UNABLE_TO_VERIFY_SIGNATURE_PUBLIC_KEY_IS_NOT_INSTALLED"
+msgstr "Ní féidir an síniú a fhíordheimhniú. Níl an eochair phoiblí suiteáilte"
+
+msgid "IDS_EMAIL_POP_THE_DIGITAL_SIGNATURE_ON_THIS_MESSAGE_IS_VALID_AND_TRUSTED"
+msgstr "Tá an síniú digiteach ar an teachtaireacht seo bailí agus iontaofa"
+
+msgid "IDS_EMAIL_BUTTON_DECRYPT_MESSAGE"
+msgstr "Díchriptigh tcht"
+
+msgid "IDS_EMAIL_OPT_SAVE_EMAIL_ABB"
+msgstr "Sábháil r-phost"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_CREATE_FOLDER"
+msgstr "Ní féidir fillteán a dhéanamh"
+
+msgid "IDS_EMAIL_BUTTON_TAKE_PICTURE"
+msgstr "Glac pictiúr"
+
index 994a326..0ad77f7 100755 (executable)
--- a/po/gl.po
+++ b/po/gl.po
@@ -1390,3 +1390,60 @@ msgstr "Cada %d minutos"
 msgid "IDS_EMAIL_BODY_ADD_ADDRESS"
 msgstr "Engadir enderezo"
 
+msgid "IDS_EMAIL_BODY_NEW_EMAIL"
+msgstr "Correo electrónico novo"
+
+msgid "IDS_EMAIL_HEADER_SELECT_FOLDER_ABB"
+msgstr "Seleccionar carpeta"
+
+msgid "IDS_EMAIL_BODY_CAPTURE_VIDEO"
+msgstr "Capturar Vídeo"
+
+msgid "IDS_EMAIL_BODY_MOVE_TO_TO"
+msgstr "Mover a Para"
+
+msgid "IDS_EMAIL_HEADER_SELECT_EMAIL_ADDRESS"
+msgstr "Seleccionar enderezo de correo electrónico"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_SEARCH"
+msgstr "Non se pode buscar"
+
+msgid "IDS_EMAIL_OPT_READ"
+msgstr "Ler"
+
+msgid "IDS_EMAIL_POP_DOUBLE_TAP_TO_GO_TO_THE_TOP_OF_CONTACTS_LISTS_EMAIL_LISTS_AND_EMAIL_MESSAGES"
+msgstr "Toca dúas veces para ir á parte superior das listas de contactos, das listas de correos electrónicos e das mensaxes de correo electrónico"
+
+msgid "IDS_EMAIL_OPT_EDIT_RESPONSE_BEFORE_SENDING"
+msgstr "Editar resposta antes de enviar"
+
+msgid "IDS_EMAIL_OPT_SEND_RESPONSE_NOW"
+msgstr "Enviar resposta agora"
+
+msgid "IDS_EMAIL_OPT_DO_NOT_SEND_RESPONSE"
+msgstr "Non enviar resposta"
+
+msgid "IDS_EMAIL_BUTTON_VERIFY_SIGNATURE"
+msgstr "Verificar sinatura"
+
+msgid "IDS_EMAIL_HEADER_VERIFY_SIGNATURE_HEADER"
+msgstr "Verificar sinatura"
+
+msgid "IDS_EMAIL_BODY_UNABLE_TO_VERIFY_SIGNATURE_PUBLIC_KEY_IS_NOT_INSTALLED"
+msgstr "Non se pode verificar a sinatura. A clave pública non está instalada"
+
+msgid "IDS_EMAIL_POP_THE_DIGITAL_SIGNATURE_ON_THIS_MESSAGE_IS_VALID_AND_TRUSTED"
+msgstr "A sinatura dixital desta mensaxe é válida e fiable"
+
+msgid "IDS_EMAIL_BUTTON_DECRYPT_MESSAGE"
+msgstr "Descifrar mensaxe"
+
+msgid "IDS_EMAIL_OPT_SAVE_EMAIL_ABB"
+msgstr "Gardar correo e."
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_CREATE_FOLDER"
+msgstr "Non se pode crear a carpeta"
+
+msgid "IDS_EMAIL_BUTTON_TAKE_PICTURE"
+msgstr "Facer unha foto"
+
index 403a087..95df512 100755 (executable)
--- a/po/hi.po
+++ b/po/hi.po
@@ -1010,7 +1010,7 @@ msgid "IDS_EMAIL_OPT_RECIPIENT_HZ_TO_A"
 msgstr "प्राप्तकर्ता (Z से A)"
 
 msgid "IDS_EMAIL_HEADER_SEARCH_SHAREPOINT"
-msgstr "SharePoint खोजें"
+msgstr "शेयरपॉइंट्स खोजें"
 
 msgid "IDS_EMAIL_BODY_ENTER_PATH_OF_WINDOWS_SHAREPOINT_SERVICES_OR_WINDOWS_FILE_SHARE_HUNC_TO_ACCESS_DOCUMENTS_REMOTELY"
 msgstr "दस्तावेज़ों को दूरस्थ रूप से ऍक्सेस करने के लिए विंडोज़ SharePoint सेवाएँ या विंडोज़ फ़ाइल साझाकरण (UNC) का पथ दर्ज करें"
@@ -1390,3 +1390,60 @@ msgstr "प्रत्‍येक %d मिनट"
 msgid "IDS_EMAIL_BODY_ADD_ADDRESS"
 msgstr "पता ज़ोडे"
 
+msgid "IDS_EMAIL_BODY_NEW_EMAIL"
+msgstr "नयी ईमेल"
+
+msgid "IDS_EMAIL_HEADER_SELECT_FOLDER_ABB"
+msgstr "फ़ोल्डर चुनें"
+
+msgid "IDS_EMAIL_BODY_CAPTURE_VIDEO"
+msgstr "वीडियो कैप्‍चर करें"
+
+msgid "IDS_EMAIL_BODY_MOVE_TO_TO"
+msgstr "प्रति में ले जाएँ"
+
+msgid "IDS_EMAIL_HEADER_SELECT_EMAIL_ADDRESS"
+msgstr "ईमेल पता चुनें"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_SEARCH"
+msgstr "खोजने में अक्षम"
+
+msgid "IDS_EMAIL_OPT_READ"
+msgstr "पठित"
+
+msgid "IDS_EMAIL_POP_DOUBLE_TAP_TO_GO_TO_THE_TOP_OF_CONTACTS_LISTS_EMAIL_LISTS_AND_EMAIL_MESSAGES"
+msgstr "संपर्क सूचियों, ईमेल सूचियों, और ईमेल संदेशों के शीर्ष पर जाने के लिए डबल टैप करें"
+
+msgid "IDS_EMAIL_OPT_EDIT_RESPONSE_BEFORE_SENDING"
+msgstr "भेजने से पहले प्रतिक्रिया संपादित करें"
+
+msgid "IDS_EMAIL_OPT_SEND_RESPONSE_NOW"
+msgstr "अभी प्रतिक्रिया भेजें"
+
+msgid "IDS_EMAIL_OPT_DO_NOT_SEND_RESPONSE"
+msgstr "प्रतिक्रिया नहीं भेजें"
+
+msgid "IDS_EMAIL_BUTTON_VERIFY_SIGNATURE"
+msgstr "हस्ताक्षर सत्‍यापित करें"
+
+msgid "IDS_EMAIL_HEADER_VERIFY_SIGNATURE_HEADER"
+msgstr "हस्ताक्षर सत्‍यापित करें"
+
+msgid "IDS_EMAIL_BODY_UNABLE_TO_VERIFY_SIGNATURE_PUBLIC_KEY_IS_NOT_INSTALLED"
+msgstr "हस्ताक्षर सत्यापित करने में अक्षम। सार्वजनिक कुंजी स्थापित नहीं की गई"
+
+msgid "IDS_EMAIL_POP_THE_DIGITAL_SIGNATURE_ON_THIS_MESSAGE_IS_VALID_AND_TRUSTED"
+msgstr "इस संदेश पर डिज़िटल हस्ताक्षर मान्य और विश्वयनीय है"
+
+msgid "IDS_EMAIL_BUTTON_DECRYPT_MESSAGE"
+msgstr "संदेश डिक्रिप्ट करें"
+
+msgid "IDS_EMAIL_OPT_SAVE_EMAIL_ABB"
+msgstr "ईमेल सुरक्षित"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_CREATE_FOLDER"
+msgstr "फ़ोल्‍डर बनाने में अक्षम"
+
+msgid "IDS_EMAIL_BUTTON_TAKE_PICTURE"
+msgstr "तस्वीर लें"
+
index 41707d0..a41892f 100755 (executable)
--- a/po/hr.po
+++ b/po/hr.po
@@ -1390,3 +1390,60 @@ msgstr "Svakih %d minuta"
 msgid "IDS_EMAIL_BODY_ADD_ADDRESS"
 msgstr "Dodaj adresu"
 
+msgid "IDS_EMAIL_BODY_NEW_EMAIL"
+msgstr "Novi email"
+
+msgid "IDS_EMAIL_HEADER_SELECT_FOLDER_ABB"
+msgstr "Odaberi mapu"
+
+msgid "IDS_EMAIL_BODY_CAPTURE_VIDEO"
+msgstr "Snimanje videa"
+
+msgid "IDS_EMAIL_BODY_MOVE_TO_TO"
+msgstr "Premjesti u Za"
+
+msgid "IDS_EMAIL_HEADER_SELECT_EMAIL_ADDRESS"
+msgstr "Odaberite e-mail adresu"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_SEARCH"
+msgstr "Traženje nemoguće"
+
+msgid "IDS_EMAIL_OPT_READ"
+msgstr "Pročitano"
+
+msgid "IDS_EMAIL_POP_DOUBLE_TAP_TO_GO_TO_THE_TOP_OF_CONTACTS_LISTS_EMAIL_LISTS_AND_EMAIL_MESSAGES"
+msgstr "Dvaput dodirnite za odlazak na vrh popisa kontakata, popisa emailova i email poruka"
+
+msgid "IDS_EMAIL_OPT_EDIT_RESPONSE_BEFORE_SENDING"
+msgstr "Uredi odgovor prije slanja"
+
+msgid "IDS_EMAIL_OPT_SEND_RESPONSE_NOW"
+msgstr "Pošalji odgovor"
+
+msgid "IDS_EMAIL_OPT_DO_NOT_SEND_RESPONSE"
+msgstr "Nemoj poslati odgovor"
+
+msgid "IDS_EMAIL_BUTTON_VERIFY_SIGNATURE"
+msgstr "Provjeri potpis"
+
+msgid "IDS_EMAIL_HEADER_VERIFY_SIGNATURE_HEADER"
+msgstr "Provjeri potpis"
+
+msgid "IDS_EMAIL_BODY_UNABLE_TO_VERIFY_SIGNATURE_PUBLIC_KEY_IS_NOT_INSTALLED"
+msgstr "Nemoguće provjeriti potpis. Javni ključ nije instaliran"
+
+msgid "IDS_EMAIL_POP_THE_DIGITAL_SIGNATURE_ON_THIS_MESSAGE_IS_VALID_AND_TRUSTED"
+msgstr "Digitalni potpis u ovoj poruci je valjan i pouzdan"
+
+msgid "IDS_EMAIL_BUTTON_DECRYPT_MESSAGE"
+msgstr "Dešifriraj poruku"
+
+msgid "IDS_EMAIL_OPT_SAVE_EMAIL_ABB"
+msgstr "Spremi email"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_CREATE_FOLDER"
+msgstr "Nemoguće napraviti mapu"
+
+msgid "IDS_EMAIL_BUTTON_TAKE_PICTURE"
+msgstr "Fotografiraj"
+
index 2e82f54..f71972b 100755 (executable)
--- a/po/hu.po
+++ b/po/hu.po
@@ -89,7 +89,7 @@ msgid "IDS_EMAIL_BODY_DOWNLOAD_FULL_MESSAGE"
 msgstr "Egész üzenet letöltése"
 
 msgid "IDS_EMAIL_BODY_GENERAL_SETTINGS"
-msgstr "Ált. beállítások"
+msgstr "Általános beállítások"
 
 msgid "IDS_EMAIL_BODY_TENTATIVE_C_PS"
 msgstr "Feltételes: %s"
@@ -1390,3 +1390,60 @@ msgstr "%d percenként"
 msgid "IDS_EMAIL_BODY_ADD_ADDRESS"
 msgstr "Cím hozzáadása"
 
+msgid "IDS_EMAIL_BODY_NEW_EMAIL"
+msgstr "Új e-mail"
+
+msgid "IDS_EMAIL_HEADER_SELECT_FOLDER_ABB"
+msgstr "Mappa kiválasztása"
+
+msgid "IDS_EMAIL_BODY_CAPTURE_VIDEO"
+msgstr "Videó rögzítése"
+
+msgid "IDS_EMAIL_BODY_MOVE_TO_TO"
+msgstr "Áthelyezés a Címzett mezőbe"
+
+msgid "IDS_EMAIL_HEADER_SELECT_EMAIL_ADDRESS"
+msgstr "Válasszon e-mail címet"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_SEARCH"
+msgstr "Nem sikerült keresni"
+
+msgid "IDS_EMAIL_OPT_READ"
+msgstr "Elolvasva"
+
+msgid "IDS_EMAIL_POP_DOUBLE_TAP_TO_GO_TO_THE_TOP_OF_CONTACTS_LISTS_EMAIL_LISTS_AND_EMAIL_MESSAGES"
+msgstr "Dupla érintéssel a névjegyzékek, e-mail listák, illetve e-mail üzenetek tetejére ugorhat"
+
+msgid "IDS_EMAIL_OPT_EDIT_RESPONSE_BEFORE_SENDING"
+msgstr "Válasz szerkesztése küldés előtt"
+
+msgid "IDS_EMAIL_OPT_SEND_RESPONSE_NOW"
+msgstr "Válasz küldése most"
+
+msgid "IDS_EMAIL_OPT_DO_NOT_SEND_RESPONSE"
+msgstr "Nem küld választ"
+
+msgid "IDS_EMAIL_BUTTON_VERIFY_SIGNATURE"
+msgstr "Aláírás ellenőrzése"
+
+msgid "IDS_EMAIL_HEADER_VERIFY_SIGNATURE_HEADER"
+msgstr "Aláírás ellenőrzése"
+
+msgid "IDS_EMAIL_BODY_UNABLE_TO_VERIFY_SIGNATURE_PUBLIC_KEY_IS_NOT_INSTALLED"
+msgstr "Nem lehet hitelesíteni az aláírást. Nincs telepítve a nyilvános kulcs"
+
+msgid "IDS_EMAIL_POP_THE_DIGITAL_SIGNATURE_ON_THIS_MESSAGE_IS_VALID_AND_TRUSTED"
+msgstr "Az üzenet digitális aláírása érvényes és megbízható"
+
+msgid "IDS_EMAIL_BUTTON_DECRYPT_MESSAGE"
+msgstr "Üzenet dekódolása"
+
+msgid "IDS_EMAIL_OPT_SAVE_EMAIL_ABB"
+msgstr "E-mail mentése"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_CREATE_FOLDER"
+msgstr "Mappa létrehozása sikertelen"
+
+msgid "IDS_EMAIL_BUTTON_TAKE_PICTURE"
+msgstr "Kép készítése"
+
index efe1783..66e64a9 100755 (executable)
--- a/po/hy.po
+++ b/po/hy.po
@@ -1390,3 +1390,60 @@ msgstr "Յուրաքանչյուր %d րոպե"
 msgid "IDS_EMAIL_BODY_ADD_ADDRESS"
 msgstr "Ավելացնել հասցե"
 
+msgid "IDS_EMAIL_BODY_NEW_EMAIL"
+msgstr "Նոր էլ. փոստ"
+
+msgid "IDS_EMAIL_HEADER_SELECT_FOLDER_ABB"
+msgstr "Ընտրել թղթապանակ"
+
+msgid "IDS_EMAIL_BODY_CAPTURE_VIDEO"
+msgstr "Տսհլվկ նկրլ"
+
+msgid "IDS_EMAIL_BODY_MOVE_TO_TO"
+msgstr "Տեղափոխել դեպի Ում"
+
+msgid "IDS_EMAIL_HEADER_SELECT_EMAIL_ADDRESS"
+msgstr "Ընտրել էլփոստի հասցե"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_SEARCH"
+msgstr "Անհնար է որոնել"
+
+msgid "IDS_EMAIL_OPT_READ"
+msgstr "Ընթերցում"
+
+msgid "IDS_EMAIL_POP_DOUBLE_TAP_TO_GO_TO_THE_TOP_OF_CONTACTS_LISTS_EMAIL_LISTS_AND_EMAIL_MESSAGES"
+msgstr "Կրկնակի թակեք՝ կոնտակտների ցանկերի վերնամաս, էլ-նամակների ցանկեր և էլեկտրոնային հաղորդագրություններ գնալու համար"
+
+msgid "IDS_EMAIL_OPT_EDIT_RESPONSE_BEFORE_SENDING"
+msgstr "Խմբագրել պատասխանը նախքան ուղարկելը"
+
+msgid "IDS_EMAIL_OPT_SEND_RESPONSE_NOW"
+msgstr "Ուղարկել պատասխանը հիմա"
+
+msgid "IDS_EMAIL_OPT_DO_NOT_SEND_RESPONSE"
+msgstr "Պատասխան չուղարկել"
+
+msgid "IDS_EMAIL_BUTTON_VERIFY_SIGNATURE"
+msgstr "Ստուգել ստորագրթյուն"
+
+msgid "IDS_EMAIL_HEADER_VERIFY_SIGNATURE_HEADER"
+msgstr "Ստուգել ստորագրությունը"
+
+msgid "IDS_EMAIL_BODY_UNABLE_TO_VERIFY_SIGNATURE_PUBLIC_KEY_IS_NOT_INSTALLED"
+msgstr "Անհնար է ստուգել ստորագրությունը: Բաց բանալին տեղադրված չէ"
+
+msgid "IDS_EMAIL_POP_THE_DIGITAL_SIGNATURE_ON_THIS_MESSAGE_IS_VALID_AND_TRUSTED"
+msgstr "Այս հաղորդագրության թվային ստորագրությունը վավեր և վստահելի է"
+
+msgid "IDS_EMAIL_BUTTON_DECRYPT_MESSAGE"
+msgstr "Վերծանել հղգրթյունը"
+
+msgid "IDS_EMAIL_OPT_SAVE_EMAIL_ABB"
+msgstr "Պահպանել էլ-նամակը"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_CREATE_FOLDER"
+msgstr "Անհնար է ստեղծել ծրար"
+
+msgid "IDS_EMAIL_BUTTON_TAKE_PICTURE"
+msgstr "Լուսանկարել"
+
index 124ec57..b69d0c9 100755 (executable)
--- a/po/is.po
+++ b/po/is.po
@@ -1390,3 +1390,60 @@ msgstr "Á %d mínútna fresti"
 msgid "IDS_EMAIL_BODY_ADD_ADDRESS"
 msgstr "Bæta við heimilisfangi"
 
+msgid "IDS_EMAIL_BODY_NEW_EMAIL"
+msgstr "Nýr póstur"
+
+msgid "IDS_EMAIL_HEADER_SELECT_FOLDER_ABB"
+msgstr "Velja möppu"
+
+msgid "IDS_EMAIL_BODY_CAPTURE_VIDEO"
+msgstr "Taka upp vídeó"
+
+msgid "IDS_EMAIL_BODY_MOVE_TO_TO"
+msgstr "Færa í Til"
+
+msgid "IDS_EMAIL_HEADER_SELECT_EMAIL_ADDRESS"
+msgstr "Veldu netfang"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_SEARCH"
+msgstr "Mistókst að leita"
+
+msgid "IDS_EMAIL_OPT_READ"
+msgstr "Lesið"
+
+msgid "IDS_EMAIL_POP_DOUBLE_TAP_TO_GO_TO_THE_TOP_OF_CONTACTS_LISTS_EMAIL_LISTS_AND_EMAIL_MESSAGES"
+msgstr "Tvípikkaðu til að fara efst í tengiliðalista, lista yfir tölvupóst og í meginmáli"
+
+msgid "IDS_EMAIL_OPT_EDIT_RESPONSE_BEFORE_SENDING"
+msgstr "Breyta svari fyrir sendingu"
+
+msgid "IDS_EMAIL_OPT_SEND_RESPONSE_NOW"
+msgstr "Senda svar núna"
+
+msgid "IDS_EMAIL_OPT_DO_NOT_SEND_RESPONSE"
+msgstr "Ekki senda svar"
+
+msgid "IDS_EMAIL_BUTTON_VERIFY_SIGNATURE"
+msgstr "Staðf. undirskrift"
+
+msgid "IDS_EMAIL_HEADER_VERIFY_SIGNATURE_HEADER"
+msgstr "Staðfesta undirskrift"
+
+msgid "IDS_EMAIL_BODY_UNABLE_TO_VERIFY_SIGNATURE_PUBLIC_KEY_IS_NOT_INSTALLED"
+msgstr "Mistókst að sannvotta undirritun. Almennur lykill er ekki uppsettur"
+
+msgid "IDS_EMAIL_POP_THE_DIGITAL_SIGNATURE_ON_THIS_MESSAGE_IS_VALID_AND_TRUSTED"
+msgstr "Stafræn undirskrift þessa skeytis er gild og henni er treyst"
+
+msgid "IDS_EMAIL_BUTTON_DECRYPT_MESSAGE"
+msgstr "Afkóða skilaboð"
+
+msgid "IDS_EMAIL_OPT_SAVE_EMAIL_ABB"
+msgstr "Vista netfang"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_CREATE_FOLDER"
+msgstr "Ekki tókst að búa til möppu"
+
+msgid "IDS_EMAIL_BUTTON_TAKE_PICTURE"
+msgstr "Taka mynd"
+
index 51196bd..2ce4b6c 100755 (executable)
@@ -878,7 +878,7 @@ msgid "IDS_EMAIL_POP_UNABLE_TO_ATTACH_FILE"
 msgstr "Impossibile allegare file"
 
 msgid "IDS_EMAIL_OPT_CALENDAR"
-msgstr "Agenda"
+msgstr "Calendario"
 
 msgid "IDS_EMAIL_OPT_MEMO"
 msgstr "Promemoria"
@@ -1390,3 +1390,60 @@ msgstr "Ogni %d minuti"
 msgid "IDS_EMAIL_BODY_ADD_ADDRESS"
 msgstr "Aggiungi indirizzo"
 
+msgid "IDS_EMAIL_BODY_NEW_EMAIL"
+msgstr "Nuova e-mail"
+
+msgid "IDS_EMAIL_HEADER_SELECT_FOLDER_ABB"
+msgstr "Seleziona cartella"
+
+msgid "IDS_EMAIL_BODY_CAPTURE_VIDEO"
+msgstr "Registra video"
+
+msgid "IDS_EMAIL_BODY_MOVE_TO_TO"
+msgstr "Sposta in A"
+
+msgid "IDS_EMAIL_HEADER_SELECT_EMAIL_ADDRESS"
+msgstr "Seleziona indirizzo e-mail"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_SEARCH"
+msgstr "Ricerca impossibile"
+
+msgid "IDS_EMAIL_OPT_READ"
+msgstr "Letto"
+
+msgid "IDS_EMAIL_POP_DOUBLE_TAP_TO_GO_TO_THE_TOP_OF_CONTACTS_LISTS_EMAIL_LISTS_AND_EMAIL_MESSAGES"
+msgstr "Toccate due volte per tornare all'inizio degli elenchi contatti, degli elenchi e-mail e dei messaggi e-mail"
+
+msgid "IDS_EMAIL_OPT_EDIT_RESPONSE_BEFORE_SENDING"
+msgstr "Modifica risposta prima dell'invio"
+
+msgid "IDS_EMAIL_OPT_SEND_RESPONSE_NOW"
+msgstr "Invia risposta subito"
+
+msgid "IDS_EMAIL_OPT_DO_NOT_SEND_RESPONSE"
+msgstr "Non inviare risposta"
+
+msgid "IDS_EMAIL_BUTTON_VERIFY_SIGNATURE"
+msgstr "Verifica firma"
+
+msgid "IDS_EMAIL_HEADER_VERIFY_SIGNATURE_HEADER"
+msgstr "Verifica firma"
+
+msgid "IDS_EMAIL_BODY_UNABLE_TO_VERIFY_SIGNATURE_PUBLIC_KEY_IS_NOT_INSTALLED"
+msgstr "Impossibile verificare la firma. La chiave pubblica non è installata"
+
+msgid "IDS_EMAIL_POP_THE_DIGITAL_SIGNATURE_ON_THIS_MESSAGE_IS_VALID_AND_TRUSTED"
+msgstr "La firma digitale su questo messaggio è valida e attendibile"
+
+msgid "IDS_EMAIL_BUTTON_DECRYPT_MESSAGE"
+msgstr "Decrittografa msg"
+
+msgid "IDS_EMAIL_OPT_SAVE_EMAIL_ABB"
+msgstr "Salva e-mail"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_CREATE_FOLDER"
+msgstr "Impossibile creare cartella"
+
+msgid "IDS_EMAIL_BUTTON_TAKE_PICTURE"
+msgstr "Scatta foto"
+
index 4962a8e..309a1c1 100755 (executable)
@@ -140,7 +140,7 @@ msgid "IDS_EMAIL_BODY_ACCOUNT_NAME"
 msgstr "アカウント名"
 
 msgid "IDS_EMAIL_BODY_ATTACHMENTS"
-msgstr "ファイル添付"
+msgstr "添付"
 
 msgid "IDS_EMAIL_BODY_FROM_C"
 msgstr "発信元:"
@@ -458,7 +458,7 @@ msgid "IDS_EMAIL_BODY_FROM"
 msgstr "送信元"
 
 msgid "IDS_EMAIL_BODY_NO_ADDRESS"
-msgstr "アドレスはありません"
+msgstr "アドレス​が​ありません。"
 
 msgid "IDS_EMAIL_OPT_RECORD_SOUND"
 msgstr "ボイスレコーダー起動"
@@ -983,7 +983,7 @@ msgid "IDS_EMAIL_OPT_MEETING_REQUEST"
 msgstr "ミーティングリクエスト"
 
 msgid "IDS_EMAIL_OPT_ATTACHMENTS"
-msgstr "ファイル添付"
+msgstr "添付"
 
 msgid "IDS_EMAIL_HEADER_FOLDERS"
 msgstr "フォルダ"
@@ -1390,3 +1390,60 @@ msgstr "%d分ごと"
 msgid "IDS_EMAIL_BODY_ADD_ADDRESS"
 msgstr "アドレス追加"
 
+msgid "IDS_EMAIL_BODY_NEW_EMAIL"
+msgstr "新規Eメール"
+
+msgid "IDS_EMAIL_HEADER_SELECT_FOLDER_ABB"
+msgstr "フォルダ選択"
+
+msgid "IDS_EMAIL_BODY_CAPTURE_VIDEO"
+msgstr "動画撮影"
+
+msgid "IDS_EMAIL_BODY_MOVE_TO_TO"
+msgstr "宛先に移動"
+
+msgid "IDS_EMAIL_HEADER_SELECT_EMAIL_ADDRESS"
+msgstr "Eメール​アドレス​を​選択"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_SEARCH"
+msgstr "検索できません。"
+
+msgid "IDS_EMAIL_OPT_READ"
+msgstr "既読"
+
+msgid "IDS_EMAIL_POP_DOUBLE_TAP_TO_GO_TO_THE_TOP_OF_CONTACTS_LISTS_EMAIL_LISTS_AND_EMAIL_MESSAGES"
+msgstr "連絡​先​リスト、​E​メール​リスト​および​E​メール​メッセージ​の​トップ​に​移動​する​には、​ダブル​タップ​して​ください。"
+
+msgid "IDS_EMAIL_OPT_EDIT_RESPONSE_BEFORE_SENDING"
+msgstr "送信前に返信内容を編集"
+
+msgid "IDS_EMAIL_OPT_SEND_RESPONSE_NOW"
+msgstr "今すぐ返信"
+
+msgid "IDS_EMAIL_OPT_DO_NOT_SEND_RESPONSE"
+msgstr "返信しない"
+
+msgid "IDS_EMAIL_BUTTON_VERIFY_SIGNATURE"
+msgstr "署名​を​認証"
+
+msgid "IDS_EMAIL_HEADER_VERIFY_SIGNATURE_HEADER"
+msgstr "署名​を​認証"
+
+msgid "IDS_EMAIL_BODY_UNABLE_TO_VERIFY_SIGNATURE_PUBLIC_KEY_IS_NOT_INSTALLED"
+msgstr "署名​を​認証​でき​ません。​公開​キー​が​インストール​され​て​いま​せん。"
+
+msgid "IDS_EMAIL_POP_THE_DIGITAL_SIGNATURE_ON_THIS_MESSAGE_IS_VALID_AND_TRUSTED"
+msgstr "このメッセージのデジタル署名は有効かつ、信頼できます。"
+
+msgid "IDS_EMAIL_BUTTON_DECRYPT_MESSAGE"
+msgstr "メッセージ​を​復号"
+
+msgid "IDS_EMAIL_OPT_SAVE_EMAIL_ABB"
+msgstr "Eメールを保存"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_CREATE_FOLDER"
+msgstr "フォルダ​を​作成​でき​ません。"
+
+msgid "IDS_EMAIL_BUTTON_TAKE_PICTURE"
+msgstr "カメラ撮影"
+
index 69f97a5..f019e4a 100755 (executable)
--- a/po/ka.po
+++ b/po/ka.po
@@ -365,7 +365,7 @@ msgid "IDS_EMAIL_OPT_SENDER"
 msgstr "გამგზავნი"
 
 msgid "IDS_EMAIL_OPT_SEND_EMAIL"
-msgstr "ელ.წერილის გაგზავნა"
+msgstr "ელ. წერილის გაგზავნა"
 
 msgid "IDS_EMAIL_OPT_UPDATE_EXISTING"
 msgstr "არსებულის განახლება"
@@ -476,7 +476,7 @@ msgid "IDS_EMAIL_OPT_CHANGE_EMAIL_ADDRESS_ABB"
 msgstr "ელ.ფოსტის მისამართის შეცვლა"
 
 msgid "IDS_EMAIL_OPT_CLIPBOARD"
-msgstr "ბუფერული მეხსიერება"
+msgstr "ბუფერული მეხს."
 
 msgid "IDS_EMAIL_OPT_VIEW_CONTACT_DETAILS"
 msgstr "საკონტაქტო მონაცემების დათვალიერება"
@@ -1390,3 +1390,60 @@ msgstr "ყოველ  %d წუთში"
 msgid "IDS_EMAIL_BODY_ADD_ADDRESS"
 msgstr "მისამართის დამატება"
 
+msgid "IDS_EMAIL_BODY_NEW_EMAIL"
+msgstr "ახალი ელ.წერილი"
+
+msgid "IDS_EMAIL_HEADER_SELECT_FOLDER_ABB"
+msgstr "აირჩიეთ საქაღალდე"
+
+msgid "IDS_EMAIL_BODY_CAPTURE_VIDEO"
+msgstr "ვიდეოს გადაღება"
+
+msgid "IDS_EMAIL_BODY_MOVE_TO_TO"
+msgstr "გადასვლა ველზე ”ვის”"
+
+msgid "IDS_EMAIL_HEADER_SELECT_EMAIL_ADDRESS"
+msgstr "აირჩიეთ ელ.ფოსტის მისამართი"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_SEARCH"
+msgstr "ვერ იძებნება"
+
+msgid "IDS_EMAIL_OPT_READ"
+msgstr "წაკითხვა"
+
+msgid "IDS_EMAIL_POP_DOUBLE_TAP_TO_GO_TO_THE_TOP_OF_CONTACTS_LISTS_EMAIL_LISTS_AND_EMAIL_MESSAGES"
+msgstr "ორჯერ შეხებით გადახვალთ კონტაქტების სიების თავში, ელფოსტების სიებში და ელფოსტის წერილებში"
+
+msgid "IDS_EMAIL_OPT_EDIT_RESPONSE_BEFORE_SENDING"
+msgstr "შეასწორეთ პასუხი, სანამ გაგზავნით"
+
+msgid "IDS_EMAIL_OPT_SEND_RESPONSE_NOW"
+msgstr "გაგზავნეთ პასუხი ახლა"
+
+msgid "IDS_EMAIL_OPT_DO_NOT_SEND_RESPONSE"
+msgstr "არ გაგზავნოთ პასუხი"
+
+msgid "IDS_EMAIL_BUTTON_VERIFY_SIGNATURE"
+msgstr "ხელმოწერის დამოწმება"
+
+msgid "IDS_EMAIL_HEADER_VERIFY_SIGNATURE_HEADER"
+msgstr "ხელმოწერის დამოწმება"
+
+msgid "IDS_EMAIL_BODY_UNABLE_TO_VERIFY_SIGNATURE_PUBLIC_KEY_IS_NOT_INSTALLED"
+msgstr "ხელმოწერა ვერ დადასტურდა. საჯარო კოდი არ არის დაინსტალირებული"
+
+msgid "IDS_EMAIL_POP_THE_DIGITAL_SIGNATURE_ON_THIS_MESSAGE_IS_VALID_AND_TRUSTED"
+msgstr "ამ წერილში ციფრული ხელმოწერა ქმედითი და სანდოა"
+
+msgid "IDS_EMAIL_BUTTON_DECRYPT_MESSAGE"
+msgstr "წერილის გაშიფვრა"
+
+msgid "IDS_EMAIL_OPT_SAVE_EMAIL_ABB"
+msgstr "ელ.წერილის შენახვა"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_CREATE_FOLDER"
+msgstr "ვერ შექმნით საქაღალდეს"
+
+msgid "IDS_EMAIL_BUTTON_TAKE_PICTURE"
+msgstr "სურათის გადაღება"
+
index 36fa21d..97456ea 100755 (executable)
--- a/po/kk.po
+++ b/po/kk.po
@@ -1390,3 +1390,60 @@ msgstr "Әр %d минут"
 msgid "IDS_EMAIL_BODY_ADD_ADDRESS"
 msgstr "Мекенжайды қосу"
 
+msgid "IDS_EMAIL_BODY_NEW_EMAIL"
+msgstr "Жаңа email"
+
+msgid "IDS_EMAIL_HEADER_SELECT_FOLDER_ABB"
+msgstr "Қалта таңдау"
+
+msgid "IDS_EMAIL_BODY_CAPTURE_VIDEO"
+msgstr "Видео бөгеліс"
+
+msgid "IDS_EMAIL_BODY_MOVE_TO_TO"
+msgstr "'Кімге' жолына ауыстыру"
+
+msgid "IDS_EMAIL_HEADER_SELECT_EMAIL_ADDRESS"
+msgstr "Электрондық пошта мекенжайын таңдаңыз"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_SEARCH"
+msgstr "Іздеу мүмкін емес"
+
+msgid "IDS_EMAIL_OPT_READ"
+msgstr "Оқу"
+
+msgid "IDS_EMAIL_POP_DOUBLE_TAP_TO_GO_TO_THE_TOP_OF_CONTACTS_LISTS_EMAIL_LISTS_AND_EMAIL_MESSAGES"
+msgstr "Контактілер тізімінің, электрондық пошта тізімінің және электрондық пошта хабарларының жоғарғы жағына өту үшін екі рет түртіңіз"
+
+msgid "IDS_EMAIL_OPT_EDIT_RESPONSE_BEFORE_SENDING"
+msgstr "Жібермес бұрын жауапты өзгерту"
+
+msgid "IDS_EMAIL_OPT_SEND_RESPONSE_NOW"
+msgstr "Қазір жауап жіберу"
+
+msgid "IDS_EMAIL_OPT_DO_NOT_SEND_RESPONSE"
+msgstr "Жауап жібермеу"
+
+msgid "IDS_EMAIL_BUTTON_VERIFY_SIGNATURE"
+msgstr "Қолтаңбаны тексеру"
+
+msgid "IDS_EMAIL_HEADER_VERIFY_SIGNATURE_HEADER"
+msgstr "Қолтаңбаны тексеру"
+
+msgid "IDS_EMAIL_BODY_UNABLE_TO_VERIFY_SIGNATURE_PUBLIC_KEY_IS_NOT_INSTALLED"
+msgstr "Қолтаңбаны тексеру мүмкін емес. Ашық кілт орнатылмаған"
+
+msgid "IDS_EMAIL_POP_THE_DIGITAL_SIGNATURE_ON_THIS_MESSAGE_IS_VALID_AND_TRUSTED"
+msgstr "Бұл хабардағы сандық қолтаңба жарамды әрі сенімді"
+
+msgid "IDS_EMAIL_BUTTON_DECRYPT_MESSAGE"
+msgstr "Хабарды шифрсыздан-у"
+
+msgid "IDS_EMAIL_OPT_SAVE_EMAIL_ABB"
+msgstr "Элек. хабар сақтау"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_CREATE_FOLDER"
+msgstr "Қалта құрылмады"
+
+msgid "IDS_EMAIL_BUTTON_TAKE_PICTURE"
+msgstr "Суретке түсіру"
+
index 1488f57..607f15d 100755 (executable)
@@ -923,10 +923,10 @@ msgid "IDS_EMAIL_OPT_DATE_HOLDEST"
 msgstr "날짜(오래된순)"
 
 msgid "IDS_EMAIL_OPT_SENDER_HA_TO_Z"
-msgstr "발신인(오름차순)"
+msgstr "발신인(가나다순)"
 
 msgid "IDS_EMAIL_OPT_SENDER_HZ_TO_A"
-msgstr "발신인(내림차순)"
+msgstr "발신인(가나다역순)"
 
 msgid "IDS_EMAIL_OPT_READ_UNREAD"
 msgstr "읽음/읽지 않음"
@@ -1004,10 +1004,10 @@ msgid "IDS_EMAIL_OPT_ALL"
 msgstr "전체"
 
 msgid "IDS_EMAIL_OPT_RECIPIENT_HA_TO_Z"
-msgstr "받는 사람(오름차순)"
+msgstr "받는 사람(가나다순)"
 
 msgid "IDS_EMAIL_OPT_RECIPIENT_HZ_TO_A"
-msgstr "받는 사람(내림차순)"
+msgstr "받는 사람(가나다역순)"
 
 msgid "IDS_EMAIL_HEADER_SEARCH_SHAREPOINT"
 msgstr "SharePoint 검색"
@@ -1390,3 +1390,60 @@ msgstr "%d분 마다"
 msgid "IDS_EMAIL_BODY_ADD_ADDRESS"
 msgstr "주소 추가"
 
+msgid "IDS_EMAIL_BODY_NEW_EMAIL"
+msgstr "새 이메일"
+
+msgid "IDS_EMAIL_HEADER_SELECT_FOLDER_ABB"
+msgstr "폴더 선택"
+
+msgid "IDS_EMAIL_BODY_CAPTURE_VIDEO"
+msgstr "동영상 촬영"
+
+msgid "IDS_EMAIL_BODY_MOVE_TO_TO"
+msgstr "수신인으로 이동"
+
+msgid "IDS_EMAIL_HEADER_SELECT_EMAIL_ADDRESS"
+msgstr "이메일 주소를 선택하세요"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_SEARCH"
+msgstr "검색할 수 없습니다"
+
+msgid "IDS_EMAIL_OPT_READ"
+msgstr "읽음"
+
+msgid "IDS_EMAIL_POP_DOUBLE_TAP_TO_GO_TO_THE_TOP_OF_CONTACTS_LISTS_EMAIL_LISTS_AND_EMAIL_MESSAGES"
+msgstr "연락처 목록, 이메일 목록 및 이메일 메시지의 맨 위로 이동하려면 두 번 누르세요"
+
+msgid "IDS_EMAIL_OPT_EDIT_RESPONSE_BEFORE_SENDING"
+msgstr "전송하기 전에 응답 편집"
+
+msgid "IDS_EMAIL_OPT_SEND_RESPONSE_NOW"
+msgstr "지금 응답 전송"
+
+msgid "IDS_EMAIL_OPT_DO_NOT_SEND_RESPONSE"
+msgstr "응답 보내지 않음"
+
+msgid "IDS_EMAIL_BUTTON_VERIFY_SIGNATURE"
+msgstr "서명 확인"
+
+msgid "IDS_EMAIL_HEADER_VERIFY_SIGNATURE_HEADER"
+msgstr "서명 확인"
+
+msgid "IDS_EMAIL_BODY_UNABLE_TO_VERIFY_SIGNATURE_PUBLIC_KEY_IS_NOT_INSTALLED"
+msgstr "서명을 인증할 수 없습니다. 공개키가 설치되어 있지 않습니다"
+
+msgid "IDS_EMAIL_POP_THE_DIGITAL_SIGNATURE_ON_THIS_MESSAGE_IS_VALID_AND_TRUSTED"
+msgstr "이 메시지의 전자 서명은 유효하며 신뢰할 수 있습니다"
+
+msgid "IDS_EMAIL_BUTTON_DECRYPT_MESSAGE"
+msgstr "메시지 암호화 해제"
+
+msgid "IDS_EMAIL_OPT_SAVE_EMAIL_ABB"
+msgstr "이메일 저장"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_CREATE_FOLDER"
+msgstr "폴더를 생성할 수 없습니다"
+
+msgid "IDS_EMAIL_BUTTON_TAKE_PICTURE"
+msgstr "사진 촬영"
+
index f56b5e1..7276c42 100755 (executable)
--- a/po/lt.po
+++ b/po/lt.po
@@ -1390,3 +1390,60 @@ msgstr "Kas %d minutes"
 msgid "IDS_EMAIL_BODY_ADD_ADDRESS"
 msgstr "Pridėti adresą"
 
+msgid "IDS_EMAIL_BODY_NEW_EMAIL"
+msgstr "Naujas el. laiškas"
+
+msgid "IDS_EMAIL_HEADER_SELECT_FOLDER_ABB"
+msgstr "Pasirinkite aplanką"
+
+msgid "IDS_EMAIL_BODY_CAPTURE_VIDEO"
+msgstr "Filmuoti vaizdo įrašą"
+
+msgid "IDS_EMAIL_BODY_MOVE_TO_TO"
+msgstr "Perkelti į „Kam“"
+
+msgid "IDS_EMAIL_HEADER_SELECT_EMAIL_ADDRESS"
+msgstr "Pasirinkti el. pašto adresą"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_SEARCH"
+msgstr "Neįmanoma ieškoti"
+
+msgid "IDS_EMAIL_OPT_READ"
+msgstr "Skaityti"
+
+msgid "IDS_EMAIL_POP_DOUBLE_TAP_TO_GO_TO_THE_TOP_OF_CONTACTS_LISTS_EMAIL_LISTS_AND_EMAIL_MESSAGES"
+msgstr "Bakstelėkite dukart, kad pereitumėte į adresatų sąrašo, el. laiškų sąrašo ir el. laiškų pradžią"
+
+msgid "IDS_EMAIL_OPT_EDIT_RESPONSE_BEFORE_SENDING"
+msgstr "Redaguoti atsakymą prieš siunčiant"
+
+msgid "IDS_EMAIL_OPT_SEND_RESPONSE_NOW"
+msgstr "Siųsti atsakymą dabar"
+
+msgid "IDS_EMAIL_OPT_DO_NOT_SEND_RESPONSE"
+msgstr "Nesiųsti atsakymo"
+
+msgid "IDS_EMAIL_BUTTON_VERIFY_SIGNATURE"
+msgstr "Patvirtinti parašą"
+
+msgid "IDS_EMAIL_HEADER_VERIFY_SIGNATURE_HEADER"
+msgstr "Patvirtinti parašą"
+
+msgid "IDS_EMAIL_BODY_UNABLE_TO_VERIFY_SIGNATURE_PUBLIC_KEY_IS_NOT_INSTALLED"
+msgstr "Neįmanoma patvirtinti parašo. Viešasis raktas neįdiegtas"
+
+msgid "IDS_EMAIL_POP_THE_DIGITAL_SIGNATURE_ON_THIS_MESSAGE_IS_VALID_AND_TRUSTED"
+msgstr "Skaitmeninis parašas šioje žinutėje yra galiojantis ir patikimas"
+
+msgid "IDS_EMAIL_BUTTON_DECRYPT_MESSAGE"
+msgstr "Iššifruoti žinutę"
+
+msgid "IDS_EMAIL_OPT_SAVE_EMAIL_ABB"
+msgstr "Išsaugoti el. laišką"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_CREATE_FOLDER"
+msgstr "Neįmanoma sukurti aplanko"
+
+msgid "IDS_EMAIL_BUTTON_TAKE_PICTURE"
+msgstr "Fotografuoti"
+
index a5ffb5a..b318594 100755 (executable)
--- a/po/lv.po
+++ b/po/lv.po
@@ -1390,3 +1390,60 @@ msgstr "Ik pēc %d minūtēm"
 msgid "IDS_EMAIL_BODY_ADD_ADDRESS"
 msgstr "Adreses pievienošana"
 
+msgid "IDS_EMAIL_BODY_NEW_EMAIL"
+msgstr "Jauna e-pasta ziņa"
+
+msgid "IDS_EMAIL_HEADER_SELECT_FOLDER_ABB"
+msgstr "Mapes izvēle"
+
+msgid "IDS_EMAIL_BODY_CAPTURE_VIDEO"
+msgstr "Uzņemt videoklipu"
+
+msgid "IDS_EMAIL_BODY_MOVE_TO_TO"
+msgstr "Pārvietot uz Kam"
+
+msgid "IDS_EMAIL_HEADER_SELECT_EMAIL_ADDRESS"
+msgstr "Izvēlēties e-pasta adresi"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_SEARCH"
+msgstr "Nevar meklēt"
+
+msgid "IDS_EMAIL_OPT_READ"
+msgstr "Lasīta"
+
+msgid "IDS_EMAIL_POP_DOUBLE_TAP_TO_GO_TO_THE_TOP_OF_CONTACTS_LISTS_EMAIL_LISTS_AND_EMAIL_MESSAGES"
+msgstr "Veiciet dubultskārienu, lai dotos uz kontaktu saraksta, e-pastu saraksta un e-pasta ziņu saraksta sākumu"
+
+msgid "IDS_EMAIL_OPT_EDIT_RESPONSE_BEFORE_SENDING"
+msgstr "Rediģēt atbildi pirms sūtīšanas"
+
+msgid "IDS_EMAIL_OPT_SEND_RESPONSE_NOW"
+msgstr "Sūtīt atbildi tagad"
+
+msgid "IDS_EMAIL_OPT_DO_NOT_SEND_RESPONSE"
+msgstr "Nesūtīt atbildi"
+
+msgid "IDS_EMAIL_BUTTON_VERIFY_SIGNATURE"
+msgstr "Verificēt parakstu"
+
+msgid "IDS_EMAIL_HEADER_VERIFY_SIGNATURE_HEADER"
+msgstr "Verificēt parakstu"
+
+msgid "IDS_EMAIL_BODY_UNABLE_TO_VERIFY_SIGNATURE_PUBLIC_KEY_IS_NOT_INSTALLED"
+msgstr "Nevar verificēt parakstu. Nav instalēta publiskā atslēga"
+
+msgid "IDS_EMAIL_POP_THE_DIGITAL_SIGNATURE_ON_THIS_MESSAGE_IS_VALID_AND_TRUSTED"
+msgstr "Šīs ziņas ciparparaksts ir derīgs un uzticams"
+
+msgid "IDS_EMAIL_BUTTON_DECRYPT_MESSAGE"
+msgstr "Atšifrēt ziņu"
+
+msgid "IDS_EMAIL_OPT_SAVE_EMAIL_ABB"
+msgstr "Saglabāt e-pastu"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_CREATE_FOLDER"
+msgstr "Nevar izveidot mapi"
+
+msgid "IDS_EMAIL_BUTTON_TAKE_PICTURE"
+msgstr "Fotografēt"
+
index 7b0eeda..4b728c6 100755 (executable)
--- a/po/mk.po
+++ b/po/mk.po
@@ -1390,3 +1390,60 @@ msgstr "На %d минути"
 msgid "IDS_EMAIL_BODY_ADD_ADDRESS"
 msgstr "Додај адреса"
 
+msgid "IDS_EMAIL_BODY_NEW_EMAIL"
+msgstr "Нова email"
+
+msgid "IDS_EMAIL_HEADER_SELECT_FOLDER_ABB"
+msgstr "Одбери папка"
+
+msgid "IDS_EMAIL_BODY_CAPTURE_VIDEO"
+msgstr "Сними видео"
+
+msgid "IDS_EMAIL_BODY_MOVE_TO_TO"
+msgstr "Премести во До"
+
+msgid "IDS_EMAIL_HEADER_SELECT_EMAIL_ADDRESS"
+msgstr "Изберете адреса за email"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_SEARCH"
+msgstr "Не може да се пребара"
+
+msgid "IDS_EMAIL_OPT_READ"
+msgstr "Читање"
+
+msgid "IDS_EMAIL_POP_DOUBLE_TAP_TO_GO_TO_THE_TOP_OF_CONTACTS_LISTS_EMAIL_LISTS_AND_EMAIL_MESSAGES"
+msgstr "Допрете двапати да одите најгоре во листата контакти, листата е-пошта и пораки"
+
+msgid "IDS_EMAIL_OPT_EDIT_RESPONSE_BEFORE_SENDING"
+msgstr "Измени одговор пред праќање"
+
+msgid "IDS_EMAIL_OPT_SEND_RESPONSE_NOW"
+msgstr "Прати одговор веднаш"
+
+msgid "IDS_EMAIL_OPT_DO_NOT_SEND_RESPONSE"
+msgstr "Не праќај одговор"
+
+msgid "IDS_EMAIL_BUTTON_VERIFY_SIGNATURE"
+msgstr "Потврди потпис"
+
+msgid "IDS_EMAIL_HEADER_VERIFY_SIGNATURE_HEADER"
+msgstr "Потврди потпис"
+
+msgid "IDS_EMAIL_BODY_UNABLE_TO_VERIFY_SIGNATURE_PUBLIC_KEY_IS_NOT_INSTALLED"
+msgstr "Не може да се потврди потписот. Не е инсталиран јавен клуч"
+
+msgid "IDS_EMAIL_POP_THE_DIGITAL_SIGNATURE_ON_THIS_MESSAGE_IS_VALID_AND_TRUSTED"
+msgstr "Дигиталниот потпис на оваа порака е важечки и доверлив"
+
+msgid "IDS_EMAIL_BUTTON_DECRYPT_MESSAGE"
+msgstr "Дешифрирај порака"
+
+msgid "IDS_EMAIL_OPT_SAVE_EMAIL_ABB"
+msgstr "Сочувај email"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_CREATE_FOLDER"
+msgstr "Не може да се направи папка"
+
+msgid "IDS_EMAIL_BUTTON_TAKE_PICTURE"
+msgstr "Сликај"
+
diff --git a/po/nb.po b/po/nb.po
new file mode 100755 (executable)
index 0000000..31fb396
--- /dev/null
+++ b/po/nb.po
@@ -0,0 +1,1449 @@
+msgid "IDS_EMAIL_BODY_ACCOUNT"
+msgstr "Konto"
+
+msgid "IDS_EMAIL_BODY_B"
+msgstr "B"
+
+msgid "IDS_EMAIL_BODY_BYTE"
+msgstr "Byte"
+
+msgid "IDS_EMAIL_BODY_GB"
+msgstr "GB"
+
+msgid "IDS_EMAIL_BODY_IMAP4_PORT"
+msgstr "IMAP4-port"
+
+msgid "IDS_EMAIL_BODY_INCOMING"
+msgstr "Innkommende"
+
+msgid "IDS_EMAIL_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_EMAIL_BODY_MB"
+msgstr "MB"
+
+msgid "IDS_EMAIL_BODY_OUTGOING"
+msgstr "Utgående"
+
+msgid "IDS_EMAIL_BODY_POP3_PORT"
+msgstr "POP3-port"
+
+msgid "IDS_EMAIL_BODY_YOUR_NAME"
+msgstr "Ditt navn"
+
+msgid "IDS_EMAIL_OPT_COPY"
+msgstr "Kopier"
+
+msgid "IDS_EMAIL_OPT_COPY_IMAGE"
+msgstr "Kopier bilde"
+
+msgid "IDS_EMAIL_OPT_CUT"
+msgstr "Klipp ut"
+
+msgid "IDS_EMAIL_OPT_PASTE"
+msgstr "Lim inn"
+
+msgid "IDS_EMAIL_OPT_SAVE_IMAGE"
+msgstr "Lagre bilde"
+
+msgid "IDS_EMAIL_OPT_SELECT"
+msgstr "Velg"
+
+msgid "IDS_EMAIL_OPT_SELECT_ALL"
+msgstr "Merk alt"
+
+msgid "IDS_EMAIL_OPT_SEND_IMAGE_VIA_MESSAGING"
+msgstr "Send bilde via Meldinger"
+
+msgid "IDS_EMAIL_POP_FILE_NAME_EMPTY"
+msgstr "Filnavn tomt"
+
+msgid "IDS_EMAIL_POP_INCORRECT_USER_NAME_OR_PASSWORD"
+msgstr "Feil brukernavn eller passord"
+
+msgid "IDS_EMAIL_POP_SERVER_NOT_AVAILABLE"
+msgstr "Server ikke tilgjengelig"
+
+msgid "IDS_EMAIL_OPT_DOWNLOAD_MESSAGE"
+msgstr "Last ned melding"
+
+msgid "IDS_EMAIL_OPT_TENTATIVE"
+msgstr "Foreløpig"
+
+msgid "IDS_EMAIL_POP_TRY_AGAIN_IN_PD_MINUTES"
+msgstr "Prøv igjen om %d minutter"
+
+msgid "IDS_EMAIL_POP_NO_EMAIL_ADDRESS"
+msgstr "Mangler e-postadresse"
+
+msgid "IDS_EMAIL_BODY_COMPLETE"
+msgstr "Fullført"
+
+msgid "IDS_EMAIL_BODY_ACCEPTED_C_PS"
+msgstr "Godkjent: %s"
+
+msgid "IDS_EMAIL_BODY_DECLINED_C_PS"
+msgstr "Avvist: %s"
+
+msgid "IDS_EMAIL_BODY_DOWNLOAD_FULL_MESSAGE"
+msgstr "Last ned fullstendig melding"
+
+msgid "IDS_EMAIL_BODY_GENERAL_SETTINGS"
+msgstr "Generelle innstillinger"
+
+msgid "IDS_EMAIL_BODY_TENTATIVE_C_PS"
+msgstr "Foreløpig: %s"
+
+msgid "IDS_EMAIL_BODY_WHEN_C_PS"
+msgstr "Når: %s"
+
+msgid "IDS_EMAIL_BODY_WHERE_C_PS"
+msgstr "Hvor: %s"
+
+msgid "IDS_EMAIL_BUTTON_DECLINE_ABB"
+msgstr "Avslå"
+
+msgid "IDS_EMAIL_BODY_ORIGINAL_MESSAGE"
+msgstr "Opprinnelig melding"
+
+msgid "IDS_EMAIL_HEADER_ACCOUNT_SETTINGS"
+msgstr "Kontoinnstillinger"
+
+msgid "IDS_EMAIL_OPT_BLOCK"
+msgstr "Blokker"
+
+msgid "IDS_EMAIL_OPT_MARK_AS_READ"
+msgstr "Marker som lest"
+
+msgid "IDS_EMAIL_OPT_MARK_AS_UNREAD"
+msgstr "Marker som ulest"
+
+msgid "IDS_EMAIL_OPT_OTHERS"
+msgstr "Andre"
+
+msgid "IDS_EMAIL_OPT_UNREAD"
+msgstr "Ulest"
+
+msgid "IDS_EMAIL_SK_COMPOSE"
+msgstr "Opprett"
+
+msgid "IDS_EMAIL_HEADER_DOWNLOAD_FAILED"
+msgstr "Nedlasting mislyktes"
+
+msgid "IDS_EMAIL_OPT_ADD_TO_CONTACT"
+msgstr "Legg til kontakt"
+
+msgid "IDS_EMAIL_OPT_VOICE_CALL"
+msgstr "Taleanrop"
+
+msgid "IDS_EMAIL_BODY_ACCOUNT_NAME"
+msgstr "Kontonavn"
+
+msgid "IDS_EMAIL_BODY_ATTACHMENTS"
+msgstr "Vedlegg"
+
+msgid "IDS_EMAIL_BODY_FROM_C"
+msgstr "Fra:"
+
+msgid "IDS_EMAIL_BODY_IMAP4_SERVER"
+msgstr "IMAP4-server"
+
+msgid "IDS_EMAIL_BODY_INCLUDES"
+msgstr "Inkluderer"
+
+msgid "IDS_EMAIL_BODY_INCOMING_PORT"
+msgstr "Innkommende port"
+
+msgid "IDS_EMAIL_BODY_INCOMING_SERVER"
+msgstr "Innkommende server"
+
+msgid "IDS_EMAIL_BODY_IN_PD_MINUTES"
+msgstr "Om %d minutter"
+
+msgid "IDS_EMAIL_BODY_KEEP_IN_SERVER"
+msgstr "Behold på server"
+
+msgid "IDS_EMAIL_BODY_NO_TEXT"
+msgstr "Ingen tekst"
+
+msgid "IDS_EMAIL_BODY_OUTGOING_PORT"
+msgstr "Utgående port"
+
+msgid "IDS_EMAIL_BODY_OUTGOING_SERVER"
+msgstr "Utgående server"
+
+msgid "IDS_EMAIL_BODY_PD_EMAILS"
+msgstr "%d e-poster"
+
+msgid "IDS_EMAIL_BODY_POP3_SERVER"
+msgstr "POP3-server"
+
+msgid "IDS_EMAIL_BODY_RECENT"
+msgstr "Nylige"
+
+msgid "IDS_EMAIL_BODY_RETRIEVING_OPTIONS"
+msgstr "Hentealternativer"
+
+msgid "IDS_EMAIL_BODY_RE_C"
+msgstr "SV:"
+
+msgid "IDS_EMAIL_BODY_SENT_C"
+msgstr "Sendt:"
+
+msgid "IDS_EMAIL_BODY_SENT_FROM_SAMSUNG_MOBILE"
+msgstr "Sendt fra en Samsung Mobil"
+
+msgid "IDS_EMAIL_BODY_USER_PASSWORD"
+msgstr "Brukerpassord"
+
+msgid "IDS_EMAIL_HEADER_EDIT_RULES"
+msgstr "Rediger regler"
+
+msgid "IDS_EMAIL_HEADER_EMAIL_SETTINGS"
+msgstr "E-postinnst."
+
+msgid "IDS_EMAIL_HEADER_MAILBOXES"
+msgstr "Postbokser"
+
+msgid "IDS_EMAIL_POP_ALERT"
+msgstr "Varsling"
+
+msgid "IDS_EMAIL_POP_FILE_ALREADY_EXISTS"
+msgstr "Filen finnes allerede"
+
+msgid "IDS_EMAIL_POP_NO_SENDER"
+msgstr "Ingen avsender"
+
+msgid "IDS_EMAIL_POP_SUCCEEDED"
+msgstr "Fullført"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_ATTACH_MAXIMUM_NUMBER_OF_FILES_IS_PD"
+msgstr "Kan ikke legge ved. Maksimalt antall filer er %d"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_ATTACH_MAXIMUM_SIZE_OF_FILES_IS_PD_KB"
+msgstr "Kan ikke legge ved. Maksimal filstørrelse er %d kB"
+
+msgid "IDS_EMAIL_POP_VALIDATION_FAILED"
+msgstr "Validering mislyktes"
+
+msgid "IDS_EMAIL_SK_REPLY_ALL"
+msgstr "Svar alle"
+
+msgid "IDS_EMAIL_BODY_1_ITEM"
+msgstr "1 element"
+
+msgid "IDS_EMAIL_BODY_ADD_MY_NAMECARD"
+msgstr "Legg til mitt visittkort"
+
+msgid "IDS_EMAIL_BODY_ADD_SIGNATURE"
+msgstr "Legg til signatur"
+
+msgid "IDS_EMAIL_BODY_ALL_EMAILS"
+msgstr "Alle e-postmeldinger"
+
+msgid "IDS_EMAIL_BODY_ALWAYS_BCC_MYSELF"
+msgstr "Alltid send blindkopi til meg selv"
+
+msgid "IDS_EMAIL_BODY_BCC"
+msgstr "Bko"
+
+msgid "IDS_EMAIL_BODY_BLOCK_EMAILS"
+msgstr "Blokker e-poster"
+
+msgid "IDS_EMAIL_BODY_BODY"
+msgstr "Brødtekst"
+
+msgid "IDS_EMAIL_BODY_CC"
+msgstr "Kopi"
+
+msgid "IDS_EMAIL_BODY_CC_BCC"
+msgstr "Kopi/Blindkopi"
+
+msgid "IDS_EMAIL_BODY_CHECK_INTERVAL"
+msgstr "Sjekk intervall"
+
+msgid "IDS_EMAIL_BODY_DEFAULT_ACCOUNT"
+msgstr "Standard konto"
+
+msgid "IDS_EMAIL_BODY_DRAFTS"
+msgstr "Utkast"
+
+msgid "IDS_EMAIL_BODY_EMAIL_ACCOUNTS"
+msgstr "E-postkontoer"
+
+msgid "IDS_EMAIL_BODY_END_TIME"
+msgstr "Sluttid"
+
+msgid "IDS_EMAIL_BODY_ENTIRE_EMAIL"
+msgstr "Hel e-post"
+
+msgid "IDS_EMAIL_BODY_EXACTLY_THE_SAME_AS"
+msgstr "Eksakt samme som"
+
+msgid "IDS_EMAIL_BODY_EXAMPLE"
+msgstr "Eksempel"
+
+msgid "IDS_EMAIL_BODY_FROM_M_SENDER"
+msgstr "Fra:"
+
+msgid "IDS_EMAIL_BODY_INBOX"
+msgstr "Innboks"
+
+msgid "IDS_EMAIL_BODY_INCLUDE"
+msgstr "Ta med"
+
+msgid "IDS_EMAIL_BODY_MATCH_CRITERIA"
+msgstr "Avvisningskriterier"
+
+msgid "IDS_EMAIL_BODY_NOT_USED"
+msgstr "Brukes ikke"
+
+msgid "IDS_EMAIL_BODY_NO_ACCOUNTS"
+msgstr "Ingen kontoer"
+
+msgid "IDS_EMAIL_BODY_PD_DAYS"
+msgstr "%d dager"
+
+msgid "IDS_EMAIL_BODY_PD_ITEMS"
+msgstr "%d elementer"
+
+msgid "IDS_EMAIL_BODY_PRIORITY"
+msgstr "Prioritet"
+
+msgid "IDS_EMAIL_BODY_RECEIVING_OPTIONS"
+msgstr "Mottaksalternativer"
+
+msgid "IDS_EMAIL_BODY_SECURE_CONNECTION"
+msgstr "Sikker tilkobling"
+
+msgid "IDS_EMAIL_BODY_SENDING_OPTIONS"
+msgstr "Sendingsalternativer"
+
+msgid "IDS_EMAIL_BODY_SENTBOX"
+msgstr "Sendte meldinger"
+
+msgid "IDS_EMAIL_BODY_SERVER_URL"
+msgstr "Server-URL"
+
+msgid "IDS_EMAIL_BODY_SIGNATURE"
+msgstr "Signatur"
+
+msgid "IDS_EMAIL_BODY_SPAMBOX"
+msgstr "Søppelpost"
+
+msgid "IDS_EMAIL_BODY_START_TIME"
+msgstr "Starttid"
+
+msgid "IDS_EMAIL_BODY_TRASH"
+msgstr "Søppel"
+
+msgid "IDS_EMAIL_BODY_WITHOUT_ATTACHMENTS"
+msgstr "Uten vedlegg"
+
+msgid "IDS_EMAIL_BUTTON_GROUP"
+msgstr "Gruppe"
+
+msgid "IDS_EMAIL_HEADER_ADD_RULES"
+msgstr "Legg til regler"
+
+msgid "IDS_EMAIL_OPT_ATTACH_ITEMS"
+msgstr "Legg ved elementer"
+
+msgid "IDS_EMAIL_OPT_EXCHANGE"
+msgstr "Exchange"
+
+msgid "IDS_EMAIL_OPT_FILE"
+msgstr "Fil"
+
+msgid "IDS_EMAIL_OPT_NAMECARD"
+msgstr "Visittkort"
+
+msgid "IDS_EMAIL_OPT_OPEN_URL"
+msgstr "Åpne URL"
+
+msgid "IDS_EMAIL_OPT_SENDER"
+msgstr "Avsender"
+
+msgid "IDS_EMAIL_OPT_SEND_EMAIL"
+msgstr "Send e-post"
+
+msgid "IDS_EMAIL_OPT_UPDATE_EXISTING"
+msgstr "Oppdater eksisterende"
+
+msgid "IDS_EMAIL_POP_ADD_ACCOUNTS"
+msgstr "Legg til kontoer"
+
+msgid "IDS_EMAIL_POP_DOWNLOADING_ATTACHMENT_ING"
+msgstr "Laster ned vedlegg..."
+
+msgid "IDS_EMAIL_POP_INVALID_EMAIL_ADDRESS"
+msgstr "Ugyldig e-postadresse"
+
+msgid "IDS_EMAIL_POP_LOADING_CONTENTS_ING"
+msgstr "Laster innhold..."
+
+msgid "IDS_EMAIL_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_REACHED"
+msgstr "Maksimalt antall vedlegg er nådd"
+
+msgid "IDS_EMAIL_POP_MOVE_TO_SPAMBOX_Q"
+msgstr "Flytte til Søppelpost?"
+
+msgid "IDS_EMAIL_POP_NO_RECIPIENTS_ADDED_ENTER_RECIPIENTS"
+msgstr "Ingen mottakere lagt til. Angi mottakere"
+
+msgid "IDS_EMAIL_POP_PLEASE_FILL_ALL_THE_MANDATORY_FIELDS"
+msgstr "Fyll ut alle de obligatoriske feltene"
+
+msgid "IDS_EMAIL_POP_SAVE_IN_DRAFTS_Q"
+msgstr "Lagre i Utkast?"
+
+msgid "IDS_EMAIL_POP_THERE_IS_NO_ACCOUNT_CREATE_A_NEW_ACCOUNT_FIRST"
+msgstr "Det finnes ikke noen konto. Opprett en ny konto først"
+
+msgid "IDS_EMAIL_POP_TOO_MANY_RECIPIENTS"
+msgstr "For mange mottakere"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_DOWNLOAD"
+msgstr "Kan ikke laste ned"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_ENTER_TEXT"
+msgstr "Kan ikke angi tekst"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_LAUNCH_APPLICATION"
+msgstr "Kan ikke starte program"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_OPEN_ATTACHMENT"
+msgstr "Kan ikke åpne vedlegg"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_SAVE_ATTACHMENT"
+msgstr "Kan ikke lagre vedlegg"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_SAVE_IN_DRAFTS"
+msgstr "Kan ikke lagre i Utkast"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_SEND_EMAIL"
+msgstr "Kan ikke sende e-post"
+
+msgid "IDS_EMAIL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Filtypen støttes ikke"
+
+msgid "IDS_EMAIL_POP_VALIDATING_ACCOUNT_ING"
+msgstr "Validerer konto..."
+
+msgid "IDS_EMAIL_SK_RESEND"
+msgstr "Send på nytt"
+
+msgid "IDS_EMAIL_BODY_ACCEPT_ALL_SSL_CERTIFICATES"
+msgstr "Godta alle SSL-sertifikater"
+
+msgid "IDS_EMAIL_SK3_ACCOUNT_LIST"
+msgstr "Konto liste"
+
+msgid "IDS_EMAIL_BODY_USER_ID"
+msgstr "Bruker-ID"
+
+msgid "IDS_EMAIL_POP_ACCOUNT_ALREADY_REGISTERED"
+msgstr "Kontoen er allerede registrert"
+
+msgid "IDS_EMAIL_HEADER_ATTACH_FILE"
+msgstr "Legg ved fil"
+
+msgid "IDS_EMAIL_POP_ACCOUNT_ALREADY_EXISTS"
+msgstr "Kontoen finnes allerede"
+
+msgid "IDS_EMAIL_BODY_NO_SUBJECT"
+msgstr "Intet emne"
+
+msgid "IDS_EMAIL_BODY_FROM"
+msgstr "Fra"
+
+msgid "IDS_EMAIL_BODY_NO_ADDRESS"
+msgstr "Ingen adresse"
+
+msgid "IDS_EMAIL_OPT_RECORD_SOUND"
+msgstr "Spill inn lyd"
+
+msgid "IDS_EMAIL_OPT_RECORD_VIDEO"
+msgstr "Spill inn video"
+
+msgid "IDS_EMAIL_OPT_INSERT_IMAGE"
+msgstr "Sett inn bilde"
+
+msgid "IDS_EMAIL_OPT_ADD_TO_CALENDAR"
+msgstr "Legg til kalender"
+
+msgid "IDS_EMAIL_OPT_CHANGE_EMAIL_ADDRESS_ABB"
+msgstr "Endre e-postadresse"
+
+msgid "IDS_EMAIL_OPT_CLIPBOARD"
+msgstr "Utklippstavle"
+
+msgid "IDS_EMAIL_OPT_VIEW_CONTACT_DETAILS"
+msgstr "Vis kontaktinformasjon"
+
+msgid "IDS_EMAIL_POP_SAVED_IN_DRAFTS"
+msgstr "Lagret i Utkast"
+
+msgid "IDS_EMAIL_POP_NETWORK_BUSY"
+msgstr "Nettverk opptatt"
+
+msgid "IDS_EMAIL_POP_LOGIN_ALLOWED_ONLY_EVERY_PD_MINUTES"
+msgstr "Login allowed only every %d minutes"
+
+msgid "IDS_EMAIL_POP_HOST_NOT_FOUND"
+msgstr "Finner ikke vert"
+
+msgid "IDS_EMAIL_POP_HOST_NOT_REACHABLE"
+msgstr "Vert kan ikke nås"
+
+msgid "IDS_EMAIL_POP_NO_SERVICE"
+msgstr "Nettv. mangler"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_FORWARD_DRM_CONTENTS"
+msgstr "Kan ikke videresende DRM-innhold"
+
+msgid "IDS_EMAIL_POP_BLOCKED"
+msgstr "Blokkert"
+
+msgid "IDS_EMAIL_POP_1_EMAIL_SELECTED"
+msgstr "1 e-post valgt"
+
+msgid "IDS_EMAIL_POP_PD_EMAILS_SELECTED"
+msgstr "%d e-poster valgt"
+
+msgid "IDS_EMAIL_POP_1_RECIPIENT_SELECTED"
+msgstr "1 mottaker valgt"
+
+msgid "IDS_EMAIL_POP_PD_RECIPIENTS_SELECTED"
+msgstr "%d mottakere valgt"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_ADD_ACCOUNT"
+msgstr "Kan ikke legge til konto"
+
+msgid "IDS_EMAIL_SK3_MOVE_HERE"
+msgstr "Flytt hit"
+
+msgid "IDS_EMAIL_OPT_UNDO"
+msgstr "Angre"
+
+msgid "IDS_EMAIL_OPT_REDO"
+msgstr "Gjør om"
+
+msgid "IDS_EMAIL_OPT_BOLD"
+msgstr "Fet"
+
+msgid "IDS_EMAIL_OPT_ITALIC"
+msgstr "Kursiv"
+
+msgid "IDS_EMAIL_OPT_UNDERLINE"
+msgstr "Understreking"
+
+msgid "IDS_EMAIL_OPT_FONT_SIZE"
+msgstr "Skriftstørrelse"
+
+msgid "IDS_EMAIL_OPT_INDENT"
+msgstr "Sett inn innrykk"
+
+msgid "IDS_EMAIL_OPT_VIEW_BY"
+msgstr "Vis etter"
+
+msgid "IDS_EMAIL_OPT_IMPORTANT"
+msgstr "Viktig"
+
+msgid "IDS_EMAIL_OPT_REFRESH"
+msgstr "Oppdater"
+
+msgid "IDS_EMAIL_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "Maksimalt antall mottakere (%d) er nådd"
+
+msgid "IDS_EMAIL_BODY_TLS"
+msgstr "TLS"
+
+msgid "IDS_EMAIL_BODY_SSL"
+msgstr "SSL"
+
+msgid "IDS_EMAIL_BODY_POP3"
+msgstr "POP3"
+
+msgid "IDS_EMAIL_BODY_IMAP4"
+msgstr "IMAP4"
+
+msgid "IDS_EMAIL_OPT_VIDEO_CALL"
+msgstr "Videoanrop"
+
+msgid "IDS_EMAIL_OPT_SEND_MESSAGE"
+msgstr "Send melding"
+
+msgid "IDS_EMAIL_OPT_COMPOSE_EMAIL"
+msgstr "Skriv e-post"
+
+msgid "IDS_EMAIL_OPT_OTHER"
+msgstr "Annet"
+
+msgid "IDS_EMAIL_OPT_TAKE_PHOTO"
+msgstr "Ta bilde"
+
+msgid "IDS_EMAIL_OPT_SECURITY"
+msgstr "Sikkerhet"
+
+msgid "IDS_EMAIL_OPT_SIGN"
+msgstr "Signatur"
+
+msgid "IDS_EMAIL_OPT_ENCRYPT"
+msgstr "Krypter"
+
+msgid "IDS_EMAIL_POP_AUTHENTICATION_FAILED"
+msgstr "Godkjenning mislyktes"
+
+msgid "IDS_EMAIL_POP_DOWNLOAD_CANCELLED"
+msgstr "Nedlasting avbrutt"
+
+msgid "IDS_EMAIL_POP_SENDING_CANCELLED"
+msgstr "Sending avbrutt"
+
+msgid "IDS_EMAIL_POP_ACCOUNT_EDITED"
+msgstr "Konto redigert"
+
+msgid "IDS_EMAIL_POP_ACCOUNT_LIST_NOT_FOUND"
+msgstr "Finner ikke kontolisten"
+
+msgid "IDS_EMAIL_OPT_COPY_IMAGE_LOCATION"
+msgstr "Kopier bildeplassering"
+
+msgid "IDS_EMAIL_POP_DEVICE_STORAGE_FULL"
+msgstr "Enhetsminnet er fullt"
+
+msgid "IDS_EMAIL_POP_DOWNLOAD_ATTACHMENT_Q"
+msgstr "Laste ned vedlegg?"
+
+msgid "IDS_EMAIL_POP_EMAIL_DELETED_FROM_SERVER"
+msgstr "E-post slettet fra serveren"
+
+msgid "IDS_EMAIL_POP_FAILED_TO_ACTIVATE_PDP"
+msgstr "Kunne ikke aktivere PDP"
+
+msgid "IDS_EMAIL_POP_FAILED_TO_ADD_BLOCK_RULE"
+msgstr "Kunne ikke legge til blokkeringsregel"
+
+msgid "IDS_EMAIL_POP_FAILED_TO_MARK_AS_UNREAD"
+msgstr "Kunne ikke merke som ulest"
+
+msgid "IDS_EMAIL_BODY_INCOMING_MAIL_SERVER_TYPE"
+msgstr "Servertype for innkommende e-post"
+
+msgid "IDS_EMAIL_BODY_LOADING_MORE_EMAILS_ING"
+msgstr "Laster inn flere e-poster..."
+
+msgid "IDS_EMAIL_POP_LOG_IN_FAILED"
+msgstr "Pålogging mislyktes"
+
+msgid "IDS_EMAIL_POP_RETRIEVING_ADDRESS_LIST_ING"
+msgstr "Henter adresseliste..."
+
+msgid "IDS_EMAIL_OPT_SEND_IMAGE_VIA_EMAIL"
+msgstr "Send bilde via e-post"
+
+msgid "IDS_EMAIL_BODY_YOU_CAN_USE_EMAIL_ON_YOUR_DEVICE_BY_ADDING_YOUR_ACCOUNT_IF_YOU_DO_NOT_HAVE_AN_EMAIL_ACCOUNT_SIGN_UP_FIRST"
+msgstr "Du kan bruke e-post på enheten ved å legge til kontoen din. Hvis du ikke har en e-postkonto, må du registrere deg for en først"
+
+msgid "IDS_EMAIL_POP_DOWNLOADING_ATTACHMENTS_ON_THE_MOBILE_DEVICE_IS_NOT_ALLOWED_BY_EXCHANGE_SERVER_POLICY"
+msgstr "Nedlasting av vedlegg på mobilenheten er ikke tillatt av Exchange Server-policy"
+
+msgid "IDS_EMAIL_POP_FAILED_TO_DELETE"
+msgstr "Kunne ikke slette"
+
+msgid "IDS_EMAIL_POP_FAILED_TO_MOVE"
+msgstr "Kunne ikke flytte"
+
+msgid "IDS_EMAIL_POP_MARKED_AS_UNREAD"
+msgstr "Markert som ulest"
+
+msgid "IDS_EMAIL_POP_DOWNLOAD_ATTACHMENTS_Q"
+msgstr "Laste ned vedlegg?"
+
+msgid "IDS_EMAIL_POP_MAXIMUM_RECIPIENT_EMAIL_LENGTH_EXCEEDED"
+msgstr "Maksimal lengde på e-post for mottaker oversteget"
+
+msgid "IDS_EMAIL_POP_ACCOUNT_CREATION_CANCELLED"
+msgstr "Kontooppretting avbrutt"
+
+msgid "IDS_EMAIL_MBODY_MAILBOX_LIST"
+msgstr "Postboksliste"
+
+msgid "IDS_EMAIL_BODY_MAILBOX_SETUP"
+msgstr "Konfigurering av postkasse"
+
+msgid "IDS_EMAIL_POP_ALREADY_DOWNLOADING_T_HEADER"
+msgstr "Laster allerede ned"
+
+msgid "IDS_EMAIL_POP_CANCELLING_ATTACHMENT_DOWNLOAD_ING"
+msgstr "Avbryter vedleggsnedlastingen..."
+
+msgid "IDS_EMAIL_BODY_SENT_USING_TIZEN_MOBILE"
+msgstr "Sendt fra en TIZEN-mobil"
+
+msgid "IDS_EMAIL_POP_EXCHANGE_ACTIVESYNC_ACCOUNT_NOT_AVAILABLE_NOTI"
+msgstr "Exchange ActiveSync-konto ikke tilgjengelig"
+
+msgid "IDS_EMAIL_BODY_RE"
+msgstr "Svar"
+
+msgid "IDS_EMAIL_BODY_FWD_T_EMAIL_PREFIX_ABB"
+msgstr "Videresend"
+
+msgid "IDS_EMAIL_BODY_EXCHANGE_ACTIVESYNC"
+msgstr "Exchange ActiveSync"
+
+msgid "IDS_EMAIL_BODY_GMAIL"
+msgstr "Gmail"
+
+msgid "IDS_EMAIL_BODY_HOTMAIL"
+msgstr "Hotmail"
+
+msgid "IDS_EMAIL_BODY_AOL"
+msgstr "AOL"
+
+msgid "IDS_EMAIL_BODY_YAHOO_E_MAIL"
+msgstr "Yahoo! e-post"
+
+msgid "IDS_EMAIL_OPT_ADD_ACCOUNTS"
+msgstr "Legg til kontoer"
+
+msgid "IDS_EMAIL_BODY_DOWNLOAD_MESSAGE"
+msgstr "Last ned melding"
+
+msgid "IDS_EMAIL_POP_ALREADY_BLOCKED"
+msgstr "Allerede blokkert"
+
+msgid "IDS_EMAIL_BODY_SEARCH_ON_SERVER"
+msgstr "Søk på server"
+
+msgid "IDS_EMAIL_OPT_RECIPIENT"
+msgstr "Mottaker"
+
+msgid "IDS_EMAIL_OPT_DELETE_ALL"
+msgstr "Slett alle"
+
+msgid "IDS_EMAIL_OPT_RECENT_HPD"
+msgstr "Nylige (%d)"
+
+msgid "IDS_EMAIL_OPT_REPLY_TO_SENDER"
+msgstr "Svar til avsender"
+
+msgid "IDS_EMAIL_HEADER_RECENT_T_HEADER"
+msgstr "Nylige"
+
+msgid "IDS_EMAIL_OPT_CONTACT_DETAILS"
+msgstr "Kontaktinformasjon"
+
+msgid "IDS_EMAIL_OPT_REPLY_TO_ALL"
+msgstr "Svar til alle"
+
+msgid "IDS_EMAIL_BODY_THREADED_LIST"
+msgstr "Trådliste"
+
+msgid "IDS_EMAIL_BODY_SELECT_EMAIL"
+msgstr "Velg e-post"
+
+msgid "IDS_EMAIL_OPT_VIEW_AS"
+msgstr "Vis som"
+
+msgid "IDS_EMAIL_HEADER_BLOCK_EMAILS"
+msgstr "Blokker e-poster"
+
+msgid "IDS_EMAIL_HEADER_DELETE"
+msgstr "Slett"
+
+msgid "IDS_EMAIL_HEADER_DEFAULT_ACCOUNT"
+msgstr "Standard konto"
+
+msgid "IDS_EMAIL_HEADER_EMAIL"
+msgstr "E-post"
+
+msgid "IDS_EMAIL_BODY_SHOW_EMAILS"
+msgstr "Vis e-poster"
+
+msgid "IDS_EMAIL_OPT_DATE"
+msgstr "Dato"
+
+msgid "IDS_EMAIL_HEADER_SEARCH"
+msgstr "Søk"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_OPEN_EMAIL_MESSAGE"
+msgstr "Kan ikke åpne e-postmeldingen"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_COMPOSE_EMAIL_MESSAGE"
+msgstr "Kan ikke skrive e-postmelding"
+
+msgid "IDS_EMAIL_POP_FAILED_TO_START_EMAIL_APPLICATION"
+msgstr "Kunne ikke starte E-postprogram"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_SAVE_SUBJECT_EMPTY"
+msgstr "Kan ikke lagre. Emnet er tomt"
+
+msgid "IDS_EMAIL_HEADER_ALL_EMAILS"
+msgstr "Alle e-postmeldinger"
+
+msgid "IDS_EMAIL_HEADER_MAILBOX_SETUP"
+msgstr "Konfigurering av postkasse"
+
+msgid "IDS_EMAIL_HEADER_RETRIEVING_OPTIONS"
+msgstr "Hentealternativer"
+
+msgid "IDS_EMAIL_HEADER_ADD_ACCOUNT"
+msgstr "Legg til konto"
+
+msgid "IDS_EMAIL_HEADER_TEXT_COLOUR"
+msgstr "Tekstfarge"
+
+msgid "IDS_EMAIL_HEADER_TEXT_BACKGROUND_COLOUR"
+msgstr "Tekstbakgrunnsfarge"
+
+msgid "IDS_EMAIL_BODY_ADDRESS"
+msgstr "Adresse"
+
+msgid "IDS_EMAIL_SK_DECLINE"
+msgstr "Avslå"
+
+msgid "IDS_EMAIL_OPT_RESEND"
+msgstr "Send på nytt"
+
+msgid "IDS_EMAIL_OPT_ATTACH_FILE"
+msgstr "Legg ved fil"
+
+msgid "IDS_EMAIL_HEADER_COMPOSE_EMAIL"
+msgstr "Skriv e-post"
+
+msgid "IDS_EMAIL_HEADER_ADD_ACCOUNTS"
+msgstr "Legg til kontoer"
+
+msgid "IDS_EMAIL_OPT_PD_MOST_RECENT_EMAILS"
+msgstr "%d nyeste e-poster"
+
+msgid "IDS_EMAIL_POP_YOU_CAN_ONLY_LOG_IN_ONCE_EVERY_PD_MINUTES"
+msgstr "Du kan bare logge på én gang hvert %d. minutt"
+
+msgid "IDS_EMAIL_BODY_DEFAULT_SENDING_ACCOUNT"
+msgstr "Standard sendekonto"
+
+msgid "IDS_EMAIL_HEADER_DEFAULT_SENDING_ACCOUNT"
+msgstr "Standard sendekonto"
+
+msgid "IDS_EMAIL_BODY_DO_NOT_MATCH_FOLDER_WITH_SERVER"
+msgstr "Ikke match mappe med server"
+
+msgid "IDS_EMAIL_POP_QUERYING_SERVER_INFORMATION_ING"
+msgstr "Ber om serverinformasjon..."
+
+msgid "IDS_EMAIL_POP_SERVER_INFORMATION_QUERY_FAILED_ENTER_SERVER_INFORMATION_MANUALLY"
+msgstr "Forespørsel om serverinformasjon mislyktes. Angi serverinformasjon manuelt"
+
+msgid "IDS_EMAIL_POP_SECURITY_POLICY_RESTRICTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "Sikkerhetspolicy begrenser bruk av POP/IMAP-e-post"
+
+msgid "IDS_EMAIL_OPT_VIEW"
+msgstr "Vis"
+
+msgid "IDS_EMAIL_OPT_COPY_LINK"
+msgstr "Kopier kobling"
+
+msgid "IDS_EMAIL_POP_FAILED_TO_MARK_AS_READ"
+msgstr "Kunne ikke merke som lest"
+
+msgid "IDS_EMAIL_POP_MARKED_AS_READ"
+msgstr "Markert som lest"
+
+msgid "IDS_EMAIL_OPT_COPY_IMAGE_URL"
+msgstr "Kopier bilde-URL"
+
+msgid "IDS_EMAIL_OPT_COPY_URL"
+msgstr "Kopier URL"
+
+msgid "IDS_EMAIL_OPT_MOVE_TO_SPAMBOX"
+msgstr "Flytt til Søppelpost"
+
+msgid "IDS_EMAIL_POP_DISCARD_CURRENT_MESSAGE_Q"
+msgstr "Forkast aktuell melding?"
+
+msgid "IDS_EMAIL_POP_MEETING_REQUEST_DECLINED_MESSAGE_WILL_BE_MOVED_TO_RECYCLE_BIN"
+msgstr "Møteforespørsel avslått. Meldingen blir flyttet til papirkurven"
+
+msgid "IDS_EMAIL_POP_MEETING_REQUEST_TENTATIVELY_ACCEPTED_MESSAGE_WILL_BE_MOVED_TO_RECYCLE_BIN"
+msgstr "Møteforespørsel foreløpig godtatt. Meldingen blir flyttet til papirkurven"
+
+msgid "IDS_EMAIL_POP_MEETING_REQUEST_ACCEPTED_MESSAGE_WILL_BE_MOVED_TO_RECYCLE_BIN"
+msgstr "Møteforespørsel godtatt. Meldingen blir flyttet til papirkurven"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_ATTACH_FILE"
+msgstr "Kan ikke legge ved fil"
+
+msgid "IDS_EMAIL_OPT_CALENDAR"
+msgstr "Kalender"
+
+msgid "IDS_EMAIL_OPT_MEMO"
+msgstr "Notat"
+
+msgid "IDS_EMAIL_OPT_TINY_M_TEXTSIZE"
+msgstr "Veldig liten"
+
+msgid "IDS_EMAIL_OPT_SMALL_M_TEXTSIZE"
+msgstr "Liten"
+
+msgid "IDS_EMAIL_OPT_NORMAL_M_TEXTSIZE"
+msgstr "Normal"
+
+msgid "IDS_EMAIL_OPT_LARGE_M_TEXTSIZE"
+msgstr "Stor"
+
+msgid "IDS_EMAIL_OPT_HUGE_M_TEXTSIZE"
+msgstr "Veldig stor"
+
+msgid "IDS_EMAIL_BODY_ALWAYS_CC_BCC_MYSELF"
+msgstr "Alltid send kopi/blindkopi til meg selv"
+
+msgid "IDS_EMAIL_BODY_ALWAYS_CC_MYSELF"
+msgstr "Alltid send kopi til meg selv"
+
+msgid "IDS_EMAIL_BODY_SEND_READ_REPORT"
+msgstr "Send leserapport"
+
+msgid "IDS_EMAIL_OPT_VIEW_MODE"
+msgstr "Visningsmodus"
+
+msgid "IDS_EMAIL_OPT_STANDARD_VIEW"
+msgstr "Standard visning"
+
+msgid "IDS_EMAIL_OPT_CONVERSATION_VIEW"
+msgstr "Samtalevisning"
+
+msgid "IDS_EMAIL_OPT_DATE_HMOST_RECENT"
+msgstr "Dato (nyeste)"
+
+msgid "IDS_EMAIL_OPT_DATE_HOLDEST"
+msgstr "Dato (eldste)"
+
+msgid "IDS_EMAIL_OPT_SENDER_HA_TO_Z"
+msgstr "Avsender (A til Å)"
+
+msgid "IDS_EMAIL_OPT_SENDER_HZ_TO_A"
+msgstr "Avsender (Å til A)"
+
+msgid "IDS_EMAIL_OPT_READ_UNREAD"
+msgstr "Lest/ulest"
+
+msgid "IDS_EMAIL_OPT_FAVOURITES"
+msgstr "Favoritter"
+
+msgid "IDS_EMAIL_HEADER_ALL_ACCOUNTS"
+msgstr "Alle kontoer"
+
+msgid "IDS_EMAIL_HEADER_SELECT_EMAILS"
+msgstr "Velg e-postmeldinger"
+
+msgid "IDS_EMAIL_BODY_MICROSOFT_EXCHANGE_ACTIVESYNC"
+msgstr "Microsoft Exchange ActiveSync"
+
+msgid "IDS_EMAIL_HEADER_VIEW_MODE_ABB"
+msgstr "Visningsmodus"
+
+msgid "IDS_EMAIL_BODY_NO_EMAILS"
+msgstr "Ingen e-poster"
+
+msgid "IDS_EMAIL_OPT_DOCUMENTS_ABB"
+msgstr "Dokumenter"
+
+msgid "IDS_EMAIL_OPT_ATTACH"
+msgstr "Legg ved"
+
+msgid "IDS_EMAIL_OPT_PRINT"
+msgstr "Skriv ut"
+
+msgid "IDS_EMAIL_OPT_GALLERY"
+msgstr "Galleri"
+
+msgid "IDS_EMAIL_OPT_MY_FILES"
+msgstr "Mine Filer"
+
+msgid "IDS_EMAIL_OPT_CONTACTS"
+msgstr "Kontakter"
+
+msgid "IDS_EMAIL_OPT_INSERT"
+msgstr "Sett inn"
+
+msgid "IDS_EMAIL_BODY_SHOW_IMAGES"
+msgstr "Vis bilder"
+
+msgid "IDS_EMAIL_OPT_SORT_BY"
+msgstr "Sorter etter"
+
+msgid "IDS_EMAIL_OPT_FLAG"
+msgstr "Flagg"
+
+msgid "IDS_EMAIL_OPT_MEETING_REQUEST"
+msgstr "Møteinnkallelse"
+
+msgid "IDS_EMAIL_OPT_ATTACHMENTS"
+msgstr "Vedlegg"
+
+msgid "IDS_EMAIL_HEADER_FOLDERS"
+msgstr "Mapper"
+
+msgid "IDS_EMAIL_OPT_ADD_FOLDER"
+msgstr "Legg til mappe"
+
+msgid "IDS_EMAIL_OPT_TITLE"
+msgstr "Tittel"
+
+msgid "IDS_EMAIL_HEADER_PD_CONVERSATIONS"
+msgstr "%d samtaler"
+
+msgid "IDS_EMAIL_HEADER_SERVER"
+msgstr "Server"
+
+msgid "IDS_EMAIL_OPT_ALL"
+msgstr "Alle"
+
+msgid "IDS_EMAIL_OPT_RECIPIENT_HA_TO_Z"
+msgstr "Mottaker (A til Å)"
+
+msgid "IDS_EMAIL_OPT_RECIPIENT_HZ_TO_A"
+msgstr "Mottaker (Å til A)"
+
+msgid "IDS_EMAIL_HEADER_SEARCH_SHAREPOINT"
+msgstr "Søk i SharePoint"
+
+msgid "IDS_EMAIL_BODY_ENTER_PATH_OF_WINDOWS_SHAREPOINT_SERVICES_OR_WINDOWS_FILE_SHARE_HUNC_TO_ACCESS_DOCUMENTS_REMOTELY"
+msgstr "Angi banen til Windows SharePoint Services eller Windows-fildeling (UNC) for å få tilgang til eksterne dokumenter"
+
+msgid "IDS_EMAIL_OPT_DELETE_FROM_CALENDAR"
+msgstr "Slett fra Kalender"
+
+msgid "IDS_EMAIL_BODY_FLICK_UP_TO_SEARCH_ON_SERVER"
+msgstr "Flikk opp for å søke på server"
+
+msgid "IDS_EMAIL_BODY_FLICK_UP_TO_SEARCH_ON_SERVER_AGAIN"
+msgstr "Flikk opp for å søke på server igjen"
+
+msgid "IDS_EMAIL_BODY_RECENT_EMAILS"
+msgstr "Nylige e-poster"
+
+msgid "IDS_EMAIL_BODY_DELETING_OPTIONS"
+msgstr "Slettealternativer"
+
+msgid "IDS_EMAIL_BODY_FAVOURITES"
+msgstr "Favoritter"
+
+msgid "IDS_EMAIL_BODY_HIGH_M_PRIORITY"
+msgstr "Høy"
+
+msgid "IDS_EMAIL_BODY_NORMAL_M_EMAILPRIORITY"
+msgstr "Normal"
+
+msgid "IDS_EMAIL_BODY_LOW_M_EMAILPRIORITY"
+msgstr "Lav"
+
+msgid "IDS_EMAIL_BODY_MEETING_REQUEST"
+msgstr "Møteinnkallelse"
+
+msgid "IDS_EMAIL_BODY_MEETING_INVITATION"
+msgstr "Møteinvitasjon"
+
+msgid "IDS_EMAIL_OPT_SUGGEST_NEW_TIME_ABB"
+msgstr "Foreslå nytt klokkeslett"
+
+msgid "IDS_EMAIL_BODY_VIEW_IN_CALENDAR"
+msgstr "Vis i Kalender"
+
+msgid "IDS_EMAIL_BODY_SEARCH_EMAIL"
+msgstr "Søk e-post"
+
+msgid "IDS_EMAIL_BODY_ALWAYS_SHOW_THIS_MESSAGE"
+msgstr "Vis alltid denne meldingen"
+
+msgid "IDS_EMAIL_BODY_SEND_EMAIL_FROM_THIS_ACCOUNT_BY_DEFAULT"
+msgstr "Send e-post fra denne kontoen som standard"
+
+msgid "IDS_EMAIL_BODY_SMTP_SERVER"
+msgstr "SMTP-server"
+
+msgid "IDS_EMAIL_OPT_SEARCH"
+msgstr "Søk"
+
+msgid "IDS_EMAIL_OPT_SHARE"
+msgstr "Del"
+
+msgid "IDS_EMAIL_OPT_MESSAGE"
+msgstr "Melding"
+
+msgid "IDS_EMAIL_OPT_EMAIL"
+msgstr "E-post"
+
+msgid "IDS_EMAIL_OPT_FACEBOOK"
+msgstr "Facebook"
+
+msgid "IDS_EMAIL_OPT_TWITTER"
+msgstr "Twitter"
+
+msgid "IDS_EMAIL_OPT_NFC"
+msgstr "NFC"
+
+msgid "IDS_EMAIL_BODY_SECURITY_OPTIONS"
+msgstr "Sikkerhetsalternativer"
+
+msgid "IDS_EMAIL_HEADER_SECURITY_OPTIONS"
+msgstr "Sikkerhetsalternativer"
+
+msgid "IDS_EMAIL_BODY_ENCRYPTION_ALGORITHM"
+msgstr "Kryperingsalgoritme"
+
+msgid "IDS_EMAIL_BODY_SIGN_ALGORITHM"
+msgstr "Signaturalgoritme"
+
+msgid "IDS_EMAIL_BODY_EMAIL_CERTIFICATE"
+msgstr "E-postsertifikat"
+
+msgid "IDS_EMAIL_BODY_SUNDAY"
+msgstr "Søndag"
+
+msgid "IDS_EMAIL_BODY_MONDAY"
+msgstr "Mandag"
+
+msgid "IDS_EMAIL_BODY_TUESDAY"
+msgstr "Tirsdag"
+
+msgid "IDS_EMAIL_BODY_WEDNESDAY"
+msgstr "Onsdag"
+
+msgid "IDS_EMAIL_BODY_THURSDAY"
+msgstr "Torsdag"
+
+msgid "IDS_EMAIL_BODY_FRIDAY"
+msgstr "Fredag"
+
+msgid "IDS_EMAIL_BODY_SATURDAY"
+msgstr "Lørdag"
+
+msgid "IDS_EMAIL_BODY_OTHER"
+msgstr "Annet"
+
+msgid "IDS_EMAIL_BODY_PHONE"
+msgstr "Telefon"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_DECRYPT_MESSAGE"
+msgstr "Kan ikke dekryptere melding"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_DECRYPT_MESSAGE_CERTIFICATE_NOT_INSTALLED"
+msgstr "Kan ikke dekryptere melding. Sertifikat ikke installert"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_SIGN_OR_ENCRYPT_MESSAGE_CERTIFICATE_NOT_INSTALLED"
+msgstr "Kan ikke signere eller kryptere melding. Sertifikat ikke installert"
+
+msgid "IDS_EMAIL_POP_DOWNLOAD_MORE_DETAILS_TO_SHOW_S_MIME_MESSAGES_CONTINUE_Q"
+msgstr "Last ned mer informasjon for å vise S/MIME-meldinger. Fortsette?"
+
+msgid "IDS_EMAIL_BODY_LAST_WEEK"
+msgstr "Siste uke"
+
+msgid "IDS_EMAIL_BODY_PD_WEEKS_AGO"
+msgstr "%d uker siden"
+
+msgid "IDS_EMAIL_BODY_READ"
+msgstr "Lese"
+
+msgid "IDS_EMAIL_BODY_UNREAD"
+msgstr "Ulest"
+
+msgid "IDS_EMAIL_BODY_CLEAR"
+msgstr "Slett"
+
+msgid "IDS_EMAIL_BODY_MANUAL_SETUP"
+msgstr "Manuelt oppsett"
+
+msgid "IDS_EMAIL_BODY_OLDER_M_HISTORY"
+msgstr "Eldre"
+
+msgid "IDS_EMAIL_HEADER_CHECKING"
+msgstr "Kontrollerer"
+
+msgid "IDS_EMAIL_POP_THIS_ATTACHMENT_CANNOT_BE_DISPLAYED"
+msgstr "Kan ikke vise vedlegg"
+
+msgid "IDS_EMAIL_BODY_SERVER"
+msgstr "Server"
+
+msgid "IDS_EMAIL_BODY_ADD_ACCOUNT"
+msgstr "Legg til konto"
+
+msgid "IDS_EMAIL_BODY_REMOVE_EVENT_FROM_CALENDAR"
+msgstr "Fjern hendelse fra Kalender"
+
+msgid "IDS_EMAIL_POP_GETTING_RECIPIENTS_CERTIFICATES_ING"
+msgstr "Henter mottakersertifikater..."
+
+msgid "IDS_EMAIL_POP_VALIDATING_CERTIFICATES_ING"
+msgstr "Validerer sertifikater..."
+
+msgid "IDS_EMAIL_HEADER_CERTIFICATES"
+msgstr "Sertifikater"
+
+msgid "IDS_EMAIL_POP_FOLLOWING_RECIPIENTS_HAVE_INVALID_CERTIFICATES"
+msgstr "Følgende mottakere har ugyldige sertifikater"
+
+msgid "IDS_EMAIL_POP_VERIFYING_SIGNATURE_ING"
+msgstr "Bekrefter signatur ..."
+
+msgid "IDS_EMAIL_BODY_ADVANCED"
+msgstr "Avansert"
+
+msgid "IDS_EMAIL_BODY_SEARCH_BY"
+msgstr "Søk etter"
+
+msgid "IDS_EMAIL_BODY_WINDOWS_LIVE_HOTMAIL"
+msgstr "Windows Live Hotmail"
+
+msgid "IDS_EMAIL_BODY_DELETE_ALL_Q"
+msgstr "Slette alle?"
+
+msgid "IDS_EMAIL_BODY_MOVE_TO"
+msgstr "Flytt til"
+
+msgid "IDS_EMAIL_BODY_TOTAL_EMAILS"
+msgstr "Totalt antall e-poster"
+
+msgid "IDS_EMAIL_BODY_HEADER_ONLY"
+msgstr "Bare meldingshode"
+
+msgid "IDS_EMAIL_BODY_PHONE_AND_SERVER"
+msgstr "Telefon og server"
+
+msgid "IDS_EMAIL_BODY_PHONE_ONLY"
+msgstr "Bare telefon"
+
+msgid "IDS_EMAIL_BODY_USE_SAME_USERNAME_PASSWORD_AS_POP3_IMAP4"
+msgstr "Bruk samme brukernavn/passord som POP3/IMAP4"
+
+msgid "IDS_EMAIL_BODY_USE_POP3_IMAP4_BEFORE_SMTP"
+msgstr "Bruk POP3/IMAP4 før SMTP"
+
+msgid "IDS_EMAIL_POP_FAILED_TO_VALIDATE_ACCOUNT_CHECK_EMAIL_ADDRESS_AND_PASSWORD"
+msgstr "Kunne ikke validere konto. Kontroller e-postadresse og passord"
+
+msgid "IDS_EMAIL_BODY_SMTP_PORT"
+msgstr "SMTP-port"
+
+msgid "IDS_EMAIL_BODY_SHOW_PASSWORD"
+msgstr "Vis passord"
+
+msgid "IDS_EMAIL_BODY_LAST_MONTH"
+msgstr "Forrige måned"
+
+msgid "IDS_EMAIL_BODY_1_WEEK_AGO"
+msgstr "1 uke siden"
+
+msgid "IDS_EMAIL_OPT_LOG_IN"
+msgstr "Logg inn"
+
+msgid "IDS_EMAIL_BODY_FORWARD_WITH_FILES"
+msgstr "Videresend med filer"
+
+msgid "IDS_EMAIL_BODY_REPLY_WITH_BODY"
+msgstr "Svar med brødtekst"
+
+msgid "IDS_EMAIL_BODY_SAVE_ALL"
+msgstr "Lagre alle"
+
+msgid "IDS_EMAIL_OPT_NEW_MEETING_INVITATION"
+msgstr "Ny møteinvitasjon"
+
+msgid "IDS_EMAIL_OPT_MEETING_INVITATION"
+msgstr "Møteinvitasjon"
+
+msgid "IDS_EMAIL_HEADER_REPLY_ABB"
+msgstr "Svar"
+
+msgid "IDS_EMAIL_OPT_TO_SENDER_ABB"
+msgstr "Til avsender"
+
+msgid "IDS_EMAIL_OPT_TO_ALL_ABB"
+msgstr "Til alle"
+
+msgid "IDS_EMAIL_OPT_ADD_CC_BCC"
+msgstr "Legg til Kopi/Blindkopi"
+
+msgid "IDS_EMAIL_OPT_MOVE_TO_CC"
+msgstr "Flytt til Kopi"
+
+msgid "IDS_EMAIL_OPT_MOVE_TO_BCC"
+msgstr "Flytt til Blindkopi"
+
+msgid "IDS_EMAIL_OPT_VIEW_CONTACT"
+msgstr "Vis kontakter"
+
+msgid "IDS_EMAIL_HEADER_ATTACH_ABB"
+msgstr "Vedlegg"
+
+msgid "IDS_EMAIL_HEADER_MOVE_TO"
+msgstr "Flytt til"
+
+msgid "IDS_EMAIL_HEADER_SEARCH_BY"
+msgstr "Søk etter"
+
+msgid "IDS_EMAIL_OPT_ADVANCED"
+msgstr "Avansert"
+
+msgid "IDS_EMAIL_POP_THE_DIGITAL_SIGNATURE_ON_THIS_MESSAGE_IS_NOT_VALID_AND_IS_NOT_TRUSTED"
+msgstr "Den digitale signaturen på denne meldingen er ikke gyldig og er ikke pålitelig"
+
+msgid "IDS_EMAIL_POP_CONNECTION_ERROR"
+msgstr "Tilkoblingsfeil"
+
+msgid "IDS_EMAIL_BODY_EVERY_30_MINUTES"
+msgstr "Hvert 30. minutt"
+
+msgid "IDS_EMAIL_BODY_EVERY_PD_HOURS"
+msgstr "Hver %d. time"
+
+msgid "IDS_EMAIL_BODY_ONCE_A_DAY"
+msgstr "Én gang om dagen"
+
+msgid "IDS_EMAIL_POP_CERTIFICATE_DOES_NOT_MATCH_EMAIL_ADDRESS"
+msgstr "Sertifikat samsvarer ikke med e-postadresse"
+
+msgid "IDS_EMAIL_BODY_ENCRYPT"
+msgstr "Krypter"
+
+msgid "IDS_EMAIL_BODY_SIGN"
+msgstr "Signatur"
+
+msgid "IDS_EMAIL_POP_DECRYPTING_MESSAGE_ING"
+msgstr "Dekrypterer melding..."
+
+msgid "IDS_EMAIL_BODY_1_MONTH_AGO"
+msgstr "1 måned siden"
+
+msgid "IDS_EMAIL_OPT_ACCEPT"
+msgstr "Godta"
+
+msgid "IDS_EMAIL_OPT_DECLINE"
+msgstr "Avslå"
+
+msgid "IDS_EMAIL_BODY_ALL_ACCOUNTS"
+msgstr "Alle kontoer"
+
+msgid "IDS_EMAIL_HEADER_SORT_BY"
+msgstr "Sorter etter"
+
+msgid "IDS_EMAIL_SK_SORT_BY"
+msgstr "Sorter"
+
+msgid "IDS_EMAIL_SK_DELETE_ALL"
+msgstr "Slett alle"
+
+msgid "IDS_EMAIL_SK_MOVE"
+msgstr "Flytt"
+
+msgid "IDS_EMAIL_SK_BLOCK"
+msgstr "Sperr"
+
+msgid "IDS_EMAIL_SK_CREATE_FOLDER"
+msgstr "Lag mappe"
+
+msgid "IDS_EMAIL_HEADER_CREATE_FOLDER"
+msgstr "Opprett mappe"
+
+msgid "IDS_EMAIL_POP_FOLDER_NAME"
+msgstr "Mappenavn"
+
+msgid "IDS_EMAIL_OPT_REPLY"
+msgstr "Svar"
+
+msgid "IDS_EMAIL_OPT_FORWARD"
+msgstr "Videresend"
+
+msgid "IDS_EMAIL_OPT_SHARE_VIA_EMAIL"
+msgstr "Del via e-post"
+
+msgid "IDS_EMAIL_OPT_OPEN"
+msgstr "Åpne"
+
+msgid "IDS_EMAIL_OPT_RECORD_AUDIO"
+msgstr "Spill inn lyd"
+
+msgid "IDS_EMAIL_HEADER_SECURITY"
+msgstr "Sikkerhet"
+
+msgid "IDS_EMAIL_BODY_PD_ATTACHMENTS"
+msgstr "%d vedlegg"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_OPEN_FILE"
+msgstr "Kan ikke åpne fil"
+
+msgid "IDS_EMAIL_POP_RETRIEVING_ING"
+msgstr "Henter..."
+
+msgid "IDS_EMAIL_BODY_SYNC_SCHEDULE"
+msgstr "Synkroniser oppføringer"
+
+msgid "IDS_EMAIL_BODY_EVERY_PD_MINUTES"
+msgstr "Hvert %d minutt"
+
+msgid "IDS_EMAIL_BODY_ADD_ADDRESS"
+msgstr "Legg til adresse"
+
+msgid "IDS_EMAIL_BODY_NEW_EMAIL"
+msgstr "Ny e-post"
+
+msgid "IDS_EMAIL_HEADER_SELECT_FOLDER_ABB"
+msgstr "Velg mappe"
+
+msgid "IDS_EMAIL_BODY_CAPTURE_VIDEO"
+msgstr "Ta opp video"
+
+msgid "IDS_EMAIL_BODY_MOVE_TO_TO"
+msgstr "Flytt til Til"
+
+msgid "IDS_EMAIL_HEADER_SELECT_EMAIL_ADDRESS"
+msgstr "Velg e-postadresse"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_SEARCH"
+msgstr "Søking mislyktes"
+
+msgid "IDS_EMAIL_OPT_READ"
+msgstr "Lest"
+
+msgid "IDS_EMAIL_POP_DOUBLE_TAP_TO_GO_TO_THE_TOP_OF_CONTACTS_LISTS_EMAIL_LISTS_AND_EMAIL_MESSAGES"
+msgstr "Dobbeltrykk for å gå til toppen av kontaktlistene, e-postlistene og e-postmeldingene"
+
+msgid "IDS_EMAIL_OPT_EDIT_RESPONSE_BEFORE_SENDING"
+msgstr "Rediger svar før sending"
+
+msgid "IDS_EMAIL_OPT_SEND_RESPONSE_NOW"
+msgstr "Send svar nå"
+
+msgid "IDS_EMAIL_OPT_DO_NOT_SEND_RESPONSE"
+msgstr "Ikke send svar"
+
+msgid "IDS_EMAIL_BUTTON_VERIFY_SIGNATURE"
+msgstr "Bekreft signatur"
+
+msgid "IDS_EMAIL_HEADER_VERIFY_SIGNATURE_HEADER"
+msgstr "Bekreft signatur"
+
+msgid "IDS_EMAIL_BODY_UNABLE_TO_VERIFY_SIGNATURE_PUBLIC_KEY_IS_NOT_INSTALLED"
+msgstr "Kan ikke bekrefte signatur. Offentlig nøkkel er ikke installert"
+
+msgid "IDS_EMAIL_POP_THE_DIGITAL_SIGNATURE_ON_THIS_MESSAGE_IS_VALID_AND_TRUSTED"
+msgstr "Den digitale signaturen på denne meldingen er gyldig og pålitelig"
+
+msgid "IDS_EMAIL_BUTTON_DECRYPT_MESSAGE"
+msgstr "Dekrypter melding"
+
+msgid "IDS_EMAIL_OPT_SAVE_EMAIL_ABB"
+msgstr "Lagre e-post"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_CREATE_FOLDER"
+msgstr "Kan ikke opprette mappe"
+
+msgid "IDS_EMAIL_BUTTON_TAKE_PICTURE"
+msgstr "Ta bilde"
+
index 3c69949..3fd4b28 100755 (executable)
@@ -1390,3 +1390,60 @@ msgstr "Om de %d minuten"
 msgid "IDS_EMAIL_BODY_ADD_ADDRESS"
 msgstr "Adres toevoegen"
 
+msgid "IDS_EMAIL_BODY_NEW_EMAIL"
+msgstr "Nieuwe e-mail"
+
+msgid "IDS_EMAIL_HEADER_SELECT_FOLDER_ABB"
+msgstr "Map selecteren"
+
+msgid "IDS_EMAIL_BODY_CAPTURE_VIDEO"
+msgstr "Video opnemen"
+
+msgid "IDS_EMAIL_BODY_MOVE_TO_TO"
+msgstr "Verplaatsen naar Aan"
+
+msgid "IDS_EMAIL_HEADER_SELECT_EMAIL_ADDRESS"
+msgstr "E-mailadres selecteren"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_SEARCH"
+msgstr "Kan niet zoeken"
+
+msgid "IDS_EMAIL_OPT_READ"
+msgstr "Gelezen"
+
+msgid "IDS_EMAIL_POP_DOUBLE_TAP_TO_GO_TO_THE_TOP_OF_CONTACTS_LISTS_EMAIL_LISTS_AND_EMAIL_MESSAGES"
+msgstr "Dubbeltik om naar het begin van contactenlijsten, e-maillijsten of e-mailberichten te gaan"
+
+msgid "IDS_EMAIL_OPT_EDIT_RESPONSE_BEFORE_SENDING"
+msgstr "Reactie bewerken voor verzenden"
+
+msgid "IDS_EMAIL_OPT_SEND_RESPONSE_NOW"
+msgstr "Reactie nu verzenden"
+
+msgid "IDS_EMAIL_OPT_DO_NOT_SEND_RESPONSE"
+msgstr "Geen reactie verzenden"
+
+msgid "IDS_EMAIL_BUTTON_VERIFY_SIGNATURE"
+msgstr "Handtek. controleren"
+
+msgid "IDS_EMAIL_HEADER_VERIFY_SIGNATURE_HEADER"
+msgstr "Handtekening controleren"
+
+msgid "IDS_EMAIL_BODY_UNABLE_TO_VERIFY_SIGNATURE_PUBLIC_KEY_IS_NOT_INSTALLED"
+msgstr "Kan handtekening niet controleren. Openbare sleutel is niet geïnstalleerd"
+
+msgid "IDS_EMAIL_POP_THE_DIGITAL_SIGNATURE_ON_THIS_MESSAGE_IS_VALID_AND_TRUSTED"
+msgstr "De digitale handtekening op dit bericht is geldig en vertrouwd"
+
+msgid "IDS_EMAIL_BUTTON_DECRYPT_MESSAGE"
+msgstr "Bericht decoderen"
+
+msgid "IDS_EMAIL_OPT_SAVE_EMAIL_ABB"
+msgstr "E-mail opslaan"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_CREATE_FOLDER"
+msgstr "Kan map niet maken"
+
+msgid "IDS_EMAIL_BUTTON_TAKE_PICTURE"
+msgstr "Foto maken"
+
index af4dac6..3b7425c 100755 (executable)
--- a/po/pl.po
+++ b/po/pl.po
@@ -1390,3 +1390,60 @@ msgstr "Co %d min"
 msgid "IDS_EMAIL_BODY_ADD_ADDRESS"
 msgstr "Dodaj adres"
 
+msgid "IDS_EMAIL_BODY_NEW_EMAIL"
+msgstr ": Nowy e-mail"
+
+msgid "IDS_EMAIL_HEADER_SELECT_FOLDER_ABB"
+msgstr "Wybierz katalog"
+
+msgid "IDS_EMAIL_BODY_CAPTURE_VIDEO"
+msgstr "Nagraj video"
+
+msgid "IDS_EMAIL_BODY_MOVE_TO_TO"
+msgstr "Przenieś do Do"
+
+msgid "IDS_EMAIL_HEADER_SELECT_EMAIL_ADDRESS"
+msgstr "Wybierz adres e-mail"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_SEARCH"
+msgstr "Nie można wyszukać"
+
+msgid "IDS_EMAIL_OPT_READ"
+msgstr "Przeczytano"
+
+msgid "IDS_EMAIL_POP_DOUBLE_TAP_TO_GO_TO_THE_TOP_OF_CONTACTS_LISTS_EMAIL_LISTS_AND_EMAIL_MESSAGES"
+msgstr "Dotknij dwukrotnie, aby przejść na górę list kontaktów, adresów i wiadomości e-mail"
+
+msgid "IDS_EMAIL_OPT_EDIT_RESPONSE_BEFORE_SENDING"
+msgstr "Edytuj odpowiedź przed wysłaniem"
+
+msgid "IDS_EMAIL_OPT_SEND_RESPONSE_NOW"
+msgstr "Wyślij odpowiedź teraz"
+
+msgid "IDS_EMAIL_OPT_DO_NOT_SEND_RESPONSE"
+msgstr "Nie wysyłaj odpowiedzi"
+
+msgid "IDS_EMAIL_BUTTON_VERIFY_SIGNATURE"
+msgstr "Weryfikuj podpis"
+
+msgid "IDS_EMAIL_HEADER_VERIFY_SIGNATURE_HEADER"
+msgstr "Weryfikuj podpis"
+
+msgid "IDS_EMAIL_BODY_UNABLE_TO_VERIFY_SIGNATURE_PUBLIC_KEY_IS_NOT_INSTALLED"
+msgstr "Nie można zweryfikować podpisu. Nie zainstalowano klucza publicznego"
+
+msgid "IDS_EMAIL_POP_THE_DIGITAL_SIGNATURE_ON_THIS_MESSAGE_IS_VALID_AND_TRUSTED"
+msgstr "Podpis cyfrowy w tej wiadomości jest prawidłowy i należy do zaufanych"
+
+msgid "IDS_EMAIL_BUTTON_DECRYPT_MESSAGE"
+msgstr "Odszyfruj wiadomość"
+
+msgid "IDS_EMAIL_OPT_SAVE_EMAIL_ABB"
+msgstr "Zapisz wiadomość"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_CREATE_FOLDER"
+msgstr "Nie można utworzyć katalogu"
+
+msgid "IDS_EMAIL_BUTTON_TAKE_PICTURE"
+msgstr "Zrób zdjęcie"
+
index 004d520..fe2a4e9 100755 (executable)
@@ -1390,3 +1390,60 @@ msgstr "A cada %d minutos"
 msgid "IDS_EMAIL_BODY_ADD_ADDRESS"
 msgstr "Adicionar endereço"
 
+msgid "IDS_EMAIL_BODY_NEW_EMAIL"
+msgstr "Novo e-mail"
+
+msgid "IDS_EMAIL_HEADER_SELECT_FOLDER_ABB"
+msgstr "Selecionar pasta"
+
+msgid "IDS_EMAIL_BODY_CAPTURE_VIDEO"
+msgstr "Gravar vídeo"
+
+msgid "IDS_EMAIL_BODY_MOVE_TO_TO"
+msgstr "Mover para Para"
+
+msgid "IDS_EMAIL_HEADER_SELECT_EMAIL_ADDRESS"
+msgstr "Selecionar endereço de e-mail"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_SEARCH"
+msgstr "Impossível procurar"
+
+msgid "IDS_EMAIL_OPT_READ"
+msgstr "Lida"
+
+msgid "IDS_EMAIL_POP_DOUBLE_TAP_TO_GO_TO_THE_TOP_OF_CONTACTS_LISTS_EMAIL_LISTS_AND_EMAIL_MESSAGES"
+msgstr "Toque duas vezes para ir para o topo das listas de contatos, listas de e-mail e mensagens de e-mail"
+
+msgid "IDS_EMAIL_OPT_EDIT_RESPONSE_BEFORE_SENDING"
+msgstr "Editar resposta antes de enviar"
+
+msgid "IDS_EMAIL_OPT_SEND_RESPONSE_NOW"
+msgstr "Enviar resposta agora"
+
+msgid "IDS_EMAIL_OPT_DO_NOT_SEND_RESPONSE"
+msgstr "Não enviar resposta agora"
+
+msgid "IDS_EMAIL_BUTTON_VERIFY_SIGNATURE"
+msgstr "Verificar assinatura"
+
+msgid "IDS_EMAIL_HEADER_VERIFY_SIGNATURE_HEADER"
+msgstr "Verificar assinatura"
+
+msgid "IDS_EMAIL_BODY_UNABLE_TO_VERIFY_SIGNATURE_PUBLIC_KEY_IS_NOT_INSTALLED"
+msgstr "Não é possível verificar a assinatura. A chave Pública não está instalada"
+
+msgid "IDS_EMAIL_POP_THE_DIGITAL_SIGNATURE_ON_THIS_MESSAGE_IS_VALID_AND_TRUSTED"
+msgstr "A assinatura digital nesta mensagem é válida e confiável"
+
+msgid "IDS_EMAIL_BUTTON_DECRYPT_MESSAGE"
+msgstr "Decodificar mensagem"
+
+msgid "IDS_EMAIL_OPT_SAVE_EMAIL_ABB"
+msgstr "Salvar e-mail"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_CREATE_FOLDER"
+msgstr "Impossível criar pasta"
+
+msgid "IDS_EMAIL_BUTTON_TAKE_PICTURE"
+msgstr "Tirar foto"
+
index c52ded4..5af483f 100755 (executable)
@@ -1390,3 +1390,60 @@ msgstr "Cada %d minutos"
 msgid "IDS_EMAIL_BODY_ADD_ADDRESS"
 msgstr "Adicionar endereço"
 
+msgid "IDS_EMAIL_BODY_NEW_EMAIL"
+msgstr "Novo e-mail"
+
+msgid "IDS_EMAIL_HEADER_SELECT_FOLDER_ABB"
+msgstr "Seleccionar pasta"
+
+msgid "IDS_EMAIL_BODY_CAPTURE_VIDEO"
+msgstr "Capturar vídeo"
+
+msgid "IDS_EMAIL_BODY_MOVE_TO_TO"
+msgstr "Mover para Para"
+
+msgid "IDS_EMAIL_HEADER_SELECT_EMAIL_ADDRESS"
+msgstr "Seleccionar endereço de e-mail"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_SEARCH"
+msgstr "Impossível procurar"
+
+msgid "IDS_EMAIL_OPT_READ"
+msgstr "Ler"
+
+msgid "IDS_EMAIL_POP_DOUBLE_TAP_TO_GO_TO_THE_TOP_OF_CONTACTS_LISTS_EMAIL_LISTS_AND_EMAIL_MESSAGES"
+msgstr "Toque duas vezes para ir para o início de listas de contactos, listas de e-mails e mensagens de e-mail"
+
+msgid "IDS_EMAIL_OPT_EDIT_RESPONSE_BEFORE_SENDING"
+msgstr "Editar a resposta antes de enviar"
+
+msgid "IDS_EMAIL_OPT_SEND_RESPONSE_NOW"
+msgstr "Enviar resposta agora"
+
+msgid "IDS_EMAIL_OPT_DO_NOT_SEND_RESPONSE"
+msgstr "Não enviar resposta"
+
+msgid "IDS_EMAIL_BUTTON_VERIFY_SIGNATURE"
+msgstr "Verificar assinatura"
+
+msgid "IDS_EMAIL_HEADER_VERIFY_SIGNATURE_HEADER"
+msgstr "Verificar assinatura"
+
+msgid "IDS_EMAIL_BODY_UNABLE_TO_VERIFY_SIGNATURE_PUBLIC_KEY_IS_NOT_INSTALLED"
+msgstr "Impossível verificar a assinatura. A chave pública não está instalada"
+
+msgid "IDS_EMAIL_POP_THE_DIGITAL_SIGNATURE_ON_THIS_MESSAGE_IS_VALID_AND_TRUSTED"
+msgstr "A assinatura digital desta mensagem é válida e fidedigna"
+
+msgid "IDS_EMAIL_BUTTON_DECRYPT_MESSAGE"
+msgstr "Desencript. mensagem"
+
+msgid "IDS_EMAIL_OPT_SAVE_EMAIL_ABB"
+msgstr "Guardar e-mail"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_CREATE_FOLDER"
+msgstr "Impossível criar pasta"
+
+msgid "IDS_EMAIL_BUTTON_TAKE_PICTURE"
+msgstr "Tirar fotografia"
+
index 942ea57..2304505 100755 (executable)
--- a/po/ro.po
+++ b/po/ro.po
@@ -1390,3 +1390,60 @@ msgstr "La fiecare %d minute"
 msgid "IDS_EMAIL_BODY_ADD_ADDRESS"
 msgstr "Adăugare adresă"
 
+msgid "IDS_EMAIL_BODY_NEW_EMAIL"
+msgstr "Email nou"
+
+msgid "IDS_EMAIL_HEADER_SELECT_FOLDER_ABB"
+msgstr "Selectare folder"
+
+msgid "IDS_EMAIL_BODY_CAPTURE_VIDEO"
+msgstr "Captură video"
+
+msgid "IDS_EMAIL_BODY_MOVE_TO_TO"
+msgstr "Mutare la Către"
+
+msgid "IDS_EMAIL_HEADER_SELECT_EMAIL_ADDRESS"
+msgstr "Selectare adresă de e-mail"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_SEARCH"
+msgstr "Imposibil de căutat"
+
+msgid "IDS_EMAIL_OPT_READ"
+msgstr "Citit"
+
+msgid "IDS_EMAIL_POP_DOUBLE_TAP_TO_GO_TO_THE_TOP_OF_CONTACTS_LISTS_EMAIL_LISTS_AND_EMAIL_MESSAGES"
+msgstr "Atingeţi de două ori pentru a vă deplasa la începutul listei de contacte, al listei de e-mailuri şi al mesajelor de e-mail"
+
+msgid "IDS_EMAIL_OPT_EDIT_RESPONSE_BEFORE_SENDING"
+msgstr "Editare răspuns înainte de trimitere"
+
+msgid "IDS_EMAIL_OPT_SEND_RESPONSE_NOW"
+msgstr "Trimitere răspuns imediat"
+
+msgid "IDS_EMAIL_OPT_DO_NOT_SEND_RESPONSE"
+msgstr "Nu se trimite răspunsul"
+
+msgid "IDS_EMAIL_BUTTON_VERIFY_SIGNATURE"
+msgstr "Verificaţi semnătura"
+
+msgid "IDS_EMAIL_HEADER_VERIFY_SIGNATURE_HEADER"
+msgstr "Verificaţi semnătura"
+
+msgid "IDS_EMAIL_BODY_UNABLE_TO_VERIFY_SIGNATURE_PUBLIC_KEY_IS_NOT_INSTALLED"
+msgstr "Nu se poate verifica semnătura. Cheia publică nu este instalată"
+
+msgid "IDS_EMAIL_POP_THE_DIGITAL_SIGNATURE_ON_THIS_MESSAGE_IS_VALID_AND_TRUSTED"
+msgstr "Semnătura digitală de pe acest mesaj este validă şi acreditată"
+
+msgid "IDS_EMAIL_BUTTON_DECRYPT_MESSAGE"
+msgstr "Decriptaţi mesajul"
+
+msgid "IDS_EMAIL_OPT_SAVE_EMAIL_ABB"
+msgstr "Salvare e-mail"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_CREATE_FOLDER"
+msgstr "Imposibil de creat folderul"
+
+msgid "IDS_EMAIL_BUTTON_TAKE_PICTURE"
+msgstr "Fotografiere"
+
index e0090a5..f67c4f9 100755 (executable)
@@ -1390,3 +1390,60 @@ msgstr "Каждые %d мин."
 msgid "IDS_EMAIL_BODY_ADD_ADDRESS"
 msgstr "Добавить адрес"
 
+msgid "IDS_EMAIL_BODY_NEW_EMAIL"
+msgstr "Новое сообщение E-mail"
+
+msgid "IDS_EMAIL_HEADER_SELECT_FOLDER_ABB"
+msgstr "Выберите папку"
+
+msgid "IDS_EMAIL_BODY_CAPTURE_VIDEO"
+msgstr "Записать видео"
+
+msgid "IDS_EMAIL_BODY_MOVE_TO_TO"
+msgstr "Переместить в"
+
+msgid "IDS_EMAIL_HEADER_SELECT_EMAIL_ADDRESS"
+msgstr "Выберите адрес электронной почты"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_SEARCH"
+msgstr "Не удалось выполнить поиск"
+
+msgid "IDS_EMAIL_OPT_READ"
+msgstr "Прочитано"
+
+msgid "IDS_EMAIL_POP_DOUBLE_TAP_TO_GO_TO_THE_TOP_OF_CONTACTS_LISTS_EMAIL_LISTS_AND_EMAIL_MESSAGES"
+msgstr "Коснитесь дважды для перехода в начало списка контактов, адресов электронной почты или сообщений"
+
+msgid "IDS_EMAIL_OPT_EDIT_RESPONSE_BEFORE_SENDING"
+msgstr "Изменить ответ перед отправкой"
+
+msgid "IDS_EMAIL_OPT_SEND_RESPONSE_NOW"
+msgstr "Отправить ответ"
+
+msgid "IDS_EMAIL_OPT_DO_NOT_SEND_RESPONSE"
+msgstr "Не отправлять ответ"
+
+msgid "IDS_EMAIL_BUTTON_VERIFY_SIGNATURE"
+msgstr "Проверить подпись"
+
+msgid "IDS_EMAIL_HEADER_VERIFY_SIGNATURE_HEADER"
+msgstr "Проверить подпись"
+
+msgid "IDS_EMAIL_BODY_UNABLE_TO_VERIFY_SIGNATURE_PUBLIC_KEY_IS_NOT_INSTALLED"
+msgstr "Не удалось проверить подпись. Открытый ключ не установлен"
+
+msgid "IDS_EMAIL_POP_THE_DIGITAL_SIGNATURE_ON_THIS_MESSAGE_IS_VALID_AND_TRUSTED"
+msgstr "Цифровая подпись данного сообщения является верной и надежной"
+
+msgid "IDS_EMAIL_BUTTON_DECRYPT_MESSAGE"
+msgstr "Расшифров. сообщение"
+
+msgid "IDS_EMAIL_OPT_SAVE_EMAIL_ABB"
+msgstr "Сохранить эл. почту"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_CREATE_FOLDER"
+msgstr "Невозможно создать папку"
+
+msgid "IDS_EMAIL_BUTTON_TAKE_PICTURE"
+msgstr "Сделать снимок"
+
index 7564937..abbdd4d 100755 (executable)
--- a/po/sk.po
+++ b/po/sk.po
@@ -1390,3 +1390,60 @@ msgstr "Po každých %d minútach"
 msgid "IDS_EMAIL_BODY_ADD_ADDRESS"
 msgstr "Pridať adresu"
 
+msgid "IDS_EMAIL_BODY_NEW_EMAIL"
+msgstr "Nový e-mail"
+
+msgid "IDS_EMAIL_HEADER_SELECT_FOLDER_ABB"
+msgstr "Vybrať priečinok"
+
+msgid "IDS_EMAIL_BODY_CAPTURE_VIDEO"
+msgstr "Snímať video"
+
+msgid "IDS_EMAIL_BODY_MOVE_TO_TO"
+msgstr "Premiestniť do poľa Adresát"
+
+msgid "IDS_EMAIL_HEADER_SELECT_EMAIL_ADDRESS"
+msgstr "Vyberte e-mailovú adresu"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_SEARCH"
+msgstr "Nedá sa nájsť"
+
+msgid "IDS_EMAIL_OPT_READ"
+msgstr "Prečítané"
+
+msgid "IDS_EMAIL_POP_DOUBLE_TAP_TO_GO_TO_THE_TOP_OF_CONTACTS_LISTS_EMAIL_LISTS_AND_EMAIL_MESSAGES"
+msgstr "Dvojitým ťuknutím môžete prejsť na začiatok zoznamu kontaktov, e-mailov a e-mailových správ"
+
+msgid "IDS_EMAIL_OPT_EDIT_RESPONSE_BEFORE_SENDING"
+msgstr "Pred odoslaním upraviť odpoveď"
+
+msgid "IDS_EMAIL_OPT_SEND_RESPONSE_NOW"
+msgstr "Odoslať odpoveď teraz"
+
+msgid "IDS_EMAIL_OPT_DO_NOT_SEND_RESPONSE"
+msgstr "Neodoslať odpoveď"
+
+msgid "IDS_EMAIL_BUTTON_VERIFY_SIGNATURE"
+msgstr "Overiť podpis"
+
+msgid "IDS_EMAIL_HEADER_VERIFY_SIGNATURE_HEADER"
+msgstr "Overiť podpis"
+
+msgid "IDS_EMAIL_BODY_UNABLE_TO_VERIFY_SIGNATURE_PUBLIC_KEY_IS_NOT_INSTALLED"
+msgstr "Nedá sa overiť podpis. Verejný kľúč nie je nainštalovaný"
+
+msgid "IDS_EMAIL_POP_THE_DIGITAL_SIGNATURE_ON_THIS_MESSAGE_IS_VALID_AND_TRUSTED"
+msgstr "Digitálny podpis v tejto správe je platný a dôveryhodný"
+
+msgid "IDS_EMAIL_BUTTON_DECRYPT_MESSAGE"
+msgstr "Dešifrovať správu"
+
+msgid "IDS_EMAIL_OPT_SAVE_EMAIL_ABB"
+msgstr "Uložiť e-mail"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_CREATE_FOLDER"
+msgstr "Nedá sa vytvoriť priečinok"
+
+msgid "IDS_EMAIL_BUTTON_TAKE_PICTURE"
+msgstr "Odfotografovať"
+
index 60a0e7c..be4a6d5 100755 (executable)
--- a/po/sl.po
+++ b/po/sl.po
@@ -1390,3 +1390,60 @@ msgstr "Vsakih %d minut"
 msgid "IDS_EMAIL_BODY_ADD_ADDRESS"
 msgstr "Dodaj naslov"
 
+msgid "IDS_EMAIL_BODY_NEW_EMAIL"
+msgstr "Nova e-pošta"
+
+msgid "IDS_EMAIL_HEADER_SELECT_FOLDER_ABB"
+msgstr "Izberi mapo"
+
+msgid "IDS_EMAIL_BODY_CAPTURE_VIDEO"
+msgstr "Posnemi video"
+
+msgid "IDS_EMAIL_BODY_MOVE_TO_TO"
+msgstr "Premakni v polje Za"
+
+msgid "IDS_EMAIL_HEADER_SELECT_EMAIL_ADDRESS"
+msgstr "Izberite e-poštni naslov"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_SEARCH"
+msgstr "Iskanje ni mogoče"
+
+msgid "IDS_EMAIL_OPT_READ"
+msgstr "Prebrano"
+
+msgid "IDS_EMAIL_POP_DOUBLE_TAP_TO_GO_TO_THE_TOP_OF_CONTACTS_LISTS_EMAIL_LISTS_AND_EMAIL_MESSAGES"
+msgstr "Dvakrat pritisnite, če se želite premakniti na vrh seznamov stikov, seznamov e-pošte in e-poštnih sporočil"
+
+msgid "IDS_EMAIL_OPT_EDIT_RESPONSE_BEFORE_SENDING"
+msgstr "Pred pošiljanjem uredi odgovor"
+
+msgid "IDS_EMAIL_OPT_SEND_RESPONSE_NOW"
+msgstr "Pošlji odgovor"
+
+msgid "IDS_EMAIL_OPT_DO_NOT_SEND_RESPONSE"
+msgstr "Ne pošlji odgovora"
+
+msgid "IDS_EMAIL_BUTTON_VERIFY_SIGNATURE"
+msgstr "Preveri podpis"
+
+msgid "IDS_EMAIL_HEADER_VERIFY_SIGNATURE_HEADER"
+msgstr "Preveri podpis"
+
+msgid "IDS_EMAIL_BODY_UNABLE_TO_VERIFY_SIGNATURE_PUBLIC_KEY_IS_NOT_INSTALLED"
+msgstr "Podpisa ni mogoče preveriti. Javni ključ ni nameščen"
+
+msgid "IDS_EMAIL_POP_THE_DIGITAL_SIGNATURE_ON_THIS_MESSAGE_IS_VALID_AND_TRUSTED"
+msgstr "Digitalni podpis v tem sporočilu je veljaven in je zaupanja vreden"
+
+msgid "IDS_EMAIL_BUTTON_DECRYPT_MESSAGE"
+msgstr "Dešifriraj sporočilo"
+
+msgid "IDS_EMAIL_OPT_SAVE_EMAIL_ABB"
+msgstr "Shrani e-pošto"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_CREATE_FOLDER"
+msgstr "Mape ni mogoče ustvariti"
+
+msgid "IDS_EMAIL_BUTTON_TAKE_PICTURE"
+msgstr "Posnemi sliko"
+
index dff77d1..79e6389 100755 (executable)
--- a/po/sr.po
+++ b/po/sr.po
@@ -1390,3 +1390,60 @@ msgstr "Svakih %d min"
 msgid "IDS_EMAIL_BODY_ADD_ADDRESS"
 msgstr "Dodaj adresu"
 
+msgid "IDS_EMAIL_BODY_NEW_EMAIL"
+msgstr "Nova e-poruka"
+
+msgid "IDS_EMAIL_HEADER_SELECT_FOLDER_ABB"
+msgstr "Izaberi folder"
+
+msgid "IDS_EMAIL_BODY_CAPTURE_VIDEO"
+msgstr "Snimi video zapis"
+
+msgid "IDS_EMAIL_BODY_MOVE_TO_TO"
+msgstr "Premesti u „Za“"
+
+msgid "IDS_EMAIL_HEADER_SELECT_EMAIL_ADDRESS"
+msgstr "Izaberi adresu e-pošte"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_SEARCH"
+msgstr "Nemoguće pretraživati"
+
+msgid "IDS_EMAIL_OPT_READ"
+msgstr "Pročitano"
+
+msgid "IDS_EMAIL_POP_DOUBLE_TAP_TO_GO_TO_THE_TOP_OF_CONTACTS_LISTS_EMAIL_LISTS_AND_EMAIL_MESSAGES"
+msgstr "Dvaput kucni za odlazak na vrh listi kontakata, slanje listi putem e-pošte ili slanje e-poruka"
+
+msgid "IDS_EMAIL_OPT_EDIT_RESPONSE_BEFORE_SENDING"
+msgstr "Izmeni odgovor pre slanja"
+
+msgid "IDS_EMAIL_OPT_SEND_RESPONSE_NOW"
+msgstr "Pošalji odgovor sada"
+
+msgid "IDS_EMAIL_OPT_DO_NOT_SEND_RESPONSE"
+msgstr "Ne šalji odgovor"
+
+msgid "IDS_EMAIL_BUTTON_VERIFY_SIGNATURE"
+msgstr "Potvrdi potpis"
+
+msgid "IDS_EMAIL_HEADER_VERIFY_SIGNATURE_HEADER"
+msgstr "Potvrdi potpis"
+
+msgid "IDS_EMAIL_BODY_UNABLE_TO_VERIFY_SIGNATURE_PUBLIC_KEY_IS_NOT_INSTALLED"
+msgstr "Nije moguće potvrditi potpis. Javni ključ nije instaliran"
+
+msgid "IDS_EMAIL_POP_THE_DIGITAL_SIGNATURE_ON_THIS_MESSAGE_IS_VALID_AND_TRUSTED"
+msgstr "Digitalni potpis u ovoj poruci je važeći i pouzdan"
+
+msgid "IDS_EMAIL_BUTTON_DECRYPT_MESSAGE"
+msgstr "Dešifruj poruku"
+
+msgid "IDS_EMAIL_OPT_SAVE_EMAIL_ABB"
+msgstr "Sačuvaj e-poruku"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_CREATE_FOLDER"
+msgstr "Nemoguće kreirati folder"
+
+msgid "IDS_EMAIL_BUTTON_TAKE_PICTURE"
+msgstr "Slikaj"
+
index 35ba339..20f77ec 100755 (executable)
--- a/po/sv.po
+++ b/po/sv.po
@@ -1390,3 +1390,60 @@ msgstr "Var %d minut"
 msgid "IDS_EMAIL_BODY_ADD_ADDRESS"
 msgstr "Lägg till adress"
 
+msgid "IDS_EMAIL_BODY_NEW_EMAIL"
+msgstr "Ny e-post"
+
+msgid "IDS_EMAIL_HEADER_SELECT_FOLDER_ABB"
+msgstr "Välj mapp"
+
+msgid "IDS_EMAIL_BODY_CAPTURE_VIDEO"
+msgstr "Spela in video"
+
+msgid "IDS_EMAIL_BODY_MOVE_TO_TO"
+msgstr "Flytta till Till"
+
+msgid "IDS_EMAIL_HEADER_SELECT_EMAIL_ADDRESS"
+msgstr "Vald e-postadress"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_SEARCH"
+msgstr "Det går inte att söka"
+
+msgid "IDS_EMAIL_OPT_READ"
+msgstr "Läs"
+
+msgid "IDS_EMAIL_POP_DOUBLE_TAP_TO_GO_TO_THE_TOP_OF_CONTACTS_LISTS_EMAIL_LISTS_AND_EMAIL_MESSAGES"
+msgstr "Dubbeltryck för att gå till toppen av kontaktlistan, e-postlistan och e-postmeddelanden"
+
+msgid "IDS_EMAIL_OPT_EDIT_RESPONSE_BEFORE_SENDING"
+msgstr "Redigera svar före sändning"
+
+msgid "IDS_EMAIL_OPT_SEND_RESPONSE_NOW"
+msgstr "Skicka svar nu"
+
+msgid "IDS_EMAIL_OPT_DO_NOT_SEND_RESPONSE"
+msgstr "Skicka inte svar"
+
+msgid "IDS_EMAIL_BUTTON_VERIFY_SIGNATURE"
+msgstr "Verifiera signatur"
+
+msgid "IDS_EMAIL_HEADER_VERIFY_SIGNATURE_HEADER"
+msgstr "Verifiera signatur"
+
+msgid "IDS_EMAIL_BODY_UNABLE_TO_VERIFY_SIGNATURE_PUBLIC_KEY_IS_NOT_INSTALLED"
+msgstr "Det går inte att verifiera signaturen. Den offentliga nyckeln är inte installerad"
+
+msgid "IDS_EMAIL_POP_THE_DIGITAL_SIGNATURE_ON_THIS_MESSAGE_IS_VALID_AND_TRUSTED"
+msgstr "Den digitala signaturen i detta meddelande är giltig och betrodd"
+
+msgid "IDS_EMAIL_BUTTON_DECRYPT_MESSAGE"
+msgstr "Avkryptera meddel."
+
+msgid "IDS_EMAIL_OPT_SAVE_EMAIL_ABB"
+msgstr "Spara e-post"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_CREATE_FOLDER"
+msgstr "Det går inte att skapa mapp"
+
+msgid "IDS_EMAIL_BUTTON_TAKE_PICTURE"
+msgstr "Ta foto"
+
index 3eea32f..8c6a07c 100755 (executable)
@@ -1390,3 +1390,60 @@ msgstr "Her %d dakikada bir"
 msgid "IDS_EMAIL_BODY_ADD_ADDRESS"
 msgstr "Adres ekle"
 
+msgid "IDS_EMAIL_BODY_NEW_EMAIL"
+msgstr "yeni E-posta"
+
+msgid "IDS_EMAIL_HEADER_SELECT_FOLDER_ABB"
+msgstr "Dosya seç"
+
+msgid "IDS_EMAIL_BODY_CAPTURE_VIDEO"
+msgstr "Video yakala"
+
+msgid "IDS_EMAIL_BODY_MOVE_TO_TO"
+msgstr "Alıcıya taşı"
+
+msgid "IDS_EMAIL_HEADER_SELECT_EMAIL_ADDRESS"
+msgstr "E-posta adresi seç"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_SEARCH"
+msgstr "Aranamıyor"
+
+msgid "IDS_EMAIL_OPT_READ"
+msgstr "Oku"
+
+msgid "IDS_EMAIL_POP_DOUBLE_TAP_TO_GO_TO_THE_TOP_OF_CONTACTS_LISTS_EMAIL_LISTS_AND_EMAIL_MESSAGES"
+msgstr "Kişi listeleri, e-posta listeleri ve e-posta mesajlarının başına gitmek için çift dokunun"
+
+msgid "IDS_EMAIL_OPT_EDIT_RESPONSE_BEFORE_SENDING"
+msgstr "Göndermeden önce yanıtı düzenle"
+
+msgid "IDS_EMAIL_OPT_SEND_RESPONSE_NOW"
+msgstr "Yanıtı şimdi gönder"
+
+msgid "IDS_EMAIL_OPT_DO_NOT_SEND_RESPONSE"
+msgstr "Yanıt gönderme"
+
+msgid "IDS_EMAIL_BUTTON_VERIFY_SIGNATURE"
+msgstr "İmzayı doğrula"
+
+msgid "IDS_EMAIL_HEADER_VERIFY_SIGNATURE_HEADER"
+msgstr "İmzayı doğrula"
+
+msgid "IDS_EMAIL_BODY_UNABLE_TO_VERIFY_SIGNATURE_PUBLIC_KEY_IS_NOT_INSTALLED"
+msgstr "İmza doğrulanamıyor. Genel anahtar yüklü değil"
+
+msgid "IDS_EMAIL_POP_THE_DIGITAL_SIGNATURE_ON_THIS_MESSAGE_IS_VALID_AND_TRUSTED"
+msgstr "Bu mesajdaki dijital imza geçerli ve güvenilir"
+
+msgid "IDS_EMAIL_BUTTON_DECRYPT_MESSAGE"
+msgstr "Mesajın şifrsni çöz"
+
+msgid "IDS_EMAIL_OPT_SAVE_EMAIL_ABB"
+msgstr "E-postayı kaydet"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_CREATE_FOLDER"
+msgstr "Klasör oluşturulamıyor"
+
+msgid "IDS_EMAIL_BUTTON_TAKE_PICTURE"
+msgstr "Resim çek"
+
index ca484c7..adaa3a1 100755 (executable)
--- a/po/uk.po
+++ b/po/uk.po
@@ -1390,3 +1390,60 @@ msgstr "Кожні %d хвилин(-и)"
 msgid "IDS_EMAIL_BODY_ADD_ADDRESS"
 msgstr "Додати адресу"
 
+msgid "IDS_EMAIL_BODY_NEW_EMAIL"
+msgstr "Новий Email"
+
+msgid "IDS_EMAIL_HEADER_SELECT_FOLDER_ABB"
+msgstr "Вибір папки"
+
+msgid "IDS_EMAIL_BODY_CAPTURE_VIDEO"
+msgstr "Відеозйомка"
+
+msgid "IDS_EMAIL_BODY_MOVE_TO_TO"
+msgstr "Перемістити у поле 'Кому'"
+
+msgid "IDS_EMAIL_HEADER_SELECT_EMAIL_ADDRESS"
+msgstr "Вибір адреси Email"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_SEARCH"
+msgstr "Неможливо виконати пошук"
+
+msgid "IDS_EMAIL_OPT_READ"
+msgstr "Прочитане"
+
+msgid "IDS_EMAIL_POP_DOUBLE_TAP_TO_GO_TO_THE_TOP_OF_CONTACTS_LISTS_EMAIL_LISTS_AND_EMAIL_MESSAGES"
+msgstr "Двічі постукайте, щоб перейти вгору списку контактів, списку повідомлень Email або будь-якого повідомлення Email"
+
+msgid "IDS_EMAIL_OPT_EDIT_RESPONSE_BEFORE_SENDING"
+msgstr "Редагувати відповіді перед надсиланням"
+
+msgid "IDS_EMAIL_OPT_SEND_RESPONSE_NOW"
+msgstr "Надіслати відповідь зараз"
+
+msgid "IDS_EMAIL_OPT_DO_NOT_SEND_RESPONSE"
+msgstr "Не надсилати відповідь"
+
+msgid "IDS_EMAIL_BUTTON_VERIFY_SIGNATURE"
+msgstr "Перевірка підпису"
+
+msgid "IDS_EMAIL_HEADER_VERIFY_SIGNATURE_HEADER"
+msgstr "Перевірка підпису"
+
+msgid "IDS_EMAIL_BODY_UNABLE_TO_VERIFY_SIGNATURE_PUBLIC_KEY_IS_NOT_INSTALLED"
+msgstr "Неможливо перевірити підпис. Відкритий ключ не встановлено"
+
+msgid "IDS_EMAIL_POP_THE_DIGITAL_SIGNATURE_ON_THIS_MESSAGE_IS_VALID_AND_TRUSTED"
+msgstr "Цифровий підпис, наявний у цьому повідомленні, є дійсним і підтримується"
+
+msgid "IDS_EMAIL_BUTTON_DECRYPT_MESSAGE"
+msgstr "Дешифрувати повідом."
+
+msgid "IDS_EMAIL_OPT_SAVE_EMAIL_ABB"
+msgstr "Зберег. повід. Email"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_CREATE_FOLDER"
+msgstr "Неможливо створити папку"
+
+msgid "IDS_EMAIL_BUTTON_TAKE_PICTURE"
+msgstr "Зробити знімок"
+
diff --git a/po/uz.po b/po/uz.po
new file mode 100755 (executable)
index 0000000..832b534
--- /dev/null
+++ b/po/uz.po
@@ -0,0 +1,1449 @@
+msgid "IDS_EMAIL_BODY_ACCOUNT"
+msgstr "Hisob qaydnomasi"
+
+msgid "IDS_EMAIL_BODY_B"
+msgstr "B"
+
+msgid "IDS_EMAIL_BODY_BYTE"
+msgstr "Bayt"
+
+msgid "IDS_EMAIL_BODY_GB"
+msgstr "Gb"
+
+msgid "IDS_EMAIL_BODY_IMAP4_PORT"
+msgstr "IMAP4 port"
+
+msgid "IDS_EMAIL_BODY_INCOMING"
+msgstr "Kiruvchi"
+
+msgid "IDS_EMAIL_BODY_KB"
+msgstr "KB"
+
+msgid "IDS_EMAIL_BODY_MB"
+msgstr "Mb"
+
+msgid "IDS_EMAIL_BODY_OUTGOING"
+msgstr "Chiquvchi"
+
+msgid "IDS_EMAIL_BODY_POP3_PORT"
+msgstr "POP3 porti"
+
+msgid "IDS_EMAIL_BODY_YOUR_NAME"
+msgstr "Sizning ismingiz"
+
+msgid "IDS_EMAIL_OPT_COPY"
+msgstr "Nusxa olish"
+
+msgid "IDS_EMAIL_OPT_COPY_IMAGE"
+msgstr "Suratdan nusxa olish"
+
+msgid "IDS_EMAIL_OPT_CUT"
+msgstr "Qirqish"
+
+msgid "IDS_EMAIL_OPT_PASTE"
+msgstr "Qo‘shib qo‘yish"
+
+msgid "IDS_EMAIL_OPT_SAVE_IMAGE"
+msgstr "Tasvirni saqlash"
+
+msgid "IDS_EMAIL_OPT_SELECT"
+msgstr "Tanlash"
+
+msgid "IDS_EMAIL_OPT_SELECT_ALL"
+msgstr "Barchasini tanlash"
+
+msgid "IDS_EMAIL_OPT_SEND_IMAGE_VIA_MESSAGING"
+msgstr "Xabar yuborish orqali tasvir yuborish"
+
+msgid "IDS_EMAIL_POP_FILE_NAME_EMPTY"
+msgstr "Fayl nomi bo‘sh"
+
+msgid "IDS_EMAIL_POP_INCORRECT_USER_NAME_OR_PASSWORD"
+msgstr "Foydalanuvchi nomi yoki parol noto‘g‘ri"
+
+msgid "IDS_EMAIL_POP_SERVER_NOT_AVAILABLE"
+msgstr "Serverdan foydalanib bo‘lmaydi"
+
+msgid "IDS_EMAIL_OPT_DOWNLOAD_MESSAGE"
+msgstr "Xabar yuklab olish"
+
+msgid "IDS_EMAIL_OPT_TENTATIVE"
+msgstr "Tajribaviy"
+
+msgid "IDS_EMAIL_POP_TRY_AGAIN_IN_PD_MINUTES"
+msgstr "%d daqiqada qayta urinib ko‘ring"
+
+msgid "IDS_EMAIL_POP_NO_EMAIL_ADDRESS"
+msgstr "Elektron pochta manzili yo‘q"
+
+msgid "IDS_EMAIL_BODY_COMPLETE"
+msgstr "Yakunlamoq"
+
+msgid "IDS_EMAIL_BODY_ACCEPTED_C_PS"
+msgstr "Qabul qilindi: %s"
+
+msgid "IDS_EMAIL_BODY_DECLINED_C_PS"
+msgstr "Rad etilgan: %s"
+
+msgid "IDS_EMAIL_BODY_DOWNLOAD_FULL_MESSAGE"
+msgstr "To‘liq xabarni yuklab olish"
+
+msgid "IDS_EMAIL_BODY_GENERAL_SETTINGS"
+msgstr "Umumiy parametrlar"
+
+msgid "IDS_EMAIL_BODY_TENTATIVE_C_PS"
+msgstr "Sinov: %s"
+
+msgid "IDS_EMAIL_BODY_WHEN_C_PS"
+msgstr "Qachon: %s"
+
+msgid "IDS_EMAIL_BODY_WHERE_C_PS"
+msgstr "Qayerda: %s"
+
+msgid "IDS_EMAIL_BUTTON_DECLINE_ABB"
+msgstr "Rad etish"
+
+msgid "IDS_EMAIL_BODY_ORIGINAL_MESSAGE"
+msgstr "Asl xabar"
+
+msgid "IDS_EMAIL_HEADER_ACCOUNT_SETTINGS"
+msgstr "Hisob qaydnomasi parametrlari"
+
+msgid "IDS_EMAIL_OPT_BLOCK"
+msgstr "Bloklash"
+
+msgid "IDS_EMAIL_OPT_MARK_AS_READ"
+msgstr "O‘qilgan sifatida belgilash"
+
+msgid "IDS_EMAIL_OPT_MARK_AS_UNREAD"
+msgstr "O‘qilmagan sifatida belgilash"
+
+msgid "IDS_EMAIL_OPT_OTHERS"
+msgstr "Boshqalar"
+
+msgid "IDS_EMAIL_OPT_UNREAD"
+msgstr "O‘qilmaganlar"
+
+msgid "IDS_EMAIL_SK_COMPOSE"
+msgstr "Yaratish"
+
+msgid "IDS_EMAIL_HEADER_DOWNLOAD_FAILED"
+msgstr "Yuklash bajarilmadi"
+
+msgid "IDS_EMAIL_OPT_ADD_TO_CONTACT"
+msgstr "Kontaktga qo‘shish"
+
+msgid "IDS_EMAIL_OPT_VOICE_CALL"
+msgstr "Ovozli qo‘ng‘iroq"
+
+msgid "IDS_EMAIL_BODY_ACCOUNT_NAME"
+msgstr "Hisob qaydnomasi nomi"
+
+msgid "IDS_EMAIL_BODY_ATTACHMENTS"
+msgstr "Biriktirmalar"
+
+msgid "IDS_EMAIL_BODY_FROM_C"
+msgstr "Kimdan:"
+
+msgid "IDS_EMAIL_BODY_IMAP4_SERVER"
+msgstr "IMAP4 server"
+
+msgid "IDS_EMAIL_BODY_INCLUDES"
+msgstr "O‘z ichiga oladi"
+
+msgid "IDS_EMAIL_BODY_INCOMING_PORT"
+msgstr "Kiruvchi port"
+
+msgid "IDS_EMAIL_BODY_INCOMING_SERVER"
+msgstr "Kiruvchi server"
+
+msgid "IDS_EMAIL_BODY_IN_PD_MINUTES"
+msgstr "%d daqiqada"
+
+msgid "IDS_EMAIL_BODY_KEEP_IN_SERVER"
+msgstr "Serverda saqlash"
+
+msgid "IDS_EMAIL_BODY_NO_TEXT"
+msgstr "Matn yo‘q"
+
+msgid "IDS_EMAIL_BODY_OUTGOING_PORT"
+msgstr "Chiquvchi port"
+
+msgid "IDS_EMAIL_BODY_OUTGOING_SERVER"
+msgstr "Chiquvchi server"
+
+msgid "IDS_EMAIL_BODY_PD_EMAILS"
+msgstr "%d elektron pochta xabari"
+
+msgid "IDS_EMAIL_BODY_POP3_SERVER"
+msgstr "POP3 serveri"
+
+msgid "IDS_EMAIL_BODY_RECENT"
+msgstr "Oxirgi"
+
+msgid "IDS_EMAIL_BODY_RETRIEVING_OPTIONS"
+msgstr "Qayta olish opsiyalari"
+
+msgid "IDS_EMAIL_BODY_RE_C"
+msgstr "JAV:"
+
+msgid "IDS_EMAIL_BODY_SENT_C"
+msgstr "Yuborgan:"
+
+msgid "IDS_EMAIL_BODY_SENT_FROM_SAMSUNG_MOBILE"
+msgstr "Samsung Mobiledan yuborilgan"
+
+msgid "IDS_EMAIL_BODY_USER_PASSWORD"
+msgstr "Foydalanuvchi paroli"
+
+msgid "IDS_EMAIL_HEADER_EDIT_RULES"
+msgstr "Qoidalarni o‘zgartirish"
+
+msgid "IDS_EMAIL_HEADER_EMAIL_SETTINGS"
+msgstr "E-pochta parametri"
+
+msgid "IDS_EMAIL_HEADER_MAILBOXES"
+msgstr "Pochta qutilari"
+
+msgid "IDS_EMAIL_POP_ALERT"
+msgstr "Signal"
+
+msgid "IDS_EMAIL_POP_FILE_ALREADY_EXISTS"
+msgstr "Fayl avvaldan mavjud"
+
+msgid "IDS_EMAIL_POP_NO_SENDER"
+msgstr "Yuboruvchi yo‘q"
+
+msgid "IDS_EMAIL_POP_SUCCEEDED"
+msgstr "Muvaffaqiyatli bajarildi"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_ATTACH_MAXIMUM_NUMBER_OF_FILES_IS_PD"
+msgstr "Biriktirib bo‘lmaydi. Fayllarning maksimal soni: %d"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_ATTACH_MAXIMUM_SIZE_OF_FILES_IS_PD_KB"
+msgstr "Biriktirib bo‘lmaydi. Fayllarning mumkin bo‘lgan maksimal o‘lchami: %d Kb"
+
+msgid "IDS_EMAIL_POP_VALIDATION_FAILED"
+msgstr "Tasdiqlab bo‘lmadi"
+
+msgid "IDS_EMAIL_SK_REPLY_ALL"
+msgstr "Barchaga j/ber."
+
+msgid "IDS_EMAIL_BODY_1_ITEM"
+msgstr "1 element"
+
+msgid "IDS_EMAIL_BODY_ADD_MY_NAMECARD"
+msgstr "Tashrif kartamni qo‘shish"
+
+msgid "IDS_EMAIL_BODY_ADD_SIGNATURE"
+msgstr "Imzo qo‘shish"
+
+msgid "IDS_EMAIL_BODY_ALL_EMAILS"
+msgstr "Barcha elektron pochta xabarlari"
+
+msgid "IDS_EMAIL_BODY_ALWAYS_BCC_MYSELF"
+msgstr "O‘zimga har doim yashirin nusxa yuborish"
+
+msgid "IDS_EMAIL_BODY_BCC"
+msgstr "Yashirin nusxa"
+
+msgid "IDS_EMAIL_BODY_BLOCK_EMAILS"
+msgstr "E-pochtalarni bloklash"
+
+msgid "IDS_EMAIL_BODY_BODY"
+msgstr "Matn"
+
+msgid "IDS_EMAIL_BODY_CC"
+msgstr "Nusxa"
+
+msgid "IDS_EMAIL_BODY_CC_BCC"
+msgstr "Nusxa/Yashirin nusxa"
+
+msgid "IDS_EMAIL_BODY_CHECK_INTERVAL"
+msgstr "Intervalni tekshirish"
+
+msgid "IDS_EMAIL_BODY_DEFAULT_ACCOUNT"
+msgstr "Sukut his/qaydnoma"
+
+msgid "IDS_EMAIL_BODY_DRAFTS"
+msgstr "Qoralamalar"
+
+msgid "IDS_EMAIL_BODY_EMAIL_ACCOUNTS"
+msgstr "E-pochta hisob qaydnomalari"
+
+msgid "IDS_EMAIL_BODY_END_TIME"
+msgstr "Tugatish vaqti"
+
+msgid "IDS_EMAIL_BODY_ENTIRE_EMAIL"
+msgstr "Butun e-pochta"
+
+msgid "IDS_EMAIL_BODY_EXACTLY_THE_SAME_AS"
+msgstr "Quyidagi bilan bir xil"
+
+msgid "IDS_EMAIL_BODY_EXAMPLE"
+msgstr "Namuna"
+
+msgid "IDS_EMAIL_BODY_FROM_M_SENDER"
+msgstr "Quyidagidan:"
+
+msgid "IDS_EMAIL_BODY_INBOX"
+msgstr "Kiruvchilar"
+
+msgid "IDS_EMAIL_BODY_INCLUDE"
+msgstr "O‘z ichiga oladi"
+
+msgid "IDS_EMAIL_BODY_MATCH_CRITERIA"
+msgstr "Moslik kriteriyasi"
+
+msgid "IDS_EMAIL_BODY_NOT_USED"
+msgstr "Foydalanilmaydi"
+
+msgid "IDS_EMAIL_BODY_NO_ACCOUNTS"
+msgstr "Hisob qaydnomalar yo‘q"
+
+msgid "IDS_EMAIL_BODY_PD_DAYS"
+msgstr "%d kun"
+
+msgid "IDS_EMAIL_BODY_PD_ITEMS"
+msgstr "%d element"
+
+msgid "IDS_EMAIL_BODY_PRIORITY"
+msgstr "Ustunlik"
+
+msgid "IDS_EMAIL_BODY_RECEIVING_OPTIONS"
+msgstr "Qabul qilish opsiyalari"
+
+msgid "IDS_EMAIL_BODY_SECURE_CONNECTION"
+msgstr "Xavfsiz ulanish"
+
+msgid "IDS_EMAIL_BODY_SENDING_OPTIONS"
+msgstr "Yuborish variantlari"
+
+msgid "IDS_EMAIL_BODY_SENTBOX"
+msgstr "Yuborilganlar jildi"
+
+msgid "IDS_EMAIL_BODY_SERVER_URL"
+msgstr "Server URL-manzili"
+
+msgid "IDS_EMAIL_BODY_SIGNATURE"
+msgstr "Imzo"
+
+msgid "IDS_EMAIL_BODY_SPAMBOX"
+msgstr "Spam quti"
+
+msgid "IDS_EMAIL_BODY_START_TIME"
+msgstr "Boshlash vaqti"
+
+msgid "IDS_EMAIL_BODY_TRASH"
+msgstr "Keraksiz"
+
+msgid "IDS_EMAIL_BODY_WITHOUT_ATTACHMENTS"
+msgstr "Biriktirmalarsiz"
+
+msgid "IDS_EMAIL_BUTTON_GROUP"
+msgstr "Guruh"
+
+msgid "IDS_EMAIL_HEADER_ADD_RULES"
+msgstr "Qoidalar qo‘shish"
+
+msgid "IDS_EMAIL_OPT_ATTACH_ITEMS"
+msgstr "Elementlarni biriktirish"
+
+msgid "IDS_EMAIL_OPT_EXCHANGE"
+msgstr "Exchange"
+
+msgid "IDS_EMAIL_OPT_FILE"
+msgstr "Fayl"
+
+msgid "IDS_EMAIL_OPT_NAMECARD"
+msgstr "Tashrif kartasi"
+
+msgid "IDS_EMAIL_OPT_OPEN_URL"
+msgstr "URLni ochish"
+
+msgid "IDS_EMAIL_OPT_SENDER"
+msgstr "Yuboruvchi"
+
+msgid "IDS_EMAIL_OPT_SEND_EMAIL"
+msgstr "E-pochta yub."
+
+msgid "IDS_EMAIL_OPT_UPDATE_EXISTING"
+msgstr "Mavjudni yangilash"
+
+msgid "IDS_EMAIL_POP_ADD_ACCOUNTS"
+msgstr "Hisob qaydnomalarini qo‘shish"
+
+msgid "IDS_EMAIL_POP_DOWNLOADING_ATTACHMENT_ING"
+msgstr "Biriktirma yuklanishi..."
+
+msgid "IDS_EMAIL_POP_INVALID_EMAIL_ADDRESS"
+msgstr "Noto‘g‘ri e-pochta manzili"
+
+msgid "IDS_EMAIL_POP_LOADING_CONTENTS_ING"
+msgstr "Tarkib yuklanmoqda..."
+
+msgid "IDS_EMAIL_POP_MAXIMUM_NUMBER_OF_ATTACHMENTS_REACHED"
+msgstr "Biriktirmalar soni maksimal miqdorga yetdi"
+
+msgid "IDS_EMAIL_POP_MOVE_TO_SPAMBOX_Q"
+msgstr "Spamlar qutisiga ko‘chirilsinmi?"
+
+msgid "IDS_EMAIL_POP_NO_RECIPIENTS_ADDED_ENTER_RECIPIENTS"
+msgstr "Oluvchilar qo‘shilmagan. Oluvchilarni kiritish"
+
+msgid "IDS_EMAIL_POP_PLEASE_FILL_ALL_THE_MANDATORY_FIELDS"
+msgstr "Iltimos, barcha majburiy maydonlarni to‘ldiring"
+
+msgid "IDS_EMAIL_POP_SAVE_IN_DRAFTS_Q"
+msgstr "Qoralamalarda saqlansinmi?"
+
+msgid "IDS_EMAIL_POP_THERE_IS_NO_ACCOUNT_CREATE_A_NEW_ACCOUNT_FIRST"
+msgstr "Hisob qaydnomasi yo‘q. Avval hisob qaydnomasi yarating"
+
+msgid "IDS_EMAIL_POP_TOO_MANY_RECIPIENTS"
+msgstr "Juda ko‘p oluvchilar"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_DOWNLOAD"
+msgstr "Yuklab olib bo‘lmaydi"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_ENTER_TEXT"
+msgstr "Matn kiritib bo‘lmaydi"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_LAUNCH_APPLICATION"
+msgstr "Ilovani ishga tushirib bo‘lmaydi"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_OPEN_ATTACHMENT"
+msgstr "Biriktirmani ochib bo‘lmaydi"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_SAVE_ATTACHMENT"
+msgstr "Biriktirmani saqlab bo‘lmaydi"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_SAVE_IN_DRAFTS"
+msgstr "Qoralamalarga saqlab bo‘lmaydi"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_SEND_EMAIL"
+msgstr "E-pochta yuborib bo‘lmaydi"
+
+msgid "IDS_EMAIL_POP_UNSUPPORTED_FILE_TYPE"
+msgstr "Qo‘llab-quvvatlanmaydigan fayl turi"
+
+msgid "IDS_EMAIL_POP_VALIDATING_ACCOUNT_ING"
+msgstr "Hisob qaydnomasi tasdiqlanmoqda..."
+
+msgid "IDS_EMAIL_SK_RESEND"
+msgstr "Qay. Yub."
+
+msgid "IDS_EMAIL_BODY_ACCEPT_ALL_SSL_CERTIFICATES"
+msgstr "Barcha SSL sertifikatlarini qabul qilish"
+
+msgid "IDS_EMAIL_SK3_ACCOUNT_LIST"
+msgstr "His/qayd. ro‘yx."
+
+msgid "IDS_EMAIL_BODY_USER_ID"
+msgstr "Foydalanuvchi IDsi"
+
+msgid "IDS_EMAIL_POP_ACCOUNT_ALREADY_REGISTERED"
+msgstr "Hisob qaydnomasi avvaldan ro‘yxatga olingan"
+
+msgid "IDS_EMAIL_HEADER_ATTACH_FILE"
+msgstr "Fayl biriktirish"
+
+msgid "IDS_EMAIL_POP_ACCOUNT_ALREADY_EXISTS"
+msgstr "Hisob qaydnomasi avvaldan mavjud"
+
+msgid "IDS_EMAIL_BODY_NO_SUBJECT"
+msgstr "Mavzu yo‘q"
+
+msgid "IDS_EMAIL_BODY_FROM"
+msgstr "Quyidagidan"
+
+msgid "IDS_EMAIL_BODY_NO_ADDRESS"
+msgstr "Manzil mavjud emas"
+
+msgid "IDS_EMAIL_OPT_RECORD_SOUND"
+msgstr "Tovushni yozib olish"
+
+msgid "IDS_EMAIL_OPT_RECORD_VIDEO"
+msgstr "Video yozib olish"
+
+msgid "IDS_EMAIL_OPT_INSERT_IMAGE"
+msgstr "Tasvir kiritish"
+
+msgid "IDS_EMAIL_OPT_ADD_TO_CALENDAR"
+msgstr "Kalendarga qo‘shish"
+
+msgid "IDS_EMAIL_OPT_CHANGE_EMAIL_ADDRESS_ABB"
+msgstr "E-pochta manzilini o‘zgartirish"
+
+msgid "IDS_EMAIL_OPT_CLIPBOARD"
+msgstr "Bufer"
+
+msgid "IDS_EMAIL_OPT_VIEW_CONTACT_DETAILS"
+msgstr "Kontakt tafsilotlarini ko‘rib chiqish"
+
+msgid "IDS_EMAIL_POP_SAVED_IN_DRAFTS"
+msgstr "Qoralamalarda saqlandi"
+
+msgid "IDS_EMAIL_POP_NETWORK_BUSY"
+msgstr "Tarmoq band"
+
+msgid "IDS_EMAIL_POP_LOGIN_ALLOWED_ONLY_EVERY_PD_MINUTES"
+msgstr "Kirish faqat har %d daqiqada ruxsat etiladi"
+
+msgid "IDS_EMAIL_POP_HOST_NOT_FOUND"
+msgstr "Xost topilmadi"
+
+msgid "IDS_EMAIL_POP_HOST_NOT_REACHABLE"
+msgstr "Xost yetib bo‘lmaydi"
+
+msgid "IDS_EMAIL_POP_NO_SERVICE"
+msgstr "Xizmat yo‘q"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_FORWARD_DRM_CONTENTS"
+msgstr "DRM tarkibni boshqa raqamga yo‘naltirib bo‘lmaydi"
+
+msgid "IDS_EMAIL_POP_BLOCKED"
+msgstr "Bloklangan"
+
+msgid "IDS_EMAIL_POP_1_EMAIL_SELECTED"
+msgstr "1 ta e-pochta tanlangan"
+
+msgid "IDS_EMAIL_POP_PD_EMAILS_SELECTED"
+msgstr "%d e-pochtalar tanlangan"
+
+msgid "IDS_EMAIL_POP_1_RECIPIENT_SELECTED"
+msgstr "1 ta oluvchi tanlangan"
+
+msgid "IDS_EMAIL_POP_PD_RECIPIENTS_SELECTED"
+msgstr "%d ta oluvchi tanlangan"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_ADD_ACCOUNT"
+msgstr "Hisob qaydnoma qo‘shib bo‘lmaydi"
+
+msgid "IDS_EMAIL_SK3_MOVE_HERE"
+msgstr "Bu yerga ko‘ch."
+
+msgid "IDS_EMAIL_OPT_UNDO"
+msgstr "Bekor qilish"
+
+msgid "IDS_EMAIL_OPT_REDO"
+msgstr "Qayta bajarish"
+
+msgid "IDS_EMAIL_OPT_BOLD"
+msgstr "Quyuq"
+
+msgid "IDS_EMAIL_OPT_ITALIC"
+msgstr "Kursiv"
+
+msgid "IDS_EMAIL_OPT_UNDERLINE"
+msgstr "Tagiga chizish"
+
+msgid "IDS_EMAIL_OPT_FONT_SIZE"
+msgstr "Shrift o‘lchami"
+
+msgid "IDS_EMAIL_OPT_INDENT"
+msgstr "Oraliq"
+
+msgid "IDS_EMAIL_OPT_VIEW_BY"
+msgstr "Quyidagi bo‘yicha ko‘rib chiqish"
+
+msgid "IDS_EMAIL_OPT_IMPORTANT"
+msgstr "Muhim"
+
+msgid "IDS_EMAIL_OPT_REFRESH"
+msgstr "Yangilash"
+
+msgid "IDS_EMAIL_POP_MAXIMUM_NUMBER_OF_RECIPIENTS_HPD_REACHED"
+msgstr "Qabul qiluvchilar soni ruxsat etilgan maksimal miqdorga (%d) yetdi"
+
+msgid "IDS_EMAIL_BODY_TLS"
+msgstr "TLS"
+
+msgid "IDS_EMAIL_BODY_SSL"
+msgstr "SSL"
+
+msgid "IDS_EMAIL_BODY_POP3"
+msgstr "POP3"
+
+msgid "IDS_EMAIL_BODY_IMAP4"
+msgstr "IMAP4"
+
+msgid "IDS_EMAIL_OPT_VIDEO_CALL"
+msgstr "Video qo‘ng‘iroq"
+
+msgid "IDS_EMAIL_OPT_SEND_MESSAGE"
+msgstr "Xabar yuborish"
+
+msgid "IDS_EMAIL_OPT_COMPOSE_EMAIL"
+msgstr "E-pochta yozish"
+
+msgid "IDS_EMAIL_OPT_OTHER"
+msgstr "Boshqa"
+
+msgid "IDS_EMAIL_OPT_TAKE_PHOTO"
+msgstr "Suratga olish"
+
+msgid "IDS_EMAIL_OPT_SECURITY"
+msgstr "Xavfsizlik"
+
+msgid "IDS_EMAIL_OPT_SIGN"
+msgstr "Imzo"
+
+msgid "IDS_EMAIL_OPT_ENCRYPT"
+msgstr "Shifrlash"
+
+msgid "IDS_EMAIL_POP_AUTHENTICATION_FAILED"
+msgstr "Haqiqiylik tekshiruvi bajarilmadi"
+
+msgid "IDS_EMAIL_POP_DOWNLOAD_CANCELLED"
+msgstr "Yuklab olish bekor qilindi"
+
+msgid "IDS_EMAIL_POP_SENDING_CANCELLED"
+msgstr "Yuborish bekor qilindi"
+
+msgid "IDS_EMAIL_POP_ACCOUNT_EDITED"
+msgstr "Hisob qaydnomasi tahrirlandi"
+
+msgid "IDS_EMAIL_POP_ACCOUNT_LIST_NOT_FOUND"
+msgstr "Hisob qaydnomalar ro‘yxati topilmadi"
+
+msgid "IDS_EMAIL_OPT_COPY_IMAGE_LOCATION"
+msgstr "Tasvir joylashuvidan nusxa ko‘chirish"
+
+msgid "IDS_EMAIL_POP_DEVICE_STORAGE_FULL"
+msgstr "Qurilma xotirasi to‘la"
+
+msgid "IDS_EMAIL_POP_DOWNLOAD_ATTACHMENT_Q"
+msgstr "Biriktirma yuklab olinsinmi?"
+
+msgid "IDS_EMAIL_POP_EMAIL_DELETED_FROM_SERVER"
+msgstr "E-pochta serverdan o'chirildi"
+
+msgid "IDS_EMAIL_POP_FAILED_TO_ACTIVATE_PDP"
+msgstr "PDPni faollashtirib bo‘lmadi"
+
+msgid "IDS_EMAIL_POP_FAILED_TO_ADD_BLOCK_RULE"
+msgstr "Bloklash qoidasini qo‘shib bo‘lmadi"
+
+msgid "IDS_EMAIL_POP_FAILED_TO_MARK_AS_UNREAD"
+msgstr "O‘qilmagan sifatida belgilab bo‘lmadi"
+
+msgid "IDS_EMAIL_BODY_INCOMING_MAIL_SERVER_TYPE"
+msgstr "Kiruvchi pochta serveri turi"
+
+msgid "IDS_EMAIL_BODY_LOADING_MORE_EMAILS_ING"
+msgstr "Ko‘proq e-pochtalar yuklanmoqda..."
+
+msgid "IDS_EMAIL_POP_LOG_IN_FAILED"
+msgstr "Kirish bajarilmadi"
+
+msgid "IDS_EMAIL_POP_RETRIEVING_ADDRESS_LIST_ING"
+msgstr "Manzillar ro‘yxati olinmoqda..."
+
+msgid "IDS_EMAIL_OPT_SEND_IMAGE_VIA_EMAIL"
+msgstr "Tasvirni E-pochta orqali yuborish"
+
+msgid "IDS_EMAIL_BODY_YOU_CAN_USE_EMAIL_ON_YOUR_DEVICE_BY_ADDING_YOUR_ACCOUNT_IF_YOU_DO_NOT_HAVE_AN_EMAIL_ACCOUNT_SIGN_UP_FIRST"
+msgstr "Hisob qaydnomangizni qo‘shish orqali e-pochtadan qurilmangizda foydalanishingiz mumkin. Agar e-pochta hisob qaydnomangiz mavjud bo‘lmasa, avval ro‘yxatdan o‘ting"
+
+msgid "IDS_EMAIL_POP_DOWNLOADING_ATTACHMENTS_ON_THE_MOBILE_DEVICE_IS_NOT_ALLOWED_BY_EXCHANGE_SERVER_POLICY"
+msgstr "Mobil qurilmada biriktirmalarni yuklab olish Exchange server tomonidan ruxsat berilmagan"
+
+msgid "IDS_EMAIL_POP_FAILED_TO_DELETE"
+msgstr "O'chirib bo‘lmadi"
+
+msgid "IDS_EMAIL_POP_FAILED_TO_MOVE"
+msgstr "Ko‘chirib bo‘lmadi"
+
+msgid "IDS_EMAIL_POP_MARKED_AS_UNREAD"
+msgstr "O‘qilmagan sifatida belgilash"
+
+msgid "IDS_EMAIL_POP_DOWNLOAD_ATTACHMENTS_Q"
+msgstr "Biriktirmalar yuklab olinsinmi?"
+
+msgid "IDS_EMAIL_POP_MAXIMUM_RECIPIENT_EMAIL_LENGTH_EXCEEDED"
+msgstr "Qabul qiluvchi e-pochtasining maksimal uzunligidan oshib ketildi"
+
+msgid "IDS_EMAIL_POP_ACCOUNT_CREATION_CANCELLED"
+msgstr "Hisob qaydnomasi yaratilishi bekor qilindi"
+
+msgid "IDS_EMAIL_MBODY_MAILBOX_LIST"
+msgstr "Pochta qutilari ro‘yxati"
+
+msgid "IDS_EMAIL_BODY_MAILBOX_SETUP"
+msgstr "Pochta qutisini o‘rnatish"
+
+msgid "IDS_EMAIL_POP_ALREADY_DOWNLOADING_T_HEADER"
+msgstr "Avvaldan yuklab olinmoqda"
+
+msgid "IDS_EMAIL_POP_CANCELLING_ATTACHMENT_DOWNLOAD_ING"
+msgstr "Biriktirma yuklab olinishi bekor qilinmoqda..."
+
+msgid "IDS_EMAIL_BODY_SENT_USING_TIZEN_MOBILE"
+msgstr "TIZEN mobil yordamida yuborilgan"
+
+msgid "IDS_EMAIL_POP_EXCHANGE_ACTIVESYNC_ACCOUNT_NOT_AVAILABLE_NOTI"
+msgstr "Exchange ActiveSync hisob qaydnomasidan foydalanib bo‘lmaydi"
+
+msgid "IDS_EMAIL_BODY_RE"
+msgstr "Ja"
+
+msgid "IDS_EMAIL_BODY_FWD_T_EMAIL_PREFIX_ABB"
+msgstr "Boshq/yub"
+
+msgid "IDS_EMAIL_BODY_EXCHANGE_ACTIVESYNC"
+msgstr "Exchange ActiveSync"
+
+msgid "IDS_EMAIL_BODY_GMAIL"
+msgstr "Gmail"
+
+msgid "IDS_EMAIL_BODY_HOTMAIL"
+msgstr "Hotmail"
+
+msgid "IDS_EMAIL_BODY_AOL"
+msgstr "AOL"
+
+msgid "IDS_EMAIL_BODY_YAHOO_E_MAIL"
+msgstr "Yahoo! pochtasi"
+
+msgid "IDS_EMAIL_OPT_ADD_ACCOUNTS"
+msgstr "Hisob qaydnomalarini qo‘shish"
+
+msgid "IDS_EMAIL_BODY_DOWNLOAD_MESSAGE"
+msgstr "Xabar yuklab olish"
+
+msgid "IDS_EMAIL_POP_ALREADY_BLOCKED"
+msgstr "Avval bloklangan"
+
+msgid "IDS_EMAIL_BODY_SEARCH_ON_SERVER"
+msgstr "Serverda qidirish"
+
+msgid "IDS_EMAIL_OPT_RECIPIENT"
+msgstr "Oluvchi"
+
+msgid "IDS_EMAIL_OPT_DELETE_ALL"
+msgstr "Barchasi o'chirish"
+
+msgid "IDS_EMAIL_OPT_RECENT_HPD"
+msgstr "Oxirgi (%d)"
+
+msgid "IDS_EMAIL_OPT_REPLY_TO_SENDER"
+msgstr "Yuboruvchiga javob berish"
+
+msgid "IDS_EMAIL_HEADER_RECENT_T_HEADER"
+msgstr "Oxirgi"
+
+msgid "IDS_EMAIL_OPT_CONTACT_DETAILS"
+msgstr "Kontakt tafsilotlari"
+
+msgid "IDS_EMAIL_OPT_REPLY_TO_ALL"
+msgstr "Barchaga javob berish"
+
+msgid "IDS_EMAIL_BODY_THREADED_LIST"
+msgstr "Bog‘langan ro‘yxat"
+
+msgid "IDS_EMAIL_BODY_SELECT_EMAIL"
+msgstr "E-pochta tanlash"
+
+msgid "IDS_EMAIL_OPT_VIEW_AS"
+msgstr "Quyidagi sifatida ko‘rib chiqish"
+
+msgid "IDS_EMAIL_HEADER_BLOCK_EMAILS"
+msgstr "E-pochtalarni bloklash"
+
+msgid "IDS_EMAIL_HEADER_DELETE"
+msgstr "O'chirish"
+
+msgid "IDS_EMAIL_HEADER_DEFAULT_ACCOUNT"
+msgstr "Sukut his/qaydnoma"
+
+msgid "IDS_EMAIL_HEADER_EMAIL"
+msgstr "E-pochta"
+
+msgid "IDS_EMAIL_BODY_SHOW_EMAILS"
+msgstr "E-pochtalar ko‘rsatilsin"
+
+msgid "IDS_EMAIL_OPT_DATE"
+msgstr "Sana"
+
+msgid "IDS_EMAIL_HEADER_SEARCH"
+msgstr "Qidirish"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_OPEN_EMAIL_MESSAGE"
+msgstr "E-pochta xabarini ochib bo‘lmaydi"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_COMPOSE_EMAIL_MESSAGE"
+msgstr "E-pochta xabarini yaratib bo‘lmaydi"
+
+msgid "IDS_EMAIL_POP_FAILED_TO_START_EMAIL_APPLICATION"
+msgstr "E-pochta ilovasini ishga tushirib bo‘lmadi"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_SAVE_SUBJECT_EMPTY"
+msgstr "Saqlab bo‘lmaydi. Mavzu bo‘sh"
+
+msgid "IDS_EMAIL_HEADER_ALL_EMAILS"
+msgstr "Barcha elektron pochta xabarlari"
+
+msgid "IDS_EMAIL_HEADER_MAILBOX_SETUP"
+msgstr "Pochta qutisini o‘rnatish"
+
+msgid "IDS_EMAIL_HEADER_RETRIEVING_OPTIONS"
+msgstr "Qayta olish opsiyalari"
+
+msgid "IDS_EMAIL_HEADER_ADD_ACCOUNT"
+msgstr "Hisob qaydnoma qo‘shish"
+
+msgid "IDS_EMAIL_HEADER_TEXT_COLOUR"
+msgstr "Matn rangi"
+
+msgid "IDS_EMAIL_HEADER_TEXT_BACKGROUND_COLOUR"
+msgstr "Matn foni rangi"
+
+msgid "IDS_EMAIL_BODY_ADDRESS"
+msgstr "Manzil"
+
+msgid "IDS_EMAIL_SK_DECLINE"
+msgstr "Rad etish"
+
+msgid "IDS_EMAIL_OPT_RESEND"
+msgstr "Qayta yuborish"
+
+msgid "IDS_EMAIL_OPT_ATTACH_FILE"
+msgstr "Fayl biriktirish"
+
+msgid "IDS_EMAIL_HEADER_COMPOSE_EMAIL"
+msgstr "E-pochta yozish"
+
+msgid "IDS_EMAIL_HEADER_ADD_ACCOUNTS"
+msgstr "Hisob qaydnomalarini qo‘shish"
+
+msgid "IDS_EMAIL_OPT_PD_MOST_RECENT_EMAILS"
+msgstr "Oxirgi %d e-pochta"
+
+msgid "IDS_EMAIL_POP_YOU_CAN_ONLY_LOG_IN_ONCE_EVERY_PD_MINUTES"
+msgstr "Har %d daqiqada faqat bir marta kirishingiz mumkin"
+
+msgid "IDS_EMAIL_BODY_DEFAULT_SENDING_ACCOUNT"
+msgstr "Birlamchi o'rnatilgan yuborish hisob qaydnomasi"
+
+msgid "IDS_EMAIL_HEADER_DEFAULT_SENDING_ACCOUNT"
+msgstr "Birlamchi o'rnatilgan yuborish hisob qaydnomasi"
+
+msgid "IDS_EMAIL_BODY_DO_NOT_MATCH_FOLDER_WITH_SERVER"
+msgstr "Jildni server bilan bog‘lamang"
+
+msgid "IDS_EMAIL_POP_QUERYING_SERVER_INFORMATION_ING"
+msgstr "Server ma’lumoti so‘rovi..."
+
+msgid "IDS_EMAIL_POP_SERVER_INFORMATION_QUERY_FAILED_ENTER_SERVER_INFORMATION_MANUALLY"
+msgstr "Server ma’lumoti so‘rovi yuborilmadi. Server ma’lumotini qo‘lda kiriting"
+
+msgid "IDS_EMAIL_POP_SECURITY_POLICY_RESTRICTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "Xavfsizlik siyosati POP/IMAP e-pochtasidan foydalanishni cheklaydi"
+
+msgid "IDS_EMAIL_OPT_VIEW"
+msgstr "Ko‘rib chiqish"
+
+msgid "IDS_EMAIL_OPT_COPY_LINK"
+msgstr "'Link'dan nusxa ko‘chirish"
+
+msgid "IDS_EMAIL_POP_FAILED_TO_MARK_AS_READ"
+msgstr "O‘qilgan sifatida belgilab bo‘lmadi"
+
+msgid "IDS_EMAIL_POP_MARKED_AS_READ"
+msgstr "O‘qilgan sifatida belgilash"
+
+msgid "IDS_EMAIL_OPT_COPY_IMAGE_URL"
+msgstr "Tasvir URL-manzilidan nusxa olish"
+
+msgid "IDS_EMAIL_OPT_COPY_URL"
+msgstr "URLdan nusxa olish"
+
+msgid "IDS_EMAIL_OPT_MOVE_TO_SPAMBOX"
+msgstr "Spamlar qutisiga ko‘chirish"
+
+msgid "IDS_EMAIL_POP_DISCARD_CURRENT_MESSAGE_Q"
+msgstr "Joriy xabar rad etilsinmi?"
+
+msgid "IDS_EMAIL_POP_MEETING_REQUEST_DECLINED_MESSAGE_WILL_BE_MOVED_TO_RECYCLE_BIN"
+msgstr "Uchrashuv so‘rovi rad etildi. Xabar Savatga ko‘chiriladi"
+
+msgid "IDS_EMAIL_POP_MEETING_REQUEST_TENTATIVELY_ACCEPTED_MESSAGE_WILL_BE_MOVED_TO_RECYCLE_BIN"
+msgstr "Uchrashuv so‘rovi shartli ravishda qabul qilindi. Xabar Savatga ko‘chiriladi"
+
+msgid "IDS_EMAIL_POP_MEETING_REQUEST_ACCEPTED_MESSAGE_WILL_BE_MOVED_TO_RECYCLE_BIN"
+msgstr "Uchrashuv so‘rovi qabul qilindi. Xabar Savatga ko‘chiriladi"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_ATTACH_FILE"
+msgstr "Fayl biriktirib bo‘lmaydi"
+
+msgid "IDS_EMAIL_OPT_CALENDAR"
+msgstr "Kalendar"
+
+msgid "IDS_EMAIL_OPT_MEMO"
+msgstr "Eslatma"
+
+msgid "IDS_EMAIL_OPT_TINY_M_TEXTSIZE"
+msgstr "Mitti"
+
+msgid "IDS_EMAIL_OPT_SMALL_M_TEXTSIZE"
+msgstr "Kichik"
+
+msgid "IDS_EMAIL_OPT_NORMAL_M_TEXTSIZE"
+msgstr "Normal"
+
+msgid "IDS_EMAIL_OPT_LARGE_M_TEXTSIZE"
+msgstr "Katta"
+
+msgid "IDS_EMAIL_OPT_HUGE_M_TEXTSIZE"
+msgstr "Ulkan"
+
+msgid "IDS_EMAIL_BODY_ALWAYS_CC_BCC_MYSELF"
+msgstr "Doim menga Nusxa/Yashirin nusxa yuborish"
+
+msgid "IDS_EMAIL_BODY_ALWAYS_CC_MYSELF"
+msgstr "Har doim bir nusxa o‘zimga yuborilsin"
+
+msgid "IDS_EMAIL_BODY_SEND_READ_REPORT"
+msgstr "O‘qilganlik haqida hisobot yuborish"
+
+msgid "IDS_EMAIL_OPT_VIEW_MODE"
+msgstr "Ko‘rib chiqish rejimi"
+
+msgid "IDS_EMAIL_OPT_STANDARD_VIEW"
+msgstr "Standart ko‘rinish"
+
+msgid "IDS_EMAIL_OPT_CONVERSATION_VIEW"
+msgstr "Suhbat ko‘rinishi"
+
+msgid "IDS_EMAIL_OPT_DATE_HMOST_RECENT"
+msgstr "Sana (Eng oxirgi)"
+
+msgid "IDS_EMAIL_OPT_DATE_HOLDEST"
+msgstr "Sana (Eng eski)"
+
+msgid "IDS_EMAIL_OPT_SENDER_HA_TO_Z"
+msgstr "Yuboruvchi (Adan Yagacha)"
+
+msgid "IDS_EMAIL_OPT_SENDER_HZ_TO_A"
+msgstr "Yuboruvchi (Yadan Agacha)"
+
+msgid "IDS_EMAIL_OPT_READ_UNREAD"
+msgstr "O‘qilgan/O‘qilmagan"
+
+msgid "IDS_EMAIL_OPT_FAVOURITES"
+msgstr "Tanlanganlar"
+
+msgid "IDS_EMAIL_HEADER_ALL_ACCOUNTS"
+msgstr "Barcha hisob qaydnomalar"
+
+msgid "IDS_EMAIL_HEADER_SELECT_EMAILS"
+msgstr "Elektron pochta xabarlarini tanlash"
+
+msgid "IDS_EMAIL_BODY_MICROSOFT_EXCHANGE_ACTIVESYNC"
+msgstr "Microsoft Exchange ActiveSync"
+
+msgid "IDS_EMAIL_HEADER_VIEW_MODE_ABB"
+msgstr "Ko‘rinish rejimi"
+
+msgid "IDS_EMAIL_BODY_NO_EMAILS"
+msgstr "E-pochta yo‘q"
+
+msgid "IDS_EMAIL_OPT_DOCUMENTS_ABB"
+msgstr "Hujjatlar"
+
+msgid "IDS_EMAIL_OPT_ATTACH"
+msgstr "Biriktirish"
+
+msgid "IDS_EMAIL_OPT_PRINT"
+msgstr "Chop etish"
+
+msgid "IDS_EMAIL_OPT_GALLERY"
+msgstr "Galereya"
+
+msgid "IDS_EMAIL_OPT_MY_FILES"
+msgstr "Mening fayllarim"
+
+msgid "IDS_EMAIL_OPT_CONTACTS"
+msgstr "Kontaktlar"
+
+msgid "IDS_EMAIL_OPT_INSERT"
+msgstr "Kiritish"
+
+msgid "IDS_EMAIL_BODY_SHOW_IMAGES"
+msgstr "Rasmlarni ko'rsat"
+
+msgid "IDS_EMAIL_OPT_SORT_BY"
+msgstr "Saralash"
+
+msgid "IDS_EMAIL_OPT_FLAG"
+msgstr "Bayroq"
+
+msgid "IDS_EMAIL_OPT_MEETING_REQUEST"
+msgstr "Uchrashish so‘rovi"
+
+msgid "IDS_EMAIL_OPT_ATTACHMENTS"
+msgstr "Biriktirmalar"
+
+msgid "IDS_EMAIL_HEADER_FOLDERS"
+msgstr "Jildlar"
+
+msgid "IDS_EMAIL_OPT_ADD_FOLDER"
+msgstr "Jild qo‘shish"
+
+msgid "IDS_EMAIL_OPT_TITLE"
+msgstr "Sarlavha"
+
+msgid "IDS_EMAIL_HEADER_PD_CONVERSATIONS"
+msgstr "%d suhbat"
+
+msgid "IDS_EMAIL_HEADER_SERVER"
+msgstr "Server"
+
+msgid "IDS_EMAIL_OPT_ALL"
+msgstr "Barchasi"
+
+msgid "IDS_EMAIL_OPT_RECIPIENT_HA_TO_Z"
+msgstr "Qabul qiluvchi (Adan Zgacha)"
+
+msgid "IDS_EMAIL_OPT_RECIPIENT_HZ_TO_A"
+msgstr "Qabul qiluvchi (Zdan Agacha)"
+
+msgid "IDS_EMAIL_HEADER_SEARCH_SHAREPOINT"
+msgstr "SharePointni qidirish"
+
+msgid "IDS_EMAIL_BODY_ENTER_PATH_OF_WINDOWS_SHAREPOINT_SERVICES_OR_WINDOWS_FILE_SHARE_HUNC_TO_ACCESS_DOCUMENTS_REMOTELY"
+msgstr "Hujjatlarga masofadan kirish uchun, Windows SharePoint Xizmatlari yoki Windows faylini ulashish xizmati(UNC) yo‘lini kiriting"
+
+msgid "IDS_EMAIL_OPT_DELETE_FROM_CALENDAR"
+msgstr "Kalendardan o'chirish"
+
+msgid "IDS_EMAIL_BODY_FLICK_UP_TO_SEARCH_ON_SERVER"
+msgstr "Serverda qidirish uchun cherting"
+
+msgid "IDS_EMAIL_BODY_FLICK_UP_TO_SEARCH_ON_SERVER_AGAIN"
+msgstr "Serverda yana qidirish uchun cherting"
+
+msgid "IDS_EMAIL_BODY_RECENT_EMAILS"
+msgstr "Oxrigi e-pochtalar"
+
+msgid "IDS_EMAIL_BODY_DELETING_OPTIONS"
+msgstr "O'chirib tashlash opsiyalari"
+
+msgid "IDS_EMAIL_BODY_FAVOURITES"
+msgstr "Tanlanganlar"
+
+msgid "IDS_EMAIL_BODY_HIGH_M_PRIORITY"
+msgstr "Yuqori"
+
+msgid "IDS_EMAIL_BODY_NORMAL_M_EMAILPRIORITY"
+msgstr "Normal"
+
+msgid "IDS_EMAIL_BODY_LOW_M_EMAILPRIORITY"
+msgstr "Past"
+
+msgid "IDS_EMAIL_BODY_MEETING_REQUEST"
+msgstr "Uchrashish so‘rovi"
+
+msgid "IDS_EMAIL_BODY_MEETING_INVITATION"
+msgstr "Uchrashuv taklifnomasi"
+
+msgid "IDS_EMAIL_OPT_SUGGEST_NEW_TIME_ABB"
+msgstr "Yangi vaqt taklif qiling"
+
+msgid "IDS_EMAIL_BODY_VIEW_IN_CALENDAR"
+msgstr "Kalendarda ko‘rib chiqish"
+
+msgid "IDS_EMAIL_BODY_SEARCH_EMAIL"
+msgstr "E-pochtada qidirish"
+
+msgid "IDS_EMAIL_BODY_ALWAYS_SHOW_THIS_MESSAGE"
+msgstr "Ushbu xabar doim ko‘rsatilsin"
+
+msgid "IDS_EMAIL_BODY_SEND_EMAIL_FROM_THIS_ACCOUNT_BY_DEFAULT"
+msgstr "Ushbu hisob qaydnomasidan sukut bo‘yicha e-pochta xabarini yuborish"
+
+msgid "IDS_EMAIL_BODY_SMTP_SERVER"
+msgstr "SMTP serveri"
+
+msgid "IDS_EMAIL_OPT_SEARCH"
+msgstr "Qidirish"
+
+msgid "IDS_EMAIL_OPT_SHARE"
+msgstr "Ulashish"
+
+msgid "IDS_EMAIL_OPT_MESSAGE"
+msgstr "Xabar"
+
+msgid "IDS_EMAIL_OPT_EMAIL"
+msgstr "E-pochta"
+
+msgid "IDS_EMAIL_OPT_FACEBOOK"
+msgstr "Facebook"
+
+msgid "IDS_EMAIL_OPT_TWITTER"
+msgstr "Twitter"
+
+msgid "IDS_EMAIL_OPT_NFC"
+msgstr "NFC"
+
+msgid "IDS_EMAIL_BODY_SECURITY_OPTIONS"
+msgstr "Xavfsizlik opsiyalari"
+
+msgid "IDS_EMAIL_HEADER_SECURITY_OPTIONS"
+msgstr "Xavfsizlik opsiyalari"
+
+msgid "IDS_EMAIL_BODY_ENCRYPTION_ALGORITHM"
+msgstr "Shifrlash algoritmi"
+
+msgid "IDS_EMAIL_BODY_SIGN_ALGORITHM"
+msgstr "Imzo algoritmi"
+
+msgid "IDS_EMAIL_BODY_EMAIL_CERTIFICATE"
+msgstr "E-pochta sertifikati"
+
+msgid "IDS_EMAIL_BODY_SUNDAY"
+msgstr "Yakshanba"
+
+msgid "IDS_EMAIL_BODY_MONDAY"
+msgstr "Dushanba"
+
+msgid "IDS_EMAIL_BODY_TUESDAY"
+msgstr "Seshanba"
+
+msgid "IDS_EMAIL_BODY_WEDNESDAY"
+msgstr "Chorshanba"
+
+msgid "IDS_EMAIL_BODY_THURSDAY"
+msgstr "Payshaba"
+
+msgid "IDS_EMAIL_BODY_FRIDAY"
+msgstr "Juma"
+
+msgid "IDS_EMAIL_BODY_SATURDAY"
+msgstr "Shanba"
+
+msgid "IDS_EMAIL_BODY_OTHER"
+msgstr "Boshqa"
+
+msgid "IDS_EMAIL_BODY_PHONE"
+msgstr "Telefon"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_DECRYPT_MESSAGE"
+msgstr "Xabar shifrini ochib bo‘lmaydi"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_DECRYPT_MESSAGE_CERTIFICATE_NOT_INSTALLED"
+msgstr "Xabar shifrini ochib bo‘lmaydi. Sertifikat o‘rnatilmagan"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_SIGN_OR_ENCRYPT_MESSAGE_CERTIFICATE_NOT_INSTALLED"
+msgstr "Xabarni imzolab yoki shifrlab bo‘lmaydi. Sertifikat o‘rnatilmagan"
+
+msgid "IDS_EMAIL_POP_DOWNLOAD_MORE_DETAILS_TO_SHOW_S_MIME_MESSAGES_CONTINUE_Q"
+msgstr "S/MIME xabarlarini ko‘rsatish uchun, qo‘shimcha ma’lumotlarni yuklang. Davom ettirilsinmi?"
+
+msgid "IDS_EMAIL_BODY_LAST_WEEK"
+msgstr "Oxirgi hafta"
+
+msgid "IDS_EMAIL_BODY_PD_WEEKS_AGO"
+msgstr "%d hafta avval"
+
+msgid "IDS_EMAIL_BODY_READ"
+msgstr "O‘qish"
+
+msgid "IDS_EMAIL_BODY_UNREAD"
+msgstr "O‘qilmagan"
+
+msgid "IDS_EMAIL_BODY_CLEAR"
+msgstr "Tozalash"
+
+msgid "IDS_EMAIL_BODY_MANUAL_SETUP"
+msgstr "Qo‘lda o‘rnatish"
+
+msgid "IDS_EMAIL_BODY_OLDER_M_HISTORY"
+msgstr "Eskiroq"
+
+msgid "IDS_EMAIL_HEADER_CHECKING"
+msgstr "Tekshirilmoqda"
+
+msgid "IDS_EMAIL_POP_THIS_ATTACHMENT_CANNOT_BE_DISPLAYED"
+msgstr "Biriktirmani aks ettirib bo‘lmaydi"
+
+msgid "IDS_EMAIL_BODY_SERVER"
+msgstr "Server"
+
+msgid "IDS_EMAIL_BODY_ADD_ACCOUNT"
+msgstr "Hisob qaydnoma qo‘shish"
+
+msgid "IDS_EMAIL_BODY_REMOVE_EVENT_FROM_CALENDAR"
+msgstr "Kalendardan voqeani olib tashlash"
+
+msgid "IDS_EMAIL_POP_GETTING_RECIPIENTS_CERTIFICATES_ING"
+msgstr "Qabul qiluvchilar sertifikatlari olinmoqda..."
+
+msgid "IDS_EMAIL_POP_VALIDATING_CERTIFICATES_ING"
+msgstr "Sertifikatlar tasdiqlanmoqda..."
+
+msgid "IDS_EMAIL_HEADER_CERTIFICATES"
+msgstr "Sertifikatlar"
+
+msgid "IDS_EMAIL_POP_FOLLOWING_RECIPIENTS_HAVE_INVALID_CERTIFICATES"
+msgstr "Quyidagi qabul qiluvchilar noto‘g‘ri sertifikatlarga ega"
+
+msgid "IDS_EMAIL_POP_VERIFYING_SIGNATURE_ING"
+msgstr "Imzo tekshirilmoqda..."
+
+msgid "IDS_EMAIL_BODY_ADVANCED"
+msgstr "Takomillashgan"
+
+msgid "IDS_EMAIL_BODY_SEARCH_BY"
+msgstr "Quyidagi bo‘yicha qidirish"
+
+msgid "IDS_EMAIL_BODY_WINDOWS_LIVE_HOTMAIL"
+msgstr "Windows Live Hotmail"
+
+msgid "IDS_EMAIL_BODY_DELETE_ALL_Q"
+msgstr "Barchasi o'chirilsinmi?"
+
+msgid "IDS_EMAIL_BODY_MOVE_TO"
+msgstr "Quyidagiga ko‘chirish"
+
+msgid "IDS_EMAIL_BODY_TOTAL_EMAILS"
+msgstr "Jami e-pochta xabarlari"
+
+msgid "IDS_EMAIL_BODY_HEADER_ONLY"
+msgstr "Faqat sarlavha"
+
+msgid "IDS_EMAIL_BODY_PHONE_AND_SERVER"
+msgstr "Telefon va server"
+
+msgid "IDS_EMAIL_BODY_PHONE_ONLY"
+msgstr "Faqat telefon"
+
+msgid "IDS_EMAIL_BODY_USE_SAME_USERNAME_PASSWORD_AS_POP3_IMAP4"
+msgstr "Bir xil foydalanuvchi nomi/parolni POP3/IMAP4 sifatida foydalaning"
+
+msgid "IDS_EMAIL_BODY_USE_POP3_IMAP4_BEFORE_SMTP"
+msgstr "SMTPdan oldin POP3/IMAP4dan foydalaning"
+
+msgid "IDS_EMAIL_POP_FAILED_TO_VALIDATE_ACCOUNT_CHECK_EMAIL_ADDRESS_AND_PASSWORD"
+msgstr "Hisob qaydnomasini tasdiqlab bo‘lmadi. Elektron pochta manzili va parolni tekshirish"
+
+msgid "IDS_EMAIL_BODY_SMTP_PORT"
+msgstr "SMTP porti"
+
+msgid "IDS_EMAIL_BODY_SHOW_PASSWORD"
+msgstr "Parol ko‘rsatilsin"
+
+msgid "IDS_EMAIL_BODY_LAST_MONTH"
+msgstr "Oxirgi oy"
+
+msgid "IDS_EMAIL_BODY_1_WEEK_AGO"
+msgstr "1 hafta avval"
+
+msgid "IDS_EMAIL_OPT_LOG_IN"
+msgstr "Kirish"
+
+msgid "IDS_EMAIL_BODY_FORWARD_WITH_FILES"
+msgstr "Fayllar b-n bosh/yub."
+
+msgid "IDS_EMAIL_BODY_REPLY_WITH_BODY"
+msgstr "Matn b-n javob berish"
+
+msgid "IDS_EMAIL_BODY_SAVE_ALL"
+msgstr "Barchasini saqlash"
+
+msgid "IDS_EMAIL_OPT_NEW_MEETING_INVITATION"
+msgstr "Yangi uchrashuv taklifi"
+
+msgid "IDS_EMAIL_OPT_MEETING_INVITATION"
+msgstr "Uchrashuv taklifnomasi"
+
+msgid "IDS_EMAIL_HEADER_REPLY_ABB"
+msgstr "Javob berish"
+
+msgid "IDS_EMAIL_OPT_TO_SENDER_ABB"
+msgstr "Yuboruvchiga"
+
+msgid "IDS_EMAIL_OPT_TO_ALL_ABB"
+msgstr "Barchaga"
+
+msgid "IDS_EMAIL_OPT_ADD_CC_BCC"
+msgstr "Nusxa/Yashirin nusxa qo‘shish"
+
+msgid "IDS_EMAIL_OPT_MOVE_TO_CC"
+msgstr "Nusxaga (Cc) ko‘chirish"
+
+msgid "IDS_EMAIL_OPT_MOVE_TO_BCC"
+msgstr "Yashirin nusxaga (Bcc) ko‘chirish"
+
+msgid "IDS_EMAIL_OPT_VIEW_CONTACT"
+msgstr "Kontaktlarni ko‘rib chiqish"
+
+msgid "IDS_EMAIL_HEADER_ATTACH_ABB"
+msgstr "Biriktirish"
+
+msgid "IDS_EMAIL_HEADER_MOVE_TO"
+msgstr "Quyidagiga ko‘chirish"
+
+msgid "IDS_EMAIL_HEADER_SEARCH_BY"
+msgstr "Quyidagi bo‘yicha qidirish"
+
+msgid "IDS_EMAIL_OPT_ADVANCED"
+msgstr "Takomillashgan"
+
+msgid "IDS_EMAIL_POP_THE_DIGITAL_SIGNATURE_ON_THIS_MESSAGE_IS_NOT_VALID_AND_IS_NOT_TRUSTED"
+msgstr "Ushbu xabardagi raqamli imzo haqiqiy ham ishonchli ham emas"
+
+msgid "IDS_EMAIL_POP_CONNECTION_ERROR"
+msgstr "Ulanish xatosi"
+
+msgid "IDS_EMAIL_BODY_EVERY_30_MINUTES"
+msgstr "Har 30 daqiqa"
+
+msgid "IDS_EMAIL_BODY_EVERY_PD_HOURS"
+msgstr "Har %d soat"
+
+msgid "IDS_EMAIL_BODY_ONCE_A_DAY"
+msgstr "Kunda bir marta"
+
+msgid "IDS_EMAIL_POP_CERTIFICATE_DOES_NOT_MATCH_EMAIL_ADDRESS"
+msgstr "Sertifikat e-pochta manziliga mos kelmadi"
+
+msgid "IDS_EMAIL_BODY_ENCRYPT"
+msgstr "Shifrlash"
+
+msgid "IDS_EMAIL_BODY_SIGN"
+msgstr "Imzo"
+
+msgid "IDS_EMAIL_POP_DECRYPTING_MESSAGE_ING"
+msgstr "Xabar shifri ochilmoqda..."
+
+msgid "IDS_EMAIL_BODY_1_MONTH_AGO"
+msgstr "1 oy oldin"
+
+msgid "IDS_EMAIL_OPT_ACCEPT"
+msgstr "Qabul qilish"
+
+msgid "IDS_EMAIL_OPT_DECLINE"
+msgstr "Rad etish"
+
+msgid "IDS_EMAIL_BODY_ALL_ACCOUNTS"
+msgstr "Barcha hisob qaydnomalar"
+
+msgid "IDS_EMAIL_HEADER_SORT_BY"
+msgstr "Saralash"
+
+msgid "IDS_EMAIL_SK_SORT_BY"
+msgstr "Saralash"
+
+msgid "IDS_EMAIL_SK_DELETE_ALL"
+msgstr "Bar. o'ch"
+
+msgid "IDS_EMAIL_SK_MOVE"
+msgstr "Ko‘chir."
+
+msgid "IDS_EMAIL_SK_BLOCK"
+msgstr "Bloklash"
+
+msgid "IDS_EMAIL_SK_CREATE_FOLDER"
+msgstr "Jild yaratish"
+
+msgid "IDS_EMAIL_HEADER_CREATE_FOLDER"
+msgstr "Jild yaratish"
+
+msgid "IDS_EMAIL_POP_FOLDER_NAME"
+msgstr "Jild nomi"
+
+msgid "IDS_EMAIL_OPT_REPLY"
+msgstr "Javob berish"
+
+msgid "IDS_EMAIL_OPT_FORWARD"
+msgstr "Boshqaga yo‘naltirish"
+
+msgid "IDS_EMAIL_OPT_SHARE_VIA_EMAIL"
+msgstr "E-pochta orqali ulashish"
+
+msgid "IDS_EMAIL_OPT_OPEN"
+msgstr "Ochish"
+
+msgid "IDS_EMAIL_OPT_RECORD_AUDIO"
+msgstr "Audio yozib olish"
+
+msgid "IDS_EMAIL_HEADER_SECURITY"
+msgstr "Xavfsizlik"
+
+msgid "IDS_EMAIL_BODY_PD_ATTACHMENTS"
+msgstr "%d biriktirma"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_OPEN_FILE"
+msgstr "Faylni ochib bo‘lmaydi"
+
+msgid "IDS_EMAIL_POP_RETRIEVING_ING"
+msgstr "Qayta olinmoqda..."
+
+msgid "IDS_EMAIL_BODY_SYNC_SCHEDULE"
+msgstr "Sinx. jadvali"
+
+msgid "IDS_EMAIL_BODY_EVERY_PD_MINUTES"
+msgstr "Har %d daqiqa"
+
+msgid "IDS_EMAIL_BODY_ADD_ADDRESS"
+msgstr "Add address"
+
+msgid "IDS_EMAIL_BODY_NEW_EMAIL"
+msgstr "Yangi e-pochta"
+
+msgid "IDS_EMAIL_HEADER_SELECT_FOLDER_ABB"
+msgstr "Jild tanlash"
+
+msgid "IDS_EMAIL_BODY_CAPTURE_VIDEO"
+msgstr "Video olish"
+
+msgid "IDS_EMAIL_BODY_MOVE_TO_TO"
+msgstr "Quyidagiga ko‘chirish"
+
+msgid "IDS_EMAIL_HEADER_SELECT_EMAIL_ADDRESS"
+msgstr "E-pochta manzilini tanlash"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_SEARCH"
+msgstr "Qidirib bo‘lmaydi"
+
+msgid "IDS_EMAIL_OPT_READ"
+msgstr "O‘qilganlar"
+
+msgid "IDS_EMAIL_POP_DOUBLE_TAP_TO_GO_TO_THE_TOP_OF_CONTACTS_LISTS_EMAIL_LISTS_AND_EMAIL_MESSAGES"
+msgstr "Kontaktlar ro‘yxati, e-pochtalar ro‘yxati va e-pochta xabarlarining eng yuqorisiga o‘tish uchun, ikki marta cherting"
+
+msgid "IDS_EMAIL_OPT_EDIT_RESPONSE_BEFORE_SENDING"
+msgstr "Yuborishdan avval javobni tahrirlang"
+
+msgid "IDS_EMAIL_OPT_SEND_RESPONSE_NOW"
+msgstr "Javob endi yuborilsin"
+
+msgid "IDS_EMAIL_OPT_DO_NOT_SEND_RESPONSE"
+msgstr "Javob yuborilmasin"
+
+msgid "IDS_EMAIL_BUTTON_VERIFY_SIGNATURE"
+msgstr "Imzoni tasdiqlash"
+
+msgid "IDS_EMAIL_HEADER_VERIFY_SIGNATURE_HEADER"
+msgstr "Imzoni tasdiqlash"
+
+msgid "IDS_EMAIL_BODY_UNABLE_TO_VERIFY_SIGNATURE_PUBLIC_KEY_IS_NOT_INSTALLED"
+msgstr "Imzoni tekshirib bo‘lmaydi. Umumiy kalit o‘rnatilmagan"
+
+msgid "IDS_EMAIL_POP_THE_DIGITAL_SIGNATURE_ON_THIS_MESSAGE_IS_VALID_AND_TRUSTED"
+msgstr "Ushbu xabardagi raqamli imzo haqiqiy va ishonchli"
+
+msgid "IDS_EMAIL_BUTTON_DECRYPT_MESSAGE"
+msgstr "Xabar shifrdan chiq"
+
+msgid "IDS_EMAIL_OPT_SAVE_EMAIL_ABB"
+msgstr "E-pochtani saqlash"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_CREATE_FOLDER"
+msgstr "Jild yaratib bo‘lmaydi"
+
+msgid "IDS_EMAIL_BUTTON_TAKE_PICTURE"
+msgstr "Rasmga olish"
+
index 748c18c..2b486ba 100755 (executable)
@@ -1390,3 +1390,60 @@ msgstr "每 %d 分钟"
 msgid "IDS_EMAIL_BODY_ADD_ADDRESS"
 msgstr "添加地址"
 
+msgid "IDS_EMAIL_BODY_NEW_EMAIL"
+msgstr "新邮件"
+
+msgid "IDS_EMAIL_HEADER_SELECT_FOLDER_ABB"
+msgstr "选择文件夹"
+
+msgid "IDS_EMAIL_BODY_CAPTURE_VIDEO"
+msgstr "拍摄录像"
+
+msgid "IDS_EMAIL_BODY_MOVE_TO_TO"
+msgstr "移到收件人"
+
+msgid "IDS_EMAIL_HEADER_SELECT_EMAIL_ADDRESS"
+msgstr "选择电子邮件地址"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_SEARCH"
+msgstr "无法搜索"
+
+msgid "IDS_EMAIL_OPT_READ"
+msgstr "已读"
+
+msgid "IDS_EMAIL_POP_DOUBLE_TAP_TO_GO_TO_THE_TOP_OF_CONTACTS_LISTS_EMAIL_LISTS_AND_EMAIL_MESSAGES"
+msgstr "双击以转至联系人列表、电子邮件列表和电子邮件消息的顶部"
+
+msgid "IDS_EMAIL_OPT_EDIT_RESPONSE_BEFORE_SENDING"
+msgstr "编辑响应然后发送"
+
+msgid "IDS_EMAIL_OPT_SEND_RESPONSE_NOW"
+msgstr "立即发送响应"
+
+msgid "IDS_EMAIL_OPT_DO_NOT_SEND_RESPONSE"
+msgstr "请勿发送响应"
+
+msgid "IDS_EMAIL_BUTTON_VERIFY_SIGNATURE"
+msgstr "验证签名"
+
+msgid "IDS_EMAIL_HEADER_VERIFY_SIGNATURE_HEADER"
+msgstr "验证签名"
+
+msgid "IDS_EMAIL_BODY_UNABLE_TO_VERIFY_SIGNATURE_PUBLIC_KEY_IS_NOT_INSTALLED"
+msgstr "无法验证签名。公共密钥未安装"
+
+msgid "IDS_EMAIL_POP_THE_DIGITAL_SIGNATURE_ON_THIS_MESSAGE_IS_VALID_AND_TRUSTED"
+msgstr "该消息上的数字签名有效且被信任"
+
+msgid "IDS_EMAIL_BUTTON_DECRYPT_MESSAGE"
+msgstr "解密消息"
+
+msgid "IDS_EMAIL_OPT_SAVE_EMAIL_ABB"
+msgstr "保存电子邮件"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_CREATE_FOLDER"
+msgstr "不能创建文件夹"
+
+msgid "IDS_EMAIL_BUTTON_TAKE_PICTURE"
+msgstr "拍摄照片"
+
index ba085ac..6986777 100755 (executable)
@@ -896,7 +896,7 @@ msgid "IDS_EMAIL_OPT_LARGE_M_TEXTSIZE"
 msgstr "大"
 
 msgid "IDS_EMAIL_OPT_HUGE_M_TEXTSIZE"
-msgstr "大"
+msgstr "大"
 
 msgid "IDS_EMAIL_BODY_ALWAYS_CC_BCC_MYSELF"
 msgstr "總是抄送/密送自己"
@@ -1390,3 +1390,60 @@ msgstr "每 %d 分鐘"
 msgid "IDS_EMAIL_BODY_ADD_ADDRESS"
 msgstr "加入地址"
 
+msgid "IDS_EMAIL_BODY_NEW_EMAIL"
+msgstr "新電子郵件"
+
+msgid "IDS_EMAIL_HEADER_SELECT_FOLDER_ABB"
+msgstr "選擇資料夾"
+
+msgid "IDS_EMAIL_BODY_CAPTURE_VIDEO"
+msgstr "拍攝影片"
+
+msgid "IDS_EMAIL_BODY_MOVE_TO_TO"
+msgstr "移動到頂部"
+
+msgid "IDS_EMAIL_HEADER_SELECT_EMAIL_ADDRESS"
+msgstr "選擇電子郵件地址"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_SEARCH"
+msgstr "無法搜尋"
+
+msgid "IDS_EMAIL_OPT_READ"
+msgstr "已讀取"
+
+msgid "IDS_EMAIL_POP_DOUBLE_TAP_TO_GO_TO_THE_TOP_OF_CONTACTS_LISTS_EMAIL_LISTS_AND_EMAIL_MESSAGES"
+msgstr "輕觸兩次以前往聯絡人清單、電子郵件清單以及電子郵件訊息的頂部"
+
+msgid "IDS_EMAIL_OPT_EDIT_RESPONSE_BEFORE_SENDING"
+msgstr "在發送前的編輯回應"
+
+msgid "IDS_EMAIL_OPT_SEND_RESPONSE_NOW"
+msgstr "現在發送回應"
+
+msgid "IDS_EMAIL_OPT_DO_NOT_SEND_RESPONSE"
+msgstr "不要發送回應"
+
+msgid "IDS_EMAIL_BUTTON_VERIFY_SIGNATURE"
+msgstr "驗證簽署"
+
+msgid "IDS_EMAIL_HEADER_VERIFY_SIGNATURE_HEADER"
+msgstr "驗證簽署"
+
+msgid "IDS_EMAIL_BODY_UNABLE_TO_VERIFY_SIGNATURE_PUBLIC_KEY_IS_NOT_INSTALLED"
+msgstr "無法驗證簽名。未安裝公開金鑰"
+
+msgid "IDS_EMAIL_POP_THE_DIGITAL_SIGNATURE_ON_THIS_MESSAGE_IS_VALID_AND_TRUSTED"
+msgstr "此訊息上的數位簽署有效且受信任"
+
+msgid "IDS_EMAIL_BUTTON_DECRYPT_MESSAGE"
+msgstr "解密訊息"
+
+msgid "IDS_EMAIL_OPT_SAVE_EMAIL_ABB"
+msgstr "儲存電子郵件"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_CREATE_FOLDER"
+msgstr "無法建立資料夾"
+
+msgid "IDS_EMAIL_BUTTON_TAKE_PICTURE"
+msgstr "拍照"
+
index 8c90810..f1fdd93 100755 (executable)
@@ -1390,3 +1390,60 @@ msgstr "每 %d 分钟"
 msgid "IDS_EMAIL_BODY_ADD_ADDRESS"
 msgstr "添加地址"
 
+msgid "IDS_EMAIL_BODY_NEW_EMAIL"
+msgstr "新邮件"
+
+msgid "IDS_EMAIL_HEADER_SELECT_FOLDER_ABB"
+msgstr "选择文件夹"
+
+msgid "IDS_EMAIL_BODY_CAPTURE_VIDEO"
+msgstr "拍摄视频"
+
+msgid "IDS_EMAIL_BODY_MOVE_TO_TO"
+msgstr "移动到收件人"
+
+msgid "IDS_EMAIL_HEADER_SELECT_EMAIL_ADDRESS"
+msgstr "选择电子邮件地址"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_SEARCH"
+msgstr "无法搜索"
+
+msgid "IDS_EMAIL_OPT_READ"
+msgstr "阅读"
+
+msgid "IDS_EMAIL_POP_DOUBLE_TAP_TO_GO_TO_THE_TOP_OF_CONTACTS_LISTS_EMAIL_LISTS_AND_EMAIL_MESSAGES"
+msgstr "双击以转至联系人列表、电子邮件列表和电子邮件消息的顶部"
+
+msgid "IDS_EMAIL_OPT_EDIT_RESPONSE_BEFORE_SENDING"
+msgstr "编辑响应然后发送"
+
+msgid "IDS_EMAIL_OPT_SEND_RESPONSE_NOW"
+msgstr "立即发送响应"
+
+msgid "IDS_EMAIL_OPT_DO_NOT_SEND_RESPONSE"
+msgstr "请勿发送响应"
+
+msgid "IDS_EMAIL_BUTTON_VERIFY_SIGNATURE"
+msgstr "验证签名"
+
+msgid "IDS_EMAIL_HEADER_VERIFY_SIGNATURE_HEADER"
+msgstr "验证签名"
+
+msgid "IDS_EMAIL_BODY_UNABLE_TO_VERIFY_SIGNATURE_PUBLIC_KEY_IS_NOT_INSTALLED"
+msgstr "无法验证签名。公共密钥未安装"
+
+msgid "IDS_EMAIL_POP_THE_DIGITAL_SIGNATURE_ON_THIS_MESSAGE_IS_VALID_AND_TRUSTED"
+msgstr "该消息上的数字签名有效且被信任"
+
+msgid "IDS_EMAIL_BUTTON_DECRYPT_MESSAGE"
+msgstr "解密消息"
+
+msgid "IDS_EMAIL_OPT_SAVE_EMAIL_ABB"
+msgstr "保存电子邮件"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_CREATE_FOLDER"
+msgstr "不能创建文件夹"
+
+msgid "IDS_EMAIL_BUTTON_TAKE_PICTURE"
+msgstr "拍摄照片"
+
index 1b4c139..6a0eb54 100755 (executable)
@@ -1390,3 +1390,60 @@ msgstr "每 %d 分鐘"
 msgid "IDS_EMAIL_BODY_ADD_ADDRESS"
 msgstr "加入地址"
 
+msgid "IDS_EMAIL_BODY_NEW_EMAIL"
+msgstr "新電子郵件"
+
+msgid "IDS_EMAIL_HEADER_SELECT_FOLDER_ABB"
+msgstr "選取資料夾"
+
+msgid "IDS_EMAIL_BODY_CAPTURE_VIDEO"
+msgstr "拍攝影片"
+
+msgid "IDS_EMAIL_BODY_MOVE_TO_TO"
+msgstr "移動到至"
+
+msgid "IDS_EMAIL_HEADER_SELECT_EMAIL_ADDRESS"
+msgstr "選擇電子郵件位址"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_SEARCH"
+msgstr "無法搜尋"
+
+msgid "IDS_EMAIL_OPT_READ"
+msgstr "已讀取"
+
+msgid "IDS_EMAIL_POP_DOUBLE_TAP_TO_GO_TO_THE_TOP_OF_CONTACTS_LISTS_EMAIL_LISTS_AND_EMAIL_MESSAGES"
+msgstr "輕觸兩次前往聯絡人清單、電子郵件清單以及電子郵件訊息頂部"
+
+msgid "IDS_EMAIL_OPT_EDIT_RESPONSE_BEFORE_SENDING"
+msgstr "在發送前編輯回應"
+
+msgid "IDS_EMAIL_OPT_SEND_RESPONSE_NOW"
+msgstr "立刻發送回應"
+
+msgid "IDS_EMAIL_OPT_DO_NOT_SEND_RESPONSE"
+msgstr "不要發送回應"
+
+msgid "IDS_EMAIL_BUTTON_VERIFY_SIGNATURE"
+msgstr "驗證簽名"
+
+msgid "IDS_EMAIL_HEADER_VERIFY_SIGNATURE_HEADER"
+msgstr "驗證簽名"
+
+msgid "IDS_EMAIL_BODY_UNABLE_TO_VERIFY_SIGNATURE_PUBLIC_KEY_IS_NOT_INSTALLED"
+msgstr "無法驗證簽名。未安裝公開金鑰"
+
+msgid "IDS_EMAIL_POP_THE_DIGITAL_SIGNATURE_ON_THIS_MESSAGE_IS_VALID_AND_TRUSTED"
+msgstr "此訊息的數位簽署有效且受信任"
+
+msgid "IDS_EMAIL_BUTTON_DECRYPT_MESSAGE"
+msgstr "解密訊息"
+
+msgid "IDS_EMAIL_OPT_SAVE_EMAIL_ABB"
+msgstr "儲存電子郵件"
+
+msgid "IDS_EMAIL_POP_UNABLE_TO_CREATE_FOLDER"
+msgstr "無法建立資料夾"
+
+msgid "IDS_EMAIL_BUTTON_TAKE_PICTURE"
+msgstr "拍攝圖片"
+
index f20138c..00da175 100755 (executable)
@@ -65,7 +65,4 @@ ADD_DEPENDENCIES(${PROJECT_NAME} email-setting-theme.edj)
 
 INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${UGDIR})
 INSTALL(FILES ${CMAKE_SETTING_BINARY_DIR}/email-setting-theme.edj DESTINATION ${EDJDIR})
-INSTALL(FILES ${CMAKE_SOURCE_DIR}/images/org.tizen.email.png DESTINATION ${ICONDIR})
 
-# i18n
-#ADD_SUBDIRECTORY(po)
index 57d3a44..5536f5d 100755 (executable)
@@ -121,7 +121,6 @@ struct ug_data {
        int setup_mailbox;
        int navi_flag[16];
        int start_account_validation;
-       int b_exchange;
        int change_view_ing;
        int b_on_pause;
        int wds_account_creation;
index c43d84d..78549a4 100755 (executable)
@@ -211,14 +211,14 @@ static void _set_gmail(struct viewdata *vd)
        account->user_email_address = g_strdup("<User ID>@gmail.com");
        account->incoming_server_password = g_strdup(<User Password>);*/
 
-       vconf_get_int("file/private/com.samsung.email/gmail_receiving_type", (int *)&(account->incoming_server_type));
-       vconf_get_int("file/private/com.samsung.email/gmail_receiving_port", &(account->incoming_server_port_number));
-       vconf_get_int("file/private/com.samsung.email/gmail_receiving_ssl", &(account->incoming_server_secure_connection));
-       account->incoming_server_address = vconf_get_str("file/private/com.samsung.email/gmail_receiving_address");
-
-       vconf_get_int("file/private/com.samsung.email/gmail_sending_port", &(account->outgoing_server_port_number));
-       vconf_get_int("file/private/com.samsung.email/gmail_sending_ssl", &(account->outgoing_server_secure_connection));
-       account->outgoing_server_address = vconf_get_str("file/private/com.samsung.email/gmail_sending_address");
+       vconf_get_int("file/private/org.tizen.email/gmail_receiving_type", (int *)&(account->incoming_server_type));
+       vconf_get_int("file/private/org.tizen.email/gmail_receiving_port", &(account->incoming_server_port_number));
+       vconf_get_int("file/private/org.tizen.email/gmail_receiving_ssl", &(account->incoming_server_secure_connection));
+       account->incoming_server_address = vconf_get_str("file/private/org.tizen.email/gmail_receiving_address");
+
+       vconf_get_int("file/private/org.tizen.email/gmail_sending_port", &(account->outgoing_server_port_number));
+       vconf_get_int("file/private/org.tizen.email/gmail_sending_ssl", &(account->outgoing_server_secure_connection));
+       account->outgoing_server_address = vconf_get_str("file/private/org.tizen.email/gmail_sending_address");
        account->outgoing_server_user_name = g_strdup(account->incoming_server_user_name);
        account->outgoing_server_password = g_strdup(account->incoming_server_password);
 
@@ -291,14 +291,14 @@ static void _set_yahoomail(struct viewdata *vd)
        account->user_email_address = g_strdup("<User ID>@yahoo.com");
        account->incoming_server_password = g_strdup(<User Password>);*/
 
-       vconf_get_int("file/private/com.samsung.email/yahoo_receiving_type", (int *)&(account->incoming_server_type));
-       vconf_get_int("file/private/com.samsung.email/yahoo_receiving_port", &(account->incoming_server_port_number));
-       vconf_get_int("file/private/com.samsung.email/yahoo_receiving_ssl", &(account->incoming_server_secure_connection));
-       account->incoming_server_address = vconf_get_str("file/private/com.samsung.email/yahoo_receiving_address");
+       vconf_get_int("file/private/org.tizen.email/yahoo_receiving_type", (int *)&(account->incoming_server_type));
+       vconf_get_int("file/private/org.tizen.email/yahoo_receiving_port", &(account->incoming_server_port_number));
+       vconf_get_int("file/private/org.tizen.email/yahoo_receiving_ssl", &(account->incoming_server_secure_connection));
+       account->incoming_server_address = vconf_get_str("file/private/org.tizen.email/yahoo_receiving_address");
 
-       account->outgoing_server_address = vconf_get_str("file/private/com.samsung.email/yahoo_sending_address");
-       vconf_get_int("file/private/com.samsung.email/yahoo_sending_port", &(account->outgoing_server_port_number));
-       vconf_get_int("file/private/com.samsung.email/yahoo_sending_ssl", &(account->outgoing_server_secure_connection));
+       account->outgoing_server_address = vconf_get_str("file/private/org.tizen.email/yahoo_sending_address");
+       vconf_get_int("file/private/org.tizen.email/yahoo_sending_port", &(account->outgoing_server_port_number));
+       vconf_get_int("file/private/org.tizen.email/yahoo_sending_ssl", &(account->outgoing_server_secure_connection));
        account->outgoing_server_user_name = g_strdup(account->incoming_server_user_name);
        account->outgoing_server_password = g_strdup(account->incoming_server_password);
 
@@ -372,14 +372,14 @@ static void _set_hotmail(struct viewdata *vd)
        account->user_email_address = g_strdup("<User ID>@aol.com");
        account->incoming_server_password = g_strdup(<User Password>);*/
 
-       vconf_get_int("file/private/com.samsung.email/hotmail_receiving_type", (int *)&(account->incoming_server_type));
-       vconf_get_int("file/private/com.samsung.email/hotmail_receiving_port", &(account->incoming_server_port_number));
-       vconf_get_int("file/private/com.samsung.email/hotmail_receiving_ssl", &(account->incoming_server_secure_connection));
-       account->incoming_server_address = vconf_get_str("file/private/com.samsung.email/hotmail_receiving_address");
+       vconf_get_int("file/private/org.tizen.email/hotmail_receiving_type", (int *)&(account->incoming_server_type));
+       vconf_get_int("file/private/org.tizen.email/hotmail_receiving_port", &(account->incoming_server_port_number));
+       vconf_get_int("file/private/org.tizen.email/hotmail_receiving_ssl", &(account->incoming_server_secure_connection));
+       account->incoming_server_address = vconf_get_str("file/private/org.tizen.email/hotmail_receiving_address");
 
-       account->outgoing_server_address = vconf_get_str("file/private/com.samsung.email/hotmail_sending_address");
-       vconf_get_int("file/private/com.samsung.email/hotmail_sending_port", &(account->outgoing_server_port_number));
-       vconf_get_int("file/private/com.samsung.email/hotmail_sending_ssl", &(account->outgoing_server_secure_connection));
+       account->outgoing_server_address = vconf_get_str("file/private/org.tizen.email/hotmail_sending_address");
+       vconf_get_int("file/private/org.tizen.email/hotmail_sending_port", &(account->outgoing_server_port_number));
+       vconf_get_int("file/private/org.tizen.email/hotmail_sending_ssl", &(account->outgoing_server_secure_connection));
        account->outgoing_server_user_name = g_strdup(account->incoming_server_user_name);
        account->outgoing_server_password = g_strdup(account->incoming_server_password);
 
@@ -452,14 +452,14 @@ static void _set_aol(struct viewdata *vd)
        account->user_email_address = g_strdup("<User ID>@aol.com");
        account->incoming_server_password = g_strdup(<User Password>);*/
 
-       vconf_get_int("file/private/com.samsung.email/aol_receiving_type", (int *)&(account->incoming_server_type));
-       vconf_get_int("file/private/com.samsung.email/aol_receiving_port", &(account->incoming_server_port_number));
-       vconf_get_int("file/private/com.samsung.email/aol_receiving_ssl", &(account->incoming_server_secure_connection));
-       account->incoming_server_address = vconf_get_str("file/private/com.samsung.email/aol_receiving_address");
+       vconf_get_int("file/private/org.tizen.email/aol_receiving_type", (int *)&(account->incoming_server_type));
+       vconf_get_int("file/private/org.tizen.email/aol_receiving_port", &(account->incoming_server_port_number));
+       vconf_get_int("file/private/org.tizen.email/aol_receiving_ssl", &(account->incoming_server_secure_connection));
+       account->incoming_server_address = vconf_get_str("file/private/org.tizen.email/aol_receiving_address");
 
-       account->outgoing_server_address = vconf_get_str("file/private/com.samsung.email/aol_sending_address");
-       vconf_get_int("file/private/com.samsung.email/aol_sending_port", &(account->outgoing_server_port_number));
-       vconf_get_int("file/private/com.samsung.email/aol_sending_ssl", &(account->outgoing_server_secure_connection));
+       account->outgoing_server_address = vconf_get_str("file/private/org.tizen.email/aol_sending_address");
+       vconf_get_int("file/private/org.tizen.email/aol_sending_port", &(account->outgoing_server_port_number));
+       vconf_get_int("file/private/org.tizen.email/aol_sending_ssl", &(account->outgoing_server_secure_connection));
        account->outgoing_server_user_name = g_strdup(account->incoming_server_user_name);
        account->outgoing_server_password = g_strdup(account->incoming_server_password);
 
index e637358..974cb63 100755 (executable)
@@ -706,7 +706,7 @@ char *setting_get_service_fail_type(int type)
                ret = N_("DB operation failed");
                return strdup(ret);
        } else if (type == EMAIL_ERROR_ALREADY_EXISTS) {
-               ret = N_("Already exists");
+               ret = _("IDS_EMAIL_POP_ACCOUNT_ALREADY_EXISTS");
                return strdup(ret);
        } else if (type == EMAIL_ERROR_TLS_NOT_SUPPORTED) {
                ret = N_("Server not support TLS");
index 5308d77..9caf9bd 100755 (executable)
@@ -441,10 +441,27 @@ static void _push_naviframe(struct viewdata *vd)
        evas_object_smart_callback_add(p->r_button2, "clicked", _save_cb, vd);
        evas_object_show(p->r_button2);*/
 
+       Evas_Object *title_ic = elm_icon_add(vd->ugd->navi_bar);
+       evas_object_size_hint_aspect_set(title_ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
+       elm_icon_resizable_set(title_ic, EINA_TRUE, EINA_TRUE);
+
+       account_user_data_t *user_data = (account_user_data_t *)account_data->user_data;
+
+       if (user_data->is_preset_account == GMAIL) {
+               elm_icon_file_set(title_ic, ACCOUNT_ICON_GMAIL, NULL);
+       } else if (user_data->is_preset_account == HOTMAIL) {
+               elm_icon_file_set(title_ic, ACCOUNT_ICON_HOTMAIL, NULL);
+       } else if (user_data->is_preset_account == YAHOOMAIL) {
+               elm_icon_file_set(title_ic, ACCOUNT_ICON_YAHOO, NULL);
+       } else if (user_data->is_preset_account == AOL) {
+               elm_icon_file_set(title_ic, ACCOUNT_ICON_AOL, NULL);
+       }
+
        Elm_Object_Item *navi_it = NULL;
        navi_it = elm_naviframe_item_push(vd->ugd->navi_bar, p->str_account_name, p->l_button, NULL, p->layout, NULL);
        /*elm_object_item_part_content_set(navi_it, "title_left_btn", p->r_button1);
        elm_object_item_part_content_set(navi_it, "title_right_btn", p->r_button2);*/
+       elm_object_item_part_content_set(navi_it, "icon", title_ic);
        elm_object_item_part_content_set(navi_it, "controlbar", p->cbar);
        evas_object_show(vd->ugd->navi_bar);
 }
@@ -962,21 +979,25 @@ static void _onoff_cb(void *data, Evas_Object *obj, void *event_info)
                        /* user name */
                        if (p->gl_sending_user_item) {
                                elm_object_item_disabled_set(p->gl_sending_user_item, EINA_TRUE);
+                               elm_entry_context_menu_disabled_set(p->entry_sending_username, EINA_TRUE);
                        }
 
                        /* password */
                        if (p->gl_sending_pw_item) {
                                elm_object_item_disabled_set(p->gl_sending_pw_item, EINA_TRUE);
+                               elm_entry_context_menu_disabled_set(p->entry_sending_password, EINA_TRUE);
                        }
                } else {
                        /* user name */
                        if (p->gl_sending_user_item) {
                                elm_object_item_disabled_set(p->gl_sending_user_item, EINA_FALSE);
+                               elm_entry_context_menu_disabled_set(p->entry_sending_username, EINA_FALSE);
                        }
 
                        /* password */
                        if (p->gl_sending_pw_item) {
                                elm_object_item_disabled_set(p->gl_sending_pw_item, EINA_FALSE);
+                               elm_entry_context_menu_disabled_set(p->entry_sending_password, EINA_FALSE);
                        }
                }
        }
@@ -1247,8 +1268,6 @@ static char *_gl_secure_text_get_cb(void *data, Evas_Object *obj, const char *pa
        debug_enter();
        int index = (int)data;
 
-       struct viewdata *vd = g_vd;
-       struct priv_data *p = vd->priv;
        email_account_t *account = account_data;
 
        char buf[MAX_STR_LEN] = { 0, };
@@ -1333,8 +1352,6 @@ static char *_gl_server_type_text_get_cb(void *data, Evas_Object *obj, const cha
 {
        debug_enter();
 
-       struct viewdata *vd = g_vd;
-       struct priv_data *p = vd->priv;
        email_account_t *account = account_data;
 
        char buf[MAX_STR_LEN] = { 0, };
@@ -1660,6 +1677,11 @@ static Evas_Object *_gl_ef_content_get_cb(void *data, Evas_Object *obj, const ch
                        elm_entry_input_panel_return_key_disabled_set(p->entry_sending_username, EINA_TRUE);
                        elm_entry_cnp_mode_set(p->entry_sending_username, ELM_CNP_MODE_PLAINTEXT);
                        elm_entry_input_panel_layout_set(p->entry_sending_username, ELM_INPUT_PANEL_LAYOUT_EMAIL);
+                       if (account_data->outgoing_server_use_same_authenticator) {
+                               elm_entry_context_menu_disabled_set(p->entry_sending_username, EINA_TRUE);
+                       } else {
+                               elm_entry_context_menu_disabled_set(p->entry_sending_username, EINA_FALSE);
+                       }
 
                        evas_object_smart_callback_add(p->entry_sending_username, "changed", _backup_input_cb, p->ef_sending_username);
                        evas_object_smart_callback_add(p->entry_sending_username, "focused", _entry_focused_cb, p->ef_sending_username);
@@ -1688,6 +1710,11 @@ static Evas_Object *_gl_ef_content_get_cb(void *data, Evas_Object *obj, const ch
                        elm_entry_password_set(p->entry_sending_password, 1);
                        elm_entry_cnp_mode_set(p->entry_sending_password, ELM_CNP_MODE_PLAINTEXT);
                        elm_entry_input_panel_layout_set(p->entry_sending_password, ELM_INPUT_PANEL_LAYOUT_EMAIL);
+                       if (account_data->outgoing_server_use_same_authenticator) {
+                               elm_entry_context_menu_disabled_set(p->entry_sending_password, EINA_TRUE);
+                       } else {
+                               elm_entry_context_menu_disabled_set(p->entry_sending_password, EINA_FALSE);
+                       }
 
                        evas_object_smart_callback_add(p->entry_sending_password, "changed", _backup_input_cb, p->ef_sending_password);
                        evas_object_smart_callback_add(p->entry_sending_password, "focused", _entry_focused_cb, p->ef_sending_password);
@@ -1969,21 +1996,25 @@ static void _gl_onoff_sel_cb(void *data, Evas_Object *obj, void *event_info)
                        /* user name */
                        if (p->gl_sending_user_item) {
                                elm_object_item_disabled_set(p->gl_sending_user_item, EINA_TRUE);
+                               elm_entry_context_menu_disabled_set(p->entry_sending_username, EINA_TRUE);
                        }
 
                        /* password */
                        if (p->gl_sending_pw_item) {
                                elm_object_item_disabled_set(p->gl_sending_pw_item, EINA_TRUE);
+                               elm_entry_context_menu_disabled_set(p->entry_sending_password, EINA_TRUE);
                        }
                } else {
                        /* user name */
                        if (p->gl_sending_user_item) {
                                elm_object_item_disabled_set(p->gl_sending_user_item, EINA_FALSE);
+                               elm_entry_context_menu_disabled_set(p->entry_sending_username, EINA_FALSE);
                        }
 
                        /* password */
                        if (p->gl_sending_pw_item) {
                                elm_object_item_disabled_set(p->gl_sending_pw_item, EINA_FALSE);
+                               elm_entry_context_menu_disabled_set(p->entry_sending_password, EINA_FALSE);
                        }
                }
                break;
index 493bdfd..86e2668 100755 (executable)
@@ -905,7 +905,7 @@ static char *_gl_onoff_text_get_cb(void *data, Evas_Object *obj, const char *par
                }
 
                if (index == 6) {
-                       snprintf(buf, sizeof(buf), "%s", N_("Send read report"));
+                       snprintf(buf, sizeof(buf), "%s", _("IDS_EMAIL_BODY_SEND_READ_REPORT"));
                }
 
                return g_strdup(buf);
@@ -1317,7 +1317,7 @@ static Evas_Object *_gl_ef_content_get_cb(void *data, Evas_Object *obj, const ch
 
                p->entry_sig = elm_entry_add(p->genlist);
                elm_entry_cnp_mode_set(p->entry_sig, ELM_CNP_MODE_PLAINTEXT);
-               elm_entry_input_panel_layout_set(p->entry_sig, ELM_INPUT_PANEL_LAYOUT_EMAIL);
+               elm_entry_input_panel_layout_set(p->entry_sig, ELM_INPUT_PANEL_LAYOUT_NORMAL);
                if (account_data->options.add_signature) {
                        elm_entry_editable_set(p->entry_sig, TRUE);
                        elm_entry_context_menu_disabled_set(p->entry_sig, EINA_FALSE);
index d7acf20..e1b8664 100755 (executable)
@@ -35,6 +35,8 @@ static int _check_null_field(struct viewdata *vd);
 static int _check_preset_null_field(struct viewdata *vd);
 static int _check_preset_isp_name(char *addr, int isp_type);
 static void _read_all_entries(struct viewdata *vd);
+/*static void _set_help_string(Evas_Object *eo, struct viewdata *vd);*/
+static void _set_domain_string(struct viewdata *vd);
 
 static void _next_cb(void *data, Evas_Object *obj, void *event_info);
 static void _save_cb(void *data, Evas_Object *obj, void *event_info);
@@ -42,8 +44,8 @@ static void _manual_cb(void *data, Evas_Object *obj, void *event_info);
 static void _back_cb(void *data, Evas_Object *obj, void *event_info);
 static void _check1_clicked_cb(void *data, Evas_Object *obj, void *event_info);
 static void _check2_clicked_cb(void *data, Evas_Object *obj, void *event_info);
-static void _check1_clicked_cb2(void *data, Evas * evas, Evas_Object *obj, void *event_info);
-static void _check2_clicked_cb2(void *data, Evas * evas, Evas_Object *obj, void *event_info);
+static void _check1_clicked_cb2(void *data, Evas_Object *obj, const char *emission, const char *source);
+static void _check2_clicked_cb2(void *data, Evas_Object *obj, const char *emission, const char *source);
 static Eina_Bool _after_validation_cb(void *data);
 
 static void _popup_ok_cb(void *data, Evas_Object *obj, void *event_info);
@@ -224,6 +226,10 @@ static int _create(struct viewdata *vd)
        g_vd = vd;
        ugd->wds_account_creation = 0;
 
+       if (vd->ugd->account_info != OTHERS) {
+               _set_domain_string(vd);
+       }
+
        _create_view(vd);
        vd->refresh = 1;
 
@@ -405,9 +411,10 @@ static void _create_view(struct viewdata *vd)
 
        char *desc = g_strdup(_("IDS_EMAIL_BODY_SEND_EMAIL_FROM_THIS_ACCOUNT_BY_DEFAULT"));
        Evas_Object *label1 = elm_label_add(checkbox_set);
-       char *text = g_strconcat("<color=#838B8BFF><font_size=30><align=left>",
+       char *text = g_strconcat("<color=#838B8BFF><font_size=32><align=left>",
                                desc, "</align></font_size></color>", NULL);
-       evas_object_event_callback_add(label1, EVAS_CALLBACK_MOUSE_UP, _check1_clicked_cb2, (void *)vd);
+       edje_object_signal_callback_add(elm_layout_edje_get(checkbox_set),
+                       "elm,action,text1_clicked", "elm", _check1_clicked_cb2, (void *)vd);
        elm_object_text_set(label1, text);
        evas_object_show(label1);
        g_free(desc);
@@ -416,9 +423,10 @@ static void _create_view(struct viewdata *vd)
 
        desc = g_strdup(_("IDS_EMAIL_BODY_SHOW_PASSWORD"));
        Evas_Object *label2 = elm_label_add(checkbox_set);
-       text = g_strconcat("<color=#838B8BFF><font_size=30><align=left>",
+       text = g_strconcat("<color=#838B8BFF><font_size=32><align=left>",
                                desc, "</align></font_size></color>", NULL);
-       evas_object_event_callback_add(label2, EVAS_CALLBACK_MOUSE_UP, _check2_clicked_cb2, (void *)vd);
+       edje_object_signal_callback_add(elm_layout_edje_get(checkbox_set),
+                       "elm,action,text2_clicked", "elm", _check2_clicked_cb2, (void *)vd);
        elm_object_text_set(label2, text);
        evas_object_show(label2);
        g_free(desc);
@@ -432,17 +440,6 @@ static void _create_view(struct viewdata *vd)
        evas_object_size_hint_weight_set(button_set, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
        evas_object_show(button_set);
 
-       desc = g_strdup(N_("Setup POP3 or IMAP4?"));
-       Evas_Object *label3 = elm_label_add(button_set);
-       text = g_strconcat("<color=#838B8BFF><font_size=30><align=left>",
-                               desc, "</align></font_size></color>", NULL);
-
-       elm_object_text_set(label3, text);
-       evas_object_show(label3);
-       g_free(desc);
-       g_free(text);
-       elm_object_part_content_set(button_set, "text", label3);
-
        Evas_Object *btn = elm_button_add(button_set);
        elm_object_text_set(btn, _("IDS_EMAIL_BODY_MANUAL_SETUP"));
        evas_object_smart_callback_add(btn, "clicked", _manual_cb, (void *)vd);
@@ -734,6 +731,26 @@ static void _read_all_entries(struct viewdata *vd)
        }
 }
 
+static void _set_domain_string(struct viewdata *vd)
+{
+       debug_log("");
+       EmailSettingUGD *ugd = vd->ugd;
+       struct priv_data *p;
+       p = vd->priv;
+
+       if (ugd->account_info == HOTMAIL) {
+               p->str_email_address = g_strdup("@hotmail.com");
+       } else if (ugd->account_info == YAHOOMAIL) {
+               p->str_email_address = g_strdup("@yahoo.com");
+       } else if (ugd->account_info == GMAIL) {
+               p->str_email_address = g_strdup("@gmail.com");
+       } else if (ugd->account_info == AOL) {
+               p->str_email_address = g_strdup("@aol.com");
+       } else {
+               debug_log("Unknown account type");
+       }
+}
+
 static void _next_cb(void *data, Evas_Object *obj, void *event_info)
 {
        debug_log("");
@@ -1047,7 +1064,7 @@ static void _check1_clicked_cb(void *data, Evas_Object *obj, void *event_info)
                p->set_default_account = 0;
 }
 
-static void _check1_clicked_cb2(void *data, Evas * evas, Evas_Object *obj, void *event_info)
+static void _check1_clicked_cb2(void *data, Evas_Object *obj, const char *emission, const char *source)
 {
        debug_log("");
        struct viewdata *vd = (struct viewdata *)data;
@@ -1088,7 +1105,7 @@ static void _check2_clicked_cb(void *data, Evas_Object *obj, void *event_info)
                elm_entry_password_set(p->entry_password, EINA_TRUE);
 }
 
-static void _check2_clicked_cb2(void *data, Evas * evas, Evas_Object *obj, void *event_info)
+static void _check2_clicked_cb2(void *data, Evas_Object *obj, const char *emission, const char *source)
 {
        debug_log("");
        struct viewdata *vd = (struct viewdata *)data;
@@ -1533,10 +1550,20 @@ static Evas_Object *_gl_ef_content_get_cb(void *data, Evas_Object *obj, const ch
                        if (p->str_email_address)
                                elm_entry_entry_set(p->entry_email_address, p->str_email_address);
 
-                       if (ugd->account_info != OTHERS && p->icon_get_cnt2 == 2) {
+                       if (ugd->account_info != OTHERS && p->icon_get_cnt2 == 2 &&
+                                       strcmp(ugd->start_view_type, EMAIL_BUNDLE_VAL_VIEW_ACCOUNT_ADD) != 0) {
+                               p->clicked_object = p->entry_email_address;
+                               evas_object_show(p->entry_email_address);
+                               elm_object_focus_set(p->entry_email_address, EINA_TRUE);
+                               elm_entry_cursor_begin_set(p->entry_email_address);
+                       }
+
+                       if (ugd->account_info != OTHERS && p->icon_get_cnt2 == 3 &&
+                                       strcmp(ugd->start_view_type, EMAIL_BUNDLE_VAL_VIEW_ACCOUNT_ADD) == 0) {
                                p->clicked_object = p->entry_email_address;
                                evas_object_show(p->entry_email_address);
                                elm_object_focus_set(p->entry_email_address, EINA_TRUE);
+                               elm_entry_cursor_begin_set(p->entry_email_address);
                        }
 
                        return p->ef_email_address;
index 226814e..9676269 100755 (executable)
@@ -351,9 +351,29 @@ static void _push_naviframe(struct viewdata *vd)
        elm_object_style_set(p->l_button2, "naviframe/back_btn/default");
        evas_object_show(p->l_button2);
 
+       Evas_Object *title_ic = elm_icon_add(vd->ugd->navi_bar);
+       evas_object_size_hint_aspect_set(title_ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
+       elm_icon_resizable_set(title_ic, EINA_TRUE, EINA_TRUE);
+
+       char title_str[50] = { 0, };
+       if (vd->ugd->account_info == GMAIL) {
+               snprintf(title_str, sizeof(title_str), "%s", dgettext("sys_string", "IDS_COM_BODY_GOOGLE"));
+               elm_icon_file_set(title_ic, ACCOUNT_ICON_GMAIL, NULL);
+       } else if (vd->ugd->account_info == HOTMAIL) {
+               snprintf(title_str, sizeof(title_str), "%s", _("IDS_EMAIL_BODY_WINDOWS_LIVE_HOTMAIL"));
+               elm_icon_file_set(title_ic, ACCOUNT_ICON_HOTMAIL, NULL);
+       } else if (vd->ugd->account_info == YAHOOMAIL) {
+               snprintf(title_str, sizeof(title_str), "%s", _("IDS_EMAIL_BODY_YAHOO_E_MAIL"));
+               elm_icon_file_set(title_ic, ACCOUNT_ICON_YAHOO, NULL);
+       } else if (vd->ugd->account_info == AOL) {
+               snprintf(title_str, sizeof(title_str), "%s", _("IDS_EMAIL_BODY_AOL"));
+               elm_icon_file_set(title_ic, ACCOUNT_ICON_AOL, NULL);
+       } else
+               snprintf(title_str, sizeof(title_str), "%s", dgettext("sys_string", "IDS_COM_BODY_OTHERS"));
+
        Elm_Object_Item *navi_it = NULL;
-       navi_it = elm_naviframe_item_push(vd->ugd->navi_bar,
-                       _("IDS_EMAIL_HEADER_ADD_ACCOUNT"), p->l_button2, NULL, p->layout, NULL);
+       navi_it = elm_naviframe_item_push(vd->ugd->navi_bar, title_str, p->l_button2, NULL, p->layout, NULL);
+       elm_object_item_part_content_set(navi_it, "icon", title_ic);
        elm_object_item_part_content_set(navi_it, "title_left_btn", p->r_button);
        elm_object_item_part_content_set(navi_it, "title_right_btn", p->l_button);
        evas_object_show(vd->ugd->navi_bar);
index 198df28..5f975e4 100755 (executable)
@@ -68,9 +68,9 @@ static void _gl_con_cb(void *data, Evas_Object *obj, void *event_info);
 
 static int sync_schedule[7] = { 0, 30, 60, 180, 360, 720, 1440 };
 
-#define SYNC_STATUS_FINISHED                       /* BIN 00000000 */
-#define SYNC_STATUS_SYNCING                        /* BIN 00000001 */
-#define SYNC_STATUS_HAVE_NEW_MAILS          2        /* BIN 00000010 */
+#define SYNC_STATUS_FINISHED                   0       /* BIN 00000000 */
+#define SYNC_STATUS_SYNCING                    1       /* BIN 00000001 */
+#define SYNC_STATUS_HAVE_NEW_MAILS     2       /* BIN 00000010 */
 
 struct priv_data {
        struct viewdata *vd;
@@ -122,6 +122,11 @@ void setting_schedule_sync_started(struct viewdata *vd, int account_id)
        EmailSettingUGD *ugd = vd->ugd;
        p = vd->priv;
 
+       if (p == NULL) {
+               debug_log("priv is NULL");
+               return;
+       }
+
        if (ugd->account_id != account_id) {
                debug_log("not interested");
                return;
@@ -143,6 +148,11 @@ void setting_schedule_sync_finished(struct viewdata *vd, int account_id)
        EmailSettingUGD *ugd = vd->ugd;
        p = vd->priv;
 
+       if (p == NULL) {
+               debug_log("priv is NULL");
+               return;
+       }
+
        if (ugd->account_id != account_id) {
                debug_log("not interested");
                return;
@@ -332,8 +342,25 @@ static void _push_naviframe(struct viewdata *vd)
        evas_object_smart_callback_add(p->l_button, "clicked", _back_cb, vd);
        elm_object_style_set(p->l_button, "naviframe/back_btn/default");
 
+       Evas_Object *title_ic = elm_icon_add(vd->ugd->navi_bar);
+       evas_object_size_hint_aspect_set(title_ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
+       elm_icon_resizable_set(title_ic, EINA_TRUE, EINA_TRUE);
+
+       account_user_data_t *user_data = (account_user_data_t *)account_data->user_data;
+
+       if (user_data->is_preset_account == GMAIL) {
+               elm_icon_file_set(title_ic, ACCOUNT_ICON_GMAIL, NULL);
+       } else if (user_data->is_preset_account == HOTMAIL) {
+               elm_icon_file_set(title_ic, ACCOUNT_ICON_HOTMAIL, NULL);
+       } else if (user_data->is_preset_account == YAHOOMAIL) {
+               elm_icon_file_set(title_ic, ACCOUNT_ICON_YAHOO, NULL);
+       } else if (user_data->is_preset_account == AOL) {
+               elm_icon_file_set(title_ic, ACCOUNT_ICON_AOL, NULL);
+       }
+
        Elm_Object_Item *navi_it = NULL;
        navi_it = elm_naviframe_item_push(vd->ugd->navi_bar, account_data->account_name, p->l_button, NULL, p->layout, NULL);
+       elm_object_item_part_content_set(navi_it, "icon", title_ic);
        elm_object_item_part_content_set(navi_it, "title_right_btn", p->r_button);
        elm_object_item_part_content_set(navi_it, "controlbar", p->cbar);
        evas_object_show(vd->ugd->navi_bar);
@@ -361,7 +388,7 @@ static void _create_list(struct viewdata *vd)
        p->genlist = elm_genlist_add(ugd->navi_bar);
        elm_object_style_set(p->genlist, "dialogue");
 
-       p->itc_account.item_style = "dialogue/2text.3icon";
+       p->itc_account.item_style = "dialogue/2text.1icon.6";
        p->itc_account.func.text_get = _gl_account_text_get_cb;
        p->itc_account.func.content_get = _gl_account_content_get_cb;
        p->itc_account.func.state_get = NULL;
@@ -902,9 +929,9 @@ static Evas_Object *_gl_account_content_get_cb(void *data, Evas_Object *obj, con
        struct viewdata *vd = g_vd;
        EmailSettingUGD *ugd = vd->ugd;
        struct priv_data *p = vd->priv;
-       Evas_Object *color_bar = NULL;
+       /*Evas_Object *color_bar = NULL;*/
 
-       if (!g_strcmp0(part, "elm.icon.1")) {
+       /*if (!g_strcmp0(part, "elm.icon.1")) {
                Evas_Object *icon = elm_icon_add(ugd->navi_bar);
                account_user_data_t *user_data = (account_user_data_t *)account_data->user_data;
 
@@ -932,9 +959,9 @@ static Evas_Object *_gl_account_content_get_cb(void *data, Evas_Object *obj, con
                evas_object_size_hint_aspect_set(icon, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
                p->account_icon = icon;
                return icon;
-       }
+       }*/
 
-       if (!g_strcmp0(part, "elm.icon.2")) {
+       if (!g_strcmp0(part, "elm.icon")) {
                if (p->syncing) {
                        Evas_Object *pb = elm_progressbar_add(ugd->navi_bar);
                        elm_object_style_set(pb, "list_process_small");
@@ -944,7 +971,7 @@ static Evas_Object *_gl_account_content_get_cb(void *data, Evas_Object *obj, con
                }
        }
 
-       if (!g_strcmp0(part, "elm.swallow.colorbar")) {
+       /*if (!g_strcmp0(part, "elm.swallow.colorbar")) {
                account_user_data_t *user_data = (account_user_data_t *)account_data->user_data;
                unsigned int val = user_data->index_color;
                int r = (val & 0xff000000) >> 24;
@@ -959,7 +986,7 @@ static Evas_Object *_gl_account_content_get_cb(void *data, Evas_Object *obj, con
                evas_object_color_set(color_bar, r, g, b, a);
 
                return color_bar;
-       }
+       }*/
 
        return NULL;
 }
index d5a408d..0f68fe2 100755 (executable)
@@ -122,6 +122,11 @@ void setting_setup_sync_started(struct viewdata *vd, int account_id)
        EmailSettingUGD *ugd = vd->ugd;
        p = vd->priv;
 
+       if (p == NULL) {
+               debug_log("priv is NULL");
+               return;
+       }
+
        if (ugd->account_id != account_id) {
                debug_log("not interested");
                return;
@@ -143,6 +148,11 @@ void setting_setup_sync_finished(struct viewdata *vd, int account_id)
        EmailSettingUGD *ugd = vd->ugd;
        p = vd->priv;
 
+       if (p == NULL) {
+               debug_log("priv is NULL");
+               return;
+       }
+
        if (ugd->account_id != account_id) {
                debug_log("not interested");
                return;
@@ -332,8 +342,25 @@ static void _push_naviframe(struct viewdata *vd)
        evas_object_smart_callback_add(p->l_button, "clicked", _back_cb, vd);
        elm_object_style_set(p->l_button, "naviframe/back_btn/default");
 
+       Evas_Object *title_ic = elm_icon_add(vd->ugd->navi_bar);
+       evas_object_size_hint_aspect_set(title_ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
+       elm_icon_resizable_set(title_ic, EINA_TRUE, EINA_TRUE);
+
+       account_user_data_t *user_data = (account_user_data_t *)account_data->user_data;
+
+       if (user_data->is_preset_account == GMAIL) {
+               elm_icon_file_set(title_ic, ACCOUNT_ICON_GMAIL, NULL);
+       } else if (user_data->is_preset_account == HOTMAIL) {
+               elm_icon_file_set(title_ic, ACCOUNT_ICON_HOTMAIL, NULL);
+       } else if (user_data->is_preset_account == YAHOOMAIL) {
+               elm_icon_file_set(title_ic, ACCOUNT_ICON_YAHOO, NULL);
+       } else if (user_data->is_preset_account == AOL) {
+               elm_icon_file_set(title_ic, ACCOUNT_ICON_AOL, NULL);
+       }
+
        Elm_Object_Item *navi_it = NULL;
        navi_it = elm_naviframe_item_push(vd->ugd->navi_bar, account_data->account_name, p->l_button, NULL, p->layout, NULL);
+       elm_object_item_part_content_set(navi_it, "icon", title_ic);
        elm_object_item_part_content_set(navi_it, "title_right_btn", p->r_button);
        elm_object_item_part_content_set(navi_it, "controlbar", p->cbar);
        evas_object_show(vd->ugd->navi_bar);
@@ -361,7 +388,7 @@ static void _create_list(struct viewdata *vd)
        p->genlist = elm_genlist_add(ugd->navi_bar);
        elm_object_style_set(p->genlist, "dialogue");
 
-       p->itc_account.item_style = "dialogue/2text.3icon";
+       p->itc_account.item_style = "dialogue/2text.1icon.6";
        p->itc_account.func.text_get = _gl_account_text_get_cb;
        p->itc_account.func.content_get = _gl_account_content_get_cb;
        p->itc_account.func.state_get = NULL;
@@ -923,9 +950,9 @@ static Evas_Object *_gl_account_content_get_cb(void *data, Evas_Object *obj, con
        struct viewdata *vd = g_vd;
        EmailSettingUGD *ugd = vd->ugd;
        struct priv_data *p = vd->priv;
-       Evas_Object *color_bar = NULL;
+       /*Evas_Object *color_bar = NULL;*/
 
-       if (!g_strcmp0(part, "elm.icon.1")) {
+       /*if (!g_strcmp0(part, "elm.icon.1")) {
                Evas_Object *icon = elm_icon_add(ugd->navi_bar);
                account_user_data_t *user_data = (account_user_data_t *)account_data->user_data;
 
@@ -953,9 +980,9 @@ static Evas_Object *_gl_account_content_get_cb(void *data, Evas_Object *obj, con
                evas_object_size_hint_aspect_set(icon, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
                p->account_icon = icon;
                return icon;
-       }
+       }*/
 
-       if (!g_strcmp0(part, "elm.icon.2")) {
+       if (!g_strcmp0(part, "elm.icon")) {
                if (p->syncing) {
                        Evas_Object *pb = elm_progressbar_add(ugd->navi_bar);
                        elm_object_style_set(pb, "list_process_small");
@@ -965,7 +992,7 @@ static Evas_Object *_gl_account_content_get_cb(void *data, Evas_Object *obj, con
                }
        }
 
-       if (!g_strcmp0(part, "elm.swallow.colorbar")) {
+       /*if (!g_strcmp0(part, "elm.swallow.colorbar")) {
                account_user_data_t *user_data = (account_user_data_t *)account_data->user_data;
                unsigned int val = user_data->index_color;
                int r = (val & 0xff000000) >> 24;
@@ -980,7 +1007,7 @@ static Evas_Object *_gl_account_content_get_cb(void *data, Evas_Object *obj, con
                evas_object_color_set(color_bar, r, g, b, a);
 
                return color_bar;
-       }
+       }*/
 
        return NULL;
 }
index fe2b56a..ec03455 100755 (executable)
          program { name: "play_button_press"; \
             action: PLAY_SAMPLE "button-pressed" 1.0; \
          }
-         
-         
+
+
 #define TEXTBLOCK_TAG \
       tag:  "br" "\n";\
       tag:  "ps" "ps";\
index dbc3337..c5feb19 100755 (executable)
@@ -1006,7 +1006,7 @@ collections {
                        }
                }
        }
-       
+
        group { name: "initial_access_hd_public";
 
                images {
@@ -1022,8 +1022,8 @@ collections {
                                scale: 1;
                                description {
                                        state: "default" 0.0;
-                                       min: 720 80;
-                                       max: 720 80;
+                                       min: 720 26;
+                                       max: 720 26;
                                        fixed: 0 1;
                                        rel1 { relative: 0 0; }
                                        rel2 { relative: 1 0; }
@@ -1039,8 +1039,8 @@ collections {
                                description {
                                        state: "default" 0.0;
                                        fixed: 1 1;
-                                       min: 720 80;
-                                       max: 720 80;
+                                       min: 720 248;
+                                       max: 720 248;
                                        rel1 { relative: 0 1.0; to_y: "top_padding"; }
                                        align: 0.5 0;
                                        color: 0 0 0 0;
@@ -1057,7 +1057,7 @@ collections {
                                        max: 80 80;
                                        rel1 { relative: 0 0; offset: 180 0; to: "bg_for_sp"; }
                                        rel2 { relative: 0 1; offset: 260 0; to: "bg_for_sp"; }
-                                       align: 0.5 0;
+                                       align: 0.5 0.5;
                                        image.normal: "M02_email_list_icon_gmail.png";
                                }
                        }
@@ -1072,7 +1072,7 @@ collections {
                                        max: 80 80;
                                        rel1 { relative: 0 0; offset: 320 0; to: "bg_for_sp"; }
                                        rel2 { relative: 0 1; offset: 400 0; to: "bg_for_sp"; }
-                                       align: 0.5 0;
+                                       align: 0.5 0.5;
                                        image.normal: "M02_email_list_icon_hotmail.png";
                                }
                        }
@@ -1087,7 +1087,7 @@ collections {
                                        max: 80 80;
                                        rel1 { relative: 0 0; offset: 460 0; to: "bg_for_sp"; }
                                        rel2 { relative: 0 1; offset: 540 0; to: "bg_for_sp"; }
-                                       align: 0.5 0;
+                                       align: 0.5 0.5;
                                        image.normal: "M02_email_list_icon_AOL.png";
                                }
                        }
@@ -1098,8 +1098,8 @@ collections {
                                scale: 1;
                                description {
                                        state: "default" 0.0;
-                                       min: 720 50;
-                                       max: 720 50;
+                                       min: 720 16;
+                                       max: 720 16;
                                        fixed: 1 1;
                                        align: 0.5 0;
                                        rel1 { relative: 0 1.0; to_y: "bg_for_sp"; }
@@ -1115,20 +1115,36 @@ collections {
                                description {
                                        state: "default" 0.0;
                                        fixed: 1 1;
-                                       min: 620 160;
-                                       max: 620 160;
+                                       min: 620 114;
+                                       max: 620 114;
                                        rel1 { relative: 0 1.0; to_y: "middle_padding2"; }
                                        align: 0.5 0;
                                }
                        }
 
                        part {
+                               name: "middle_padding3";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 720 16;
+                                       max: 720 16;
+                                       fixed: 1 1;
+                                       align: 0.5 0;
+                                       rel1 { relative: 0 1.0; to_y: "label"; }
+                                       rel2 { relative: 1 1.0; to_y: "label"; }
+                                       color: 0 0 0 0;
+                               }
+                       }
+
+                       part {
                                name: "list";
                                type: SWALLOW;
                                scale: 1;
                                description {
                                        state: "default" 0.0;
-                                       rel1 { relative: 0 1.0; to_y: "label"; }
+                                       rel1 { relative: 0 1.0; to_y: "middle_padding3"; }
                                }
                        }
                }
@@ -1150,8 +1166,8 @@ collections {
                                scale: 1;
                                description {
                                        state: "default" 0.0;
-                                       min: 720 80;
-                                       max: 720 80;
+                                       min: 720 26;
+                                       max: 720 26;
                                        fixed: 0 1;
                                        rel1 { relative: 0 0; }
                                        rel2 { relative: 1 0; }
@@ -1167,8 +1183,8 @@ collections {
                                description {
                                        state: "default" 0.0;
                                        fixed: 1 1;
-                                       min: 720 80;
-                                       max: 720 80;
+                                       min: 720 248;
+                                       max: 720 248;
                                        rel1 { relative: 0 1.0; to_y: "top_padding"; }
                                        align: 0.5 0;
                                        color: 0 0 0 0;
@@ -1185,7 +1201,7 @@ collections {
                                        max: 80 80;
                                        rel1 { relative: 0 0; offset: 110 0; to: "bg_for_sp"; }
                                        rel2 { relative: 0 1; offset: 190 0; to: "bg_for_sp"; }
-                                       align: 0.5 0;
+                                       align: 0.5 0.5;
                                        image.normal: "M02_email_list_icon_exchange.png";
                                }
                        }
@@ -1200,7 +1216,7 @@ collections {
                                        max: 80 80;
                                        rel1 { relative: 0 0; offset: 250 0; to: "bg_for_sp"; }
                                        rel2 { relative: 0 1; offset: 330 0; to: "bg_for_sp"; }
-                                       align: 0.5 0;
+                                       align: 0.5 0.5;
                                        image.normal: "M02_email_list_icon_gmail.png";
                                }
                        }
@@ -1215,7 +1231,7 @@ collections {
                                        max: 80 80;
                                        rel1 { relative: 0 0; offset: 390 0; to: "bg_for_sp"; }
                                        rel2 { relative: 0 1; offset: 470 0; to: "bg_for_sp"; }
-                                       align: 0.5 0;
+                                       align: 0.5 0.5;
                                        image.normal: "M02_email_list_icon_hotmail.png";
                                }
                        }
@@ -1230,7 +1246,7 @@ collections {
                                        max: 80 80;
                                        rel1 { relative: 0 0; offset: 530 0; to: "bg_for_sp"; }
                                        rel2 { relative: 0 1; offset: 610 0; to: "bg_for_sp"; }
-                                       align: 0.5 0;
+                                       align: 0.5 0.5;
                                        image.normal: "M02_email_list_icon_AOL.png";
                                }
                        }
@@ -1241,8 +1257,8 @@ collections {
                                scale: 1;
                                description {
                                        state: "default" 0.0;
-                                       min: 720 50;
-                                       max: 720 50;
+                                       min: 720 16;
+                                       max: 720 16;
                                        fixed: 1 1;
                                        align: 0.5 0;
                                        rel1 { relative: 0 1.0; to_y: "bg_for_sp"; }
@@ -1258,20 +1274,36 @@ collections {
                                description {
                                        state: "default" 0.0;
                                        fixed: 1 1;
-                                       min: 620 160;
-                                       max: 620 160;
+                                       min: 620 114;
+                                       max: 620 114;
                                        rel1 { relative: 0 1.0; to_y: "middle_padding2"; }
                                        align: 0.5 0;
                                }
                        }
 
                        part {
+                               name: "middle_padding3";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 720 16;
+                                       max: 720 16;
+                                       fixed: 1 1;
+                                       align: 0.5 0;
+                                       rel1 { relative: 0 1.0; to_y: "label"; }
+                                       rel2 { relative: 1 1.0; to_y: "label"; }
+                                       color: 0 0 0 0;
+                               }
+                       }
+
+                       part {
                                name: "list";
                                type: SWALLOW;
                                scale: 1;
                                description {
                                        state: "default" 0.0;
-                                       rel1 { relative: 0 1.0; to_y: "label"; }
+                                       rel1 { relative: 0 1.0; to_y: "middle_padding3"; }
                                }
                        }
                }
@@ -1285,49 +1317,22 @@ collections {
                                repeat_events: 1;
                                scale: 1;
                                description { state: "default" 0.0;
-                                       min: 720 168;
-                                       max: 720 168;
+                                       min: 720 200;
+                                       max: 720 200;
                                        color: 0 0 0 0;
                                        align: 0.0 0.5;
                                }
                        }
 
-                       part { name: "top_padding";
-                               type: RECT;
-                               scale: 1;
-                               description {
-                                       state: "default" 0.0;
-                                       min: 0 16;
-                                       fixed: 0 1;
-                                       visible: 0;
-                                       rel1 { to: "base"; relative: 0 0; }
-                                       rel2 { to: "base"; relative: 1 0; offset: 0 16; }
-                                       align: 0.0 0.0;
-                               }
-                       }
-
-                       part { name: "bottom_padding";
-                               type: RECT;
-                               scale: 1;
-                               description { state: "default" 0.0;
-                                       min: 0 16;
-                                       fixed: 0 1;
-                                       visible: 0;
-                                       rel1 { to: "base"; relative: 0 1; offset: 0 -16; }
-                                       rel2 { to: "base"; relative: 1 1; }
-                                       align: 0.0 0.0;
-                               }
-                       }
-
                        part { name: "left_padding";
                                type: RECT;
                                scale: 1;
                                description { state: "default" 0.0;
-                                       min: 20 0;
+                                       min: 16 0;
                                        fixed: 1 0;
                                        visible: 0;
                                        rel1 { to: "base"; relative: 0 0; }
-                                       rel2 { to: "base"; relative: 0 1; offset: 20 0; }
+                                       rel2 { to: "base"; relative: 0 1; }
                                        align: 0.0 0.0;
                                }
                        }
@@ -1336,12 +1341,12 @@ collections {
                                type: RECT;
                                scale: 1;
                                description { state: "default" 0.0;
-                                       min: 20 0;
+                                       min: 16 0;
                                        fixed: 1 0;
                                        visible: 0;
-                                       rel1 { to: "base"; relative: 1 0; offset: -20 0; }
+                                       rel1 { to: "base"; relative: 1 0; }
                                        rel2 { to: "base"; relative: 1 1; }
-                                       align: 0.0 0.0;
+                                       align: 1.0 0.0;
                                }
                        }
 
@@ -1349,20 +1354,20 @@ collections {
                                type: RECT;
                                scale: 1;
                                description { state: "default" 0.0;
-                                       min: 0 68;
+                                       min: 0 100;
                                        fixed: 1 0;
                                        visible: 0;
                                        align: 0.0 0.5;
                                        rel1 {
-                                               relative: 1.0 1.0;
+                                               relative: 1.0 0.0;
                                                to_x: "left_padding";
-                                               to_y: "top_padding";
+                                               to_y: "base";
                                        }
                                        rel2 {
-                                               relative: 0.0 1.0;
-                                               offset: 0 68;
+                                               relative: 0.0 0.0;
+                                               offset: 0 100;
                                                to_x: "right_padding";
-                                               to_y: "top_padding";
+                                               to_y: "base";
                                        }
                                }
                        }
@@ -1371,7 +1376,7 @@ collections {
                                type: RECT;
                                scale: 1;
                                description { state: "default" 0.0;
-                                       min: 0 68;
+                                       min: 0 100;
                                        fixed: 1 0;
                                        visible: 0;
                                        align: 0.0 0.5;
@@ -1381,9 +1386,9 @@ collections {
                                                to_y: "subbox.1";
                                        }
                                        rel2 {
-                                               relative: 0.0 0.0;
+                                               relative: 0.0 1.0;
                                                to_x: "right_padding";
-                                               to_y: "bottom_padding";
+                                               to_y: "base";
                                        }
                                }
                        }
@@ -1413,21 +1418,22 @@ collections {
 
                        part { name: "text.1";
                                type: SWALLOW;
+                               ignore_flags: ON_HOLD;
                                mouse_events: 1;
                                scale: 1;
                                description { state: "default" 0.0;
-                                       min: 0 30;
+                                       min: 0 32;
                                        fixed: 0 1;
                                        align: 0 0.5;
                                        rel1 {
                                                relative: 1.0 0.0;
-                                               offset: 16 19;
+                                               offset: 16 34;
                                                to_x: "checkbox.1";
                                                to_y: "subbox.1";
                                        }
                                        rel2 {
                                                relative: 0.0 1.0;
-                                               offset: 0 -19;
+                                               offset: 0 -34;
                                                to_x: "right_padding";
                                                to_y: "subbox.1";
                                        }
@@ -1459,27 +1465,44 @@ collections {
 
                        part { name: "text.2";
                                type: SWALLOW;
+                               ignore_flags: ON_HOLD;
                                mouse_events: 1;
                                scale: 1;
                                description { state: "default" 0.0;
-                                       min: 0 30;
+                                       min: 0 32;
                                        fixed: 0 1;
                                        align: 0 0.5;
                                        rel1 {
                                                relative: 1.0 0.0;
-                                               offset: 16 19;
+                                               offset: 16 34;
                                                to_x: "checkbox.2";
                                                to_y: "subbox.2";
                                        }
                                        rel2 {
                                                relative: 0.0 1.0;
-                                               offset: 0 -19;
+                                               offset: 0 -34;
                                                to_x: "right_padding";
                                                to_y: "subbox.2";
                                        }
                                }
                        }
                }
+
+               programs {
+                       program {
+                               name: "text1_clicked";
+                               signal: "mouse,up,1";
+                               source: "text.1";
+                               action: SIGNAL_EMIT "elm,action,text1_clicked" "elm";
+                       }
+
+                       program {
+                               name: "text2_clicked";
+                               signal: "mouse,up,1";
+                               source: "text.2";
+                               action: SIGNAL_EMIT "elm,action,text2_clicked" "elm";
+                       }
+               }
        }
 
        group { name: "account_add_manual_button";
@@ -1489,8 +1512,8 @@ collections {
                                repeat_events: 1;
                                scale: 1;
                                description { state: "default" 0.0;
-                                       min: 720 161;
-                                       max: 720 161;
+                                       min: 720 128;
+                                       max: 720 128;
                                        color: 0 0 0 0;
                                        align: 0.0 0.5;
                                }
@@ -1501,11 +1524,11 @@ collections {
                                scale: 1;
                                description {
                                        state: "default" 0.0;
-                                       min: 0 5;
+                                       min: 0 40;
                                        fixed: 0 1;
                                        visible: 0;
                                        rel1 { to: "base"; relative: 0 0; }
-                                       rel2 { to: "base"; relative: 1 0; offset: 0 5; }
+                                       rel2 { to: "base"; relative: 1 0; }
                                        align: 0.0 0.0;
                                }
                        }
@@ -1517,9 +1540,9 @@ collections {
                                        min: 0 16;
                                        fixed: 0 1;
                                        visible: 0;
-                                       rel1 { to: "base"; relative: 0 1; offset: 0 -16; }
+                                       rel1 { to: "base"; relative: 0 1; }
                                        rel2 { to: "base"; relative: 1 1; }
-                                       align: 0.0 0.0;
+                                       align: 0.0 1.0;
                                }
                        }
 
@@ -1527,11 +1550,11 @@ collections {
                                type: RECT;
                                scale: 1;
                                description { state: "default" 0.0;
-                                       min: 78 0;
+                                       min: 117 0;
                                        fixed: 1 0;
                                        visible: 0;
                                        rel1 { to: "base"; relative: 0 0; }
-                                       rel2 { to: "base"; relative: 0 1; offset: 78 0; }
+                                       rel2 { to: "base"; relative: 0 1; }
                                        align: 0.0 0.0;
                                }
                        }
@@ -1540,35 +1563,12 @@ collections {
                                type: RECT;
                                scale: 1;
                                description { state: "default" 0.0;
-                                       min: 78 0;
+                                       min: 117 0;
                                        fixed: 1 0;
                                        visible: 0;
-                                       rel1 { to: "base"; relative: 1 0; offset: -78 0; }
+                                       rel1 { to: "base"; relative: 1 0; }
                                        rel2 { to: "base"; relative: 1 1; }
-                                       align: 0.0 0.0;
-                               }
-                       }
-
-                       part { name: "text";
-                               type: SWALLOW;
-                               mouse_events: 0;
-                               scale: 1;
-                               description { state: "default" 0.0;
-                                       min: 0 30;
-                                       fixed: 0 1;
-                                       align: 0 0.5;
-                                       rel1 {
-                                               relative: 1.0 1.0;
-                                               offset: 0 19;
-                                               to_x: "left_padding";
-                                               to_y: "top_padding";
-                                       }
-                                       rel2 {
-                                               relative: 0.0 1.0;
-                                               offset: 0 49;
-                                               to_x: "right_padding";
-                                               to_y: "top_padding";
-                                       }
+                                       align: 1.0 0.0;
                                }
                        }
 
@@ -1582,9 +1582,8 @@ collections {
                                        align: 0 0;
                                        rel1 {
                                                relative: 1.0 1.0;
-                                               offset: 0 19;
                                                to_x: "left_padding";
-                                               to_y: "text";
+                                               to_y: "top_padding";
                                        }
                                        rel2 {
                                                relative: 0.0 0.0;
@@ -1598,14 +1597,27 @@ collections {
 
        group { name: "account_add";
                parts {
+                       part { name: "bg";
+                               type: RECT;
+                               repeat_events: 1;
+                               scale: 1;
+                               description { state: "default" 0.0;
+                                       min: 720 623;
+                                       max: 720 623;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                                       color: 0 0 0 0;
+                                       align: 0.0 0.0;
+                               }
+                       }
 
                        part { name: "list";
                                type: SWALLOW;
                                scale: 1;
                                description { state: "default" 0.0;
                                        align: 0 0;
-                                       rel1 { relative: 0 0; }
-                                       rel2 { relative: 1 0; offset: 0 295; }
+                                       rel1 { relative: 0 0; to: "bg"; }
+                                       rel2 { relative: 1 0; offset: 0 295; to: "bg"; }
                                }
                        }
 
@@ -1613,11 +1625,11 @@ collections {
                                type: SWALLOW;
                                scale: 1;
                                description { state: "default" 0.0;
-                                       min: 720 168;
-                                       max: 720 168;
+                                       min: 720 200;
+                                       max: 720 200;
                                        align: 0 0;
                                        rel1 { relative: 0 1.0; to_y: "list"; }
-                                       rel2 { relative: 1 1.0; offset: 0 168; to_y: "list"; }
+                                       rel2 { relative: 1 1.0; offset: 0 200; to_y: "list"; }
                                }
                        }
 
@@ -1625,11 +1637,11 @@ collections {
                                type: SWALLOW;
                                scale: 1;
                                description { state: "default" 0.0;
-                                       min: 720 161;
-                                       max: 720 161;
+                                       min: 720 128;
+                                       max: 720 128;
                                        align: 0 0;
                                        rel1 { relative: 0 1.0; to_y: "checkbox_set"; }
-                                       rel2 { relative: 1 1.0; offset: 0 161; to_y: "checkbox_set"; }
+                                       rel2 { relative: 1 1.0; offset: 0 128; to_y: "checkbox_set"; }
                                }
                        }
                }
@@ -1642,15 +1654,15 @@ collections {
                                repeat_events: 1;
                                scale: 1;
                                description { state: "default" 0.0;
-                                       min: 720 750;
-                                       max: 720 750;
+                                       min: 720 753;
+                                       max: 720 753;
                                        rel1 { relative: 0.0 0.0;}
                                        rel2 { relative: 1.0 1.0;}
                                        color: 0 0 0 0;
                                        align: 0.0 0.0;
                                }
                        }
-                       
+
                        part { name: "list";
                                type: SWALLOW;
                                scale: 1;
@@ -1665,11 +1677,11 @@ collections {
                                type: SWALLOW;
                                scale: 1;
                                description { state: "default" 0.0;
-                                       min: 720 168;
-                                       max: 720 168;
+                                       min: 720 200;
+                                       max: 720 200;
                                        align: 0 0;
                                        rel1 { relative: 0 1.0; to_y: "list"; }
-                                       rel2 { relative: 1 1.0; offset: 0 168; to_y: "list"; }
+                                       rel2 { relative: 1 1.0; offset: 0 200; to_y: "list"; }
                                }
                        }
 
@@ -1677,16 +1689,16 @@ collections {
                                type: SWALLOW;
                                scale: 1;
                                description { state: "default" 0.0;
-                                       min: 720 161;
-                                       max: 720 161;
+                                       min: 720 128;
+                                       max: 720 128;
                                        align: 0 0;
                                        rel1 { relative: 0 1.0; to_y: "checkbox_set"; }
-                                       rel2 { relative: 1 1.0; offset: 0 161; to_y: "checkbox_set"; }
+                                       rel2 { relative: 1 1.0; offset: 0 128; to_y: "checkbox_set"; }
                                }
                        }
                }
        }
-       
+
        group { name: "elm/genlist/item/dialogue/email.1text.1icon.2/default";
                alias: "elm/genlist/item_odd/dialogue/email.1text.1icon.2/default";
                alias: "elm/genlist/item_compress/dialogue/email.1text.1icon.2/default";
@@ -1724,7 +1736,7 @@ collections {
                                }
                                GENLIST_DESCRIPTION_FLIP_ENABLED
                        }
-                       
+
                        part { name: "elm.padding.icon.right";
                                clip_to: "disclip";
                                type: RECT;
@@ -1741,7 +1753,7 @@ collections {
                                        visible: 0;
                                }
                        }
-                               
+
                        part { name: "elm.text";
                                clip_to: "disclip";
                                type: TEXT;
@@ -1809,7 +1821,7 @@ collections {
                        //GENLIST_PROGRAM_PLAY_BUTTON_PRESS
                }
        }
-       
+
        group { name: "elm/bg/base/email_default";
                parts {
                        part { name: "base";
@@ -1819,17 +1831,17 @@ collections {
                                        color: 210 210 210 255;
                                }
                        }
-                       
+
                        part { name: "elm.swallow.rectangle";
                                type: SWALLOW;
                                description { state: "default" 0.0; }
                        }
-                       
+
                        part { name: "elm.swallow.background";
                                type: SWALLOW;
                                description { state: "default" 0.0; }
                        }
-                       
+
                        part { name: "elm.swallow.content";
                                type: SWALLOW;
                                description { state: "default" 0.0; }
diff --git a/viewer/CMakeLists.txt b/viewer/CMakeLists.txt
new file mode 100755 (executable)
index 0000000..021818c
--- /dev/null
@@ -0,0 +1,63 @@
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+PROJECT(ug-email-viewer-efl C)
+
+SET(SRCS
+       ./src/email-viewer.c
+       ./src/email-viewer-webview.c
+       ./src/email-viewer-logic.c
+       ./src/email-viewer-utils.c)
+SET(CMAKE_SKIP_BUILD_RPATH TRUE)
+
+IF("${CMAKE_BUILD_TYPE}" STREQUAL "")
+       SET(CMAKE_BUILD_TYPE "Release")
+ENDIF("${CMAKE_BUILD_TYPE}" STREQUAL "")
+MESSAGE("Build type: ${CMAKE_BUILD_TYPE}")
+
+SET(CMAKE_MAILVIEWER_SOURCE_DIR "${CMAKE_SOURCE_DIR}/viewer")
+SET(CMAKE_MAILVIEWER_BINARY_DIR "${CMAKE_BINARY_DIR}/viewer")
+INCLUDE_DIRECTORIES(${CMAKE_MAILVIEWER_SOURCE_DIR}/include)
+INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/common/include)
+
+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
+               email-service edbus capi-appfw-application vconf ewebkit2 contacts-service sysman bundle dlog efreet-mime mm-fileinfo mmutil-jpeg libmedia-utils calendar ethumb)
+
+FOREACH(flag ${pkgs-viewer_CFLAGS})
+       SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
+ENDFOREACH(flag)
+#SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -finstrument-functions")
+
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
+SET(CMAKE_C_FLAGS_DEBUG "-O0 -g")
+SET(CMAKE_LDFLAGS "-Wl,-z,nodelete")
+
+FIND_PROGRAM(UNAME NAMES uname)
+EXEC_PROGRAM("${UNAME}" ARGS "-m" OUTPUT_VARIABLE "ARCH")
+IF("${ARCH}" STREQUAL "arm")
+       ADD_DEFINITIONS("-DTARGET")
+       MESSAGE("add -DTARGET")
+       SET(CMAKE_C_FLAGS_RELEASE "-mabi=aapcs-linux -msoft-float -O2")
+ENDIF("${ARCH}" STREQUAL "arm")
+
+ADD_DEFINITIONS("-DPREFIX=\"${CMAKE_INSTALL_PREFIX}\"")
+ADD_DEFINITIONS("-DDEBUG")
+ADD_DEFINITIONS("-DFACTORYFS=\"$ENV{FACTORYFS}\"")
+ADD_DEFINITIONS("-DDATAFS=\"$ENV{DATAFS}\"")
+ADD_DEFINITIONS("-D_POPUP_WITH_LIST")
+ADD_DEFINITIONS("-D_NEW_CT_SVC_API")
+
+ADD_LIBRARY(${PROJECT_NAME} SHARED ${SRCS})
+TARGET_LINK_LIBRARIES(${PROJECT_NAME} email-common ${CMAKE_LDFLAGS} ${pkgs-viewer_LDFLAGS})
+
+ADD_CUSTOM_TARGET(email-viewer-theme.edj
+               COMMAND edje_cc -id ${CMAKE_SOURCE_DIR}/images
+               ${CMAKE_MAILVIEWER_SOURCE_DIR}/theme/email-viewer-theme.edc ${CMAKE_MAILVIEWER_BINARY_DIR}/email-viewer-theme.edj
+               DEPENDS ${CMAKE_MAILVIEWER_SOURCE_DIR}/theme/email-viewer-theme.edc
+)
+ADD_DEPENDENCIES(${PROJECT_NAME} email-viewer-theme.edj)
+
+INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${UGDIR})
+INSTALL(FILES ${CMAKE_MAILVIEWER_BINARY_DIR}/email-viewer-theme.edj DESTINATION ${EDJDIR})
+INSTALL(FILES ${CMAKE_MAILVIEWER_SOURCE_DIR}/theme/_email_default.html DESTINATION ${DATADIR})
+
diff --git a/viewer/include/email-viewer-js.h b/viewer/include/email-viewer-js.h
new file mode 100755 (executable)
index 0000000..93a7c54
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Copyright 2012  Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *    http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef EMAIL_VIEWER_JS_H_
+#define EMAIL_VIEWER_JS_H_
+
+#include "email-viewer.h"
+
+#define VIEWER_JS_FILE_PATH    JSDIR"/email-viewer.js"
+
+#define COMPOSER_JS_REMOVE_IM                          "IM_JS.parentNode.removeChild(IM_JS);"
+
+#define VIEWER_JS_GET_HTML_BODY_CONTENT \
+       "function getHtmlContent() { " \
+               "console.log(\"Here\");" \
+               "var elements = document.getElementsByTagName(\"body\");" \
+               "console.log(\"elements[0].outerHTML : \" + elements[0].outerHTML);" \
+               "return elements[0].outerHTML;" \
+       "};" \
+       "getHtmlContent();"
+
+#define VIEWER_JS_INSERT_IM(s) \
+       "var IM_JS = document.createElement(\"script\");" \
+       "IM_JS.setAttribute(\"type\", \"text/javascript\");" \
+       "IM_JS.setAttribute(\"src\", \""s"\");" \
+       "console.log(IM_JS);" \
+       "if (typeof IM_JS != \"undefined\")" \
+               "document.getElementsByTagName(\"head\")[0].appendChild(IM_JS);"
+
+
+#endif /* EMAIL_VIEWER_JS_H_ */
diff --git a/viewer/include/email-viewer-logic.h b/viewer/include/email-viewer-logic.h
new file mode 100755 (executable)
index 0000000..0638294
--- /dev/null
@@ -0,0 +1,118 @@
+/*
+ * Copyright 2012  Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *    http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __DEF_email_viewer_logic_H__
+#define __DEF_email_viewer_logic_H__
+
+#include <Elementary.h>
+#include <glib.h>
+#include <sys/time.h>
+#include "email-api.h"
+#include "email-types.h"
+
+#define ATTACH_MAX                     65536
+#define CONCAT_FORMAT(x, y, z) ((x<<16) | (y<<8) | z)
+
+typedef struct _EmailViewerPrivate EmailViewerPrivate;
+struct _EmailViewerPrivate {
+       int mailbox_id;
+       int mail_id;
+       int account_id;
+       unsigned int download_id;
+       gboolean download_mail;
+       gboolean multi_body;
+       gboolean b_att_open;
+       gboolean b_att_save;
+       gboolean b_all_att_save;
+       char *file_id;
+       char *att_file_id;
+       int file_size;
+       int attachment_id;
+       unsigned int view_creation_id;
+       unsigned int download_progress_id;
+       unsigned int download_fail_id;
+       unsigned int email_handle;
+       unsigned int download_all_email_handle[ATTACH_MAX];
+       unsigned int download_all_cnt;
+       unsigned int download_all_fail_cnt;
+       email_mail_data_t *mail_info;
+       email_attachment_data_t *attachment_info;
+       email_address_info_list_t *addrs_info_list;
+       int attachment_count;
+};
+
+typedef struct _EmailViewerProp EmailViewerProp;
+struct _EmailViewerProp {
+       int composer_type;
+       int account_id;
+       int mail_id;
+       int status;
+       int status2;
+       int priority;
+       int att_len;
+       int real_att_len;
+
+       char *src_box;
+       char *sender;
+       char *sender_display_name;
+       char *recipient_to;
+       char *recipient_cc;
+       char *recipient_bcc;
+       char *from_contact_name;
+       char *to_contact_name;
+       char *cc_contact_name;
+       char *bcc_contact_name;
+
+       unsigned int date;
+       unsigned int time;
+       time_t mktime;
+
+       char *subject;
+       char *charset;
+       char *body;
+       char *body_uri;
+       GList *attachments;
+
+       gint64 total_att_size;
+
+       gboolean has_html;
+       gboolean has_attachment;
+       gboolean seen;
+       gboolean lock;
+       gboolean favorite;
+       gboolean request_report;
+       int body_download;
+};
+
+typedef struct _EmailAttachmentType EmailAttachmentType;
+struct _EmailAttachmentType {
+       int attach_id;
+       int index;
+       char *name;
+       char *path;
+       gint64 size;
+       gboolean download_yn;
+       gboolean drm;
+       gboolean inline_content;
+};
+
+gboolean viewer_get_internal_mail_info(EmailViewerProp *prop, EmailViewerPrivate *email_data);
+void viewer_make_internal_mail(EmailViewerProp *prop, EmailViewerPrivate *email_data);
+void viewer_set_mail_seen(EmailViewerProp *prop, email_mail_data_t * mail_info);
+
+#endif /* __DEF_email_viewer_logic_H__ */
+
+/* EOF */
diff --git a/viewer/include/email-viewer-utils.h b/viewer/include/email-viewer-utils.h
new file mode 100755 (executable)
index 0000000..88aeeaa
--- /dev/null
@@ -0,0 +1,69 @@
+/*
+ * Copyright 2012  Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *    http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __DEF_email_viewer_utils_H__
+#define __DEF_email_viewer_utils_H__
+
+#include <glib.h>
+#include <glib/gprintf.h>
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+
+#include <Elementary.h>
+#include "email-viewer.h"
+
+#undef STR_VALID
+#define STR_VALID(str) \
+       ((str != NULL && strlen(str) > 0) ? TRUE : FALSE)
+
+#undef STR_INVALID
+#define STR_INVALID(str) \
+       ((str == NULL || strlen(str) == 0) ? TRUE : FALSE)
+
+#undef STR_LEN
+#define STR_LEN(str) \
+       ({ char *s = str; (s) ? strlen(s) : 0; })
+
+/* GList iterator */
+#define LIST_ITER_START(i, list) \
+       for (i = 0; i < g_list_length(list); ++i)
+
+#define LIST_ITER_START_REVERSE(i, list) \
+       for (i = (g_list_length(list) - 1); i >= 0; --i)
+
+#define LIST_ITER_GET(i, list) \
+       g_list_nth(list, i)
+
+#define LIST_ITER_GET_DATA(i, list) \
+       g_list_nth_data(list, i)
+
+typedef void (*popup_cb) (void *data, Evas_Object *obj, void *event_info);
+
+Evas_Object *viewer_make_thumbnail(char *path, Evas_Object *parent);
+void _create_notify(EmailViewerUGD *ug_data, char *header, char *content,
+                                               int btn_num, char *btn1_lb, popup_cb resp_cb1,
+                                               char *btn2_lb, popup_cb resp_cb2, popup_cb resp_block_cb);
+
+int _find_folder_id_using_folder_type(EmailViewerUGD *ug_data, email_mailbox_type_e mailbox_type);
+
+void _move_email(EmailViewerUGD *ug_data, int dest_folder_id, gboolean is_delete);
+void _delete_email(EmailViewerUGD *ug_data);
+void _notify_mailbox_size(EmailViewerUGD *ug_data, char *size);
+
+#endif /* __DEF_email_viewer_utils_H__ */
+
+/* EOF */
diff --git a/viewer/include/email-viewer-webview.h b/viewer/include/email-viewer-webview.h
new file mode 100755 (executable)
index 0000000..f1a922c
--- /dev/null
@@ -0,0 +1,33 @@
+/*
+ * Copyright 2012  Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *    http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __DEF_email_viewer_webview_H__
+#define __DEF_email_viewer_webview_H__
+
+#include "email-viewer.h"
+
+#define EMAIL_TMP_FILE_PATH DATADIR"/_email.tmp"
+
+Evas_Object *viewer_get_webview(EmailViewerUGD *ug_data, gboolean has_html);
+void viewer_set_webview_content(EmailViewerUGD *ug_data, int reload);
+char *viewer_set_html_content_file(EmailViewerWebview *wvd);
+void viewer_coords_ewk_to_evas(Evas_Object *view, int ewkX, int ewkY, int *evasX, int *evasY);
+void viewer_coords_evas_to_ewk(Evas_Object *view, int evasX, int evasY, int *ewkX, int *ewkY);
+Eina_Bool viewer_send_message(void *data);
+
+#endif /* __DEF_email_viewer_webview_H__ */
+
+/* EOF */
diff --git a/viewer/include/email-viewer.h b/viewer/include/email-viewer.h
new file mode 100755 (executable)
index 0000000..84ed1b9
--- /dev/null
@@ -0,0 +1,342 @@
+/*
+ * Copyright 2012  Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *    http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _DEF_email_viewer_H_
+#define _DEF_email_viewer_H_
+
+#include <Elementary.h>
+#include <libintl.h>
+#include <appcore-efl.h>
+#undef _
+#include <ui-gadget-module.h>
+#include <Evas.h>
+#include <Ecore_X.h>
+#include <Edje.h>
+#include <Eina.h>
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <time.h>
+#include <E_DBus.h>
+#include <sysman.h>
+#include <aul.h>
+#include <db-util.h>
+#include <vconf.h>
+#include <vconf-keys.h>
+#include <glib.h>
+#include <glib-object.h>
+#include <EWebKit2.h>
+
+#include "email-viewer-logic.h"
+#include <contacts-svc.h>
+#include "email-utils.h"
+#include "email-locale.h"
+
+#define VIEWER_PACKAGE "email-viewer"
+#define EV_THEME_PATH EDJDIR"/email-viewer-theme.edj"
+#define PATH_VTCALL "/usr/bin/vtmain"
+
+#define _EDJ(o) elm_layout_edje_get(o)
+
+#define DEFAULT_CHARSET "UTF-8"
+
+#define MAILBOX_STR_MAX                128
+#define MAX_STR_LEN                    1024
+#define MAX_LABEL_LEN          512
+
+#define CONTACTUI_REQ_ADD_PHONE_NUMBER 19
+#define CONTACTUI_REQ_ADD_EMAIL 20
+#define CONTACTUI_REQ_ADD_URL 21
+#define CONTACTUI_REQ_SELECT_UPDATE_ITEM 11
+#define CONTACTUI_UPDATE_PHONE_NUMBER 0
+#define CONTACTUI_UPDATE_EMAIL 1
+#define CONTACTUI_UPDATE_HOMEPAGE 2
+#define CONTACT_PHONE_CONTACT 0
+#define CONTACTUI_REQ_CONTACT_DETAIL_INFO_VIEW 43
+
+#define EMAIL_VIEW_MAX_TO_COUNT 50
+#define EMAIL_VIEW_MAX_CC_COUNT 50
+#define EMAIL_VIEW_MAX_BCC_COUNT 50
+
+#define ICON_REPLY IMGDIR"/M02_controlbar_icon_reply.png"
+#define ICON_REPLY_ALL IMGDIR"/M02_controlbar_icon_reply.png"
+#define ICON_FORWARD IMGDIR"/M02_controlbar_icon_forward.png"
+#define ICON_MOVE IMGDIR"/M02_controlbar_icon_move.png"
+#define ICON_DELETE IMGDIR"/M02_controlbar_icon_delete.png"
+#define ICON_RESEND IMGDIR"/M02_controlbar_icon_resend.png"
+#define ICON_ADD_TO_CALENDAR IMGDIR"/M02_controlbar_icon_add_calendar.png"
+#define ICON_CONTROLBAR_MORE IMGDIR"/M02_controlbar_icon_more.png"
+
+#define EMAIL_DEFAULT_HTML "file://"DATADIR"/_email_default.html"
+
+#define EMAIL_VIEWER_NOC_WIDTH 710.0
+#define EMAIL_VIEWER_NOC_HIGHT 949.0
+
+typedef enum {
+       EMAIL_POPUP_BODY_DN_OK = 10,
+       EMAIL_POPUP_EMAIL_DELETE_OK,
+       EMAIL_POPUP_EMAIL_MOVETO_SPAM_OK,
+       EMAIL_POPUP_EMAIL_MOVETO_INBOX_OK,
+       EMAIL_POPUP_BODY_DN_CANCEL,
+       EMAIL_POPUP_ATT_DN_CANCEL,
+       EMAIL_POPUP_ATT_ALL_DN_CANCEL,
+       EMAIL_POPUP_HTML_LOAD_CANCEL,
+       EMAIL_POPUP_MAX
+} EV_POPUP_RESPONSE_ID;
+
+typedef enum {
+       BODY_TYPE_TEXT = 0,
+       BODY_TYPE_HTML = 1,
+       BODY_TYPE_INVALID
+} MESSAGE_BODY_TYPE;
+
+typedef enum {
+       EMAIL_VIEWER_PROGRESSBAR_ATT = 0,
+       EMAIL_VIEWER_PROGRESSBAR_ATT_ALL,
+       EMAIL_VIEWER_PROGRESSBAR_BODY,
+       EMAIL_VIEWER_PROGRESSBAR_HTML,
+       EMAIL_VIEWER_PROGRESSBAR_MAX
+} EMAIL_VIEWER_PROGRESSBAR_TYPE;
+
+typedef struct list_data list_data;
+struct list_data {
+       gchar *mailbox_ug;
+
+       gchar *from;
+       gchar *title;
+       gchar *timeordate;
+       gchar *group_title;
+       gboolean is_attachment;
+       gboolean is_seen;
+       gboolean is_sending_now;
+       gboolean is_body_download;
+       gint mail_id;
+       gint account_id;
+       gint chksel;
+       gint idx;
+       Elm_Object_Item *item;
+};
+
+typedef struct _EMAIL_CONTACT_LIST_INFO_S {
+       int index;
+#ifndef _NEW_CT_SVC_API
+       char *first_name;
+       char *last_name;
+#else
+       char *display;
+#endif
+       char *email_address;
+       char display_name[40];
+} EMAIL_CONTACT_LIST_INFO_S;
+
+typedef struct _EmailViewerWebview EmailViewerWebview;
+struct _EmailViewerWebview {
+       Evas_Coord minw, minh;
+       Evas_Coord w, h;
+       int content_w, content_h;
+       float zoom_rate;
+
+       MESSAGE_BODY_TYPE body_type;
+       MESSAGE_BODY_TYPE body_type_prev;
+
+       char *html_content;
+       char *text_content;
+       char *uri;
+       char *charset;
+};
+
+typedef struct ug_data EmailViewerUGD;
+struct ug_data {
+       Evas_Object *base;
+       ui_gadget_h ug;
+
+       /* base */
+       Evas *evas;
+       Evas_Object *win_main;
+       Evas_Object *layout_main;
+       Evas_Object *sub_ly;
+       Evas_Object *bg;
+       Elm_Theme *theme;
+       int main_w;
+       int main_h;
+
+       /* arguments */
+       int account_id;
+       int account_type;
+       int mail_id;
+       char *mailbox_name;
+       int mailbox_id;
+       char account_email_address[MAX_STR_LEN];
+
+       /* for flick */
+       int prev_mail_id;
+       int next_mail_id;
+       int list_prev_idx;
+       int list_next_idx;
+       int mail_list_cur_idx;
+       GList *mail_list;
+
+       /* flags */
+       int got_att;
+       int b_internal;
+       int subject_onoff_flag;
+       int attach_onoff_flag;
+       int reset_view;
+       int b_noc;
+       int b_direct_destroy;
+       int b_partial_body;
+       int m_is_multi_touch;
+       int scroller_locked;
+       int b_contact_ug_launched;
+       int display_download_result;
+       int option_header_opened;
+       Eina_Bool b_load_finished;
+       Eina_Bool b_show_remote_images;
+       Eina_Bool is_webview_scrolling;
+       Eina_Bool is_main_scroller_scrolling;
+
+       /* for ug create */
+       int create_contact_arg;
+       int update_contact_type;
+
+       /* Scalable UI */
+       float scale_factor;
+       float webview_width;
+       float webview_height;
+       float webview_width_landscape;
+       float webview_height_landscape;
+       int webview_margin;
+       int webview_margin_landscape;
+
+       /* for cut link */
+       Ecore_Timer *cutlink_timer;
+       Eina_Bool last_click_have_link;
+       Eina_Bool last_click_have_image;
+       char *last_click_link_url;
+       char *last_click_link_text;
+       char *last_click_img_url;
+
+       /* rotation */
+       int isRotate;
+
+       /* mailbox list */
+       email_mailbox_type_e mailbox_type;
+       GList *folder_list;
+       email_mailbox_t *move_mailbox_list;
+       int move_mailbox_count;
+
+       /* Evas Object */
+       Evas_Object *dg_subject;
+       Evas_Object *lb_subject;
+       Evas_Object *ly_subject;
+       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 *ctr_bar;
+       Evas_Object *up_ctrl_bar;
+       Evas_Object *webview;
+       Evas_Object *webkit;
+       Evas_Object *con_popup;
+       Evas_Object *timeout_popup;
+       Evas_Object *select_info;
+       Evas_Object *selectioninfo_layout;
+       Evas_Object *notify;
+       Evas_Object *pb_notify;
+       Evas_Object *pb_notify_lb;
+       Evas_Object *dn_popup;
+       Evas_Object *dn_progress;
+       Evas_Object *att_progress;
+       Evas_Object *b_btn;
+       Evas_Object *prev_btn;
+       Evas_Object *more_btn;
+       Evas_Object *next_btn;
+       Evas_Object *dn_btn;
+       Evas_Object *partial_dn_btn;
+       Evas_Object *partial_dn_btn_bx;
+       Evas_Object *top_sp;
+       Evas_Object *noc_bx;
+       Evas_Object *noc;
+       Evas_Object *to_mbe;
+       Evas_Object *cc_mbe;
+       Evas_Object *bcc_mbe;
+
+       Evas_Object *opt_btn1;
+       Evas_Object *opt_btn2;
+       Evas_Object *opt_btn3;
+       Evas_Object *move_cbar;
+
+       Evas_Object *to_ly;
+       Evas_Object *cc_ly;
+       Evas_Object *bcc_ly;
+       Evas_Object *from_btn;
+       Evas_Object *attach_hd_ly;
+       Evas_Object **attach_ex_ly;
+       Evas_Object *attach_hd_bk;
+       Evas_Object **attach_ex_bk;
+
+       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;
+
+       Elm_Object_Item *more_ctx_block_item;
+
+       Elm_Object_Item *navi_main_it;
+       Elm_Object_Item *navi_move_it1;
+       Elm_Object_Item *navi_move_it2;
+
+       E_DBus_Connection *edbus_conn;
+       EmailViewerWebview *webview_data;
+       EmailViewerPrivate *email_data;
+       EmailViewerProp *property;
+
+       Evas_Object *gl;
+       Elm_Genlist_Item_Class itc1;
+       Elm_Genlist_Item_Class itc2;
+       Elm_Genlist_Item_Class itc3;
+
+       GList *from_list;
+       GList *to_list;
+       GList *cc_list;
+       GList *bcc_list;
+
+       ui_gadget_h ug_composer;
+       ui_gadget_h ug_image_viewer;
+       ui_gadget_h ug_contacts_search;
+       ui_gadget_h ug_calendar_edit;
+
+       Ecore_Idler *idler;
+       Ecore_Timer *timer;
+};
+
+void _hide_view(EmailViewerUGD *ug_data);
+void _launch_composer(EmailViewerUGD *ug_data, int type);
+
+#endif /* __DEF_email-viewer_H__ */
+
+/* EOF */
diff --git a/viewer/src/email-viewer-logic.c b/viewer/src/email-viewer-logic.c
new file mode 100755 (executable)
index 0000000..383510c
--- /dev/null
@@ -0,0 +1,492 @@
+/*
+ * Copyright 2012  Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *    http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "email-viewer-logic.h"
+#include "email-viewer-utils.h"
+#include "email-utils.h"
+#include "email-engine.h"
+#include "email-debug.h"
+
+void _set_mail_flags(EmailViewerProp *prop, EmailViewerPrivate *email_data);
+static void _set_status(EmailViewerProp *prop, email_mail_data_t * mail_info);
+static void _set_priority(EmailViewerProp *prop, email_mail_data_t * mail_info);
+static void _set_lock(EmailViewerProp *prop, email_mail_data_t * mail_info);
+static void _set_favorite(EmailViewerProp *prop, email_mail_data_t * mail_info);
+static void _set_request_report(EmailViewerProp *prop, email_mail_data_t * mail_info);
+static void _set_body_download(EmailViewerProp *prop, email_mail_data_t * mail_info);
+static void _make_internal_sender(EmailViewerProp *prop, email_mail_data_t * mail_info);
+static void _make_internal_date(EmailViewerProp *prop, email_mail_data_t * mail_info);
+static void _make_internal_recipients(EmailViewerProp *prop, email_mail_data_t * mail_info);
+static void _make_internal_subject(EmailViewerProp *prop, email_mail_data_t * mail_info);
+static void _make_internal_body(EmailViewerProp *prop, email_mail_data_t * mail_info);
+static void _make_internal_html_body(EmailViewerProp *prop, email_mail_data_t * mail_info);
+static void _make_internal_attachments(EmailViewerProp *prop, email_attachment_data_t *attachment_info, int attachment_count);
+static char *_str_removing_quots(char *src);
+
+gboolean viewer_get_internal_mail_info(EmailViewerProp *prop, EmailViewerPrivate *email_data)
+{
+       debug_log("");
+
+       int err = 0;
+
+       if (email_data->mail_info) {
+               debug_log("mail_info freed");
+               email_free_mail_data(&(email_data->mail_info), 1);
+               email_data->mail_info = NULL;
+       }
+
+       if (email_data->attachment_info && email_data->attachment_count > 0) {
+               debug_log("attachment_info freed p[%p] n[%d]", email_data->attachment_info, email_data->attachment_count);
+               email_free_attachment_data(&(email_data->attachment_info), email_data->attachment_count);
+               email_data->attachment_info = NULL;
+               email_data->attachment_count = 0;
+       }
+
+       if ((err = email_get_mail_data(email_data->mail_id, &(email_data->mail_info))) != EMAIL_ERROR_NONE) {
+               debug_log("fail to get mail data - err (%d)", err);
+               return FALSE;
+       }
+
+       if (email_data->mail_info == NULL) {
+               debug_log("mail_info is NULL");
+               return FALSE;
+       }
+
+       if ((err = email_get_attachment_data_list(email_data->mail_id, &(email_data->attachment_info), &(email_data->attachment_count))) != EMAIL_ERROR_NONE) {
+               debug_log("fail to get attachment data - err (%d)", err);
+               return FALSE;
+       }
+
+       _set_mail_flags(prop, email_data);
+
+       return TRUE;
+}
+
+void viewer_make_internal_mail(EmailViewerProp *prop, EmailViewerPrivate *email_data)
+{
+       debug_log("");
+       email_mail_data_t *mail_info = email_data->mail_info;
+       email_attachment_data_t *attachment_info = email_data->attachment_info;
+       int attachment_count = email_data->attachment_count;
+
+       if (mail_info == NULL) {
+               debug_log("mail_info is NULL");
+               return;
+       }
+
+       /* sender */
+       _make_internal_sender(prop, mail_info);
+
+       /* datetime */
+       _make_internal_date(prop, mail_info);
+
+       /* recipient to, cc, bcc */
+       _make_internal_recipients(prop, mail_info);
+
+       /* subject */
+       _make_internal_subject(prop, mail_info);
+
+       /* body */
+       _make_internal_body(prop, mail_info);
+
+       /* html body */
+       _make_internal_html_body(prop, mail_info);
+
+       /* attachment */
+       _make_internal_attachments(prop, attachment_info, attachment_count);
+}
+
+void viewer_set_mail_seen(EmailViewerProp *prop, email_mail_data_t *mail_info)
+{
+       debug_log("");
+       if (mail_info == NULL) {
+               debug_log("mail_info is NULL");
+               return;
+       }
+
+       int err = 0;
+
+       if (!mail_info->flags_seen_field) {
+               debug_log("newly arrived mail");
+
+               int mail_id = mail_info->mail_id;
+               err = email_set_flags_field(mail_info->account_id, &mail_id, 1, EMAIL_FLAGS_SEEN_FIELD, 1, 1);
+
+               if (err != EMAIL_ERROR_NONE) {
+                       debug_log("Failed to modify mail seen flag");
+               }
+       }
+}
+
+void _set_mail_flags(EmailViewerProp *prop, EmailViewerPrivate *email_data)
+{
+       debug_log("");
+       email_mail_data_t *mail_info = email_data->mail_info;
+
+       _set_status(prop, mail_info);
+       _set_priority(prop, mail_info);
+       _set_lock(prop, mail_info);
+       _set_favorite(prop, mail_info);
+       _set_request_report(prop, mail_info);
+       _set_body_download(prop, mail_info);
+}
+
+static void _set_status(EmailViewerProp *prop, email_mail_data_t *mail_info)
+{
+       debug_log("");
+       if (mail_info == NULL) {
+               debug_log("mail_info is NULL");
+               return;
+       }
+
+       prop->status2 = mail_info->save_status;
+       debug_log("status2 (%d)", prop->status2);
+}
+
+static void _set_priority(EmailViewerProp *prop, email_mail_data_t *mail_info)
+{
+       debug_log("");
+       if (mail_info == NULL) {
+               debug_log("mail_info is NULL");
+               return;
+       }
+
+       prop->priority = mail_info->priority;
+       debug_log("priority (%d)", prop->priority);
+}
+
+static void _set_lock(EmailViewerProp *prop, email_mail_data_t * mail_info)
+{
+       debug_log("");
+       if (mail_info == NULL) {
+               debug_log("mail_info is NULL");
+               return;
+       }
+
+       prop->lock = mail_info->lock_status ? TRUE : FALSE;
+       debug_log("lock (%d)", prop->lock);
+}
+
+static void _set_favorite(EmailViewerProp *prop, email_mail_data_t * mail_info)
+{
+       debug_log("");
+       if (mail_info == NULL) {
+               debug_log("mail_info is NULL");
+               return;
+       }
+
+       prop->favorite = mail_info->flags_flagged_field;
+       debug_log("favorite (%d)", prop->favorite);
+}
+
+static void _set_request_report(EmailViewerProp *prop, email_mail_data_t * mail_info)
+{
+       debug_log("");
+       if (mail_info == NULL) {
+               debug_log("mail_info is NULL");
+               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;
+       }
+       debug_log("request_report (%d)", prop->request_report);
+}
+
+static void _set_body_download(EmailViewerProp *prop, email_mail_data_t * mail_info)
+{
+       debug_log("");
+       if (mail_info == NULL) {
+               debug_log("mail_info is NULL");
+               return;
+       }
+
+       prop->body_download = mail_info->body_download_status;
+       debug_log("body_download (%d)", prop->body_download);
+}
+
+static void _make_internal_sender(EmailViewerProp *prop, email_mail_data_t * mail_info)
+{
+       debug_log("");
+       gchar **vector;
+       if (STR_VALID(mail_info->full_address_from)) {
+               if (STR_VALID(prop->sender)) {
+                       free(prop->sender);
+                       prop->sender = NULL;
+               }
+               debug_log("head from (%s)", mail_info->full_address_from);
+
+               vector = g_strsplit_set(mail_info->full_address_from, "<>", -1);
+               if (vector == NULL) {
+                       debug_log("vector == NULL");
+                       return;
+               }
+
+               prop->sender_display_name = _str_removing_quots(vector[0]);
+               prop->sender = g_strdup(vector[1]);
+
+               debug_log("display name (%s)", prop->sender_display_name);
+               debug_log("sender (%s)", prop->sender);
+
+               g_strfreev(vector);
+       }
+       debug_log("sender (%s)", prop->sender ? prop->sender : "@niL");
+}
+
+static void _make_internal_date(EmailViewerProp *prop, email_mail_data_t * mail_info)
+{
+       debug_log("");
+
+       prop->mktime = mail_info->date_time;
+}
+
+static void _make_internal_recipients(EmailViewerProp *prop, email_mail_data_t * mail_info)
+{
+       debug_log("");
+
+       if (STR_VALID(mail_info->full_address_to)) {
+               if (STR_VALID(prop->recipient_to)) {
+                       free(prop->recipient_to);
+                       prop->recipient_to = NULL;
+               }
+               prop->recipient_to = g_strdup(mail_info->full_address_to);
+       }
+       debug_log("recipient to (%s)", prop->recipient_to);
+
+       if (STR_VALID(mail_info->full_address_cc)) {
+               if (STR_VALID(prop->recipient_cc)) {
+                       free(prop->recipient_cc);
+                       prop->recipient_cc = NULL;
+               }
+               prop->recipient_cc = g_strdup(mail_info->full_address_cc);
+       }
+       debug_log("recipient cc (%s)", prop->recipient_cc);
+
+       if (STR_VALID(mail_info->full_address_bcc)) {
+               if (STR_VALID(prop->recipient_bcc)) {
+                       free(prop->recipient_bcc);
+                       prop->recipient_bcc = NULL;
+               }
+               prop->recipient_bcc = g_strdup(mail_info->full_address_bcc);
+       }
+       debug_log("recipient bcc (%s)", prop->recipient_bcc);
+}
+
+static void _make_internal_subject(EmailViewerProp *prop, email_mail_data_t * mail_info)
+{
+       debug_log("");
+       if (!STR_VALID(mail_info->subject)) {
+               debug_log("mail_info->head->subject is not valid");
+               return;
+       }
+
+       if (STR_VALID(prop->subject)) {
+               free(prop->subject);
+               prop->subject = NULL;
+       }
+       prop->subject = g_strdup(mail_info->subject);
+
+       debug_log("subject (%s)", prop->subject);
+}
+
+static void _make_internal_body(EmailViewerProp *prop, email_mail_data_t * mail_info)
+{
+       debug_log("");
+       char *body_plain = NULL;
+
+       if (STR_VALID(mail_info->file_path_plain)) {
+               if (STR_VALID(prop->body_uri)) {
+                       free(prop->body_uri);
+                       prop->body_uri = NULL;
+               }
+               prop->body_uri = g_strdup(mail_info->file_path_plain);
+       }
+
+       char *plain_charset = email_parse_get_filename_from_path(mail_info->file_path_plain);
+
+       if (STR_VALID(plain_charset)) {
+               if (STR_VALID(prop->charset)) {
+                       free(prop->charset);
+                       prop->charset = NULL;
+               }
+               prop->charset = g_strdup(plain_charset);
+               debug_log("charset: %s", prop->charset);
+               g_free(plain_charset);
+       }
+
+       if (STR_VALID(mail_info->file_path_plain)) {
+               if (STR_VALID(prop->body)) {
+                       free(prop->body);
+                       prop->body = NULL;
+               }
+               body_plain = email_get_buff_from_file(mail_info->file_path_plain, 0);
+               prop->body = body_plain;
+       }
+}
+
+static void _make_internal_html_body(EmailViewerProp *prop, email_mail_data_t * mail_info)
+{
+       debug_log("");
+
+       char *html = mail_info->file_path_html;
+
+       if (STR_VALID(html)) {
+               debug_log("html body path (%s)", html);
+
+               if (STR_VALID(prop->body_uri)) {
+                       free(prop->body_uri);
+                       prop->body_uri = NULL;
+               }
+
+               prop->body_uri = g_strdup(mail_info->file_path_html);
+               prop->has_html = TRUE;
+
+               if (prop->body_uri) {
+                       if (STR_VALID(prop->charset)) {
+                               free(prop->charset);
+                               prop->charset = NULL;
+                       }
+
+                       prop->charset = email_parse_get_filename_from_path(prop->body_uri);
+                       debug_log("charset: %s", prop->charset);
+               }
+       }
+}
+
+static void _make_internal_attachments(EmailViewerProp *prop, email_attachment_data_t *attachment_info, int attachment_count)
+{
+       debug_log("");
+       int index = 0;
+
+       if (attachment_info == NULL) {
+               debug_log("attachment_info is NULL");
+               return;
+       }
+
+       if (attachment_count <= 0) {
+               debug_log("attachment_count <= 0");
+               return;
+       }
+
+       if (prop->attachments) {
+               debug_log("Free the existing attachments..");
+               int i;
+               LIST_ITER_START(i, prop->attachments) {
+                       EmailAttachmentType *info = (EmailAttachmentType *)LIST_ITER_GET_DATA(i, prop->attachments);
+                       if (info->name)
+                               free(info->name);
+                       if (info->path)
+                               free(info->path);
+               }
+               g_list_free(prop->attachments);
+               prop->attachments = NULL;
+               prop->real_att_len = 0;
+               prop->total_att_size = 0;
+               prop->att_len = 0;
+       }
+
+       int i = 0;
+       for (i = 0; i < attachment_count; i++) {
+               email_attachment_data_t *attachment = attachment_info + i;
+               debug_log("attachments id (%d)", attachment->attachment_id);
+               debug_log("attachments name (%s)", attachment->attachment_name ? attachment->attachment_name : "@niL");
+               debug_log("attachments path (%s)", attachment->attachment_path ? attachment->attachment_path : "@niL");
+               debug_log("attachments size (%d)", attachment->attachment_size);
+               debug_log("attachments download (%d)", attachment->save_status);
+               debug_log("attachments drm (%d)", attachment->drm_status);
+               debug_log("attachments inline? (%d)", attachment->inline_content_status);
+
+               EmailAttachmentType *attachment_item = g_new0(EmailAttachmentType, 1);
+               if (attachment_item) {
+                       /* id */
+                       attachment_item->attach_id = attachment->attachment_id;
+
+                       /* index */
+                       attachment_item->index = ++index;
+
+                       /* name */
+                       if (STR_VALID(attachment->attachment_name)) {
+                               attachment_item->name = g_strdup(attachment->attachment_name);
+                       }
+                       /* path */
+                       if (STR_VALID(attachment->attachment_path)) {
+                               if (STR_INVALID(attachment_item->name)) {
+                                       attachment_item->name = email_parse_get_filename_from_path(attachment->attachment_path);
+                               }
+                               attachment_item->path = g_strdup(attachment->attachment_path);
+                       }
+                       /* size */
+                       if (attachment->attachment_size <= 0) {
+                               attachment_item->size = email_get_file_size(attachment->attachment_path);
+                       } else {
+                               attachment_item->size = (guint64) attachment->attachment_size;
+                               debug_log("attachment_item size (%d)", (gint) attachment_item->size);
+                       }
+
+                       /* downloaded. */
+                       attachment_item->download_yn = attachment->save_status ? TRUE : FALSE;
+
+                       /* drm */
+                       attachment_item->drm = attachment->drm_status ? TRUE : FALSE;
+
+                       /* inline */
+                       attachment_item->inline_content = attachment->inline_content_status ? TRUE : FALSE;
+                       if (!attachment->inline_content_status) {
+                               (prop->real_att_len)++;
+                               prop->total_att_size += (guint64) attachment->attachment_size;
+                       }
+
+                       (prop->att_len)++;
+
+                       prop->attachments = g_list_append(prop->attachments, attachment_item);
+               }
+       }
+
+       if (prop->real_att_len > 0)
+               prop->has_attachment = TRUE;
+}
+
+static char *_str_removing_quots(char *src)
+{
+       int i = 0, j = 0;
+       int len = strlen(src);
+       char *ret;
+
+       ret = (char *)malloc(len + 1);
+       memset(ret, 0, len + 1);
+
+       for (i = 0; i < len; i++) {
+               if (src[i] != '"') {
+                       ret[j++] = src[i];
+               }
+       }
+
+       return ret;
+}
+
+/* EOF */
diff --git a/viewer/src/email-viewer-utils.c b/viewer/src/email-viewer-utils.c
new file mode 100755 (executable)
index 0000000..5d18639
--- /dev/null
@@ -0,0 +1,486 @@
+/*
+ * Copyright 2012  Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *    http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <sys/time.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
+#include <time.h>
+#include <errno.h>
+#include <Ethumb.h>
+#include <mm_file.h>
+#include <mm_util_jpeg.h>
+#include <mm_error.h>
+#include <Efreet_Mime.h>
+#include <status.h>
+
+#include "email-viewer-utils.h"
+#include "email-common-types.h"
+#include "email-utils.h"
+#include "email-engine.h"
+#include "email-debug.h"
+
+#define MYFILE_IMGE_PATH "/opt/apps/com.samsung.myfile/res/images"
+#define MB_SVC_FILE_PATH_LEN_MAX 255
+
+static void _thumbnail_generated_cb(void *data, Ethumb *e, Eina_Bool success);
+
+struct _mtd {
+       char *category; /* Not used at present */
+       char *key;
+       char *icon_path;
+       char *exe_path; /* Not used at present */
+       char *param;    /* Not used at present */
+       int is_direct_launch;   /* Not used at present */
+       int need_sort_param;    /* Not used at present */
+       int having_a_thumbnail; /* Not used at present */
+};
+
+static struct _mtd mtd_main[] = {
+       {"ETC", "etc", MYFILE_IMGE_PATH "/myfile_icon_etc.png", NULL, NULL, TRUE, FALSE, FALSE},
+       {"Music", "audio/mpeg", IMGDIR "/U01_icon_music.png", "music", NULL, TRUE, TRUE, TRUE},
+       {"Music", "audio/x-wav", IMGDIR "/U01_icon_music.png", "music", NULL, TRUE, TRUE, TRUE},
+       {"Music", "audio/x-ms-wma", IMGDIR "/U01_icon_music.png", "music", NULL, TRUE, TRUE, TRUE},
+       {"Voice", "audio/AMR", IMGDIR "/U01_icon_music.png", "voicerecorder", NULL, TRUE, FALSE, FALSE},
+       {"Video", "video/x-msvideo", IMGDIR "/U01_icon_video.png", "video-player", NULL, TRUE, FALSE, TRUE},
+       {"Video", "video/mp4", IMGDIR "/U01_icon_video.png", "video-player", NULL, TRUE, FALSE, TRUE},
+       {"Video", "video/3gpp", IMGDIR "/U01_icon_video.png", "video-player", NULL, TRUE, FALSE, TRUE},
+       {"Video", "video/x-ms-asf", IMGDIR "/U01_icon_video.png", "video-player", NULL, TRUE, FALSE, TRUE},
+       {"Video", "video/x-ms-wmv", IMGDIR "/U01_icon_video.png", "video-player", NULL, TRUE, FALSE, TRUE},
+       {"Image", "image/svg+xml", MYFILE_IMGE_PATH "/myfile_icon_svg.png", "svg-viewer", NULL, TRUE, FALSE, FALSE},
+       {"PDF", "application/pdf", IMGDIR "/U01_icon_pdf.png", "documents", NULL, TRUE, FALSE, FALSE},
+       {"Doc", "application/msword", IMGDIR "/U01_icon_word.png", "documents", NULL, TRUE, FALSE, FALSE},
+       {"Doc", "application/vnd.openxmlformats-officedocument.wordprocessingml.document", IMGDIR "/U01_icon_word.png", "documents", NULL, TRUE, FALSE, FALSE},
+       {"PPT", "application/vnd.ms-powerpoint", IMGDIR "/U01_icon_ppt.png", "documents", NULL, TRUE, FALSE, FALSE},
+       {"PPT", "application/vnd.openxmlformats-officedocument.presentationml.presentation", IMGDIR "/U01_icon_ppt.png", "documents", NULL, TRUE, FALSE, FALSE},
+       {"Text", "text/plain", IMGDIR "/U01_icon_text.png", "documents", NULL, TRUE, FALSE, FALSE},
+       {"Text", "text/html", IMGDIR "/U01_icon_html.png", "documents", NULL, TRUE, FALSE, FALSE},
+       {"Excel", "application/vnd.ms-excel", IMGDIR "/U01_icon_excel.png", "documents", NULL, TRUE, FALSE, FALSE},
+       {"Excel", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", IMGDIR "/U01_icon_excel.png", "documents", NULL, TRUE, FALSE, FALSE},
+       {"Flash", "application/x-shockwave-flash", IMGDIR "/U01_icon_swf.png", "flash-player", NULL, TRUE, FALSE, TRUE},
+       {"None", "video/x-flv", IMGDIR "/U01_icon_video.png", NULL, NULL, FALSE, FALSE, FALSE},
+       {"Java", "text/vnd.sun.j2me.app-descriptor", MYFILE_IMGE_PATH "/myfile_icon_java.png", NULL, NULL, FALSE, FALSE, FALSE},
+       {"Java", "application/x-java-archive", MYFILE_IMGE_PATH "/myfile_icon_java.png", NULL, NULL, FALSE, FALSE, FALSE},
+       {"SVG", "image/svg+xml", MYFILE_IMGE_PATH "/myfile_icon_svg.png", "svg-viewer", NULL, TRUE, FALSE, FALSE},
+       {"ETC", "etc", MYFILE_IMGE_PATH "/myfile_icon_etc.png", NULL, NULL, TRUE, FALSE, FALSE},
+       {"VCARD", "text/directory", MYFILE_IMGE_PATH "/myfile_icon_etc.png", NULL, NULL, FALSE, FALSE, FALSE},
+       {"VCALENDAR", "text/calendar", MYFILE_IMGE_PATH "/myfile_icon_etc.png", NULL, NULL, FALSE, FALSE, FALSE},
+       {NULL, NULL, NULL, NULL}
+};
+
+static void _popup_response_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+
+       if (!data) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       EmailViewerUGD *ug_data = (EmailViewerUGD *)data;
+
+       if (ug_data->notify) {
+               evas_object_del(ug_data->notify);
+               ug_data->notify = NULL;
+       }
+}
+
+Evas_Object *viewer_make_thumbnail(char *path, Evas_Object *parent)
+{
+       debug_log("");
+
+       if (parent == NULL) {
+               debug_log("parent obj is NULL");
+               return NULL;
+       }
+
+       Evas_Object *icon = NULL;
+       icon = elm_icon_add(parent);
+
+       if (STR_INVALID(path)) {
+               elm_icon_file_set(icon, MYFILE_IMGE_PATH "/myfile_icon_etc.png", NULL);
+               evas_object_size_hint_min_set(icon, 30, 30);
+               return icon;
+       }
+
+       char *default_icon_path = NULL;
+       char thumb_path[MB_SVC_FILE_PATH_LEN_MAX] = { 0, };
+
+       debug_log("file path: %s", path);
+       efreet_mime_init();
+       char *type = (char *)efreet_mime_type_get(ecore_file_file_get(path));
+       char *mime_type = g_strdup(type);
+       debug_log("mime type: %s", mime_type);
+       efreet_mime_shutdown();
+
+       if (mime_type) {
+               struct _mtd *mtd = (struct _mtd *)mtd_main;
+
+               while (mtd && mtd->key) {
+                       if (strncmp(mime_type, mtd->key, strlen(mime_type)) == 0) {
+                               debug_log("key (%s)", mtd->key);
+                               debug_log("type(%s)", type);
+                               default_icon_path = g_strdup(mtd->icon_path);
+                               debug_log("default_icon_path: %s", default_icon_path);
+                               break;
+                       }
+                       mtd++;
+               }
+
+               if (strncmp(mime_type, "image", 5) == 0) {
+                       Ethumb *e = NULL;
+                       e = ethumb_new();
+
+                       ethumb_thumb_format_set(e, ETHUMB_THUMB_FDO);
+                       ethumb_thumb_aspect_set(e, ETHUMB_THUMB_KEEP_ASPECT);
+                       ethumb_thumb_size_set(e, 40, 40);
+                       ethumb_thumb_category_set(e, "thumbnails");
+                       ethumb_thumb_dir_path_set(e, DATADIR);
+                       ethumb_file_set(e, path, NULL);
+
+                       const char *thumb_path_tmp = NULL;
+                       const char *key = NULL;
+                       ethumb_thumb_path_get(e, &thumb_path_tmp, &key);
+
+                       if (!ecore_file_exists(thumb_path_tmp)) {
+                               if (!ethumb_exists(e)) {
+                                       ethumb_generate(e, _thumbnail_generated_cb, NULL, NULL);
+                               }
+                       }
+
+                       if (thumb_path_tmp) {
+                               debug_log("thumbnail path = %s", thumb_path);
+                               snprintf(thumb_path, sizeof(thumb_path), "%s", thumb_path_tmp);
+                       }
+
+                       ethumb_free(e);
+               } else if (strncmp(mime_type, "video", 5) == 0) {
+                       int ret = 0;
+                       int video_track_num = 0;
+                       int video_w = 0;
+                       int video_h = 0;
+                       int thumb_len = 0;
+                       void *stream = NULL;
+                       MMHandleType content_attrs = 0;
+
+                       ret = mm_file_create_content_attrs(&content_attrs, path);
+
+                       if (ret == MM_ERROR_NONE && content_attrs) {
+                               mm_file_get_attrs(content_attrs, NULL,
+                                                               MM_FILE_CONTENT_VIDEO_TRACK_COUNT,
+                                                               &video_track_num, NULL);
+
+                               if (video_track_num) {
+                                       mm_file_get_attrs(content_attrs, NULL,
+                                                                       MM_FILE_CONTENT_VIDEO_WIDTH, &video_w,
+                                                                       MM_FILE_CONTENT_VIDEO_HEIGHT, &video_h,
+                                                                       MM_FILE_CONTENT_VIDEO_THUMBNAIL, &stream,
+                                                                       &thumb_len, NULL);
+
+                                       if (stream) {
+                                               int mm_ret = 0;
+                                               char filename[1024] = { 0, };
+                                               char *file_name = NULL;
+                                               char *file_ext = NULL;
+
+                                               email_parse_get_filename_n_ext_from_path(path, &file_name, &file_ext);
+                                               snprintf(filename, sizeof(filename), "%s%s%s%s", DATADIR"/", file_name, file_ext, ".jpg");
+                                               g_free(file_name);
+                                               g_free(file_ext);
+
+                                               mm_ret = mm_util_jpeg_encode_to_file(filename, stream,
+                                                                                                                       video_w, video_h,
+                                                                                                                       MM_UTIL_JPEG_FMT_RGB888, 70);
+
+                                               if (ecore_file_exists(filename)) {
+                                                       snprintf(thumb_path, sizeof(thumb_path), "%s", filename);
+                                                       debug_log("file : %s, thumb_path : %s", path, thumb_path);
+                                               }
+                                       }
+                               }
+
+                               mm_file_destroy_content_attrs(content_attrs);
+                       } else {
+                               debug_log("fail to mm_file_create_content_attrs - error(%x)", ret);
+                       }
+               } else if (strncmp(mime_type, "audio", 5) == 0) {
+                       int tag_ret = 0;
+                       MMHandleType tag_attrs = 0;
+
+                       tag_ret = mm_file_create_tag_attrs(&tag_attrs, path);
+
+                       if (tag_ret == MM_ERROR_NONE && tag_attrs) {
+                               char *error = NULL;
+                               char *art_name = NULL;
+                               int art_len = 0;
+                               int art_size = 0;
+
+                               tag_ret = mm_file_get_attrs(tag_attrs, &error,
+                                                                                       MM_FILE_TAG_ARTWORK, &art_name, &art_len,
+                                                                                       MM_FILE_TAG_ARTWORK_SIZE, &art_size, NULL);
+
+                               if (tag_ret != MM_ERROR_NONE) {
+                                       if (error) {
+                                               debug_log("fail to mm_file_get_attrs() - ret(%x), error(%s)", tag_ret, error);
+                                               free(error);
+                                       } else {
+                                               debug_log("fail to mm_file_get_attrs() - ret(%x)", tag_ret);
+                                       }
+                               }
+
+                               if (art_name) {
+                                       gchar *mm_path = NULL;
+                                       int fd = g_file_open_tmp(NULL, &mm_path, NULL);
+
+                                       if (fd != -1) {
+                                               FILE *fp = fdopen(fd, "w");
+                                               if (fp == NULL) {
+                                                       debug_log("fail to fdopen()");
+                                                       close(fd);
+                                               } else {
+                                                       int n = fwrite((unsigned char *)art_name, sizeof(char), art_size, fp);
+                                                       if (n != art_size) {
+                                                               debug_log("fail to fwrite()");
+                                                               fclose(fp);
+                                                               close(fd);
+                                                       } else {
+                                                               fflush(fp);
+                                                               fclose(fp);
+                                                               close(fd);
+                                                       }
+                                               }
+                                       }
+
+                                       snprintf(thumb_path, sizeof(thumb_path), "%s", mm_path);
+                                       debug_log("file : %s, albumart_path : %s", path, thumb_path);
+                                       if (mm_path)
+                                               g_free(mm_path);
+                               }
+                       }
+
+                       mm_file_destroy_tag_attrs(tag_attrs);
+               }
+
+               if (strlen(thumb_path) > 0) {
+                       debug_log("thumbpath: %s", thumb_path);
+                       elm_icon_file_set(icon, thumb_path, NULL);
+               } else {
+                       if (default_icon_path) {
+                               debug_log("thumbpath: %s", default_icon_path);
+                               elm_icon_file_set(icon, default_icon_path, NULL);
+                       } else {
+                               elm_icon_file_set(icon, MYFILE_IMGE_PATH "/myfile_icon_etc.png", NULL);
+                               evas_object_size_hint_min_set(icon, 30, 30);
+                       }
+               }
+       } else {
+               elm_icon_file_set(icon, MYFILE_IMGE_PATH "/myfile_icon_etc.png", NULL);
+               evas_object_size_hint_min_set(icon, 30, 30);
+       }
+
+       g_free(mime_type);
+       g_free(default_icon_path);
+
+       return icon;
+}
+
+static void _thumbnail_generated_cb(void *data, Ethumb *e, Eina_Bool success)
+{
+       debug_log("");
+
+       if (success) {
+               debug_log("Succeed in thumbnail generation");
+       } else {
+               debug_log("Fail to create thumbnail");
+       }
+}
+
+void _create_notify(EmailViewerUGD *ug_data, char *header, char *content,
+                                               int btn_num, char *btn1_lb, popup_cb resp_cb1,
+                                               char *btn2_lb, popup_cb resp_cb2, popup_cb resp_block_cb)
+{
+       debug_log("");
+       Evas_Object *notify = NULL;
+
+       if (ug_data->notify) {
+               evas_object_del(ug_data->notify);
+               ug_data->notify = NULL;
+       }
+
+       notify = elm_popup_add(ug_data->win_main);
+       debug_log("notify: %p, win_main: %p", notify, ug_data->win_main);
+       if (!notify) {
+               debug_log("elm_popup_add returns NULL");
+               return;
+       }
+       evas_object_size_hint_weight_set(notify, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       ug_data->notify = notify;
+
+       if (header) {
+               elm_object_part_text_set(notify, "title,text", header);
+       }
+
+       if (content) {
+               elm_object_text_set(notify, content);
+       }
+
+       if (btn_num == 0) {
+               elm_popup_timeout_set(notify, 2.0);
+               evas_object_smart_callback_add(notify, "block,clicked", resp_block_cb, ug_data);
+       }
+
+       if (btn_num == 1) {
+               Evas_Object *btn1 = elm_button_add(notify);
+               elm_object_style_set(btn1, "popup_button/default");
+               elm_object_text_set(btn1, btn1_lb);
+               elm_object_part_content_set(notify, "button1", btn1);
+               evas_object_smart_callback_add(btn1, "clicked", resp_cb1, ug_data);
+       }
+       if (btn_num == 2) {
+               Evas_Object *btn1 = elm_button_add(notify);
+               elm_object_style_set(btn1, "popup_button/default");
+               elm_object_text_set(btn1, btn1_lb);
+               elm_object_part_content_set(notify, "button1", btn1);
+               evas_object_smart_callback_add(btn1, "clicked", resp_cb1, ug_data);
+
+               Evas_Object *btn2 = elm_button_add(notify);
+               elm_object_style_set(btn2, "popup_button/default");
+               elm_object_text_set(btn2, btn2_lb);
+               elm_object_part_content_set(notify, "button2", btn2);
+               evas_object_smart_callback_add(btn2, "clicked", resp_cb2, ug_data);
+       }
+
+       evas_object_show(notify);
+}
+
+int _find_folder_id_using_folder_type(EmailViewerUGD *ug_data, email_mailbox_type_e mailbox_type)
+{
+       debug_log("");
+       if (ug_data->folder_list == NULL) {
+               return -1;
+       }
+
+       int i = 0;
+       int cnt = g_list_length(ug_data->folder_list);
+       for (i = 0; i < cnt; i++) {
+               EmailMailboxNameAndAlias *nameandalias = (EmailMailboxNameAndAlias *) g_list_nth_data(ug_data->folder_list, i);
+               int folder_id = nameandalias->mailbox_id;
+               if (mailbox_type == nameandalias->mailbox_type) {
+                       return folder_id;
+               }
+       }
+
+       return -1;
+}
+
+void _move_email(EmailViewerUGD *ug_data, int dest_folder_id, gboolean is_delete)
+{
+       debug_log("");
+
+       EmailViewerPrivate *priv = ug_data->email_data;
+
+       if (!email_engine_move_mail(priv->account_id, dest_folder_id, priv->mail_id)) {
+               debug_log("Moving email is failed.");
+
+               if (is_delete)
+                       _create_notify(ug_data, _("IDS_EMAIL_POP_ALERT"),
+                                                       _("IDS_EMAIL_POP_FAILED_TO_DELETE"), 0,
+                                                       NULL, NULL, NULL, NULL, _popup_response_cb);
+               else
+                       _create_notify(ug_data, _("IDS_EMAIL_POP_ALERT"),
+                                                       _("IDS_EMAIL_POP_FAILED_TO_MOVE"), 0,
+                                                       NULL, NULL, NULL, NULL, _popup_response_cb);
+
+       } else {
+               debug_log("account_id: %d, moveto folder id: %d, mail_id: %d", priv->account_id, dest_folder_id, priv->mail_id);
+               char str[128] = { 0, };
+               if (is_delete)
+                       snprintf(str, sizeof(str), "%s", dgettext("sys_string", "IDS_COM_POP_DELETED"));
+               else
+                       snprintf(str, sizeof(str), "%s", dgettext("sys_string", "IDS_COM_POP_MOVED"));
+               int ret = status_message_post(str);
+               if (ret)
+                       debug_log("status_message_post failed: %d", ret);
+       }
+}
+
+void _delete_email(EmailViewerUGD *ug_data)
+{
+       debug_log("");
+
+       EmailViewerPrivate *priv = ug_data->email_data;
+
+       int sync = EMAIL_DELETE_LOCAL_AND_SERVER;
+       if (ug_data->account_type == EMAIL_SERVER_TYPE_POP3) {
+               email_account_t *account_data = NULL;
+               if (email_engine_get_account_full_data(ug_data->account_id, &account_data)) {
+                       debug_log("email_engine_get_account");
+                       if (account_data) {
+                               account_user_data_t *user_data = (account_user_data_t*)account_data->user_data;
+                               if (user_data != NULL) {
+                                       debug_log("pop3_deleting_option:%d", user_data->pop3_deleting_option);
+                                       if (user_data->pop3_deleting_option == 0) {
+                                               sync = EMAIL_DELETE_LOCALLY;
+                                       } else if (user_data->pop3_deleting_option == 1) {
+                                               sync = EMAIL_DELETE_LOCAL_AND_SERVER;
+                                       }
+                               }
+                               email_free_account(&account_data, 1);
+                               account_data = NULL;
+                       }
+               }
+       }
+
+       if (!email_engine_delete_mail(priv->account_id, priv->mailbox_id, priv->mail_id, sync)) {
+               debug_log("Deleting email is failed.");
+               _create_notify(ug_data, _("IDS_EMAIL_POP_ALERT"),
+                                               _("IDS_EMAIL_POP_FAILED_TO_DELETE"), 0,
+                                               NULL, NULL, NULL, NULL, _popup_response_cb);
+       } else {
+               debug_log("account_id: %d, mailbox_id: %d, mail_id: %d", priv->account_id, priv->mailbox_id, priv->mail_id);
+               char str[128] = { 0, };
+               snprintf(str, sizeof(str), "%s", dgettext("sys_string", "IDS_COM_POP_DELETED"));
+               int ret = status_message_post(str);
+               if (ret)
+                       debug_log("status_message_post failed: %d", ret);
+       }
+}
+
+void _notify_mailbox_size(EmailViewerUGD *ug_data, char *size)
+{
+       debug_log("");
+       RETURN_IF_FAIL(ug_data != NULL);
+       RETURN_IF_FAIL(ug_data->ug != 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;
+       }
+
+       /* Send mailbox resize notification to mailbox */
+       ret = service_add_extra_data(service, EMAIL_BUNDLE_KEY_MAILBOX_SIZE, size);
+       debug_log("service_add_extra_data: %d", ret);
+
+       ug_send_result(ug_data->ug, service);
+
+       ret = service_destroy(service);
+       debug_log("service_destroy: %d", ret);
+}
+/* EOF */
diff --git a/viewer/src/email-viewer-webview.c b/viewer/src/email-viewer-webview.c
new file mode 100755 (executable)
index 0000000..cc9bd2d
--- /dev/null
@@ -0,0 +1,384 @@
+/*
+ * Copyright 2012  Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *    http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "email-viewer-webview.h"
+#include "email-viewer-js.h"
+
+#include "email-debug.h"
+#include "email-engine.h"
+#include "email-html-converter.h"
+
+static void _webview_script_executed_cb(Evas_Object *o, const char *result, void *data);
+static void _webview_get_html_content_cb(Evas_Object *o, const char *result, void *data);
+static void _webview_load_finished_cb(void *data, Evas_Object *obj, void *event_info);
+static void _webview_load_error_cb(void *data, Evas_Object *obj, void *event_info);
+static void _webview_load_committed_cb(void *data, Evas_Object *obj, void *event_info);
+static void _webview_load_noemptylayout_finished_cb(void *data, Evas_Object *obj, void *event_info);
+static void _webview_load_progress_cb(void *data, Evas_Object *obj, void *event_info);
+
+/* 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 int _send_read_report_mail(EmailViewerUGD *ug_data);
+
+extern EmailViewerUGD *_g_ug_data;
+extern ui_gadget_h _g_mailbox_ug;
+
+Evas_Object *viewer_get_webview(EmailViewerUGD *ug_data, gboolean has_html)
+{
+       debug_log("");
+
+       Evas_Object *ewk_view = ewk_view_add(evas_object_evas_get(ug_data->win_main/*layout_main*/));
+       ug_data->webview = ewk_view;
+
+       Ewk_Setting *setting = ewk_view_setting_get(ewk_view);
+
+       ewk_setting_auto_fitting_set(setting, EINA_FALSE);
+       ewk_setting_enable_text_zoom_set(setting, EINA_TRUE);
+
+       if (ewk_setting_load_remote_images_set(setting, ug_data->b_show_remote_images) == EINA_FALSE) {
+               debug_log("SET remote images is FAILED!");
+       }
+
+       /* Double_Scroller */
+       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->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,finished", _webview_load_finished_cb, ug_data);
+       evas_object_smart_callback_add(ug_data->webview, "load,nonemptylayout,finished", _webview_load_noemptylayout_finished_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_show(ug_data->webview);
+
+       return ug_data->webview;
+}
+
+void viewer_set_webview_content(EmailViewerUGD *ug_data, int reload)
+{
+       debug_log("");
+
+       if (!ug_data) {
+               debug_log("ug_data is NULL");
+               return;
+       }
+
+       if (ug_data->webview_data == NULL) {
+               debug_log("webview_data is NULL");
+               return;
+       }
+
+       EmailViewerWebview *wvd = ug_data->webview_data;
+
+       if (reload && (wvd->body_type == wvd->body_type_prev)) {
+               debug_log("reload current uri");
+               ewk_view_reload(ug_data->webview);
+               return;
+       }
+
+       char tmp_file_path[MAX_STR_LEN] = { 0, };
+       char *tmp_file_name = NULL;
+
+       /* set content */
+       if (wvd->body_type == BODY_TYPE_HTML) {
+               if (wvd->uri == NULL) {
+                       debug_log("invalid uri");
+                       return;
+               }
+
+               snprintf(tmp_file_path, sizeof(tmp_file_path), "file://%s", wvd->uri);
+               debug_log("file://%s", wvd->uri);
+
+               /* Fix for issue - Sometimes html content of previous mail is shown
+                * Set the default html page if file size is 0 */
+               struct stat statbuf = { 0 };
+               int status = lstat(wvd->uri, &statbuf);
+               if (!status) {
+                       debug_log("Total file size: %d", (int)statbuf.st_size);
+                       if ((int)statbuf.st_size == 0) {
+                               debug_log("Set URI with default html");
+                               ewk_view_uri_set(ug_data->webview, EMAIL_DEFAULT_HTML);
+                               return;
+                       }
+               }
+       } else if (wvd->body_type == BODY_TYPE_TEXT) {
+               /* generate temporary html file for viewing */
+               tmp_file_name = viewer_set_html_content_file(wvd);
+
+               sprintf(tmp_file_path, "file://%s", tmp_file_name);
+               debug_log("file://%s", tmp_file_name);
+       }
+
+       debug_log("default encoding:%s", ug_data->property->charset);
+       Ewk_Setting *setting = ewk_view_setting_get(ug_data->webview);
+       ewk_setting_default_encoding_set(setting, ug_data->property->charset);
+//     ewk_view_encoding_custom_set(ug_data->webview, ug_data->property->charset);
+       ewk_view_uri_set(ug_data->webview, tmp_file_path);
+}
+
+char *viewer_set_html_content_file(EmailViewerWebview *wvd)
+{
+       debug_log("");
+
+       FILE *fp;
+       char *html;
+       char *tmp_file_name;
+       char *email_content = "\0";
+
+       tmp_file_name = EMAIL_TMP_FILE_PATH ".html";
+       unlink(tmp_file_name);  /*remove previous file*/
+
+       email_content = wvd->text_content;
+       html = email_html_converter(email_content, wvd->charset);
+       debug_log("html:%s", html);
+       fp = fopen(tmp_file_name, "w");
+       if (fp != NULL) {
+               fputs(html, fp);
+               fclose(fp);
+       }
+
+       if (html)
+               g_free(html);
+
+       return tmp_file_name;
+}
+
+void viewer_coords_ewk_to_evas(Evas_Object *view, int ewkX, int ewkY, int *evasX, int *evasY)
+{
+       int scrollX, scrollY, viewX, viewY;
+       ewk_view_scroll_pos_get(view, &scrollX, &scrollY);
+       evas_object_geometry_get(view, &viewX, &viewY, NULL, NULL);
+
+       *evasX = ewkX - scrollX + viewX;
+       *evasY = ewkY - scrollY + viewY;
+}
+
+void viewer_coords_evas_to_ewk(Evas_Object *view, int evasX, int evasY, int *ewkX, int *ewkY)
+{
+       debug_log("evasX:%d, evasY:%d", evasX, evasY);
+       int scrollX, scrollY, viewX, viewY;
+       ewk_view_scroll_pos_get(view, &scrollX, &scrollY);
+       evas_object_geometry_get(view, &viewX, &viewY, NULL, NULL);
+       debug_log("scrollX:%d, scrollY:%d, viewX:%d, viewY:%d", scrollX, scrollY, viewX, viewY);
+
+       *ewkX = evasX + scrollX - viewX;
+       *ewkY = evasY + scrollY - viewY;
+}
+
+Eina_Bool viewer_send_message(void *data)
+{
+       debug_log("");
+
+       EmailViewerUGD *ug_data = (EmailViewerUGD *)data;
+
+       if (ug_data->timer) {
+               ecore_timer_del(ug_data->timer);
+               ug_data->timer = 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 EINA_FALSE;
+       }
+
+       ret = service_add_extra_data(service, EMAIL_BUNDLE_KEY_MSG, EMAIL_BUNDLE_KEY_UNLOCK_LIST);
+       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);
+
+       return EINA_FALSE;
+}
+
+static void _webview_script_executed_cb(Evas_Object *o, const char *result, void *data)
+{
+       debug_log("");
+}
+
+static void _webview_get_html_content_cb(Evas_Object *o, const char *result, void *data)
+{
+       debug_log("");
+
+//     EmailViewerUGD *ug_data = (EmailViewerUGD *)data;
+
+//     ug_data->saved_html_content = g_strdup(result);
+//     debug_log("ug_data->saved_html_content => %s", ug_data->saved_html_content);
+}
+
+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");
+               return;
+       }
+
+       EmailViewerUGD *ug_data = (EmailViewerUGD *)data;
+
+       ug_data->b_load_finished = EINA_TRUE;
+
+       /*_measure_webview_xy(ug_data);*/
+
+       if (ug_data->timer) {
+               ecore_timer_del(ug_data->timer);
+               ug_data->timer = NULL;
+       }
+
+       ug_data->timer = ecore_timer_add(0.0, viewer_send_message, ug_data);
+
+       if (ewk_view_script_execute(ug_data->webview, VIEWER_JS_INSERT_IM(VIEWER_JS_FILE_PATH), _webview_script_executed_cb, 0) == EINA_FALSE)
+               debug_log("VIEWER_JS_INSERT_IM(VIEWER_JS_FILE_PATH) failed.");
+}
+
+static void _webview_load_error_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+}
+
+static void _webview_load_committed_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+}
+
+static void _webview_load_noemptylayout_finished_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+}
+
+static void _webview_load_progress_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+}
+
+/* Double_Scroller */
+static void _webview_edge_top_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       if (_g_ug_data == NULL) {
+               debug_log("_g_ug_data == NULL");
+               return;
+       }
+
+       EmailViewerUGD *ug_data = (EmailViewerUGD *)data;
+
+       if (ug_data->is_webview_scrolling) {
+               debug_log("main scroller start");
+               ewk_view_vertical_panning_hold_set(ug_data->webview, EINA_TRUE);        //stop
+
+               if (elm_widget_scroll_freeze_get(ug_data->scroller) > 0)
+                       elm_object_scroll_freeze_pop(ug_data->scroller);        //restart
+
+               /* WORKAROUND. To fix scrolling problem when screen is on the bottom of webview. (Do panning to top fast) */
+               int x, y, w, h;
+               elm_scroller_region_get(ug_data->scroller, &x, &y, &w, &h);
+               debug_log("main_scroller(x:%d, y:%d, w:%d, h:%d)", x, y, w, h);
+               elm_scroller_region_bring_in(ug_data->scroller, x, 0, w, h);
+
+               ug_data->is_main_scroller_scrolling = EINA_TRUE;
+               ug_data->is_webview_scrolling = EINA_FALSE;
+       }
+}
+
+static void _webview_edge_bottom_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+}
+
+static void _webview_scroll_down_cb(void *data, Evas_Object *obj, void *event_info)
+{
+//     debug_log("");
+}
+
+static void _webview_scroll_up_cb(void *data, Evas_Object *obj, void *event_info)
+{
+//     debug_log("");
+}
+
+static int _send_read_report_mail(EmailViewerUGD *ug_data)
+{
+       debug_log("");
+
+       int err = 0;
+
+       email_account_t *account = NULL;
+       email_option_t option;
+       if (!email_engine_get_account_full_data(ug_data->account_id, &account)) {
+               debug_log("Failed email_engine_get_account_full_data");
+               goto error;
+       }
+
+       if (account) {
+               memcpy(&option, &(account->options), sizeof(email_option_t));
+       }
+
+       int output_receipt_mail_id = 0;
+       if ((err = email_add_read_receipt(ug_data->email_data->mail_id, &output_receipt_mail_id)) != EMAIL_ERROR_NONE) {
+               debug_log("   fail sending [%d]", err);
+               goto error;
+       }
+       debug_log("output_receipt_mail_id of saved email = %d", output_receipt_mail_id);
+
+       unsigned handle = 0;
+
+       if ((err = email_send_mail(output_receipt_mail_id, &option, &handle)) != EMAIL_ERROR_NONE) {
+               debug_log("   fail sending [%d]", err);
+               goto error;
+       } else {
+               debug_log("   finish sending");
+       }
+
+ error:
+       if (account) {
+               debug_log("[_send_read_report_mail] email_free_account is called");
+               email_free_account(&account, 1);
+               account = NULL;
+       }
+
+       return 1;
+}
+
+#if 0
+static void _measure_webview_xy(EmailViewerUGD *ug_data)
+{
+       debug_log("");
+
+       int a, b, c, d;
+       evas_object_geometry_get(ug_data->navi_bar, &a, &b, &c, &d);
+       debug_log("navi_bar x[%d] y[%d] w[%d] h[%d]", a, b, c, d);
+       evas_object_geometry_get(ug_data->sub_ly, &a, &b, &c, &d);
+       debug_log("sub_ly x[%d] y[%d] w[%d] h[%d]", a, b, c, d);
+       evas_object_geometry_get(ug_data->ctr_bar, &a, &b, &c, &d);
+       debug_log("ctr_bar x[%d] y[%d] w[%d] h[%d]", a, b, c, d);
+       evas_object_geometry_get(ug_data->webview_bx, &a, &b, &c, &d);
+       debug_log("webview_bx x[%d] y[%d] w[%d] h[%d]", a, b, c, d);
+}
+#endif
+
+/* EOF */
diff --git a/viewer/src/email-viewer.c b/viewer/src/email-viewer.c
new file mode 100755 (executable)
index 0000000..36315b2
--- /dev/null
@@ -0,0 +1,5801 @@
+/*
+ * Copyright 2012  Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *    http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef UG_MODULE_API
+#define UG_MODULE_API __attribute__ ((visibility("default")))
+#endif
+
+/* Header Include */
+#include <contacts-ug.h>
+#include <calendar-svc-provider.h>
+#include <media-util-register.h>
+#include <media-util-err.h>
+#include <app_service.h>
+#include <status.h>
+
+#include "email-viewer.h"
+#include "email-viewer-webview.h"
+#include "email-viewer-utils.h"
+#include "email-engine.h"
+#include "email-utils.h"
+#include "email-common-types.h"
+#include "email-debug.h"
+
+#define EMAIL_VCONF_KEY_BLOCK_RULE_CHANGED     "file/private/org.tizen.email/spam_rule_changed"
+
+/* Global Val */
+EmailViewerUGD *_g_ug_data = NULL;
+E_DBus_Connection *_g_viewer_dbus_conn = NULL;
+E_DBus_Signal_Handler *_g_viewer_signal_handler_network = NULL;
+E_DBus_Signal_Handler *_g_viewer_signal_handler_storage = NULL;
+
+extern ui_gadget_h _g_mailbox_ug;
+extern char *icu_locale;
+extern enum appcore_time_format icu_timeformat;
+extern void _set_mail_flags(EmailViewerProp *prop, EmailViewerPrivate *email_data);
+
+/* appcore */
+static void *on_create(ui_gadget_h ug, enum ug_mode mode, service_h data, void *priv);
+static void on_start(ui_gadget_h ug, service_h data, void *priv);
+static void on_pause(ui_gadget_h ug, service_h data, void *priv);
+static void on_resume(ui_gadget_h ug, service_h data, void *priv);
+static void on_destroy(ui_gadget_h ug, service_h data, void *pd);
+static void on_message(ui_gadget_h ug, service_h msg, service_h data, void *priv);
+static void on_event(ui_gadget_h ug, enum ug_event event, service_h data, void *priv);
+static void on_key_event(ui_gadget_h ug, enum ug_key_event event, service_h data, void *priv);
+
+/* ui-gadget */
+static void layout_cb(ui_gadget_h ug, enum ug_mode mode, void *priv);
+static void result_cb(ui_gadget_h ug, service_h result, void *priv);
+static void destroy_cb(ui_gadget_h ug, void *priv);
+static ui_gadget_h create_ug(char *ug_name, service_h bd, void *data);
+
+/* View related */
+static void _create_view(EmailViewerUGD *ug_data);
+static void _reset_view(EmailViewerUGD *ug_data);
+
+static void _win_profile_changed_cb(void *data, Evas_Object *obj, void *event);
+
+static Evas_Object *_create_navigation_bar(EmailViewerUGD *ug_data);
+static Evas_Object *_create_subject(EmailViewerUGD *ug_data);
+static Evas_Object *_create_to_addrs(EmailViewerUGD *ug_data);
+static Evas_Object *_create_cc_addrs(EmailViewerUGD *ug_data);
+static Evas_Object *_create_bcc_addrs(EmailViewerUGD *ug_data);
+static Evas_Object *_create_attach(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 *_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 _delete_evas_objects(EmailViewerUGD *ug_data);
+
+static void _launch_vcs_editor(EmailViewerUGD *ug_data);
+
+/* callback functions */
+static void _back_cb(void *data, Evas_Object *obj, void *event_info);
+static void _prev_mail_cb(void *data, Evas_Object *obj, void *event_info);
+static void _next_mail_cb(void *data, Evas_Object *obj, void *event_info);
+static void _reply_cb(void *data, Evas_Object *obj, void *event_info);
+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 _add_to_calendar_cb(void *data, Evas_Object *obj, void *event_info);
+static void _resend_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);
+static void _body_down_cb(void *data, Evas_Object *obj, void *event_info);
+static void _subject_favorite_clicked_cb(void *data, Evas_Object *obj, const char *emission, const char *source);
+static void _subject_detail_clicked_cb(void *data, Evas_Object *obj, const char *emission, const char *source);
+static void _attachment_item_collapse_cb(void *data, Evas_Object *obj, const char *emission, const char *source);
+static void _attachment_save_cb(void *data, Evas_Object *obj, const char *emission, const char *source);
+static void _attachment_clicked_cb(void *data, Evas_Object *obj, const char *emission, const char *source);
+static void _attachment_save_all_cb(void *data, Evas_Object *obj, const char *emission, const char *source);
+static void _attachment_bg_set_cb(void *data, Evas * evas, Evas_Object *obj, void *event_info);
+static void _attachment_bg_unset_cb(void *data, Evas * evas, Evas_Object *obj, void *event_info);
+static void _mark_as_unread_cb(void *data, Evas_Object *obj, void *event_info);
+static void _mark_as_read_cb(void *data, Evas_Object *obj, void *event_info);
+
+static void _ctxpopup_detail_contact_cb(void *data, Evas_Object *obj, void *event_info);
+static void _ctxpopup_send_email_cb(void *data, Evas_Object *obj, void *event_info);
+static void _ctxpopup_add_contact_cb(void *data, Evas_Object *obj, void *event_info);
+static void _ctxpopup_cutlink_update_contact_cb(void *data, Evas_Object *obj, void *event_info);
+static void _ctxpopup_select_contact_mode_email_cb(void *data, Evas_Object *obj, void *event_info);
+static void _ctxpopup_add_block_rule_cb(void *data, Evas_Object *obj, void *event_info);
+static void _popup_response_cb(void *data, Evas_Object *obj, void *event_info);
+static void _popup_response_delete_ok_cb(void *data, Evas_Object *obj, void *event_info);
+static void _popup_response_to_destroy_cb(void *data, Evas_Object *obj, void *event_info);
+
+static void _webview_multi_up_cb(void *data, Evas * evas, Evas_Object *obj, void *event_info);
+static void _webview_multi_down_cb(void *data, Evas * evas, Evas_Object *obj, void *event_info);
+static void _webview_policy_navigation_decide_cb(void *data, Evas_Object *obj, void *event_info);
+
+static void _outter_scroller_bottom_hit_cb(void *data, Evas_Object *obj, void *event_info);
+static void _outter_scroller_top_hit_cb(void *data, Evas_Object *obj, void *event_info);
+static void _outter_scroller_scroll_cb(void *data, Evas_Object *obj, void *event_info);
+
+static void _mbe_added_cb(void *data, Evas_Object *obj, void *event_info);
+static void _mbe_selected_cb(void *data, Evas_Object *obj, void *event_info);
+static void _destroy_down_progress_cb(void *data, Evas_Object *obj, void *event_info);
+
+/* Logic Functions */
+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);
+static int _update_attachment_info(EmailViewerUGD *ug_data, int index);
+static int _get_attachment_info_index(EmailViewerUGD *ug_data, int index);
+static void _show_select_info(EmailViewerUGD *ug_data, char *str);
+static void _save_attachment(EmailViewerUGD *ug_data, int index);
+static void _show_attachment(EmailViewerUGD *ug_data, int index);
+static void _save_attachment_all(EmailViewerUGD *ug_data);
+static void _dbus_receiver_setup(EmailViewerUGD *ug_data);
+static void _dbus_receiver_remove(EmailViewerUGD *ug_data);
+static void _on_edbus_event_email_viewer_receive(void *local_data, DBusMessage *message);
+
+static void _delete_contacts_list(EMAIL_CONTACT_LIST_INFO_S *contacts_list_item);
+static void *_contact_search_by_email(EmailViewerUGD *ug_data, const char *search_word);
+static void _set_value_down_progress(double val);
+static void _set_value_down_progress_by_index(double val, int index);
+static void _cancel_download_attachment(EmailViewerUGD *ug_data);
+
+/* Util Functions */
+static char *_get_service_fail_type(int type);
+static Evas_Object *_load_edj(Evas_Object *parent, const char *file, const char *group);
+
+/* genlist cb */
+static Eina_Bool _gl_state_get(void *data, Evas_Object *obj, const char *part);
+static void _gl_del(void *data, Evas_Object *obj);
+static char *_gl_text_get(void *data, Evas_Object *obj, const char *part);
+static Evas_Object *_gl_content_get(void *data, Evas_Object *obj, const char *part);
+static void _gl_sel(void *data, Evas_Object *obj, void *event_info);
+static char *_gl_sub_upper_text_get(void *data, Evas_Object *obj, const char *part);
+static Evas_Object *_gl_sub_upper_icon_get(void *data, Evas_Object *obj, const char *part);
+static void _gl_sub_upper_sel(void *data, Evas_Object *obj, void *event_info);
+static void _move_here_cb(void *data, Evas_Object *obj, void *event_info);
+static void _move_back_cb(void *data, Evas_Object *obj, void *event_info);
+static void _move_back_cb2(void *data, Evas_Object *obj, void *event_info);
+
+
+UG_MODULE_API int UG_MODULE_INIT(struct ug_module_ops *ops)
+{
+       debug_log("");
+
+       EmailViewerUGD *ug_data;
+
+       if (!ops)
+               return -1;
+
+       ug_data = calloc(1, sizeof(EmailViewerUGD));
+       if (!ug_data)
+               return -1;
+
+       _g_ug_data = ug_data;
+//     g_type_init();
+
+       ops->create = on_create;
+       ops->start = on_start;
+       ops->pause = on_pause;
+       ops->resume = on_resume;
+       ops->destroy = on_destroy;
+       ops->message = on_message;
+       ops->event = on_event;
+       ops->key_event = on_key_event;
+       ops->priv = ug_data;
+       ops->opt = UG_OPT_INDICATOR_ENABLE;
+
+       return 0;
+}
+
+UG_MODULE_API void UG_MODULE_EXIT(struct ug_module_ops *ops)
+{
+       debug_log("");
+       EmailViewerUGD *ug_data;
+
+       if (!ops)
+               return;
+
+       ug_data = ops->priv;
+       if (ug_data)
+               free(ug_data);
+
+       debug_log("~");
+}
+
+static void *on_create(ui_gadget_h ug, enum ug_mode mode, service_h data, void *priv)
+{
+       debug_log("");
+       EmailViewerUGD *ug_data;
+       char *account_id = NULL;
+       char *mail_id = NULL;
+       char *mailbox_id = NULL;
+       char *binternal = NULL;
+       char *landscape = NULL;
+
+       if (!ug || !priv)
+               return NULL;
+
+       ug_data = priv;
+       ug_data->ug = ug;
+
+       if (!data) {
+               debug_log("account_id and mail_id are required by arguments");
+               ug_data->b_direct_destroy = 1;
+               ug_destroy_me(ug_data->ug);
+               _g_ug_data = NULL;
+               return NULL;
+       }
+
+       /* email engine initialize */
+       if (email_engine_initialize() == FALSE) {
+               debug_log("Failed to initialize email engine");
+               ug_data->b_direct_destroy = 1;
+               ug_destroy_me(ug_data->ug);
+               _g_ug_data = NULL;
+               return NULL;
+       }
+
+/*     Elm_Theme *theme = elm_theme_new();
+       elm_theme_ref_set(theme, NULL);
+       ug_data->theme = theme;
+       elm_theme_extension_add(ug_data->theme, EV_THEME_PATH);*/
+
+       int ret;
+       ret = service_get_extra_data(data, EMAIL_BUNDLE_KEY_ACCOUNT_ID, (char **)&account_id);
+       debug_log("service_get_extra_data: %d", ret);
+       debug_log("account_id:%s", account_id);
+       ret = service_get_extra_data(data, EMAIL_BUNDLE_KEY_MAIL_ID, (char **)&mail_id);
+       debug_log("service_get_extra_data: %d", ret);
+       debug_log("mail_id:%s", mail_id);
+       ret = service_get_extra_data(data, EMAIL_BUNDLE_KEY_MAILBOX, (char **)&mailbox_id);
+       debug_log("service_get_extra_data: %d", ret);
+       debug_log("mailbox:%s", mailbox_id);
+       ret = service_get_extra_data(data, EMAIL_BUNDLE_KEY_INTERNAL, (char **)&binternal);
+       debug_log("service_get_extra_data: %d", ret);
+       debug_log("binternal:%s", binternal);
+       ret = service_get_extra_data(data, EMAIL_BUNDLE_KEY_FIRST_LANDSCAPE, (char **)&landscape);
+       debug_log("service_get_extra_data: %d", ret);
+       debug_log("landscape:%s", landscape);
+
+       if (landscape) {
+               ug_data->isRotate = atoi(landscape);
+               debug_log("@@@@ Landscape = %d @@@@", ug_data->isRotate);
+               g_free(landscape);
+       }
+
+       if (account_id) {
+               ug_data->account_id = atoi(account_id);
+               ug_data->folder_list = email_engine_get_ca_mailbox_list_using_glist(ug_data->account_id);
+               g_free(account_id);
+       }
+
+       if (mail_id) {
+               ug_data->mail_id = atoi(mail_id);
+               g_free(mail_id);
+       }
+
+       if (mailbox_id) {
+               g_free(ug_data->mailbox_name);
+               ug_data->mailbox_name = NULL;
+               ug_data->mailbox_id = atoi(mailbox_id);
+               g_free(mailbox_id);
+
+               int err = 0;
+               email_mail_data_t *mail_data = NULL;
+               if ((err = email_get_mail_data(ug_data->mail_id, &mail_data)) != EMAIL_ERROR_NONE) {
+                       debug_log("fail to get mail - err (%d)", err);
+               }
+
+               if (mail_data == NULL) {
+                       debug_log("mail_data is NULL");
+               }
+
+               ug_data->mailbox_name = g_strdup(mail_data->server_mailbox_name);
+               ug_data->mailbox_type = mail_data->mailbox_type;
+               debug_log("server_mailbox_name:%s", mail_data->server_mailbox_name);
+               debug_log("mailbox_name:%s", ug_data->mailbox_name);
+               debug_log("mailbox_type:%d", ug_data->mailbox_type);
+
+               if (mail_data) {
+                       debug_log("email_free_mail is called");
+                       email_free_mail_data(&(mail_data), 1);
+                       mail_data = NULL;
+               }
+       }
+
+       if (binternal) {
+               ug_data->b_internal = atoi(binternal);
+               if (ug_data->b_internal == 1)
+                       debug_log("############Launched from email-mailbox###############");
+               g_free(binternal);
+       }
+
+       debug_log("account_id [%d], mail_id [%d], mailbox_id [%d], mailbox name [%s]", ug_data->account_id, ug_data->mail_id, ug_data->mailbox_id, ug_data->mailbox_name);
+
+       if (ug_data->account_id <= 0 || ug_data->mail_id <= 0 || ug_data->mailbox_id <= 0) {
+               debug_log("Required bundle parameters are missing!");
+               ug_data->timeout_popup = elm_popup_add(ug_get_window());
+               evas_object_size_hint_weight_set(ug_data->timeout_popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+               elm_popup_timeout_set(ug_data->timeout_popup, 2);
+               elm_object_text_set(ug_data->timeout_popup, _("IDS_EMAIL_POP_UNABLE_TO_OPEN_EMAIL_MESSAGE"));
+               elm_object_part_text_set(ug_data->timeout_popup, "title,text", _("IDS_EMAIL_POP_ALERT"));
+               evas_object_smart_callback_add(ug_data->timeout_popup, "block,clicked", _popup_response_to_destroy_cb, ug_data);
+               evas_object_smart_callback_add(ug_data->timeout_popup, "timeout", _popup_response_to_destroy_cb, ug_data);
+               evas_object_show(ug_data->timeout_popup);
+
+               return elm_layout_add(ug_get_window());
+       }
+
+       ug_data->win_main = ug_get_window();
+
+       char *proxy_address = vconf_get_str(VCONFKEY_NETWORK_PROXY);
+       debug_log("network proxy: %s", proxy_address);
+       if (proxy_address && (g_strcmp0(proxy_address, "") != 0)) {
+               ewk_context_proxy_uri_set(ewk_context_default_get(), proxy_address);
+       }
+
+       if (proxy_address)
+               free(proxy_address);
+
+       int w, h;
+       ecore_x_window_size_get(ecore_x_window_root_first_get(), &w, &h);
+       debug_log("WINDOW W[%d] H[%d]", w, h);
+       ug_data->main_w = w;
+       ug_data->main_h = h;
+
+       ug_data->scale_factor = elm_scale_get();
+       debug_log("ELM Scale[%f]", ug_data->scale_factor);
+
+       if (w == 480) {
+               ug_data->webview_width = 710.0;
+               ug_data->webview_height = 949.0;
+               ug_data->webview_width_landscape = 710.0;
+               ug_data->webview_height_landscape = 568.0;
+               ug_data->webview_margin = 633;
+               ug_data->webview_margin_landscape = 379;
+       } else if (w == 720) {
+               ug_data->webview_width = 710.0;
+               ug_data->webview_height = 1009.0;
+               ug_data->webview_width_landscape = 710.0;
+               ug_data->webview_height_landscape = 558.0;
+               ug_data->webview_margin = 1029;
+               ug_data->webview_margin_landscape = 558;
+       } else {
+               ug_data->webview_width = 710.0;
+               ug_data->webview_height = 949.0;
+               ug_data->webview_width_landscape = 710.0;
+               ug_data->webview_height_landscape = 568.0;
+               ug_data->webview_margin = 633;
+               ug_data->webview_margin_landscape = 379;
+       }
+
+       ug_data->evas = evas_object_evas_get(ug_data->win_main);
+
+       /* Double_Scroller */
+       ug_data->b_noc = 1;
+
+       email_account_t *account = NULL;
+       if (email_engine_get_account_full_data(ug_data->account_id, &account)) {
+               debug_log("email_engine_get_account");
+               if (account) {
+                       ug_data->account_type = account->incoming_server_type;
+                       snprintf(ug_data->account_email_address, sizeof(ug_data->account_email_address), "%s", account->user_email_address);
+
+                       account_user_data_t *ud = (account_user_data_t*)account->user_data;
+                       if (ud != NULL) {
+                               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;
+               }
+       }
+
+       /* DBUS */
+       _dbus_receiver_setup(ug_data);
+
+       _init_viewer_data(ug_data->account_id, ug_data->mail_id, NULL, ug_data);
+       _create_view(ug_data);
+
+       _check_body_download(ug_data);
+
+       ug_data->base = ug_data->layout_main;
+
+       ug_data->display_download_result = TRUE;
+
+       return ug_data->base;
+}
+
+static void on_start(ui_gadget_h ug, service_h data, void *priv)
+{
+       debug_log("");
+}
+
+static void on_pause(ui_gadget_h ug, service_h data, void *priv)
+{
+       debug_log("");
+}
+
+static void on_resume(ui_gadget_h ug, service_h data, void *priv)
+{
+       debug_log("");
+}
+
+static void on_destroy(ui_gadget_h ug, service_h data, void *pd)
+{
+       debug_log("");
+       EmailViewerUGD *ug_data;
+
+       if (!ug || !pd)
+               return;
+
+       ug_data = pd;
+
+       _g_ug_data = NULL;
+
+       if (ug_data->b_direct_destroy)
+               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);
+
+       if (priv->email_handle != 0)
+               email_engine_stop_working(ug_data->account_id, priv->email_handle);
+
+       for (i = 0; i < att_len; i++) {
+               if (priv->download_all_email_handle[i] != 0)
+                       email_engine_stop_working(ug_data->account_id, priv->download_all_email_handle[i]);
+       }
+
+/*     if (ug_data->theme) {
+               elm_theme_extension_del(ug_data->theme, EV_THEME_PATH);
+               elm_theme_free(ug_data->theme);
+               ug_data->theme = NULL;
+       }*/
+
+       _delete_evas_objects(ug_data);
+
+       debug_log("free webview_data");
+       if (ug_data->webview_data) {
+               free(ug_data->webview_data);
+               ug_data->webview_data = NULL;
+       }
+
+       debug_log("free address info list");
+       email_free_address_info_list(&(priv->addrs_info_list));
+       ug_data->from_list = NULL;
+       ug_data->to_list = NULL;
+       ug_data->cc_list = NULL;
+       ug_data->bcc_list = NULL;
+
+       debug_log("free mail_info");
+       if (ug_data->email_data->mail_info) {
+               email_free_mail_data(&(ug_data->email_data->mail_info), 1);
+               ug_data->email_data->mail_info = NULL;
+       }
+
+       if (ug_data->email_data->attachment_info && ug_data->email_data->attachment_count > 0) {
+               email_free_attachment_data(&(ug_data->email_data->attachment_info), ug_data->email_data->attachment_count);
+               ug_data->email_data->attachment_info = NULL;
+               ug_data->email_data->attachment_count = 0;
+       }
+
+       debug_log("free email_data");
+       if (ug_data->email_data) {
+               free(ug_data->email_data);
+               ug_data->email_data = NULL;
+       }
+
+       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);
+               }
+               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;
+       }
+
+       email_engine_finalize();
+
+       _dbus_receiver_remove(NULL);
+
+       int ret = e_dbus_shutdown();
+       debug_log("ret: %d", ret);
+       debug_log("~");
+
+       ug_data->base = NULL;
+}
+
+static void on_message(ui_gadget_h ug, service_h msg, service_h data, void *priv)
+{
+       debug_log("");
+
+       if (!ug || !priv)
+               return;
+
+       debug_log("_g_ug_data - %p", _g_ug_data);
+       if (_g_ug_data != NULL) {
+               debug_log("Hide previous mail data");
+               _hide_view(_g_ug_data);
+       }
+
+       char *account_id = NULL;
+       char *mail_id = NULL;
+       char *mailbox_id = NULL;
+       char *binternal = NULL;
+       char *landscape = NULL;
+
+       EmailViewerUGD *ug_data = (EmailViewerUGD *)priv;
+       _g_ug_data = ug_data;
+
+       /* reset viewer */
+       int ret;
+       ret = service_get_extra_data(msg, EMAIL_BUNDLE_KEY_ACCOUNT_ID, (char **)&account_id);
+       debug_log("service_get_extra_data: %d", ret);
+       debug_log("account_id:%s", account_id);
+       ret = service_get_extra_data(msg, EMAIL_BUNDLE_KEY_MAIL_ID, (char **)&mail_id);
+       debug_log("service_get_extra_data: %d", ret);
+       debug_log("mail_id:%s", mail_id);
+       ret = service_get_extra_data(msg, EMAIL_BUNDLE_KEY_MAILBOX, (char **)&mailbox_id);
+       debug_log("service_get_extra_data: %d", ret);
+       debug_log("mailbox:%s", mailbox_id);
+       ret = service_get_extra_data(msg, EMAIL_BUNDLE_KEY_INTERNAL, (char **)&binternal);
+       debug_log("service_get_extra_data: %d", ret);
+       debug_log("binternal:%s", binternal);
+       ret = service_get_extra_data(msg, EMAIL_BUNDLE_KEY_FIRST_LANDSCAPE, (char **)&landscape);
+       debug_log("service_get_extra_data: %d", ret);
+       debug_log("landscape:%s", landscape);
+
+       if (landscape) {
+               ug_data->isRotate = atoi(landscape);
+               debug_log("@@@@ Landscape = %d @@@@", ug_data->isRotate);
+               g_free(landscape);
+       }
+
+       if (account_id) {
+               ug_data->account_id = atoi(account_id);
+               ug_data->folder_list = email_engine_get_ca_mailbox_list_using_glist(ug_data->account_id);
+               g_free(account_id);
+       }
+
+       if (mail_id) {
+               ug_data->mail_id = atoi(mail_id);
+               g_free(mail_id);
+       }
+
+       if (mailbox_id) {
+               g_free(ug_data->mailbox_name);
+               ug_data->mailbox_name = NULL;
+               ug_data->mailbox_id = atoi(mailbox_id);
+               g_free(mailbox_id);
+
+               int err = 0;
+               email_mail_data_t *mail_data = NULL;
+               if ((err = email_get_mail_data(ug_data->mail_id, &mail_data)) != EMAIL_ERROR_NONE) {
+                       debug_log("fail to get mail - err (%d)", err);
+               }
+
+               if (mail_data == NULL) {
+                       debug_log("mail_data is NULL");
+               }
+
+               ug_data->mailbox_name = g_strdup(mail_data->server_mailbox_name);
+               ug_data->mailbox_type = mail_data->mailbox_type;
+               debug_log("server_mailbox_name:%s", mail_data->server_mailbox_name);
+               debug_log("mailbox_name:%s", ug_data->mailbox_name);
+               debug_log("mailbox_type:%d", ug_data->mailbox_type);
+
+               if (mail_data) {
+                       debug_log("email_free_mail is called");
+                       email_free_mail_data(&(mail_data), 1);
+                       mail_data = NULL;
+               }
+       }
+
+       if (binternal) {
+               ug_data->b_internal = atoi(binternal);
+               if (ug_data->b_internal == 1)
+                       debug_log("############Launched from email-mailbox###############");
+               g_free(binternal);
+       }
+
+       debug_log("account_id [%d], mail_id [%d], mailbox_id[%d], mailbox name [%s]", ug_data->account_id, ug_data->mail_id, ug_data->mailbox_id, ug_data->mailbox_name);
+
+       if (ug_data->account_id <= 0 || ug_data->mail_id <= 0 || ug_data->mailbox_id <= 0) {
+               debug_log("Required bundle parameters are missing!");
+               _g_ug_data = NULL;
+               return;
+       }
+
+       email_account_t *account = NULL;
+       if (email_engine_get_account_full_data(ug_data->account_id, &account)) {
+               debug_log("email_engine_get_account");
+               if (account) {
+                       ug_data->account_type = account->incoming_server_type;
+                       snprintf(ug_data->account_email_address, sizeof(ug_data->account_email_address), "%s", account->user_email_address);
+
+                       account_user_data_t *ud = (account_user_data_t*)account->user_data;
+                       if (ud != NULL) {
+                               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);
+
+               debug_log("b_show_remote_images is %d", ug_data->b_show_remote_images);
+               if (ewk_setting_load_remote_images_set(setting, ug_data->b_show_remote_images) == EINA_FALSE) {
+                       debug_log("SET remote images is FAILED!");
+               }
+       }
+
+       _init_viewer_data(ug_data->account_id, ug_data->mail_id, NULL, ug_data);
+
+       evas_object_show(ug_data->layout_main);
+       evas_object_raise(ug_data->layout_main);
+
+       _reset_view(ug_data);
+
+       ug_data->display_download_result = TRUE;
+}
+
+static void on_event(ui_gadget_h ug, enum ug_event event, service_h data, void *priv)
+{
+       debug_log("");
+
+       if (!ug || !priv)
+               return;
+
+       EmailViewerUGD *ug_data = (EmailViewerUGD *)priv;
+       EmailViewerProp *prop = ug_data->property;
+       char date_time[MAX_STR_LEN] = { 0, };
+       char *formatted_date = NULL;
+       int ret = 0;
+
+       debug_log("rotate event = %d", event);
+
+       switch (event) {
+       case UG_EVENT_LOW_MEMORY:
+               break;
+       case UG_EVENT_LOW_BATTERY:
+               break;
+       case UG_EVENT_LANG_CHANGE:
+               break;
+       case UG_EVENT_ROTATE_PORTRAIT:
+       case UG_EVENT_ROTATE_PORTRAIT_UPSIDEDOWN:
+               if (ug_data->b_internal && ug_data->isRotate == true) {
+                       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);
+                               ug_data->con_popup = NULL;
+                       }
+
+                       if (ug_data->navi_move_it1) {
+                               debug_log("move1");
+                               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_TRUE);
+                               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->navi_move_it2) {
+                               debug_log("move2");
+                               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_cb2, ug_data);
+                               elm_object_item_part_content_set(ug_data->navi_move_it2, "prev_btn", move_back_btn);
+                               elm_naviframe_item_title_visible_set(ug_data->navi_move_it2, EINA_TRUE);
+                       }
+
+                       if (ug_data->b_btn) {
+                               evas_object_smart_callback_del(ug_data->b_btn, "clicked", _back_cb);
+                               evas_object_del(ug_data->b_btn);
+                               ug_data->b_btn = NULL;
+                       }
+
+                       ug_data->b_btn = elm_button_add(ug_data->navi_bar);
+                       elm_object_style_set(ug_data->b_btn, "naviframe/back_btn/default");
+                       evas_object_smart_callback_add(ug_data->b_btn, "clicked", _back_cb, ug_data);
+                       elm_object_item_part_content_set(ug_data->navi_main_it, "prev_btn", ug_data->b_btn);
+
+                       int resized_w = ug_data->webview_width * ug_data->scale_factor;
+                       int resized_h = ug_data->webview_height * ug_data->scale_factor;
+                       evas_object_size_hint_min_set(ug_data->webview, resized_w, resized_h);
+
+                       ug_data->isRotate = false;
+               }
+
+               break;
+
+       case UG_EVENT_ROTATE_LANDSCAPE:
+       case UG_EVENT_ROTATE_LANDSCAPE_UPSIDEDOWN:
+               if (ug_data->b_internal && ug_data->isRotate == false) {
+                       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);
+                               ug_data->con_popup = NULL;
+                       }
+
+                       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);
+                               }
+                               elm_naviframe_item_title_visible_set(ug_data->navi_move_it1, EINA_FALSE);
+                       }
+                       if (ug_data->navi_move_it2) {
+                               debug_log("move2");
+                               Evas_Object *move_back_btn = elm_object_item_part_content_get(ug_data->navi_move_it2, "prev_btn");
+                               if (move_back_btn) {
+                                       evas_object_smart_callback_del(move_back_btn, "clicked", _move_back_cb2);
+                                       evas_object_del(move_back_btn);
+                                       elm_object_item_part_content_set(ug_data->navi_move_it2, "prev_btn", NULL);
+                               }
+                               elm_naviframe_item_title_visible_set(ug_data->navi_move_it2, EINA_FALSE);
+                       }
+
+                       if (ug_data->b_btn) {
+                               evas_object_smart_callback_del(ug_data->b_btn, "clicked", _back_cb);
+                               evas_object_del(ug_data->b_btn);
+                               ug_data->b_btn = NULL;
+                               elm_object_item_part_content_set(ug_data->navi_main_it, "prev_btn", NULL);
+                       }
+
+                       int resized_w = ug_data->webview_width_landscape * ug_data->scale_factor;
+                       int resized_h = ug_data->webview_height_landscape * ug_data->scale_factor;
+                       evas_object_size_hint_min_set(ug_data->webview, resized_w, resized_h);
+
+                       ug_data->isRotate = true;
+               }
+
+               break;
+
+       case UG_EVENT_REGION_CHANGE:
+               appcore_get_timeformat(&icu_timeformat);
+               /* ICU API to set default locale */
+               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;
+
+               edje_object_part_text_set(_EDJ(ug_data->ly_subject), "elm.text.sub", date_time);
+               evas_object_show(ug_data->ly_subject);
+               break;
+
+       default:
+               break;
+       }
+}
+
+static void on_key_event(ui_gadget_h ug, enum ug_key_event event, service_h data, void *priv)
+{
+       debug_log("");
+
+       if (!ug)
+               return;
+
+       EmailViewerUGD *ug_data = (EmailViewerUGD *)priv;
+       EmailViewerPrivate *private = ug_data->email_data;
+       EmailViewerProp *prop = ug_data->property;
+
+       switch (event) {
+       case UG_KEY_EVENT_END:
+               if (_g_ug_data) {
+                       if (ug_data->notify != NULL || ug_data->pb_notify != NULL || ug_data->timeout_popup != NULL) {
+                               if (ug_data->timeout_popup) {
+                                       evas_object_del(ug_data->timeout_popup);
+                                       ug_data->timeout_popup = NULL;
+                               }
+
+                               if (ug_data->notify) {
+                                       evas_object_del(ug_data->notify);
+                                       ug_data->notify = NULL;
+                               }
+
+                               if (ug_data->pb_notify) {
+                                       int i = 0;
+                                       int att_len = g_list_length(prop->attachments);
+
+                                       evas_object_del(ug_data->pb_notify);
+                                       ug_data->pb_notify = NULL;
+
+                                       if (private->email_handle != 0)
+                                               email_engine_stop_working(ug_data->account_id, private->email_handle);
+
+                                       for (i = 0; i < att_len; i++) {
+                                               if (private->download_all_email_handle[i] != 0)
+                                                       email_engine_stop_working(ug_data->account_id, private->download_all_email_handle[i]);
+                                       }
+                               }
+
+                               if (ug_data->pb_notify_lb) {
+                                       evas_object_del(ug_data->pb_notify_lb);
+                                       ug_data->pb_notify_lb = NULL;
+                               }
+                       } else {
+                               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");
+                               }
+
+                               if (ug_data->b_internal)
+                                       _hide_view(ug_data);
+                               else
+                                       ug_destroy_me(ug_data->ug);
+                       }
+               } else {
+                       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_END_KEY);
+                       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);
+               }
+               break;
+
+       default:
+               break;
+       }
+}
+
+static void layout_cb(ui_gadget_h ug, enum ug_mode mode, void *priv)
+{
+       debug_log("");
+       Evas_Object *base, *win;
+
+       if (!ug || !priv)
+               return;
+
+       base = ug_get_layout(ug);
+       if (!base)
+               return;
+
+       win = ug_get_window();
+
+       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:
+               break;
+       }
+}
+
+static void result_cb(ui_gadget_h ug, service_h result, void *priv)
+{
+       debug_log("");
+
+       if (!ug || !priv)
+               return;
+
+       EmailViewerUGD *ug_data = (EmailViewerUGD *)priv;
+       EmailViewerProp *prop = ug_data->property;
+       EmailViewerPrivate *private = ug_data->email_data;
+
+       if (ug == ug_data->ug_composer) {
+               char *cmd = NULL;
+               int ret = service_get_extra_data(result, EMAIL_BUNDLE_KEY_SAVE_ALL, (char **)&cmd);
+               debug_log("service_get_extra_data: %d", ret);
+               debug_log("return of bundle_get_val for save all(%s)", cmd);
+               if (cmd) {
+                       debug_log("save all from composer(%s)", cmd);
+
+                       if (prop->real_att_len == 1) {
+                               private->b_all_att_save = TRUE;
+                               _save_attachment(ug_data, 0);
+                       } else if (prop->real_att_len > 1) {
+                               _save_attachment_all(ug_data);
+                       }
+                       g_free(cmd);
+                       return;
+               }
+
+               ret = service_get_extra_data(result, EMAIL_BUNDLE_KEY_CANCEL_ALL, (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("cancel all attachment from composer(%s)", cmd);
+
+                       _cancel_download_attachment(ug_data);
+                       g_free(cmd);
+                       return;
+               }
+       }
+}
+
+static void destroy_cb(ui_gadget_h ug, void *priv)
+{
+       debug_log("");
+       if (!ug || !priv)
+               return;
+
+       EmailViewerUGD *ug_data = (EmailViewerUGD *)priv;
+       EmailViewerProp *prop = ug_data->property;
+       ug_data->display_download_result = TRUE;
+
+       if (ug == ug_data->ug_composer) {
+               ug_data->ug_composer = NULL;
+       }
+
+       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("");
+       ui_gadget_h ug;
+       struct ug_cbs cbs = { 0, };
+
+       cbs.layout_cb = layout_cb;
+       cbs.result_cb = result_cb;
+       cbs.destroy_cb = destroy_cb;
+       cbs.priv = data;
+
+       EmailViewerUGD *ug_data = (EmailViewerUGD *)data;
+
+       ug = ug_create(ug_data->ug, ug_name, UG_MODE_FULLVIEW, bd, &cbs);
+
+       return ug;
+}
+
+static void _create_view(EmailViewerUGD *ug_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);
+
+       /* create layout */
+       ug_data->layout_main = elm_layout_add(ug_data->win_main);
+
+       if (ug_data->b_internal)
+               elm_layout_theme_set(ug_data->layout_main, "layout", "application", "noindicator");
+       else
+               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);
+       evas_object_show(ug_data->layout_main);
+
+       elm_object_part_content_set(ug_data->layout_main, "elm.swallow.bg", ug_data->bg);
+
+       /* indicator */
+       elm_win_indicator_mode_set(ug_data->win_main, ELM_WIN_INDICATOR_SHOW);
+
+       evas_object_smart_callback_add(ug_data->win_main, "profile,changed", _win_profile_changed_cb, ug_data);
+
+       /* navigation Bar */
+       _create_navigation_bar(ug_data);
+
+       /* push navigation bar */
+       ug_data->sub_ly = elm_layout_add(ug_data->navi_bar);
+       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);
+       evas_object_show(ug_data->sub_ly);
+
+       /* back button */
+       b_btn = elm_button_add(ug_data->navi_bar);
+       elm_object_style_set(b_btn, "naviframe/back_btn/default");
+       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);
+
+       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 scroller */
+       ug_data->scroller = elm_scroller_add(ug_data->navi_bar);
+       evas_object_propagate_events_set(ug_data->scroller, EINA_FALSE);
+       elm_scroller_bounce_set(ug_data->scroller, EINA_FALSE, EINA_TRUE);
+       elm_scroller_policy_set(ug_data->scroller, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
+       evas_object_show(ug_data->scroller);
+       evas_object_smart_callback_add(ug_data->scroller, "edge,bottom", _outter_scroller_bottom_hit_cb, ug_data);
+       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);
+               }
+       }
+
+       /* create main box */
+       ug_data->main_bx = elm_box_add(ug_data->navi_bar);
+       evas_object_size_hint_weight_set(ug_data->main_bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(ug_data->main_bx, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(ug_data->main_bx);
+       elm_object_content_set(ug_data->scroller, ug_data->main_bx);
+
+       if (ug_data->property->has_attachment)
+               ug_data->got_att = 1;
+       else
+               ug_data->got_att = 0;
+
+       /* packing subject, addrs, attachment */
+       _create_subject(ug_data);
+
+       if (ug_data->got_att) {
+               _create_attach(ug_data);
+       }
+
+       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");
+
+                       evas_object_smart_callback_del(ug_data->b_btn, "clicked", _back_cb);
+                       evas_object_del(ug_data->b_btn);
+                       ug_data->b_btn = NULL;
+
+                       elm_object_item_part_content_set(ug_data->navi_main_it, "prev_btn", NULL);
+               }
+       }
+}
+
+static void _reset_view(EmailViewerUGD *ug_data)
+{
+       debug_log("");
+       EmailViewerProp *prop = ug_data->property;
+       int ret;
+       char date_time[MAX_STR_LEN] = { 0, };
+
+       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");
+
+                       evas_object_smart_callback_del(ug_data->b_btn, "clicked", _back_cb);
+                       evas_object_del(ug_data->b_btn);
+                       ug_data->b_btn = NULL;
+
+                       elm_object_item_part_content_set(ug_data->navi_main_it, "prev_btn", NULL);
+               }
+
+               /* Set scroller to start - height made 480 to consider viewer in split view */
+               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) {
+
+                       evas_object_smart_callback_del(ug_data->b_btn, "clicked", _back_cb);
+                       evas_object_del(ug_data->b_btn);
+                       ug_data->b_btn = NULL;
+               }
+
+               debug_log("showing back button");
+
+               ug_data->b_btn = elm_button_add(ug_data->navi_bar);
+               elm_object_style_set(ug_data->b_btn, "naviframe/back_btn/default");
+               evas_object_smart_callback_add(ug_data->b_btn, "clicked", _back_cb, ug_data);
+
+               elm_object_item_part_content_set(ug_data->navi_main_it, "prev_btn", ug_data->b_btn);
+
+               /* Set scroller to start */
+               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);
+       char *_subject_concated = g_strconcat("<font_size=44><color=#000000FF>", _subject, "</color></font_size>", NULL);
+       elm_object_text_set(ug_data->lb_subject, _subject_concated);
+       elm_label_wrap_width_set(ug_data->lb_subject, ug_data->main_w - (int)(110 * ug_data->scale_factor));
+       elm_label_line_wrap_set(ug_data->lb_subject, ELM_WRAP_WORD);
+       g_free(_subject);
+       g_free(_subject_concated);
+
+       /* reset date & time */
+       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);
+
+       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);
+                       break;
+               case EMAIL_FLAG_FLAGED:
+                       elm_icon_file_set(favorite_icon, IMGDIR "/M02_email_icon_favorite_on.png", NULL);
+                       break;
+               case EMAIL_FLAG_TASK_STATUS_CLEAR:
+                       elm_icon_file_set(favorite_icon, IMGDIR "/M02_email_Flag_Clear.png", NULL);
+                       break;
+               case EMAIL_FLAG_TASK_STATUS_ACTIVE:
+                       elm_icon_file_set(favorite_icon, IMGDIR "/M02_email_Flag_Active.png", NULL);
+                       break;
+               case EMAIL_FLAG_TASK_STATUS_COMPLETE:
+                       elm_icon_file_set(favorite_icon, IMGDIR "/M02_email_Flag_Complete.png", NULL);
+                       break;
+       }
+       evas_object_size_hint_aspect_set(favorite_icon, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
+       elm_icon_resizable_set(favorite_icon, 1, 1);
+       evas_object_del(elm_object_part_content_unset(ug_data->ly_subject, "elm.icon.favorite"));
+       elm_object_part_content_set(ug_data->ly_subject, "elm.icon.favorite", favorite_icon);
+       evas_object_show(favorite_icon);
+
+       evas_object_show(ug_data->ly_subject);
+       elm_box_pack_end(ug_data->main_bx, ug_data->ly_subject);
+
+       if (prop->has_attachment)
+               ug_data->got_att = 1;
+       else
+               ug_data->got_att = 0;
+
+       /* pack attachment if it exist */
+       if (ug_data->got_att) {
+               _create_attach(ug_data);
+       }
+
+       /* check body downloaded */
+       _check_body_download(ug_data);
+}
+
+void _hide_view(EmailViewerUGD *ug_data)
+{
+       debug_log("");
+       EmailViewerProp *prop = ug_data->property;
+       EmailViewerPrivate *priv = ug_data->email_data;
+
+       debug_log("Cancelling all attachment downloads");
+       _cancel_download_attachment(ug_data);
+
+       ug_data->display_download_result = FALSE;
+       _g_ug_data = NULL;
+
+       if (elm_naviframe_top_item_get(ug_data->navi_bar) != ug_data->navi_main_it) {
+               ug_data->navi_move_it1 = NULL;
+               ug_data->navi_move_it2 = NULL;
+               elm_naviframe_item_pop_to(ug_data->navi_main_it);
+       }
+
+       evas_object_hide(ug_data->layout_main);
+       elm_box_unpack_all(ug_data->main_bx);
+       elm_object_scroll_freeze_pop(ug_data->scroller);
+
+       evas_object_hide(ug_data->ly_subject);
+       evas_object_hide(ug_data->lb_subject);
+       evas_object_hide(ug_data->webview_bx);
+       evas_object_hide(ug_data->webview);
+
+       if (ug_data->partial_dn_btn) {
+               evas_object_del(ug_data->partial_dn_btn);
+               ug_data->partial_dn_btn = NULL;
+       }
+
+       if (ug_data->partial_dn_btn_bx) {
+               evas_object_del(ug_data->partial_dn_btn_bx);
+               ug_data->partial_dn_btn_bx = NULL;
+       }
+
+       if (ug_data->ctr_bar) {
+               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) {
+               evas_object_del(ug_data->to_ly);
+               ug_data->to_ly = NULL;
+       }
+
+       if (ug_data->cc_ly) {
+               evas_object_del(ug_data->cc_ly);
+               ug_data->cc_ly = NULL;
+       }
+
+       if (ug_data->bcc_ly) {
+               evas_object_del(ug_data->bcc_ly);
+               ug_data->bcc_ly = NULL;
+       }
+
+       if (ug_data->got_att) {
+               int i;
+
+               evas_object_del(ug_data->attach_hd_bk);
+               ug_data->attach_hd_ly = NULL;
+               ug_data->attach_hd_bk = NULL;
+
+               if (prop->real_att_len > 1) {
+                       for (i = 0; i < prop->real_att_len; i++) {
+                               if (ug_data->attach_ex_ly != NULL) {
+                                       if (ug_data->attach_ex_ly[i] != NULL) {
+                                               debug_log("index %d", i);
+                                               evas_object_del(ug_data->attach_ex_bk[i]);
+                                               ug_data->attach_ex_ly[i] = NULL;
+                                               ug_data->attach_ex_bk[i] = NULL;
+                                       }
+                               }
+                       }
+
+                       if (ug_data->attach_ex_ly != NULL) {
+                               free(ug_data->attach_ex_ly);
+                               ug_data->attach_ex_ly = NULL;
+                               ug_data->attach_ex_bk = NULL;
+                       }
+               }
+
+               for (i = 0; i <= prop->att_len; i++) {
+                       if (ug_data->progress_bar_ly[i] != NULL) {
+                               evas_object_del(ug_data->progress_bar_ly[i]);
+                               ug_data->progress_bar_ly[i] = NULL;
+                               ug_data->progress_bar[i] = NULL;
+                       }
+               }
+       }
+
+       if (ug_data->con_popup != NULL) {
+               evas_object_del(ug_data->con_popup);
+               ug_data->con_popup = NULL;
+       }
+
+       if (ug_data->notify != NULL) {
+               evas_object_del(ug_data->notify);
+               ug_data->notify = NULL;
+       }
+
+       edje_object_signal_emit(_EDJ(ug_data->ly_subject), "elm,state,contracted", "elm");
+
+       evas_object_hide(ug_data->noc_bx);
+       evas_object_hide(ug_data->dn_btn);
+
+       ewk_view_uri_set(ug_data->webview, EMAIL_DEFAULT_HTML);
+
+       debug_log("free address info list");
+       email_free_address_info_list(&(priv->addrs_info_list));
+       ug_data->from_list = NULL;
+       ug_data->to_list = NULL;
+       ug_data->cc_list = NULL;
+       ug_data->bcc_list = NULL;
+
+       ug_data->got_att = 0;
+       ug_data->subject_onoff_flag = 0;
+       ug_data->attach_onoff_flag = 0;
+       ug_data->b_partial_body = 0;
+       ug_data->b_internal = 0;
+       ug_data->scroller_locked = 0;
+       ug_data->m_is_multi_touch = 0;
+
+       ug_data->navi_move_it1 = NULL;
+       ug_data->navi_move_it2 = NULL;
+
+       /* Double_Scroller */
+       ug_data->b_noc = 1;
+       ug_data->b_load_finished = EINA_FALSE;
+       ug_data->b_show_remote_images = EINA_FALSE;
+       ug_data->is_webview_scrolling = EINA_FALSE;
+       ug_data->is_main_scroller_scrolling = EINA_FALSE;
+}
+
+static void _win_profile_changed_cb(void *data, Evas_Object *obj, void *event)
+{
+       debug_log("");
+       if (!data) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       EmailViewerUGD *ug_data = (EmailViewerUGD *)data;
+
+       const char *profile = elm_config_profile_get();
+       if (!g_strcmp0(profile, "desktop"))
+               elm_layout_theme_set(ug_data->layout_main, "layout", "application", "noindicator");
+       else
+               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 Evas_Object *_create_navigation_bar(EmailViewerUGD *ug_data)
+{
+       debug_log("");
+       Evas_Object *navi_bar;
+
+       navi_bar = elm_naviframe_add(ug_data->layout_main);
+       if (navi_bar == NULL) {
+               debug_log("navi_bar == NULL");
+               return NULL;
+       }
+
+       elm_object_part_content_set(ug_data->layout_main, "elm.swallow.content", navi_bar);
+       evas_object_show(navi_bar);
+
+       ug_data->navi_bar = navi_bar;
+       return navi_bar;
+}
+
+static Evas_Object *_create_subject(EmailViewerUGD *ug_data)
+{
+       debug_log("");
+       EmailViewerProp *prop = ug_data->property;
+       int ret;
+       char date_time[MAX_STR_LEN] = { 0, };
+
+       /* append subject */
+       Evas_Object *di = elm_layout_add(ug_data->navi_bar);
+       elm_layout_file_set(di, EV_THEME_PATH, "layout.email.detail_subject");
+       evas_object_size_hint_align_set(di, EVAS_HINT_FILL, 0.0);
+
+       Evas_Object *subject_label;
+       subject_label = elm_label_add(di);
+       elm_object_part_content_set(di, "elm.text", subject_label);
+       char *subject = elm_entry_utf8_to_markup(prop->subject);
+       char *subject_tagged = g_strconcat("<font_size=44><color=#000000FF>", subject, "</color></font_size>", NULL);
+       elm_object_text_set(subject_label, subject_tagged);
+       elm_label_wrap_width_set(subject_label, ug_data->main_w - (int)(110 * ug_data->scale_factor));
+       elm_label_line_wrap_set(subject_label, ELM_WRAP_WORD);
+       ug_data->lb_subject = subject_label;
+       g_free(subject);
+       g_free(subject_tagged);
+
+       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(di, "elm.text.sub", date_time);
+
+       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);
+                       break;
+               case EMAIL_FLAG_FLAGED:
+                       elm_icon_file_set(favorite_icon, IMGDIR "/M02_email_icon_favorite_on.png", NULL);
+                       break;
+               case EMAIL_FLAG_TASK_STATUS_CLEAR:
+                       elm_icon_file_set(favorite_icon, IMGDIR "/M02_email_Flag_Clear.png", NULL);
+                       break;
+               case EMAIL_FLAG_TASK_STATUS_ACTIVE:
+                       elm_icon_file_set(favorite_icon, IMGDIR "/M02_email_Flag_Active.png", NULL);
+                       break;
+               case EMAIL_FLAG_TASK_STATUS_COMPLETE:
+                       elm_icon_file_set(favorite_icon, IMGDIR "/M02_email_Flag_Complete.png", NULL);
+                       break;
+       }
+       evas_object_size_hint_aspect_set(favorite_icon, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
+       elm_icon_resizable_set(favorite_icon, 1, 1);
+       elm_object_part_content_set(di, "elm.icon.favorite", favorite_icon);
+       evas_object_show(favorite_icon);
+
+       evas_object_show(di);
+       elm_box_pack_end(ug_data->main_bx, di);
+       ug_data->ly_subject = di;
+
+       Evas_Object *edje = elm_layout_edje_get(di);
+
+       if (ug_data->to_list || ug_data->cc_list || ug_data->bcc_list) {
+               edje_object_signal_callback_add(edje, "elm,action,expand,toggle", "elm", _subject_detail_clicked_cb, di);
+               edje_object_signal_callback_add(edje, "elm,action,toggle", "elm", _subject_favorite_clicked_cb, di);
+       } else {
+               edje_object_signal_emit(edje, "elm,state,arrow_hidden", "elm");
+       }
+
+       return di;
+}
+
+static Evas_Object *_create_to_addrs(EmailViewerUGD *ug_data)
+{
+       debug_log("");
+       email_address_info_t *addrs_info = NULL;
+       Elm_Object_Item *mbe_item;
+
+       if (ug_data->to_list == NULL) {
+               debug_log("to_list is NULL");
+               return NULL;
+       }
+
+       int n_to_list = g_list_length(ug_data->to_list);
+       int i = 0;
+
+       if (n_to_list <= 0) {
+               debug_log("to_list count is 0");
+               return NULL;
+       }
+
+       Evas_Object *di = elm_layout_add(ug_data->main_bx);
+       elm_layout_file_set(di, EV_THEME_PATH, "layout.email.to_cc");
+       evas_object_size_hint_align_set(di, EVAS_HINT_FILL, 0.0);
+       evas_object_show(di);
+       ug_data->to_ly = di;
+       elm_box_pack_after(ug_data->main_bx, di, ug_data->ly_subject);
+
+       Evas_Object *to_mbe = elm_multibuttonentry_add(ug_data->main_bx);
+       char desc[MAX_STR_LEN] = { 0, };
+       snprintf(desc, MAX_STR_LEN, "%s:", dgettext("sys_string", "IDS_COM_BODY_TO"));
+       char *to_str = g_strconcat("<font_size=36><color=#000000FF>", desc, "</color></font_size>", NULL);
+       elm_object_text_set(to_mbe, to_str);
+       g_free(to_str);
+
+       evas_object_smart_callback_add(to_mbe, "item,clicked", _mbe_selected_cb, ug_data);
+       evas_object_smart_callback_add(to_mbe, "item,added", _mbe_added_cb, ug_data);
+       elm_object_part_content_set(di, "elm.icon", to_mbe);
+       ug_data->to_mbe = to_mbe;
+
+       Evas_Object *entry = elm_multibuttonentry_entry_get(to_mbe);
+       if (entry)
+               elm_entry_editable_set(entry, EINA_FALSE);
+
+       if (n_to_list > EMAIL_VIEW_MAX_TO_COUNT)
+               n_to_list = EMAIL_VIEW_MAX_TO_COUNT;
+
+       for (i = 0; i < n_to_list; i++) {
+               addrs_info = (email_address_info_t *) g_list_nth_data(ug_data->to_list, i);
+               debug_log("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("");
+               if (addrs_info->display_name && strlen(addrs_info->display_name) > 0)
+                       mbe_item = elm_multibuttonentry_item_append(to_mbe, addrs_info->display_name, NULL, NULL);
+               else
+                       mbe_item = elm_multibuttonentry_item_append(to_mbe, addrs_info->address, NULL, NULL);
+               elm_object_item_data_set(mbe_item, addrs_info);
+       }
+
+       return di;
+}
+
+static Evas_Object *_create_cc_addrs(EmailViewerUGD *ug_data)
+{
+       debug_log("");
+       email_address_info_t *addrs_info = NULL;
+       Elm_Object_Item *mbe_item;
+
+       if (ug_data->cc_list == NULL) {
+               debug_log("cc_list is NULL");
+               return NULL;
+       }
+
+       int n_cc_list = g_list_length(ug_data->cc_list);
+       int i = 0;
+
+       if (n_cc_list <= 0) {
+               debug_log("cc_list count is 0");
+               return NULL;
+       }
+
+       Evas_Object *di = elm_layout_add(ug_data->main_bx);
+       elm_layout_file_set(di, EV_THEME_PATH, "layout.email.to_cc");
+       evas_object_size_hint_align_set(di, EVAS_HINT_FILL, 0.0);
+       evas_object_show(di);
+       ug_data->cc_ly = di;
+
+       if (ug_data->to_ly) {
+               elm_box_pack_after(ug_data->main_bx, di, ug_data->to_ly);
+       } else {
+               elm_box_pack_after(ug_data->main_bx, di, ug_data->ly_subject);
+       }
+
+       Evas_Object *cc_mbe = elm_multibuttonentry_add(ug_data->main_bx);
+       char desc[MAX_STR_LEN] = { 0, };
+       snprintf(desc, MAX_STR_LEN, "%s:", _("IDS_EMAIL_BODY_CC"));
+       char *cc_str = g_strconcat("<font_size=36><color=#000000FF>", desc, "</color></font_size>", NULL);
+       elm_object_text_set(cc_mbe, cc_str);
+       g_free(cc_str);
+       evas_object_smart_callback_add(cc_mbe, "item,clicked", _mbe_selected_cb, ug_data);
+       evas_object_smart_callback_add(cc_mbe, "item,added", _mbe_added_cb, ug_data);
+       elm_object_part_content_set(di, "elm.icon", cc_mbe);
+       ug_data->cc_mbe = cc_mbe;
+
+       Evas_Object *entry = elm_multibuttonentry_entry_get(cc_mbe);
+       if (entry)
+               elm_entry_editable_set(entry, EINA_FALSE);
+
+       if (n_cc_list > EMAIL_VIEW_MAX_CC_COUNT)
+               n_cc_list = EMAIL_VIEW_MAX_CC_COUNT;
+
+       for (i = 0; i < n_cc_list; i++) {
+               addrs_info = (email_address_info_t *) g_list_nth_data(ug_data->cc_list, i);
+
+               if (addrs_info->display_name && strlen(addrs_info->display_name) > 0)
+                       mbe_item = elm_multibuttonentry_item_append(cc_mbe, addrs_info->display_name, NULL, NULL);
+               else
+                       mbe_item = elm_multibuttonentry_item_append(cc_mbe, addrs_info->address, NULL, NULL);
+               elm_object_item_data_set(mbe_item, addrs_info);
+       }
+
+       return di;
+}
+
+static Evas_Object *_create_bcc_addrs(EmailViewerUGD *ug_data)
+{
+       debug_log("");
+       email_address_info_t *addrs_info = NULL;
+       Elm_Object_Item *mbe_item;
+
+       if (ug_data->bcc_list == NULL) {
+               debug_log("bcc_list is NULL");
+               return NULL;
+       }
+
+       int n_bcc_list = g_list_length(ug_data->bcc_list);
+       int i = 0;
+
+       if (n_bcc_list <= 0) {
+               debug_log("bcc_list count is 0");
+               return NULL;
+       }
+
+       Evas_Object *di = elm_layout_add(ug_data->main_bx);
+       elm_layout_file_set(di, EV_THEME_PATH, "layout.email.to_cc");
+       evas_object_size_hint_align_set(di, EVAS_HINT_FILL, 0.0);
+       evas_object_show(di);
+       ug_data->bcc_ly = di;
+
+       if (ug_data->cc_ly) {
+               elm_box_pack_after(ug_data->main_bx, di, ug_data->cc_ly);
+       }
+       if (ug_data->to_ly && ug_data->cc_ly == NULL) {
+               elm_box_pack_after(ug_data->main_bx, di, ug_data->to_ly);
+       }
+       if (ug_data->to_ly == NULL && ug_data->cc_ly == NULL) {
+               elm_box_pack_after(ug_data->main_bx, di, ug_data->ly_subject);
+       }
+
+       Evas_Object *bcc_mbe = elm_multibuttonentry_add(ug_data->main_bx);
+       char desc[MAX_STR_LEN] = { 0, };
+       snprintf(desc, MAX_STR_LEN, "%s:", _("IDS_EMAIL_BODY_BCC"));
+       char *bcc_str = g_strconcat("<font_size=36><color=#000000FF>", desc, "</color></font_size>", NULL);
+       elm_object_text_set(bcc_mbe, bcc_str);
+       g_free(bcc_str);
+       evas_object_smart_callback_add(bcc_mbe, "item,clicked", _mbe_selected_cb, ug_data);
+       evas_object_smart_callback_add(bcc_mbe, "item,added", _mbe_added_cb, ug_data);
+       elm_object_part_content_set(di, "elm.icon", bcc_mbe);
+       ug_data->bcc_mbe = bcc_mbe;
+
+       Evas_Object *entry = elm_multibuttonentry_entry_get(bcc_mbe);
+       if (entry)
+               elm_entry_editable_set(entry, EINA_FALSE);
+
+       if (n_bcc_list > EMAIL_VIEW_MAX_BCC_COUNT)
+               n_bcc_list = EMAIL_VIEW_MAX_BCC_COUNT;
+
+       for (i = 0; i < n_bcc_list; i++) {
+               addrs_info = (email_address_info_t *) g_list_nth_data(ug_data->bcc_list, i);
+
+               if (addrs_info->display_name && strlen(addrs_info->display_name) > 0)
+                       mbe_item = elm_multibuttonentry_item_append(bcc_mbe, addrs_info->display_name, NULL, NULL);
+               else
+                       mbe_item = elm_multibuttonentry_item_append(bcc_mbe, addrs_info->address, NULL, NULL);
+               elm_object_item_data_set(mbe_item, addrs_info);
+       }
+
+       return di;
+}
+
+static Evas_Object *_create_attach(EmailViewerUGD *ug_data)
+{
+       debug_log("");
+
+       EmailViewerProp *prop = ug_data->property;
+       char buff[MAX_STR_LEN];
+       int i = 0;
+       int att_len = prop->real_att_len;
+       int att_index = 0;
+
+       RETURN_VAL_IF_FAIL(prop->attachments != NULL, NULL);
+       RETURN_VAL_IF_FAIL(att_len > 0, NULL);
+
+       GList *attachment_list = prop->attachments;
+
+       if (att_len == 1) {
+               LIST_ITER_START(i, attachment_list) {
+                       EmailAttachmentType *info = (EmailAttachmentType *)LIST_ITER_GET_DATA(i, attachment_list);
+
+                       if (info && !info->inline_content) {
+                               if (info->size < 1024) {
+                                       g_sprintf(buff, "%s (%d %s)", info->name, (gint) info->size, dgettext("sys_string", "IDS_COM_BODY_B"));
+                               } else {
+                                       gdouble tmpsize = (gdouble) (info->size / 1024.);
+                                       if (tmpsize < 1024) {
+                                               g_sprintf(buff, "%s (%.2f %s)", info->name, tmpsize, dgettext("sys_string", "IDS_COM_BODY_KB"));
+                                       } else {
+                                               tmpsize /= 1024.;
+                                               if (tmpsize < 1024) {
+                                                       g_sprintf(buff, "%s (%.2f %s)", info->name, tmpsize, dgettext("sys_string", "IDS_COM_BODY_MB"));
+                                               } else {
+                                                       tmpsize /= 1024.;
+                                                       g_sprintf(buff, "%s (%.2f %s)", info->name, tmpsize, dgettext("sys_string", "IDS_COM_BODY_GB"));
+                                               }
+                                       }
+                               }
+
+                               Evas_Object *di = elm_layout_add(ug_data->navi_bar);
+                               elm_layout_file_set(di, EV_THEME_PATH, "layout.email.attachment_item");
+                               evas_object_size_hint_align_set(di, EVAS_HINT_FILL, 0.0);
+                               evas_object_show(di);
+                               elm_box_pack_after(ug_data->main_bx, di, ug_data->ly_subject);
+
+                               Evas_Object *thumbnail = NULL;
+
+                               if (info->download_yn) {
+                                       thumbnail = viewer_make_thumbnail(info->path, di);
+                               } else
+                                       thumbnail = viewer_make_thumbnail(NULL, di);
+                               evas_object_size_hint_aspect_set(thumbnail, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
+                               elm_icon_resizable_set(thumbnail, 1, 1);
+                               elm_object_part_content_set(di, "elm.icon", thumbnail);
+                               evas_object_show(thumbnail);
+
+                               elm_object_part_text_set(di, "elm.text", buff);
+
+                               att_index = i;
+
+                               Evas_Object *edje = elm_layout_edje_get(di);
+                               edje_object_signal_callback_add(edje, "elm,action,download", "elm", _attachment_save_cb, (void *)att_index);
+                               edje_object_signal_callback_add(edje, "clicked", "*", _attachment_clicked_cb, (void *)att_index);
+
+                               Evas_Object *text_bg = NULL;
+                               text_bg = (Evas_Object *)edje_object_part_object_get(_EDJ(di), "elm.event.rect");
+
+                               if (text_bg) {
+                                       evas_object_event_callback_add(text_bg, EVAS_CALLBACK_MOUSE_DOWN, _attachment_bg_set_cb, (void *)att_index);
+                                       evas_object_event_callback_add(text_bg, EVAS_CALLBACK_MOUSE_UP, _attachment_bg_unset_cb, (void *)att_index);
+                               }
+
+                               ug_data->attach_hd_ly = di;
+                               ug_data->attach_hd_bk = di;
+                       }
+               }
+       } else if (att_len > 1) {
+               gint64 total_size = prop->total_att_size;
+
+               Evas_Object *di = elm_layout_add(ug_data->navi_bar);
+               elm_layout_file_set(di, EV_THEME_PATH, "layout.email.attachment_head");
+               evas_object_size_hint_align_set(di, EVAS_HINT_FILL, 0.0);
+               snprintf(buff, sizeof(buff), "%d %s", att_len, _("IDS_EMAIL_BODY_ATTACHMENTS"));
+
+               Evas_Object *att_head_label;
+               att_head_label = elm_label_add(di);
+               elm_object_part_content_set(di, "elm.text", att_head_label);
+
+               char *buff_tagged = g_strconcat("<font_size=35><color=#000000FF>", buff, "<color></font_size>", NULL);
+               elm_object_text_set(att_head_label, buff_tagged);
+               g_free(buff_tagged);
+
+               if (total_size < 1024) {
+                       g_sprintf(buff, "(%d %s)", (gint) total_size, dgettext("sys_string", "IDS_COM_BODY_B"));
+               } else {
+                       gdouble tmpsize = (gdouble) (total_size / 1024.);
+
+                       if (tmpsize < 1024) {
+                               g_sprintf(buff, "(%.2f %s)", tmpsize, dgettext("sys_string", "IDS_COM_BODY_KB"));
+                       } else {
+                               tmpsize /= 1024.;
+
+                               if (tmpsize < 1024) {
+                                       g_sprintf(buff, "(%.2f %s)", tmpsize, dgettext("sys_string", "IDS_COM_BODY_MB"));
+                               } else {
+                                       tmpsize /= 1024.;
+                                       g_sprintf(buff, "(%.2f %s)", tmpsize, dgettext("sys_string", "IDS_COM_BODY_GB"));
+                               }
+                       }
+               }
+
+               edje_object_part_text_set(_EDJ(di), "elm.text.sub", buff);
+
+               Evas_Object *edje = elm_layout_edje_get(di);
+               edje_object_signal_callback_add(edje, "att,icon,save,all", "", _attachment_save_all_cb, di);
+               edje_object_signal_callback_add(edje, "elm,action,expand,toggle", "elm", _attachment_item_collapse_cb, di);
+               evas_object_show(di);
+               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;
+       } else {
+               debug_log("Attachment doesn't exist");
+       }
+
+       return NULL;
+}
+
+static Evas_Object *_create_attach_ex(EmailViewerUGD *ug_data)
+{
+       debug_log("");
+
+       EmailViewerProp *prop = ug_data->property;
+       char buff[MAX_STR_LEN];
+       int i = 0;
+       int j = 0;
+       int att_len = prop->real_att_len;
+       int att_index = 0;
+
+       RETURN_VAL_IF_FAIL(prop->attachments != NULL, NULL);
+       RETURN_VAL_IF_FAIL(att_len > 0, NULL);
+
+       GList *attachment_list = prop->attachments;
+
+       ug_data->attach_ex_ly = (Evas_Object **)calloc(att_len, sizeof(Evas_Object *));
+       ug_data->attach_ex_bk = (Evas_Object **)calloc(att_len, sizeof(Evas_Object *));
+
+       LIST_ITER_START(i, attachment_list) {
+               EmailAttachmentType *info = (EmailAttachmentType *)LIST_ITER_GET_DATA(i, attachment_list);
+
+               if (info && !info->inline_content) {
+                       if (info->size < 1024) {
+                               g_sprintf(buff, "%s (%d %s)", info->name, (gint) info->size, dgettext("sys_string", "IDS_COM_BODY_B"));
+                       } else {
+                               gdouble tmpsize = (gdouble) (info->size / 1024.);
+                               if (tmpsize < 1024) {
+                                       g_sprintf(buff, "%s (%.2f %s)", info->name, tmpsize, dgettext("sys_string", "IDS_COM_BODY_KB"));
+                               } else {
+                                       tmpsize /= 1024.;
+                                       if (tmpsize < 1024) {
+                                               g_sprintf(buff, "%s (%.2f %s)", info->name, tmpsize, dgettext("sys_string", "IDS_COM_BODY_MB"));
+                                       } else {
+                                               tmpsize /= 1024.;
+                                               g_sprintf(buff, "%s (%.2f %s)", info->name, tmpsize, dgettext("sys_string", "IDS_COM_BODY_GB"));
+                                       }
+                               }
+                       }
+
+                       Evas_Object *di = elm_layout_add(ug_data->navi_bar);
+                       elm_layout_file_set(di, EV_THEME_PATH, "layout.email.attachment_item");
+                       evas_object_size_hint_align_set(di, EVAS_HINT_FILL, 0.0);
+                       elm_box_pack_after(ug_data->main_bx, di, ug_data->attach_hd_ly);
+                       evas_object_show(di);
+
+                       Evas_Object *thumbnail = NULL;
+
+                       if (info->download_yn) {
+                               thumbnail = viewer_make_thumbnail(info->path, di);
+                       } else
+                               thumbnail = viewer_make_thumbnail(NULL, di);
+                       evas_object_size_hint_aspect_set(thumbnail, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
+                       elm_icon_resizable_set(thumbnail, 1, 1);
+                       elm_object_part_content_set(di, "elm.icon", thumbnail);
+                       evas_object_show(thumbnail);
+
+                       elm_object_part_text_set(di, "elm.text", buff);
+
+                       att_index = i;
+
+                       Evas_Object *edje = elm_layout_edje_get(di);
+                       edje_object_signal_callback_add(edje, "elm,action,download", "elm", _attachment_save_cb, (void *)att_index);
+                       edje_object_signal_callback_add(edje, "clicked", "*", _attachment_clicked_cb, (void *)att_index);
+
+                       Evas_Object *text_bg = NULL;
+                       text_bg = (Evas_Object *)edje_object_part_object_get(_EDJ(di), "elm.event.rect");
+
+                       if (text_bg) {
+                               evas_object_event_callback_add(text_bg, EVAS_CALLBACK_MOUSE_DOWN, _attachment_bg_set_cb, (void *)att_index);
+                               evas_object_event_callback_add(text_bg, EVAS_CALLBACK_MOUSE_UP, _attachment_bg_unset_cb, (void *)att_index);
+                       }
+
+                       debug_log("attach ly %d, att_index %d", j, i);
+
+                       ug_data->attach_ex_ly[j] = di;
+                       ug_data->attach_ex_bk[j] = di;
+
+                       j++;
+               }
+       }
+
+       return NULL;
+}
+
+static Evas_Object *_create_body(EmailViewerUGD *ug_data)
+{
+       debug_log("");
+       EmailViewerProp *prop = ug_data->property;
+       EmailViewerPrivate *priv = ug_data->email_data;
+
+       ug_data->b_noc = 0;
+
+       if (ug_data->noc_bx) {
+               elm_box_unpack(ug_data->main_bx, ug_data->noc_bx);
+               evas_object_hide(ug_data->noc_bx);
+       }
+
+       if (ug_data->dn_btn) {
+               evas_object_hide(ug_data->dn_btn);
+       }
+
+       if (ug_data->webview_bx) {
+               _init_webview_data(ug_data);
+
+               if (prop->has_html) {
+               /* html mail */
+                       ug_data->webview_data->body_type_prev = BODY_TYPE_HTML;
+                       ug_data->webview_data->body_type = BODY_TYPE_HTML;
+                       ug_data->webview_data->uri = prop->body_uri;
+               } else {
+               /* text mail */
+                       ug_data->webview_data->body_type_prev = BODY_TYPE_TEXT;
+                       ug_data->webview_data->body_type = BODY_TYPE_TEXT;
+                       ug_data->webview_data->text_content = prop->body;
+               }
+
+               viewer_set_webview_content(ug_data, 0);
+
+               evas_object_show(ug_data->webview_bx);
+               evas_object_show(ug_data->webview);
+               elm_box_pack_end(ug_data->main_bx, ug_data->webview_bx);
+
+               _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");
+               if (ug_data->webview_bx == NULL) {
+                       debug_log("Cannot load edj");
+                       return NULL;
+               }
+
+               evas_object_size_hint_align_set(ug_data->webview_bx, EVAS_HINT_FILL, 0.0);
+               evas_object_show(ug_data->webview_bx);
+               elm_box_pack_end(ug_data->main_bx, ug_data->webview_bx);
+
+               /* create webview */
+               if (NULL == ug_data->webview) {
+                       _init_webview_data(ug_data);
+                       viewer_get_webview(ug_data, prop->has_html);
+
+                       if (prop->has_html) {
+                               ug_data->webview_data->body_type_prev = BODY_TYPE_HTML;
+                               ug_data->webview_data->body_type = BODY_TYPE_HTML;
+                               ug_data->webview_data->uri = prop->body_uri;
+                       } else {
+                               ug_data->webview_data->body_type_prev = BODY_TYPE_TEXT;
+                               ug_data->webview_data->body_type = BODY_TYPE_TEXT;
+                               ug_data->webview_data->text_content = prop->body;
+                       }
+                       viewer_set_webview_content(ug_data, 0);
+               }
+
+               evas_object_show(ug_data->webview);
+               elm_object_part_content_set(ug_data->webview_bx, "web_body", ug_data->webview);
+
+               int resized_w = 0;
+               int resized_h = 0;
+               if (ug_data->isRotate) {
+                       resized_w = ug_data->webview_width_landscape * ug_data->scale_factor;
+                       resized_h = ug_data->webview_height_landscape * ug_data->scale_factor;
+               } else {
+                       resized_w = ug_data->webview_width * ug_data->scale_factor;
+                       resized_h = ug_data->webview_height * ug_data->scale_factor;
+               }
+
+               evas_object_size_hint_min_set(ug_data->webview, resized_w, resized_h);
+
+               /* 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);
+
+       if (ug_data->timer) {
+               ecore_timer_del(ug_data->timer);
+               ug_data->timer = NULL;
+       }
+
+       debug_log("send message - list unlock");
+       ug_data->timer = ecore_timer_add(0.0, viewer_send_message, ug_data);
+
+       return ug_data->webview_bx;
+}
+
+static Evas_Object *_create_tab_bar(EmailViewerUGD *ug_data)
+{
+       debug_log("");
+
+       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");
+
+       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);
+               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);
+
+               elm_object_item_disabled_set(ug_data->reply_ctr_it, EINA_TRUE);
+               elm_object_item_disabled_set(ug_data->forward_ctr_it, EINA_TRUE);
+       } 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);
+               } else {
+                       ug_data->del_ctr_it = elm_toolbar_item_append(obj, ICON_DELETE, dgettext("sys_string", "IDS_COM_SK_DELETE"), _delete_cb, ug_data);
+               }
+       } 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("");
+
+       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);
+       }
+
+       return NULL;
+}
+
+static Evas_Object *_create_partial_body_dn_btn(EmailViewerUGD *ug_data)
+{
+       debug_log("");
+
+       ug_data->partial_dn_btn_bx = _load_edj(ug_data->navi_bar, EV_THEME_PATH, "layout.email.partial_download_btn");
+       if (ug_data->partial_dn_btn_bx == NULL) {
+               debug_log("Cannot load edj");
+               return NULL;
+       }
+
+       evas_object_size_hint_align_set(ug_data->partial_dn_btn_bx, EVAS_HINT_FILL, 0.0);
+       evas_object_show(ug_data->partial_dn_btn_bx);
+       elm_box_pack_before(ug_data->main_bx, ug_data->partial_dn_btn_bx, ug_data->webview_bx);
+
+       Evas_Object *dn_btn = elm_button_add(ug_data->navi_bar);
+       elm_object_text_set(dn_btn, _("IDS_EMAIL_BODY_DOWNLOAD_FULL_MESSAGE"));
+       evas_object_smart_callback_add(dn_btn, "clicked", _body_down_cb, (void *)ug_data);
+       /*elm_object_theme_set(dn_btn, ug_data->theme);*/
+       elm_object_style_set(dn_btn, "text_only/style2");
+       evas_object_show(dn_btn);
+       ug_data->partial_dn_btn = dn_btn;
+
+       elm_object_part_content_set(ug_data->partial_dn_btn_bx, "button", ug_data->partial_dn_btn);
+
+       return ug_data->partial_dn_btn_bx;
+}
+
+static Evas_Object *_create_bg(Evas_Object *win)
+{
+       debug_log("");
+
+       Evas_Object *bg = elm_bg_add(win);
+       evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       elm_win_resize_object_add(win, bg);
+       evas_object_show(bg);
+
+       return bg;
+}
+
+static void _create_down_progress(char *message, popup_cb resp_cb)
+{
+       debug_log("");
+
+       if (!_g_ug_data) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       EmailViewerUGD *ug_data = _g_ug_data;
+       Evas_Object *notify, *pb;
+
+       notify = elm_popup_add(ug_data->win_main);
+       if (!notify) {
+               debug_log("elm_popup_add returns NULL");
+               return;
+       }
+       evas_object_size_hint_weight_set(notify, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       ug_data->pb_notify = notify;
+
+       elm_object_part_text_set(notify, "title,text", message);
+
+       pb = elm_progressbar_add(notify);
+
+       elm_object_style_set(pb, "list_progress");
+
+       elm_progressbar_horizontal_set(pb, EINA_TRUE);
+       evas_object_size_hint_align_set(pb, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_size_hint_weight_set(pb, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_show(pb);
+       elm_progressbar_value_set(pb, 0.0);
+       elm_object_content_set(notify, pb);
+       ug_data->pb_notify_lb = pb;
+
+       Evas_Object *btn1 = elm_button_add(notify);
+       elm_object_style_set(btn1, "popup_button/default");
+       elm_object_text_set(btn1, dgettext("sys_string", "IDS_COM_SK_CANCEL"));
+       elm_object_part_content_set(notify, "button1", btn1);
+       evas_object_smart_callback_add(btn1, "clicked", resp_cb, ug_data);
+       debug_log("Cancel btn1 for downloading body: %p", btn1);
+
+       evas_object_show(notify);
+}
+
+static void _create_down_progress_ex(int index, EMAIL_VIEWER_PROGRESSBAR_TYPE p_type)
+{
+       debug_log("");
+
+       if (!_g_ug_data) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       EmailViewerUGD *ug_data = _g_ug_data;
+       EmailViewerProp *prop = ug_data->property;
+       EmailViewerPrivate *priv = ug_data->email_data;
+
+       if (!prop || !prop->attachments) {
+               debug_log("");
+               return;
+       }
+
+       if (!priv) {
+               debug_log("");
+               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;
+       int scr_h = 0;
+       elm_scroller_region_get(ug_data->scroller, &scr_x, &scr_y, &scr_w, &scr_h);
+       debug_log("scroller region> x[%d] y[%d] w[%d] h[%d]", scr_x, scr_y, scr_w, scr_h);
+
+       GList *attachment_list = prop->attachments;
+       int i = 0, j = 0;
+       debug_log("index %d of attachment_count %d", index, prop->att_len);
+
+       EmailAttachmentType *info = NULL;
+       info = g_list_nth_data(attachment_list, index);
+       if (info == NULL) {
+               debug_log("info is NULL");
+       }
+
+       Evas_Object *pbar_ly = elm_layout_add(ug_data->navi_bar);
+       elm_layout_file_set(pbar_ly, EV_THEME_PATH, "layout.email.attachment_downloading");
+       evas_object_size_hint_align_set(pbar_ly, EVAS_HINT_FILL, 0.0);
+       evas_object_show(pbar_ly);
+       ug_data->progress_bar_ly[index + 1] = pbar_ly;
+
+       if (info) {
+               char buff[MAX_STR_LEN] = { 0, };
+
+               Evas_Object *downloading_label1;
+               downloading_label1 = elm_label_add(pbar_ly);
+               elm_object_part_content_set(pbar_ly, "elm.text.1", downloading_label1);
+               char *text_tagged = g_strconcat("<font_size=32><align=left><color=#000000FF>", info->name, "</color></align></font_size>", NULL);
+               elm_object_text_set(downloading_label1, text_tagged);
+               elm_label_ellipsis_set(downloading_label1, EINA_TRUE);
+               elm_label_wrap_width_set(downloading_label1, ug_data->main_w - 240);
+               g_free(text_tagged);
+
+               if (info->size < 1024) {
+                       g_sprintf(buff, "%d %s", (gint) info->size, dgettext("sys_string", "IDS_COM_BODY_B"));
+               } else {
+                       gdouble tmpsize = (gdouble) (info->size / 1024.);
+
+                       if (tmpsize < 1024) {
+                               g_sprintf(buff, "%.2f %s", tmpsize, dgettext("sys_string", "IDS_COM_BODY_KB"));
+                       } else {
+                               tmpsize /= 1024.;
+
+                               if (tmpsize < 1024) {
+                                       g_sprintf(buff, "%.2f %s", tmpsize, dgettext("sys_string", "IDS_COM_BODY_MB"));
+                               } else {
+                                       tmpsize /= 1024.;
+                                       g_sprintf(buff, "%.2f %s", tmpsize, dgettext("sys_string", "IDS_COM_BODY_GB"));
+                               }
+                       }
+               }
+
+               Evas_Object *downloading_label3;
+               downloading_label3 = elm_label_add(pbar_ly);
+               elm_object_part_content_set(pbar_ly, "elm.text.3", downloading_label3);
+               text_tagged = g_strconcat("<font_size=26><align=right><color=#646464FF>", buff, "</color></align></font_size>", NULL);
+               elm_object_text_set(downloading_label3, text_tagged);
+               g_free(text_tagged);
+       }
+
+       Evas_Object *progressbar = elm_progressbar_add(pbar_ly);
+       elm_progressbar_horizontal_set(progressbar, EINA_TRUE);
+       elm_object_style_set(progressbar, "list_progress");
+       elm_object_part_content_set(pbar_ly, "elm.icon.2", progressbar);
+       ug_data->progress_bar[index + 1] = progressbar;
+       evas_object_show(progressbar);
+
+       Evas_Object *cancel_btn = elm_button_add(pbar_ly);
+       /*elm_object_theme_set(cancel_btn, ug_data->theme);*/
+       elm_object_style_set(cancel_btn, "text_only/style2");
+       elm_object_text_set(cancel_btn, dgettext("sys_string", "IDS_COM_SK_CANCEL"));
+
+       elm_object_part_content_set(pbar_ly, "elm.icon.1", cancel_btn);
+       evas_object_show(cancel_btn);
+       evas_object_smart_callback_add(cancel_btn, "clicked", _destroy_down_progress_ex, (void *)index);
+       debug_log("Cancel button for attachment downloading progress popup: %p", cancel_btn);
+
+       /* packing progress layout */
+       if (p_type == EMAIL_VIEWER_PROGRESSBAR_ATT && prop->real_att_len > 1) {
+               for (i = 0; i < prop->att_len; i++) {
+                       info = (EmailAttachmentType *)LIST_ITER_GET_DATA(i, attachment_list);
+                       if (info && !info->inline_content) {
+                               if (index == i) {
+                                       if (ug_data->attach_ex_ly != NULL && ug_data->attach_ex_ly[j] != NULL) {
+                                               debug_log("");
+                                               elm_box_pack_after(ug_data->main_bx, pbar_ly, ug_data->attach_ex_ly[j]);
+                                               elm_box_unpack(ug_data->main_bx, ug_data->attach_ex_ly[j]);
+                                               evas_object_hide(ug_data->attach_ex_ly[j]);
+                                               ug_data->attach_ex_ly[j] = pbar_ly;
+                                       }
+                               }
+                               j++;
+                       }
+               }
+       }
+       if ((p_type == EMAIL_VIEWER_PROGRESSBAR_ATT && prop->real_att_len == 1) || (p_type == EMAIL_VIEWER_PROGRESSBAR_ATT_ALL)) {
+               debug_log("");
+               elm_box_pack_after(ug_data->main_bx, pbar_ly, ug_data->attach_hd_ly);
+               elm_box_unpack(ug_data->main_bx, ug_data->attach_hd_ly);
+               evas_object_hide(ug_data->attach_hd_ly);
+               ug_data->attach_hd_ly = pbar_ly;
+       }
+
+       elm_object_focus_set(pbar_ly, EINA_TRUE);
+       elm_scroller_region_show(ug_data->scroller, scr_x, scr_y, scr_w, scr_h);
+}
+
+static void _destroy_down_progress_ex(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+
+       if (!_g_ug_data) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       EmailViewerUGD *ug_data = _g_ug_data;
+       EmailViewerPrivate *priv = ug_data->email_data;
+       EmailViewerProp *prop = ug_data->property;
+
+       if (!prop || !prop->attachments) {
+               debug_log("");
+               return;
+       }
+
+       if (!priv) {
+               debug_log("");
+               return;
+       }
+
+       int scr_x = 0;
+       int scr_y = 0;
+       int scr_w = 0;
+       int scr_h = 0;
+       elm_scroller_region_get(ug_data->scroller, &scr_x, &scr_y, &scr_w, &scr_h);
+       debug_log("scroller region> x[%d] y[%d] w[%d] h[%d]", scr_x, scr_y, scr_w, scr_h);
+
+       GList *attachment_list = prop->attachments;
+       int index = (int)data;
+       int i = 0, j = 0;
+
+       /* Cancel the download in email-service */
+       if (index >= 0) {
+               debug_log("index[%d] download_all_cnt[%d] email_handle[%d]", index, priv->download_all_cnt, priv->download_all_email_handle[index]);
+               if (priv->download_all_email_handle[index] > 0) {
+                       email_engine_stop_working(ug_data->account_id, priv->download_all_email_handle[index]);
+                       priv->download_all_email_handle[index] = 0;
+               }
+
+               (priv->download_all_cnt)--;
+
+               if (priv->download_all_cnt == 0)
+                       priv->b_all_att_save = FALSE;
+       } else if (index == -1) {
+               for (i = 0; i < prop->att_len; i++) {
+                       EmailAttachmentType *info = (EmailAttachmentType *)LIST_ITER_GET_DATA(i, attachment_list);
+                       if (info && !info->inline_content) {
+                               debug_log("index[%d] download_all_cnt[%d] email_handle[%d]", i, priv->download_all_cnt, priv->download_all_email_handle[i]);
+                               if (priv->download_all_email_handle[i] > 0) {
+                                       email_engine_stop_working(ug_data->account_id, priv->download_all_email_handle[i]);
+                               }
+                       }
+                       priv->download_all_email_handle[i] = 0;
+               }
+               priv->download_all_cnt = 0;
+               priv->b_all_att_save = FALSE;
+       }
+
+       /* upack and delete, pack again */
+       if (index >= 0) {
+               debug_log("real_att_len:%d", prop->real_att_len);
+               if (prop->real_att_len == 1) {
+                       debug_log("index[%d]", index);
+                       elm_box_pack_after(ug_data->main_bx, ug_data->attach_hd_bk, ug_data->attach_hd_ly);
+                       elm_box_unpack(ug_data->main_bx, ug_data->attach_hd_ly);
+                       evas_object_del(ug_data->attach_hd_ly);
+                       ug_data->attach_hd_ly = ug_data->attach_hd_bk;
+                       evas_object_show(ug_data->attach_hd_ly);
+                       elm_object_focus_set(ug_data->attach_hd_ly, EINA_TRUE);
+                       ug_data->progress_bar[index + 1] = NULL;
+                       ug_data->progress_bar_ly[index + 1] = NULL;
+               } else if (prop->real_att_len > 1) {
+                       for (i = 0; i < prop->att_len; i++) {
+                               EmailAttachmentType *info = (EmailAttachmentType *)LIST_ITER_GET_DATA(i, attachment_list);
+                               if (info && !info->inline_content) {
+                                       if (index == i) {
+                                               debug_log("index[%d]", i);
+                                               debug_log("attach_onoff_flag:%d", ug_data->attach_onoff_flag);
+                                               if (ug_data->attach_onoff_flag > 0) {
+                                                       elm_box_pack_after(ug_data->main_bx, ug_data->attach_ex_bk[j], ug_data->attach_ex_ly[j]);
+                                                       elm_box_unpack(ug_data->main_bx, ug_data->attach_ex_ly[j]);
+                                                       evas_object_del(ug_data->attach_ex_ly[j]);
+                                                       ug_data->attach_ex_ly[j] = ug_data->attach_ex_bk[j];
+                                                       evas_object_show(ug_data->attach_ex_ly[j]);
+                                                       elm_object_focus_set(ug_data->attach_ex_ly[j], EINA_TRUE);
+                                                       ug_data->progress_bar[index + 1] = NULL;
+                                                       ug_data->progress_bar_ly[index + 1] = NULL;
+                                               } else {
+                                                       evas_object_del(ug_data->attach_ex_ly[j]);
+                                                       ug_data->attach_ex_ly[j] = ug_data->attach_ex_bk[j];
+                                                       ug_data->progress_bar[index + 1] = NULL;
+                                                       ug_data->progress_bar_ly[index + 1] = NULL;
+                                               }
+                                       }
+                                       j++;
+                               }
+                       }
+               }
+       } else if (index == -1) {
+               debug_log("index[%d]", index);
+               elm_box_pack_after(ug_data->main_bx, ug_data->attach_hd_bk, ug_data->attach_hd_ly);
+               elm_box_unpack(ug_data->main_bx, ug_data->attach_hd_ly);
+               evas_object_del(ug_data->attach_hd_ly);
+               ug_data->attach_hd_ly = ug_data->attach_hd_bk;
+               evas_object_show(ug_data->attach_hd_ly);
+               elm_object_focus_set(ug_data->attach_hd_ly, EINA_TRUE);
+               ug_data->progress_bar[index + 1] = NULL;
+               ug_data->progress_bar_ly[index + 1] = NULL;
+       }
+
+       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 _create_more_ctxpopup(EmailViewerUGD *ug_data)
+{
+       debug_log("");
+       if (!ug_data) {
+               debug_log("ug_data is NULL");
+               return;
+       }
+
+       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);
+
+       if (ug_data->con_popup) {
+               evas_object_del(ug_data->con_popup);
+               ug_data->con_popup = NULL;
+       }
+
+       ug_data->con_popup = elm_ctxpopup_add(ug_data->navi_bar);
+       if (ug_data->con_popup == NULL) {
+               debug_log("cannot create context 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);
+
+               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_VIEW_CONTACT"), NULL, _ctxpopup_detail_contact_cb, g_strdup(index));
+               elm_ctxpopup_item_append(ug_data->con_popup, _("IDS_EMAIL_OPT_ADD_TO_CALENDAR"), NULL, _add_to_calendar_cb, ug_data);
+               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 {
+               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, dgettext("sys_string", "IDS_COM_OPT_ADD_TO_CONTACTS"), NULL, _ctxpopup_select_contact_mode_email_cb, prop->sender);
+               elm_ctxpopup_item_append(ug_data->con_popup, _("IDS_EMAIL_OPT_ADD_TO_CALENDAR"), NULL, _add_to_calendar_cb, ug_data);
+               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;
+
+       /* 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);
+                                       }
+                               }
+                       }
+               }
+               /* free email rule_list */
+               email_free_rule(&rule_list, count);
+       }
+
+       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_object_show(ug_data->con_popup);
+}
+
+static void _create_reply_ctxpopup(EmailViewerUGD *ug_data)
+{
+       debug_log("");
+       if (!ug_data) {
+               debug_log("ug_data is NULL");
+               return;
+       }
+
+       if (ug_data->con_popup) {
+               evas_object_del(ug_data->con_popup);
+               ug_data->con_popup = NULL;
+       }
+
+       ug_data->con_popup = elm_ctxpopup_add(ug_data->navi_bar);
+       if (ug_data->con_popup == NULL) {
+               debug_log("cannot create context popup");
+               return;
+       }
+
+       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_object_show(ug_data->con_popup);
+}
+
+static void _delete_evas_objects(EmailViewerUGD *ug_data)
+{
+       debug_log("");
+       EmailViewerProp *prop = ug_data->property;
+
+       if (ug_data->webview) {
+               evas_object_del(ug_data->webview);
+               ug_data->webview = NULL;
+       }
+
+       if (ug_data->webview_bx) {
+               evas_object_del(ug_data->webview_bx);
+               ug_data->webview_bx = NULL;
+       }
+
+       if (ug_data->scroller) {
+               evas_object_del(ug_data->scroller);
+               ug_data->scroller = NULL;
+       }
+
+       if (ug_data->main_bx) {
+               evas_object_del(ug_data->main_bx);
+               ug_data->main_bx = NULL;
+       }
+
+       if (ug_data->b_btn) {
+               evas_object_del(ug_data->b_btn);
+               ug_data->b_btn = NULL;
+       }
+
+       if (ug_data->sub_ly) {
+               evas_object_del(ug_data->sub_ly);
+               ug_data->sub_ly = NULL;
+       }
+
+       if (ug_data->navi_bar) {
+               evas_object_del(ug_data->navi_bar);
+               ug_data->navi_bar = NULL;
+       }
+
+       if (ug_data->ctr_bar) {
+               evas_object_del(ug_data->ctr_bar);
+               ug_data->ctr_bar = NULL;
+       }
+
+       if (ug_data->layout_main) {
+               evas_object_del(ug_data->layout_main);
+               ug_data->layout_main = NULL;
+       }
+
+       if (ug_data->con_popup) {
+               evas_object_del(ug_data->con_popup);
+               ug_data->con_popup = NULL;
+       }
+
+       if (ug_data->select_info) {
+               evas_object_del(ug_data->select_info);
+               ug_data->select_info = NULL;
+       }
+
+       if (ug_data->selectioninfo_layout != NULL) {
+               evas_object_del(ug_data->selectioninfo_layout);
+               ug_data->selectioninfo_layout = NULL;
+       }
+
+       if (ug_data->notify) {
+               evas_object_del(ug_data->notify);
+               ug_data->notify = NULL;
+       }
+
+       if (ug_data->pb_notify) {
+               evas_object_del(ug_data->pb_notify);
+               ug_data->pb_notify = NULL;
+       }
+
+       if (ug_data->pb_notify_lb) {
+               evas_object_del(ug_data->pb_notify_lb);
+               ug_data->pb_notify_lb = NULL;
+       }
+
+       if (ug_data->partial_dn_btn) {
+               evas_object_del(ug_data->partial_dn_btn);
+               ug_data->partial_dn_btn = NULL;
+       }
+
+       if (ug_data->partial_dn_btn_bx) {
+               evas_object_del(ug_data->partial_dn_btn_bx);
+               ug_data->partial_dn_btn_bx = NULL;
+       }
+
+       if (ug_data->cutlink_timer) {
+               ecore_timer_del(ug_data->cutlink_timer);
+               ug_data->cutlink_timer = NULL;
+       }
+
+       if (ug_data->timer) {
+               ecore_timer_del(ug_data->timer);
+               ug_data->timer = NULL;
+       }
+
+       if (ug_data->idler) {
+               ecore_idler_del(ug_data->idler);
+               ug_data->idler = NULL;
+       }
+
+       if (ug_data->got_att) {
+               int i;
+
+               evas_object_del(ug_data->attach_hd_bk);
+               ug_data->attach_hd_ly = NULL;
+               ug_data->attach_hd_bk = NULL;
+
+               if (prop->real_att_len > 1) {
+                       for (i = 0; i < prop->real_att_len; i++) {
+                               if (ug_data->attach_ex_ly != NULL) {
+                                       if (ug_data->attach_ex_ly[i] != NULL) {
+                                               debug_log("index %d", i);
+                                               evas_object_del(ug_data->attach_ex_bk[i]);
+                                               ug_data->attach_ex_ly[i] = NULL;
+                                               ug_data->attach_ex_bk[i] = NULL;
+                                       }
+                               }
+                       }
+
+                       if (ug_data->attach_ex_ly != NULL) {
+                               free(ug_data->attach_ex_ly);
+                               ug_data->attach_ex_ly = NULL;
+                               ug_data->attach_ex_bk = NULL;
+                       }
+               }
+
+               for (i = 0; i <= prop->att_len; i++) {
+                       if (ug_data->progress_bar_ly[i] != NULL) {
+                               evas_object_del(ug_data->progress_bar_ly[i]);
+                               ug_data->progress_bar_ly[i] = NULL;
+                               ug_data->progress_bar[i] = NULL;
+                       }
+               }
+       }
+}
+
+void _launch_composer(EmailViewerUGD *ug_data, int type)
+{
+       debug_log("");
+
+       if (!ug_data) {
+               debug_log("ug_data is NULL");
+               return;
+       }
+
+       EmailViewerPrivate *priv = ug_data->email_data;
+       char tmp[256];
+
+       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", type);
+       ret = service_add_extra_data(service, EMAIL_BUNDLE_KEY_RUN_TYPE, rtype);
+       debug_log("service_add_extra_data: %d", ret);
+
+       memset(tmp, 0x0, sizeof(tmp));
+       snprintf(tmp, sizeof(tmp), "%d", priv->account_id);
+       ret = service_add_extra_data(service, EMAIL_BUNDLE_KEY_ACCOUNT_ID, tmp);
+       debug_log("service_add_extra_data: %d", ret);
+
+       memset(tmp, 0x0, sizeof(tmp));
+       snprintf(tmp, sizeof(tmp), "%d", priv->mailbox_id);
+       ret = service_add_extra_data(service, EMAIL_BUNDLE_KEY_MAILBOX, tmp);
+       debug_log("service_add_extra_data: %d", ret);
+
+       memset(tmp, 0x0, sizeof(tmp));
+       snprintf(tmp, sizeof(tmp), "%d", priv->mail_id);
+       ret = service_add_extra_data(service, EMAIL_BUNDLE_KEY_MAIL_ID, tmp);
+       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 _launch_vcs_editor(EmailViewerUGD *ug_data)
+{
+       debug_log("");
+
+       if (!ug_data) {
+               debug_log("ug_data is NULL");
+               return;
+       }
+
+       char account_id[MAX_STR_LEN] = { 0, };
+       char mail_id[MAX_STR_LEN] = { 0, };
+
+       EmailViewerProp *prop = ug_data->property;
+
+       int ret;
+       service_h service = NULL;
+
+       ret = service_create(&service);
+       debug_log("service_create: %d", ret);
+       if (!service) {
+               debug_log("service create failed");
+               return;
+       }
+
+       snprintf(account_id, sizeof(account_id), "%d", prop->account_id);
+       snprintf(mail_id, sizeof(mail_id), "%d", prop->mail_id);
+
+       ret = service_add_extra_data(service, EMAIL_BUNDLE_KEY_CALENDAR_EDIT_ACCOUNT_ID, account_id);
+       debug_log("service_add_extra_data: %d", ret);
+       ret = service_add_extra_data(service, EMAIL_BUNDLE_KEY_CALENDAR_EDIT_MAIL_ID, mail_id);
+       debug_log("service_add_extra_data: %d", ret);
+       ret = service_add_extra_data(service, EMAIL_BUNDLE_KEY_CALENDAR_EDIT_SRC_BOX, prop->src_box);
+       debug_log("service_add_extra_data: %d", ret);
+       ret = service_add_extra_data(service, EMAIL_BUNDLE_KEY_CALENDAR_EDIT_INDEX, EMAIL_BUNDLE_VAL_CALENDAR_EDIT_INDEX);
+       debug_log("service_add_extra_data: %d", ret);
+       ret = service_add_extra_data(service, EMAIL_BUNDLE_KEY_CALENDAR_EDIT_NOTE, prop->subject);
+       debug_log("service_add_extra_data: %d", ret);
+
+       ug_data->ug_calendar_edit = create_ug(UG_NAME_CALENDAR_EDIT, service, ug_data);
+
+       ret = service_destroy(service);
+       debug_log("service_destroy: %d", ret);
+}
+
+static void _back_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+
+       if (_g_ug_data == NULL) {
+               debug_log("_g_ug_data is NULL");
+               return;
+       }
+
+       if (!data) {
+               debug_log("data is NULL");
+               return;
+       }
+       EmailViewerUGD *ug_data = (EmailViewerUGD *)data;
+
+       if (ug_data->con_popup != NULL) {
+               evas_object_del(ug_data->con_popup);
+               ug_data->con_popup = NULL;
+       }
+
+       debug_log("isRoate = %d", ug_data->isRotate);
+       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");
+       }
+
+       if (ug_data->b_internal != 1) {
+               debug_log("ug_destory_me");
+               ug_destroy_me(ug_data->ug);
+       } else {
+               _hide_view(ug_data);
+       }
+}
+
+static void _prev_mail_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       if (!data) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       /* 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_PREV_MSG);
+       debug_log("service_add_extra_data: %d", ret);
+       ret = service_add_extra_data(service, EMAIL_BUNDLE_KEY_DO_DELETE, "0");
+       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);
+}
+
+static void _next_mail_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       if (!data) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       /* 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, "0");
+       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);
+}
+
+static void _reply_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       if (!data) {
+               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;
+       }
+
+       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->notify = NULL;
+       }
+}
+
+static void _reply_all_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       if (!data) {
+               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;
+       }
+
+       ug_data->display_download_result = FALSE;
+
+       _launch_composer(ug_data, RUN_COMPOSER_REPLY_ALL);
+
+       if (ug_data->notify) {
+               evas_object_del(ug_data->notify);
+               ug_data->notify = NULL;
+       }
+}
+
+static void _reply_option_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       if (!data) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       EmailViewerUGD *ug_data = (EmailViewerUGD *)data;
+
+       _create_reply_ctxpopup(ug_data);
+}
+
+static void _forward_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       if (!data) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       EmailViewerUGD *ug_data = (EmailViewerUGD *)data;
+
+       ug_data->display_download_result = FALSE;
+
+       _launch_composer(ug_data, RUN_COMPOSER_FORWARD);
+}
+
+static void _add_to_calendar_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+
+       if (data == NULL)
+               return;
+
+       EmailViewerUGD *ug_data = (EmailViewerUGD *)data;
+
+       if (ug_data->con_popup) {
+               evas_object_del(ug_data->con_popup);
+               ug_data->con_popup = NULL;
+       }
+
+       _launch_vcs_editor(ug_data);
+}
+
+static void _resend_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+}
+
+static void _delete_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       if (!data) {
+               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;
+       }
+
+       _create_notify(ug_data, NULL, dgettext("sys_string", "IDS_COM_POP_DELETE_Q"),
+                                       2, dgettext("sys_string", "IDS_COM_SK_DELETE"),
+                                       _popup_response_delete_ok_cb, dgettext("sys_string", "IDS_COM_SK_CANCEL"),
+                                       _popup_response_cb, NULL);
+}
+
+static void _move_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       if (!data) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       EmailViewerUGD *ug_data = (EmailViewerUGD *)data;
+       EmailViewerPrivate *priv = ug_data->email_data;
+
+       if (ug_data->con_popup) {
+               evas_object_del(ug_data->con_popup);
+               ug_data->con_popup = NULL;
+       }
+
+       Elm_Object_Item *git = NULL;
+       Evas_Object *gl = elm_genlist_add(ug_data->navi_bar);
+       evas_object_show(gl);
+
+       ug_data->itc1.item_style = "1text.1icon.2";
+       ug_data->itc1.func.text_get = _gl_text_get;
+       ug_data->itc1.func.content_get = _gl_content_get;
+       ug_data->itc1.func.state_get = _gl_state_get;
+       ug_data->itc1.func.del = _gl_del;
+
+       ug_data->itc2.item_style = "1text.1icon.2";
+       ug_data->itc2.func.text_get = _gl_sub_upper_text_get;
+       ug_data->itc2.func.content_get = _gl_sub_upper_icon_get;
+       ug_data->itc2.func.state_get = _gl_state_get;
+       ug_data->itc2.func.del = NULL;
+
+       ug_data->itc3.item_style = "grouptitle.dialogue.seperator";
+       ug_data->itc3.func.text_get = NULL;
+       ug_data->itc3.func.content_get = NULL;
+       ug_data->itc3.func.state_get = _gl_state_get;
+       ug_data->itc3.func.del = NULL;
+
+       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);
+       ug_data->navi_move_it1 = navi_it;
+       if (ug_data->isRotate)
+               elm_naviframe_item_title_visible_set(ug_data->navi_move_it1, EINA_FALSE);
+
+       email_mailbox_t *mailbox_list = NULL;
+       int mailbox_count = 0;
+       int i = 0;
+
+       email_get_mailbox_list(priv->account_id, -1, &mailbox_list, &mailbox_count);
+       debug_log("folder count %d", mailbox_count);
+       ug_data->move_mailbox_list = mailbox_list;
+       ug_data->move_mailbox_count = mailbox_count;
+
+       git = elm_genlist_item_append(gl, &(ug_data->itc3), NULL, NULL, ELM_GENLIST_ITEM_GROUP, NULL, NULL);
+       elm_genlist_item_select_mode_set(git, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+
+       for (i = 0; i < mailbox_count; i++) {
+               if (g_strcmp0(ug_data->mailbox_name, mailbox_list[i].mailbox_name) != 0) {
+                       if (mailbox_list[i].mailbox_type != EMAIL_MAILBOX_TYPE_OUTBOX &&
+                               mailbox_list[i].mailbox_type != EMAIL_MAILBOX_TYPE_SENTBOX &&
+                               mailbox_list[i].mailbox_type != EMAIL_MAILBOX_TYPE_DRAFT &&
+                               mailbox_list[i].mailbox_type != EMAIL_MAILBOX_TYPE_TRASH &&
+                               mailbox_list[i].mailbox_type != EMAIL_MAILBOX_TYPE_ALL_EMAILS &&
+                               mailbox_list[i].mailbox_type != EMAIL_MAILBOX_TYPE_SEARCH_RESULT)
+                               if (g_strcmp0(mailbox_list[i].alias, "[Gmail]")) {
+                                       elm_genlist_item_append(gl, &ug_data->itc1, (void *)&(mailbox_list[i]), git, ELM_GENLIST_ITEM_NONE, _gl_sel, (void *)&(mailbox_list[i]));
+                               }
+               }
+       }
+
+       /*if (ug_data->b_internal)
+               elm_layout_theme_set(ug_data->layout_main, "layout", "application", "noindicator");
+       else
+               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);
+               }
+       }
+}
+
+static void _more_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       if (!data) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       EmailViewerUGD *ug_data = (EmailViewerUGD *)data;
+
+       _create_more_ctxpopup(ug_data);
+}
+
+static void _body_down_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       if (!data) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       unsigned int handle;
+       gboolean ret = 0;
+       EmailViewerUGD *ug_data = (EmailViewerUGD *)data;
+       EmailViewerPrivate *priv = ug_data->email_data;
+
+       /* check already downloaded */
+       int body_download_status = ug_data->property->body_download;
+
+       if (body_download_status == 0) {        //EMAIL_BODY_DOWNLOAD_STATUS_NONE
+               debug_log("need body download");
+       } else if (body_download_status == 1) { //EMAIL_BODY_DOWNLOAD_STATUS_FULLY_DOWNLOADED
+               debug_log("already downloaded, create body directly");
+
+               /* set property */
+               if (viewer_get_internal_mail_info(ug_data->property, ug_data->email_data)) {
+                       debug_log("");
+                       viewer_make_internal_mail(ug_data->property, ug_data->email_data);
+               }
+
+               if (ug_data->b_partial_body) {
+                       int scr_x = 0;
+                       int scr_y = 0;
+                       int scr_w = 0;
+                       int scr_h = 0;
+                       elm_scroller_region_get(ug_data->scroller, &scr_x, &scr_y, &scr_w, &scr_h);
+                       debug_log("scroller region> x[%d] y[%d] w[%d] h[%d]", scr_x, scr_y, scr_w, scr_h);
+
+                       elm_box_unpack(ug_data->main_bx, ug_data->partial_dn_btn_bx);
+                       if (ug_data->partial_dn_btn) {
+                               evas_object_del(ug_data->partial_dn_btn);
+                               ug_data->partial_dn_btn = NULL;
+                       }
+                       if (ug_data->partial_dn_btn_bx) {
+                               evas_object_del(ug_data->partial_dn_btn_bx);
+                               ug_data->partial_dn_btn_bx = NULL;
+                       }
+
+                       if (ug_data->property->has_html) {
+                               ug_data->webview_data->body_type = BODY_TYPE_HTML;
+                               ug_data->webview_data->uri = ug_data->property->body_uri;
+                       } else {
+                               ug_data->webview_data->body_type = BODY_TYPE_TEXT;
+                               ug_data->webview_data->text_content = ug_data->property->body;
+                       }
+
+                       viewer_set_webview_content(ug_data, 1);
+                       ug_data->b_partial_body = 0;
+
+                       elm_object_focus_set(ug_data->ly_subject, EINA_TRUE);
+                       elm_scroller_region_show(ug_data->scroller, scr_x, scr_y, scr_w, scr_h);
+               } else {
+                       if (ug_data->property->has_attachment)
+                               ug_data->got_att = 1;
+                       else
+                               ug_data->got_att = 0;
+
+                       /* pack attachment if it exist */
+                       if (ug_data->got_att) {
+                               _create_attach(ug_data);
+                       }
+
+                       _create_body(ug_data);
+               }
+
+               return;
+       } else if (body_download_status == 2) { //EMAILL_BODY_DOWNLOAD_STATUS_PARTIALLY_DOWNLOADED
+               debug_log("need full body download");
+       }
+
+       ret = email_engine_body_download(priv->account_id, priv->mail_id, &handle);
+
+       if (ret == TRUE) {
+               priv->email_handle = handle;
+               debug_log("succeed in email_engine_body_download");
+               _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 */
+               _cancel_download_attachment(ug_data);
+
+       } else {
+               debug_log("unable to download mail body");
+               _create_notify(ug_data, dgettext("sys_string", "IDS_COM_POP_WARNING"),
+                                               _("IDS_EMAIL_POP_UNABLE_TO_DOWNLOAD"), 1,
+                                               dgettext("sys_string", "IDS_COM_SK_OK"),
+                                               _popup_response_cb, NULL, NULL, NULL);
+       }
+}
+
+static void _subject_favorite_clicked_cb(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+       debug_log("");
+       if (!data) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       EmailViewerUGD *ug_data = _g_ug_data;
+       EmailViewerProp *prop = ug_data->property;
+       int err = EMAIL_ERROR_NONE;
+
+       if (ug_data->con_popup) {
+               evas_object_del(ug_data->con_popup);
+               ug_data->con_popup = NULL;
+       }
+
+       debug_log("Before prop->favorite: %d", prop->favorite);
+       switch(prop->favorite) {
+               case EMAIL_FLAG_NONE:
+                       prop->favorite = EMAIL_FLAG_FLAGED;
+                       break;
+               case EMAIL_FLAG_FLAGED:
+                       prop->favorite = EMAIL_FLAG_NONE;
+                       break;
+               case EMAIL_FLAG_TASK_STATUS_CLEAR:
+                       prop->favorite = EMAIL_FLAG_TASK_STATUS_ACTIVE;
+                       break;
+               case EMAIL_FLAG_TASK_STATUS_ACTIVE:
+                       prop->favorite = EMAIL_FLAG_TASK_STATUS_COMPLETE;
+                       break;
+               case EMAIL_FLAG_TASK_STATUS_COMPLETE:
+                       prop->favorite = EMAIL_FLAG_TASK_STATUS_CLEAR;
+                       break;
+               default:
+                       debug_log("Never here");
+       }
+       debug_log("After prop->favorite: %d", prop->favorite);
+
+       err = email_set_flags_field(ug_data->account_id, &ug_data->mail_id, 1, EMAIL_FLAGS_FLAGGED_FIELD, prop->favorite, 1);
+       if (err != EMAIL_ERROR_NONE) {
+               _create_notify(ug_data, _("IDS_EMAIL_POP_ALERT"),
+                               N_("Failed to set favourite"), 0,
+                               NULL, NULL, NULL, NULL, _popup_response_cb);
+               return;
+       }
+
+       evas_object_del(elm_object_part_content_unset(ug_data->ly_subject, "elm.icon.favorite"));
+       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);
+                       break;
+               case EMAIL_FLAG_FLAGED:
+                       elm_icon_file_set(favorite_icon, IMGDIR "/M02_email_icon_favorite_on.png", NULL);
+                       break;
+               case EMAIL_FLAG_TASK_STATUS_CLEAR:
+                       elm_icon_file_set(favorite_icon, IMGDIR "/M02_email_Flag_Clear.png", NULL);
+                       break;
+               case EMAIL_FLAG_TASK_STATUS_ACTIVE:
+                       elm_icon_file_set(favorite_icon, IMGDIR "/M02_email_Flag_Active.png", NULL);
+                       break;
+               case EMAIL_FLAG_TASK_STATUS_COMPLETE:
+                       elm_icon_file_set(favorite_icon, IMGDIR "/M02_email_Flag_Complete.png", NULL);
+                       break;
+               default:
+                       debug_log("Never here");
+       }
+       evas_object_size_hint_aspect_set(favorite_icon, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
+       elm_icon_resizable_set(favorite_icon, 1, 1);
+       elm_object_part_content_set(ug_data->ly_subject, "elm.icon.favorite", favorite_icon);
+       evas_object_show(favorite_icon);
+
+       /* send unread 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_READ);
+       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);
+}
+
+static void _subject_detail_clicked_cb(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+       debug_log("");
+       if (!_g_ug_data) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       Evas_Object *item = (Evas_Object *)data;
+       EmailViewerUGD *ug_data = _g_ug_data;
+
+       if (!(ug_data->subject_onoff_flag)) {
+               edje_object_signal_emit(_EDJ(item), "elm,state,expanded", "elm");
+               (ug_data->subject_onoff_flag)++;
+
+               _create_to_addrs(_g_ug_data);
+               _create_cc_addrs(_g_ug_data);
+               _create_bcc_addrs(_g_ug_data);
+       } else {
+               edje_object_signal_emit(_EDJ(item), "elm,state,contracted", "elm");
+               (ug_data->subject_onoff_flag)--;
+
+               if (ug_data->to_ly) {
+                       elm_box_unpack(ug_data->main_bx, ug_data->to_ly);
+                       evas_object_del(ug_data->to_ly);
+                       ug_data->to_ly = NULL;
+               }
+               if (ug_data->cc_ly) {
+                       elm_box_unpack(ug_data->main_bx, ug_data->cc_ly);
+                       evas_object_del(ug_data->cc_ly);
+                       ug_data->cc_ly = NULL;
+               }
+               if (ug_data->bcc_ly) {
+                       elm_box_unpack(ug_data->main_bx, ug_data->bcc_ly);
+                       evas_object_del(ug_data->bcc_ly);
+                       ug_data->bcc_ly = NULL;
+               }
+
+               elm_object_focus_set(ug_data->ly_subject, EINA_TRUE);
+       }
+}
+
+static void _attachment_item_collapse_cb(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+       debug_log("");
+       if (!data || !_g_ug_data) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       Evas_Object *item = (Evas_Object *)data;
+       EmailViewerUGD *ug_data = _g_ug_data;
+       EmailViewerProp *prop = ug_data->property;
+       int i = 0;
+
+       debug_log("attach_onoff_flag:%d", ug_data->attach_onoff_flag);
+       if (!(ug_data->attach_onoff_flag)) {
+               debug_log("attachments expanded");
+               edje_object_signal_emit(_EDJ(item), "elm,state,expanded", "elm");
+               (ug_data->attach_onoff_flag)++;
+
+               if (ug_data->attach_ex_ly == NULL)
+                       _create_attach_ex(ug_data);
+               else {
+                       for (i = 0; i < prop->real_att_len; i++) {
+                               debug_log("index %d", i);
+                               elm_box_pack_after(ug_data->main_bx, ug_data->attach_ex_ly[i], ug_data->attach_hd_ly);
+                               evas_object_show(ug_data->attach_ex_ly[i]);
+                       }
+               }
+       } else {
+               debug_log("attachments contracted");
+               edje_object_signal_emit(_EDJ(item), "elm,state,contracted", "elm");
+               ug_data->attach_onoff_flag = 0;
+
+               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]);
+                       }
+               }
+       }
+}
+
+static void _attachment_save_cb(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+       debug_log("");
+
+       if (!_g_ug_data) {
+               debug_log("ug_data is NULL");
+               return;
+       }
+
+       EmailViewerUGD *ug_data = _g_ug_data;
+       int att_index = (int)data;
+
+       ug_data->display_download_result = FALSE;
+
+       debug_log("Selected item index = %d", att_index);
+       _show_attachment(ug_data, att_index);
+}
+
+static void _attachment_clicked_cb(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+       debug_log("");
+
+       if (!_g_ug_data) {
+               debug_log("ug_data is NULL");
+               return;
+       }
+
+       EmailViewerUGD *ug_data = _g_ug_data;
+       int att_index = (int)data;
+
+       debug_log("Selected item index = %d", att_index);
+       ug_data->display_download_result = TRUE;
+       _show_attachment(ug_data, att_index);
+}
+
+static void _attachment_save_all_cb(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+       debug_log("");
+       if (!_g_ug_data) {
+               debug_log("ug_data is NULL");
+               return;
+       }
+
+       EmailViewerUGD *ug_data = _g_ug_data;
+
+       _save_attachment_all(ug_data);
+}
+
+static void _attachment_bg_set_cb(void *data, Evas * evas, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       if (!_g_ug_data) {
+               debug_log("ug_data is NULL");
+               return;
+       }
+
+       EmailViewerUGD *ug_data = _g_ug_data;
+       EmailViewerProp *prop = ug_data->property;
+
+       int att_index = (int)data;
+       debug_log("att_index = %d, attachments count = %d", att_index, prop->real_att_len);
+
+       if (prop->real_att_len > 1) {
+               int i = 0;
+               int j = 0;
+               GList *attachment_list = prop->attachments;
+               LIST_ITER_START(i, attachment_list) {
+                       EmailAttachmentType *info = (EmailAttachmentType *)LIST_ITER_GET_DATA(i, attachment_list);
+                       if (info && !info->inline_content) {
+                               if (att_index == i)
+                                       break;
+                               j++;
+                       }
+               }
+               edje_object_signal_emit(_EDJ(ug_data->attach_ex_ly[j]), "pressed", "elm.event.rect");
+       }
+       else
+               edje_object_signal_emit(_EDJ(ug_data->attach_hd_ly), "pressed", "elm.event.rect");
+}
+
+static void _attachment_bg_unset_cb(void *data, Evas * evas, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       if (!_g_ug_data) {
+               debug_log("ug_data is NULL");
+               return;
+       }
+
+       EmailViewerUGD *ug_data = _g_ug_data;
+       EmailViewerProp *prop = ug_data->property;
+
+       int att_index = (int)data;
+       debug_log("att_index = %d, attachments count = %d", att_index, prop->real_att_len);
+
+       if (prop->real_att_len > 1) {
+               int i = 0;
+               int j = 0;
+               GList *attachment_list = prop->attachments;
+               LIST_ITER_START(i, attachment_list) {
+                       EmailAttachmentType *info = (EmailAttachmentType *)LIST_ITER_GET_DATA(i, attachment_list);
+                       if (info && !info->inline_content) {
+                               if (att_index == i)
+                                       break;
+                               j++;
+                       }
+               }
+               edje_object_signal_emit(_EDJ(ug_data->attach_ex_ly[j]), "unpressed", "elm.event.rect");
+       }
+       else
+               edje_object_signal_emit(_EDJ(ug_data->attach_hd_ly), "unpressed", "elm.event.rect");
+}
+
+static void _mark_as_unread_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       if (!data) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       EmailViewerUGD *ug_data = (EmailViewerUGD *)data;
+       EmailViewerPrivate *priv = ug_data->email_data;
+
+       if (ug_data->con_popup) {
+               evas_object_del(ug_data->con_popup);
+               ug_data->con_popup = NULL;
+       }
+
+       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);
+
+       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);
+
+       if (err != EMAIL_ERROR_NONE) {
+               _create_notify(ug_data, _("IDS_EMAIL_POP_ALERT"),
+                                               _("IDS_EMAIL_POP_FAILED_TO_MARK_AS_UNREAD"), 0,
+                                               NULL, NULL, NULL, NULL, _popup_response_cb);
+       } else {
+               char str[128] = { 0, };
+               snprintf(str, sizeof(str), "%s", _("IDS_EMAIL_POP_MARKED_AS_UNREAD"));
+               _show_select_info(ug_data, str);
+
+               /* send unread 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_UNREAD);
+               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);
+       }
+}
+
+static void _mark_as_read_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       if (!data) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       EmailViewerUGD *ug_data = (EmailViewerUGD *)data;
+       EmailViewerPrivate *priv = ug_data->email_data;
+
+       if (ug_data->con_popup) {
+               evas_object_del(ug_data->con_popup);
+               ug_data->con_popup = NULL;
+       }
+
+       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);
+
+       err = email_set_flags_field(priv->mail_info->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) {
+               _create_notify(ug_data, _("IDS_EMAIL_POP_ALERT"),
+                                               _("IDS_EMAIL_POP_FAILED_TO_MARK_AS_READ"), 0,
+                                               NULL, NULL, NULL, NULL, _popup_response_cb);
+       } else {
+               char str[128] = { 0, };
+               snprintf(str, sizeof(str), "%s", _("IDS_EMAIL_POP_MARKED_AS_READ"));
+               _show_select_info(ug_data, str);
+
+               /* send unread 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_READ);
+               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);
+       }
+}
+
+static void _ctxpopup_detail_contact_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       if (data == NULL || _g_ug_data == NULL) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       EmailViewerUGD *ug_data = _g_ug_data;
+
+       if (ug_data->con_popup) {
+               evas_object_del(ug_data->con_popup);
+               ug_data->con_popup = NULL;
+       }
+
+       char *index = (char *)data;
+       char type[10] = { 0, };
+       int ret;
+       service_h service = NULL;
+
+       ret = service_create(&service);
+       debug_log("service_create: %d", ret);
+       if (!service) {
+               debug_log("service create failed");
+               return;
+       }
+
+       snprintf(type, sizeof(type), "%d", CT_UG_REQUEST_DETAIL);
+
+       ret = service_add_extra_data(service, CT_UG_BUNDLE_TYPE, type);
+       debug_log("service_add_extra_data: %d", ret);
+       ret = service_add_extra_data(service, CT_UG_BUNDLE_ID, index);
+       debug_log("service_add_extra_data: %d", ret);
+
+       create_ug(UG_CONTACTS_DETAILS, service, ug_data);
+
+       ret = service_destroy(service);
+       debug_log("service_destroy: %d", ret);
+
+       debug_log("set flag for contact ug");
+       ug_data->b_contact_ug_launched = TRUE;
+}
+
+static void _ctxpopup_send_email_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       if (!data || !_g_ug_data) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       EmailViewerUGD *ug_data = _g_ug_data;
+
+       if (ug_data->con_popup == NULL) {
+               debug_log("con_popup is NULL");
+               return;
+       }
+
+       if (ug_data->con_popup) {
+               evas_object_del(ug_data->con_popup);
+               ug_data->con_popup = NULL;
+       }
+
+       debug_log("email: %s", (char *)data);
+
+       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_EXTERNAL);
+
+       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_TO, (char *)data);
+       debug_log("service_add_extra_data: %d", ret);
+       ret = service_add_extra_data(service, EMAIL_BUNDLE_KEY_CC, NULL);
+       debug_log("service_add_extra_data: %d", ret);
+       ret = service_add_extra_data(service, EMAIL_BUNDLE_KEY_BCC, NULL);
+       debug_log("service_add_extra_data: %d", ret);
+       ret = service_add_extra_data(service, EMAIL_BUNDLE_KEY_SUBJECT, NULL);
+       debug_log("service_add_extra_data: %d", ret);
+       ret = service_add_extra_data(service, EMAIL_BUNDLE_KEY_BODY, NULL);
+       debug_log("service_add_extra_data: %d", ret);
+       ret = service_add_extra_data(service, EMAIL_BUNDLE_KEY_ATTACHMENT, NULL);
+       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 _ctxpopup_add_contact_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       if (!data || !_g_ug_data) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       char tmp[MAX_STR_LEN] = { 0, };
+       EmailViewerUGD *ug_data = _g_ug_data;
+
+       if (ug_data->con_popup == NULL) {
+               debug_log("con_popup is NULL");
+               return;
+       }
+
+       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;
+       }
+
+       if (ug_data->create_contact_arg == CONTACTUI_REQ_ADD_PHONE_NUMBER) {
+               snprintf(tmp, sizeof(tmp), "%d", CT_UG_REQUEST_ADD_WITH_NUM);
+               ret = service_add_extra_data(service, CT_UG_BUNDLE_TYPE, tmp);
+               debug_log("service_add_extra_data: %d", ret);
+               ret = service_add_extra_data(service, CT_UG_BUNDLE_NUM, (char *)data);
+               debug_log("service_add_extra_data: %d", ret);
+       }
+       if (ug_data->create_contact_arg == CONTACTUI_REQ_ADD_EMAIL) {
+               snprintf(tmp, sizeof(tmp), "%d", CT_UG_REQUEST_ADD_WITH_EMAIL);
+               ret = service_add_extra_data(service, CT_UG_BUNDLE_TYPE, tmp);
+               debug_log("service_add_extra_data: %d", ret);
+               ret = service_add_extra_data(service, CT_UG_BUNDLE_EMAIL, (char *)data);
+               debug_log("service_add_extra_data: %d", ret);
+       }
+       if (ug_data->create_contact_arg == CONTACTUI_REQ_ADD_URL) {
+               snprintf(tmp, sizeof(tmp), "%d", CT_UG_REQUEST_ADD_WITH_WEB);
+               ret = service_add_extra_data(service, CT_UG_BUNDLE_TYPE, tmp);
+               debug_log("service_add_extra_data: %d", ret);
+               ret = service_add_extra_data(service, CT_UG_BUNDLE_WEB, (char *)data);
+               debug_log("service_add_extra_data: %d", ret);
+       }
+
+       create_ug(UG_CONTACTS_DETAILS, service, ug_data);
+
+       ret = service_destroy(service);
+       debug_log("service_destroy: %d", ret);
+}
+
+static void _ctxpopup_cutlink_update_contact_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       if (!data || !_g_ug_data) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       char tmp[MAX_STR_LEN] = { 0, };
+       EmailViewerUGD *ug_data = _g_ug_data;
+
+       if (ug_data->con_popup == NULL) {
+               debug_log("con_popup is NULL");
+               return;
+       }
+
+       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;
+       }
+
+       if (ug_data->create_contact_arg == CONTACTUI_REQ_ADD_PHONE_NUMBER) {
+               snprintf(tmp, sizeof(tmp), "%d", CT_UG_REQUEST_ADD_WITH_NUM);
+               ret = service_add_extra_data(service, CT_UG_BUNDLE_TYPE, tmp);
+               debug_log("service_add_extra_data: %d", ret);
+               ret = service_add_extra_data(service, CT_UG_BUNDLE_NUM, (char *)data);
+               debug_log("service_add_extra_data: %d", ret);
+       }
+       if (ug_data->create_contact_arg == CONTACTUI_REQ_ADD_EMAIL) {
+               snprintf(tmp, sizeof(tmp), "%d", CT_UG_REQUEST_ADD_WITH_EMAIL);
+               ret = service_add_extra_data(service, CT_UG_BUNDLE_TYPE, tmp);
+               debug_log("service_add_extra_data: %d", ret);
+               ret = service_add_extra_data(service, CT_UG_BUNDLE_EMAIL, (char *)data);
+               debug_log("service_add_extra_data: %d", ret);
+       }
+       if (ug_data->create_contact_arg == CONTACTUI_REQ_ADD_URL) {
+               snprintf(tmp, sizeof(tmp), "%d", CT_UG_REQUEST_ADD_WITH_WEB);
+               ret = service_add_extra_data(service, CT_UG_BUNDLE_TYPE, tmp);
+               debug_log("service_add_extra_data: %d", ret);
+               ret = service_add_extra_data(service, CT_UG_BUNDLE_WEB, (char *)data);
+               debug_log("service_add_extra_data: %d", ret);
+       }
+
+       ug_data->ug_contacts_search = create_ug(UG_CONTACTS_LIST, service, ug_data);
+
+       ret = service_destroy(service);
+       debug_log("service_destroy: %d", ret);
+}
+
+static void _ctxpopup_select_contact_mode_email_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       if (!data || !_g_ug_data) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       EmailViewerUGD *ug_data = _g_ug_data;
+       Evas_Coord x, y;
+
+       if (ug_data->con_popup) {
+               evas_object_del(ug_data->con_popup);
+               ug_data->con_popup = NULL;
+       }
+
+       ug_data->con_popup = elm_ctxpopup_add(ug_data->navi_bar);
+       if (ug_data->con_popup == NULL) {
+               debug_log("cannot create context popup");
+               return;
+       }
+
+       ug_data->create_contact_arg = CONTACTUI_REQ_ADD_EMAIL;
+       ug_data->update_contact_type = CONTACTUI_REQ_ADD_EMAIL;
+
+       elm_ctxpopup_item_append(ug_data->con_popup, dgettext("sys_string", "IDS_COM_OPT_CREATE_CONTACT"), NULL, _ctxpopup_add_contact_cb, data);
+       elm_ctxpopup_item_append(ug_data->con_popup, _("IDS_EMAIL_OPT_UPDATE_EXISTING"), NULL, _ctxpopup_cutlink_update_contact_cb, data);
+
+       evas_pointer_canvas_xy_get(ug_data->evas, &x, &y);
+       evas_object_move(ug_data->con_popup, x, y);
+       evas_object_show(ug_data->con_popup);
+}
+
+static void _ctxpopup_add_block_rule_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+
+       if (!data || !_g_ug_data) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       EmailViewerUGD *ug_data = _g_ug_data;
+       EmailViewerPrivate *priv = ug_data->email_data;
+       char *addr = (char *)data;
+
+       debug_log("Block address: %s", addr);
+
+       if (ug_data->con_popup) {
+               evas_object_del(ug_data->con_popup);
+               ug_data->con_popup = NULL;
+       }
+
+       int ret;
+       email_rule_t *rule = NULL;
+
+       /* add filtering rule */
+       rule = malloc(sizeof(email_rule_t));
+       rule->account_id = priv->account_id;
+       rule->type = EMAIL_FILTER_FROM;
+       rule->value = g_strdup(addr);
+       rule->faction = EMAIL_FILTER_BLOCK;
+
+       int err = 0;
+       email_mailbox_t *mail_box = NULL;
+       if ((err = email_get_mailbox_by_mailbox_type(ug_data->account_id, ug_data->mailbox_type, &mail_box)) != EMAIL_ERROR_NONE) {
+               debug_log("email_get_mailbox_by_mailbox_type failed! - err (%d)", err);
+       }
+
+       if (mail_box == NULL) {
+               debug_log("mail_box is NULL");
+       }
+
+       rule->target_mailbox_id = mail_box->mailbox_id;
+
+       if (mail_box) {
+               debug_log("email_free_mailbox is called");
+               email_free_mailbox(&mail_box, 1);
+               mail_box = NULL;
+       }
+
+       rule->flag1 = 1;
+       rule->flag2 = RULE_TYPE_INCLUDES;
+
+       ret = email_add_rule(rule);
+       if (ret < 0) {
+               debug_log("email_add_rule failed %d", ret);
+               _create_notify(ug_data, _("IDS_EMAIL_POP_ALERT"),
+                                               _("IDS_EMAIL_POP_FAILED_TO_ADD_BLOCK_RULE"), 0,
+                                               NULL, NULL, NULL, NULL, _popup_response_cb);
+       } else {
+               int vconf_ret = -1;
+               vconf_ret = vconf_set_int(EMAIL_VCONF_KEY_BLOCK_RULE_CHANGED, 1);
+               if (vconf_ret == -1) {
+                       debug_log("fail to set vconf int(spam_rule_changed)");
+                       _create_notify(ug_data, _("IDS_EMAIL_POP_ALERT"),
+                                                       _("IDS_EMAIL_POP_FAILED_TO_ADD_BLOCK_RULE"), 0,
+                                                       NULL, NULL, NULL, NULL, _popup_response_cb);
+               } else {
+                       char str[128] = { 0, };
+                       snprintf(str, sizeof(str), "%s", _("IDS_EMAIL_POP_BLOCKED"));
+                       ret = status_message_post(str);
+                       if (ret)
+                               debug_log("status_message_post failed: %d", ret);
+               }
+       }
+
+       email_free_rule(&rule, 1);
+}
+
+static void _popup_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;
+       }
+
+       EmailViewerUGD *ug_data = (EmailViewerUGD *)data;
+
+       if (ug_data->notify) {
+               evas_object_del(ug_data->notify);
+               ug_data->notify = NULL;
+       }
+}
+
+static void _popup_response_delete_ok_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;
+       }
+
+       EmailViewerUGD *ug_data = (EmailViewerUGD *)data;
+
+       if (ug_data->notify) {
+               evas_object_del(ug_data->notify);
+               ug_data->notify = NULL;
+       }
+
+       if (ug_data->mailbox_type == EMAIL_MAILBOX_TYPE_TRASH)
+               _delete_email(ug_data);
+       else
+               _move_email(ug_data, _find_folder_id_using_folder_type(ug_data, EMAIL_MAILBOX_TYPE_TRASH), TRUE);
+
+       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);
+
+               /* 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
+               ug_destroy_me(ug_data->ug);
+}
+
+static void _popup_response_to_destroy_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+
+       EmailViewerUGD *ug_data = (EmailViewerUGD *)data;
+       evas_object_del(obj);
+
+       ug_data->b_direct_destroy = 1;
+       ug_destroy_me(ug_data->ug);
+       _g_ug_data = NULL;
+}
+
+static void _webview_multi_up_cb(void *data, Evas * evas, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       if (_g_ug_data == NULL)
+               return;
+
+       if (!data) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       EmailViewerUGD *ug_data = (EmailViewerUGD *)data;
+
+       ug_data->m_is_multi_touch = FALSE;
+
+       if (ug_data->scroller_locked) {
+               ug_data->scroller_locked = FALSE;
+               debug_log("<<unlock scroller>>");
+               debug_log("<<lock webview>>");
+       }
+}
+
+static void _webview_multi_down_cb(void *data, Evas * evas, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       if (_g_ug_data == NULL)
+               return;
+
+       if (!data) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       EmailViewerUGD *ug_data = (EmailViewerUGD *)data;
+
+       ug_data->m_is_multi_touch = TRUE;
+
+       if (ug_data->scroller_locked == FALSE) {
+               ug_data->scroller_locked = TRUE;
+               debug_log("<<lock scroller>>");
+               debug_log("<<unlock webview>>");
+       }
+}
+
+static void _webview_policy_navigation_decide_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       if (!_g_ug_data) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       EmailViewerUGD *ug_data = (EmailViewerUGD *)data;
+
+       if (ug_data->b_load_finished == EINA_TRUE) {
+               Ewk_Policy_Decision *policy_decision = (Ewk_Policy_Decision *)event_info;
+               ewk_policy_decision_ignore(policy_decision);
+
+               debug_log("url:%s", ewk_policy_decision_url_get(policy_decision));
+               debug_log("scheme:%s", ewk_policy_decision_scheme_get(policy_decision));
+               debug_log("cookie:%s", ewk_policy_decision_cookie_get(policy_decision));
+               debug_log("host:%s", ewk_policy_decision_host_get(policy_decision));
+               debug_log("response_mime:%s", ewk_policy_decision_response_mime_get(policy_decision));
+
+               char *url = (char *)ewk_policy_decision_url_get(policy_decision);
+
+               if ((strncmp(url, "http://", 7) == 0) ||
+                       (strncmp(url, "https://", 8) == 0) ||
+                       (strncmp(url, "ftp://", 6) == 0) ||
+                       (strncmp(url, "mms://", 6) == 0) ||
+                       (strncmp(url, "file://", 7) == 0) ||
+                       (strncmp(url, "rtsp://", 7) == 0) ||
+                       (strncmp(url, "wap://", 6) == 0)) {
+                       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, url);
+                       debug_log("service_set_uri: %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);
+               }
+
+               if (strncmp(url, "tel:", 4) == 0) {
+                       char refined_num[MAX_STR_LEN] = { 0, };
+                       int i = 0, j = 0;
+
+                       while (url[i] != '\0') {
+                               if (url[i] >= '0' && url[i] <= '9')
+                                       refined_num[j++] = url[i];
+                               i++;
+                       }
+
+                       char *number = refined_num;
+                       debug_log("number: %s", number);
+
+                       int ret;
+                       service_h service = NULL;
+                       char telnum[255] = { 0, };
+                       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_CALL);
+                       debug_log("service_set_operation: %d", ret);
+                       snprintf(telnum, sizeof(telnum), "tel:%s", number); /* Number to make a call */
+                       ret = service_set_uri(service, telnum);
+                       debug_log("service_set_uri: %d", ret);
+                       ret = service_add_extra_data(service, "ctindex", "-1"); /* If you don't know ctindex, you don't have to add it. */
+                       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);
+               }
+
+               if (strncmp(url, "mailto:", 7) == 0) {
+                       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_EXTERNAL);
+
+                       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_TO, &url[7]);
+                       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);
+               }
+       }
+}
+
+/* Double_Scroller */
+static void _outter_scroller_bottom_hit_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+
+       EmailViewerUGD *ug_data = (EmailViewerUGD *)data;
+       int res = email_engine_check_body_download(ug_data->email_data->mail_id);
+
+       if (ug_data->is_main_scroller_scrolling && res != 0) {
+               debug_log("Main scroller hold push");
+               elm_object_scroll_freeze_push(ug_data->scroller);       //stop
+               ewk_view_vertical_panning_hold_set(ug_data->webview, EINA_FALSE);       //restart
+               ug_data->is_main_scroller_scrolling = EINA_FALSE;
+               ug_data->is_webview_scrolling = EINA_TRUE;
+       }
+}
+
+static void _outter_scroller_top_hit_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+}
+
+static void _outter_scroller_scroll_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       EmailViewerUGD *ug_data = (EmailViewerUGD *)data;
+
+       ug_data->is_main_scroller_scrolling = EINA_TRUE;
+}
+
+static void _mbe_added_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+}
+
+static void _mbe_selected_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       EmailViewerUGD *ug_data = (EmailViewerUGD *)data;
+       email_address_info_t *addrs_info = NULL;
+       Elm_Object_Item *item = (Elm_Object_Item *) event_info;
+       debug_log("selected item:%s", elm_object_item_text_get(item));
+
+       addrs_info = elm_object_item_data_get(item);
+
+       Evas_Coord x, y;
+       EMAIL_CONTACT_LIST_INFO_S *contact_list_item = NULL;
+       contact_list_item = (EMAIL_CONTACT_LIST_INFO_S *)_contact_search_by_email(ug_data, addrs_info->address);
+
+       if (ug_data->con_popup != NULL) {
+               evas_object_del(ug_data->con_popup);
+               ug_data->con_popup = NULL;
+       }
+
+       ug_data->con_popup = elm_ctxpopup_add(ug_data->navi_bar);
+       if (ug_data->con_popup == NULL) {
+               debug_log("cannot create context 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);
+
+               elm_ctxpopup_item_append(ug_data->con_popup, _("IDS_EMAIL_OPT_VIEW_CONTACT"), NULL, _ctxpopup_detail_contact_cb, g_strdup(index));
+               elm_ctxpopup_item_append(ug_data->con_popup, _("IDS_EMAIL_OPT_SEND_EMAIL"), NULL, _ctxpopup_send_email_cb, addrs_info->address);
+               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 {
+               elm_ctxpopup_item_append(ug_data->con_popup, dgettext("sys_string", "IDS_COM_OPT_ADD_TO_CONTACTS"), NULL, _ctxpopup_select_contact_mode_email_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);
+               elm_ctxpopup_item_append(ug_data->con_popup, _("IDS_EMAIL_OPT_BLOCK"), NULL, _ctxpopup_add_block_rule_cb, addrs_info->address);
+       }
+
+       evas_pointer_canvas_xy_get(ug_data->evas, &x, &y);
+       evas_object_move(ug_data->con_popup, x, y);
+       evas_object_show(ug_data->con_popup);
+}
+
+static void _destroy_down_progress_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+
+       if (!_g_ug_data) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       EmailViewerUGD *ug_data = _g_ug_data;
+       EmailViewerPrivate *priv = ug_data->email_data;
+
+       email_engine_stop_working(ug_data->account_id, priv->email_handle);
+
+       if (ug_data->pb_notify) {
+               evas_object_del(ug_data->pb_notify);
+               ug_data->pb_notify = NULL;
+       }
+
+       if (ug_data->pb_notify_lb) {
+               evas_object_del(ug_data->pb_notify_lb);
+               ug_data->pb_notify_lb = NULL;
+       }
+
+       if (data == NULL) {
+               if (priv->att_file_id) {
+                       free(priv->att_file_id);
+                       priv->att_file_id = NULL;
+               }
+
+               priv->file_size = 0;
+               priv->attachment_id = -1;
+               priv->multi_body = FALSE;
+       }
+}
+
+static void _init_viewer_data(int account_id, int mail_id, char *srv_mail_id, EmailViewerUGD *ug_data)
+{
+       debug_log("");
+       EmailViewerPrivate *priv = NULL;
+       EmailViewerProp *prop = NULL;
+       email_address_info_list_t *addrs_info_list = NULL;
+
+       /* Create Email Viewer Private Structure */
+       if (ug_data->email_data) {
+               if (ug_data->email_data->mail_info) {
+                       debug_log("mail_info freed");
+                       email_free_mail_data(&(ug_data->email_data->mail_info), 1);
+                       ug_data->email_data->mail_info = NULL;
+               }
+
+               if (ug_data->email_data->attachment_info && ug_data->email_data->attachment_count > 0) {
+                       debug_log("attachment_info freed p[%p] n[%d]", ug_data->email_data->attachment_info, ug_data->email_data->attachment_count);
+                       email_free_attachment_data(&(ug_data->email_data->attachment_info), ug_data->email_data->attachment_count);
+                       ug_data->email_data->attachment_info = NULL;
+                       ug_data->email_data->attachment_count = 0;
+               }
+
+               memset(ug_data->email_data, 0x0, sizeof(EmailViewerPrivate));
+               priv = ug_data->email_data;
+       } else {
+               priv = (EmailViewerPrivate *)malloc(sizeof(EmailViewerPrivate));
+               memset(priv, 0x0, sizeof(EmailViewerPrivate));
+               ug_data->email_data = priv;
+       }
+
+       /* Create Email Viewer Property Structure */
+       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);
+               }
+               memset(ug_data->property, 0x0, sizeof(EmailViewerProp));
+               prop = ug_data->property;
+       } else {
+               prop = (EmailViewerProp *)malloc(sizeof(EmailViewerProp));
+               memset(prop, 0x0, sizeof(EmailViewerProp));
+               ug_data->property = prop;
+       }
+
+       /* Set account ID */
+       priv->account_id = account_id;
+       prop->account_id = account_id;
+
+       /* Set mail ID */
+       priv->mail_id = mail_id;
+       prop->mail_id = mail_id;
+
+       priv->mailbox_id = ug_data->mailbox_id;
+       prop->src_box = ug_data->mailbox_name;
+       debug_log("mailbox_name [%s]", ug_data->mailbox_name);
+
+       /* Get mail_info from service, and fill property */
+       if (viewer_get_internal_mail_info(ug_data->property, ug_data->email_data)) {
+               viewer_make_internal_mail(ug_data->property, ug_data->email_data);
+       }
+
+       email_get_address_info_list(priv->mail_id, &addrs_info_list);
+
+       if (addrs_info_list) {
+               ug_data->from_list = addrs_info_list->from;
+               ug_data->to_list = addrs_info_list->to;
+               ug_data->cc_list = addrs_info_list->cc;
+               ug_data->bcc_list = addrs_info_list->bcc;
+               priv->addrs_info_list = addrs_info_list;
+       }
+
+       ug_data->option_header_opened = 0;
+}
+
+static int _init_webview_data(EmailViewerUGD *ug_data)
+{
+       debug_log("");
+
+       EmailViewerWebview *wvd;
+
+       if (ug_data->webview_data == NULL) {
+               wvd = (EmailViewerWebview *)malloc(sizeof(EmailViewerWebview));
+               memset(wvd, 0x0, sizeof(EmailViewerWebview));
+               ug_data->webview_data = wvd;
+       }
+
+       if (STR_VALID(ug_data->property->charset)) {
+               ug_data->webview_data->charset = g_strdup(ug_data->property->charset);
+               debug_log("charset:%s", ug_data->webview_data->charset);
+       } else {
+               ug_data->webview_data->charset = DEFAULT_CHARSET;
+               debug_log("charset:%s", ug_data->webview_data->charset);
+       }
+
+       return 0;
+}
+
+static Eina_Bool _check_body_download(void *data)
+{
+       debug_log("");
+       if (!data) {
+               debug_log("data is NULL");
+               return ECORE_CALLBACK_CANCEL;
+       }
+
+       EmailViewerUGD *ug_data = (EmailViewerUGD *)data;
+
+       _create_tab_bar(ug_data);
+
+       /* check mail body downloaded */
+       int body_download_status = ug_data->property->body_download;
+
+       if (body_download_status == 0) {        //EMAIL_BODY_DOWNLOAD_STATUS_NONE
+               debug_log("need body download");
+               ug_data->b_noc = 1;     /* Double_Scroller */
+
+               if (ug_data->noc_bx) {
+                       debug_log("no content layout exist");
+                       evas_object_show(ug_data->noc_bx);
+                       elm_object_text_set(ug_data->dn_btn, _("IDS_EMAIL_BODY_DOWNLOAD_MESSAGE"));
+                       evas_object_show(ug_data->dn_btn);
+                       elm_box_pack_end(ug_data->main_bx, ug_data->noc_bx);
+               } else {
+                       /* add body download button */
+                       ug_data->noc_bx = _load_edj(ug_data->navi_bar, EV_THEME_PATH, "layout.email.no_content");
+                       if (ug_data->noc_bx == NULL) {
+                               debug_log("Cannot load edj");
+                               return ECORE_CALLBACK_CANCEL;
+                       }
+
+                       evas_object_size_hint_align_set(ug_data->noc_bx, EVAS_HINT_FILL, EVAS_HINT_FILL);
+                       evas_object_size_hint_weight_set(ug_data->noc_bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+                       evas_object_show(ug_data->noc_bx);
+                       elm_box_pack_end(ug_data->main_bx, ug_data->noc_bx);
+
+                       Evas_Object *dn_btn = elm_button_add(ug_data->navi_bar);
+                       /*elm_object_theme_set(dn_btn, ug_data->theme);*/
+                       elm_object_style_set(dn_btn, "text_only/style2");
+                       elm_object_text_set(dn_btn, _("IDS_EMAIL_BODY_DOWNLOAD_MESSAGE"));
+                       evas_object_smart_callback_add(dn_btn, "clicked", _body_down_cb, (void *)ug_data);
+                       evas_object_show(dn_btn);
+                       ug_data->dn_btn = dn_btn;
+
+                       elm_object_part_content_set(ug_data->noc_bx, "btn", ug_data->dn_btn);
+                       debug_log("no content layout created");
+               }
+
+               elm_object_focus_set(ug_data->noc_bx, EINA_TRUE);
+               if (ug_data->timer) {
+                       ecore_timer_del(ug_data->timer);
+                       ug_data->timer = NULL;
+               }
+
+               ug_data->timer = ecore_timer_add(0.0, viewer_send_message, ug_data);
+       } else if (body_download_status == 1) { //EMAIL_BODY_DOWNLOAD_STATUS_FULLY_DOWNLOADED
+               debug_log("check mail downloaded - ok");
+               /* create body */
+               _create_body(ug_data);
+       } else if (body_download_status == 2) { //EMAIL_BODY_DOWNLOAD_STATUS_PARTIALLY_DOWNLOADED
+               /* partial body */
+               debug_log("Partial Body");
+               ug_data->b_partial_body = 1;
+               _create_body(ug_data);
+               _create_partial_body_dn_btn(ug_data);
+       }
+
+       return ECORE_CALLBACK_CANCEL;
+}
+
+static int _update_attachment_info(EmailViewerUGD *ug_data, int index)
+{
+       debug_log("");
+       EmailViewerProp *prop = ug_data->property;
+       int i = 0;
+       int j = 0;
+       int attach_index = 0;
+
+       /* update attachment information */
+       LIST_ITER_START(i, prop->attachments) {
+               EmailAttachmentType *info = (EmailAttachmentType *)LIST_ITER_GET_DATA(i, prop->attachments);
+
+               if (info && !info->inline_content) {
+                       debug_log("info->index[%d] index[%d]", info->index, index);
+
+                       if (info->index == index) {
+                               info->download_yn = TRUE;
+                               info->path = email_engine_get_attachment_path(info->attach_id);
+
+                               attach_index = i;
+
+                               if (prop->real_att_len > 1) {
+                                       Evas_Object *thumbnail = viewer_make_thumbnail(info->path, ug_data->attach_ex_bk[j]);
+                                       Evas_Object *content = elm_object_part_content_unset(ug_data->attach_ex_bk[j], "elm.icon");
+                                       evas_object_del(content);
+                                       elm_object_part_content_set(ug_data->attach_ex_bk[j], "elm.icon", thumbnail);
+                                       evas_object_show(thumbnail);
+                               } else {
+                                       Evas_Object *thumbnail = viewer_make_thumbnail(info->path, ug_data->attach_hd_bk);
+                                       Evas_Object *content = elm_object_part_content_unset(ug_data->attach_hd_bk, "elm.icon");
+                                       evas_object_del(content);
+                                       elm_object_part_content_set(ug_data->attach_hd_bk, "elm.icon", thumbnail);
+                                       evas_object_show(thumbnail);
+                               }
+
+                               break;
+                       }
+
+                       j++;
+               }
+       }
+
+       debug_log("return id[%d]", attach_index);
+
+       return attach_index;
+}
+
+static int _get_attachment_info_index(EmailViewerUGD *ug_data, int index)
+{
+       debug_log("");
+
+       EmailViewerProp *prop = ug_data->property;
+       int i = 0;
+       int attach_index = 0;
+
+       /* update attachment information */
+       LIST_ITER_START(i, prop->attachments) {
+               EmailAttachmentType *info = (EmailAttachmentType *)LIST_ITER_GET_DATA(i, prop->attachments);
+               if (info) {
+                       debug_log("info->index[%d] index[%d]", info->index, index);
+                       if (info->index == index) {
+                               attach_index = i;
+                               break;
+                       }
+               }
+       }
+
+       debug_log("return id[%d]", attach_index);
+
+       return attach_index;
+}
+
+static void _show_select_info(EmailViewerUGD *ug_data, char *str)
+{
+       debug_log("");
+
+       if (ug_data->select_info != NULL) {
+               evas_object_del(ug_data->select_info);
+               ug_data->select_info = NULL;
+       }
+
+       if (ug_data->selectioninfo_layout != NULL) {
+               evas_object_del(ug_data->selectioninfo_layout);
+               ug_data->selectioninfo_layout = NULL;
+       }
+
+       ug_data->select_info = elm_notify_add(ug_data->win_main);
+       elm_notify_orient_set(ug_data->select_info, ELM_NOTIFY_ORIENT_BOTTOM);
+
+       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");
+
+       edje_object_part_text_set(_EDJ(ug_data->selectioninfo_layout), "elm.text", str);
+       elm_notify_timeout_set(ug_data->select_info, 3);
+       evas_object_show(ug_data->select_info);
+}
+
+static void _save_attachment(EmailViewerUGD *ug_data, int index)
+{
+       debug_log("");
+       EmailViewerPrivate *priv = ug_data->email_data;
+       EmailViewerProp *prop = ug_data->property;
+       char newpath[MAX_STR_LEN] = { 0, };
+
+       RETURN_IF_FAIL(prop->attachments != NULL);
+       EmailAttachmentType *info = g_list_nth_data(prop->attachments, index);
+
+       if (info == NULL) {
+               debug_log("EmailAttachmentType *info is NULL");
+               return;
+       }
+
+       if (!info->download_yn) {
+               unsigned handle = 0;
+               gboolean res = FALSE;
+
+               if (ug_data->progress_bar[index + 1] != NULL) {
+                       debug_log("Already getting downloaded...!");
+                       _create_notify(ug_data, dgettext("sys_string", "IDS_COM_POP_WARNING"),
+                                                       _("IDS_EMAIL_POP_ALREADY_DOWNLOADING_T_HEADER"), 1,
+                                                       dgettext("sys_string", "IDS_COM_SK_OK"),
+                                                       _popup_response_cb, NULL, NULL, NULL);
+                       return;
+               }
+
+               debug_log("Need attachment download");
+               /* download attachment */
+               priv->b_att_save = TRUE;
+
+               res = email_engine_attachment_download(priv->account_id, priv->mail_id, info->index, &handle);
+
+               if (res == TRUE) {
+                       priv->download_all_cnt++;
+                       debug_log("Assigning Handle[%d] Index[%d] download_all_cnt[%d]", handle, index, priv->download_all_cnt);
+                       priv->download_all_email_handle[index] = handle;
+                       _create_down_progress_ex(index, EMAIL_VIEWER_PROGRESSBAR_ATT);
+                       ug_data->display_download_result = TRUE;
+               } else {
+                       priv->b_att_save = FALSE;
+                       _create_notify(ug_data, dgettext("sys_string", "IDS_COM_POP_WARNING"),
+                                                       _("IDS_EMAIL_POP_UNABLE_TO_OPEN_ATTACHMENT"), 1,
+                                                       dgettext("sys_string", "IDS_COM_SK_OK"), _popup_response_cb,
+                                                       NULL, NULL, NULL);
+               }
+
+               return;
+       }
+
+       if (info && STR_VALID(info->path)) {
+               int ret;
+               debug_log("path[%s]", info->path);
+               ret = email_attachments_save_file(info->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);
+               }
+       }
+}
+
+static void _show_attachment(EmailViewerUGD *ug_data, int index)
+{
+       debug_log("");
+       EmailViewerPrivate *priv = ug_data->email_data;
+       EmailViewerProp *prop = ug_data->property;
+       EmailAttachmentType *info = g_list_nth_data(prop->attachments, index);
+       char newpath[MAX_STR_LEN] = { 0, };
+
+       if (info == NULL) {
+               debug_log("EmailAttachmentType *info is NULL");
+               return;
+       }
+
+       debug_log("attach_id:%d, index:%d, name(%s), path(%s), size:%d, download_yn:%d, drm:%d, inline_content:%d",
+               info->attach_id, info->index, info->name, info->path, (gint) info->size, info->download_yn, info->drm, info->inline_content);
+
+       if (!info->download_yn) {
+               unsigned handle = 0;
+               gboolean res = FALSE;
+               debug_log("Need attachment download");
+
+               priv->b_att_open = TRUE;
+
+               res = email_engine_attachment_download(priv->account_id, priv->mail_id, info->index, &handle);
+
+               if (res == TRUE) {
+                       priv->download_all_email_handle[index] = handle;
+                       priv->download_all_cnt++;
+                       _create_down_progress_ex(index, EMAIL_VIEWER_PROGRESSBAR_ATT);
+               } else {
+                       priv->b_att_open = FALSE;
+                       _create_notify(ug_data, dgettext("sys_string", "IDS_COM_POP_WARNING"),
+                                                       _("IDS_EMAIL_POP_UNABLE_TO_OPEN_ATTACHMENT"), 1,
+                                                       dgettext("sys_string", "IDS_COM_SK_OK"), _popup_response_cb,
+                                                       NULL, NULL, NULL);
+               }
+               return;
+       }
+
+               gboolean res = FALSE;
+               res = email_attachments_save_file(info->path, newpath, NULL);
+               debug_log("Result:%d, Saved Path:%s", res, newpath);
+
+               if (res == 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);*/
+                       int ret = status_message_post(str);
+                       if (ret)
+                               debug_log("status_message_post failed: %d", ret);
+
+                       if (g_str_has_suffix(info->path, ".vcs")) {
+                               int nResult = -1;
+                               int calendar_id = 1;
+                               calendar_svc_connect();
+                               nResult = calendar_svc_calendar_import(newpath, calendar_id);
+
+                               debug_log("check return value of calendar_svc_util_register_vcs_file for %s - %d", newpath, nResult);
+                               if (nResult != CAL_SUCCESS) {
+                                       debug_log("Failed to import path(%s) to id(%d)", newpath, calendar_id);
+                                       return;
+                               }
+                               calendar_svc_close();
+                       } else
+                               media_file_register(newpath);
+               } else if (res == EMAIL_EXT_SAVE_ERR_ALREADY_EXIST && !ug_data->display_download_result) {
+                       _create_notify(ug_data, _("IDS_EMAIL_POP_ALERT"),
+                                                       dgettext("sys_string", "IDS_COM_POP_ALREDY_EXISTS"), 0,
+                                                       NULL, NULL, NULL, NULL, _popup_response_cb);
+               }
+
+       debug_log("display_download_result:%d", ug_data->display_download_result);
+       if (ug_data->display_download_result) {
+               if (res == EMAIL_EXT_SAVE_ERR_NONE || res == EMAIL_EXT_SAVE_ERR_ALREADY_EXIST) {
+                       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, newpath);
+                       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);
+                       if (ret != SERVICE_ERROR_NONE) {
+                               _create_notify(ug_data, dgettext("sys_string", "IDS_COM_POP_WARNING"),
+                                                               _("IDS_EMAIL_POP_THIS_ATTACHMENT_CANNOT_BE_DISPLAYED"), 0,
+                                                               NULL, NULL, NULL, NULL, _popup_response_cb);
+                       }
+                       ret = service_destroy(service);
+                       debug_log("service_destroy: %d", ret);
+               } else {
+                       debug_log("EMAIL_EXT_SAVE_ERR_UNKNOWN");
+               }
+       }
+}
+
+static void _save_attachment_all(EmailViewerUGD *ug_data)
+{
+       debug_log("");
+       EmailViewerPrivate *priv = ug_data->email_data;
+       EmailViewerProp *prop = ug_data->property;
+       EmailAttachmentType *info = NULL;
+
+       int i = 0;
+       int att_len = g_list_length(prop->attachments);
+
+       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);
+
+               if (info && !info->inline_content) {
+                       if (!info->download_yn) {
+                               if (ug_data->progress_bar_ly[i + 1] == NULL) {
+                                       unsigned handle = 0;
+                                       gboolean res = FALSE;
+                                       debug_log("Need attachment [%d] download", i);
+
+                                       res = email_engine_attachment_download(priv->account_id, priv->mail_id, info->index, &handle);
+
+                                       if (res == TRUE) {
+                                               priv->download_all_cnt++;
+                                               priv->download_all_email_handle[i] = handle;
+                                               priv->b_all_att_save = TRUE;
+
+                                               debug_log("attach_onoff_flag:%d", ug_data->attach_onoff_flag);
+                                               if (priv->b_all_att_save) {
+                                                       if (ug_data->attach_onoff_flag == 0) {
+                                                               _attachment_item_collapse_cb(ug_data->attach_hd_bk, NULL, NULL, NULL);
+                                                       }
+                                               }
+
+                                               _create_down_progress_ex(i, EMAIL_VIEWER_PROGRESSBAR_ATT);
+                                               ug_data->display_download_result = TRUE;
+                                       } else {
+                                               priv->download_all_fail_cnt++;
+                                       }
+                               }
+                       }
+               }
+       }
+
+       debug_log("download [%d], failed [%d]", priv->download_all_cnt, priv->download_all_fail_cnt);
+}
+
+static void _dbus_receiver_setup(EmailViewerUGD *ug_data)
+{
+       debug_log("");
+
+       int ret = e_dbus_init();
+       debug_log("ret: %d", ret);
+
+       DBusError derror;
+
+       if (_g_viewer_dbus_conn == NULL) {
+               debug_log("");
+               dbus_error_init(&derror);
+               _g_viewer_dbus_conn = e_dbus_bus_get(DBUS_BUS_SYSTEM);
+
+               if (_g_viewer_dbus_conn == NULL) {
+                       debug_log("e_dbus_bus_get return NULL");
+               }
+
+               /* storage */
+               if (e_dbus_request_name(_g_viewer_dbus_conn, "User.Email.StorageChange", 0, NULL, NULL) == NULL) {
+                       debug_critical("Failed to e_dbus_request_name()");
+                       return;
+               }
+
+               if (_g_viewer_signal_handler_storage != NULL) {
+                       debug_log("_g_viewer_signal_handler_storage != NULL");
+               }
+
+               _g_viewer_signal_handler_storage = e_dbus_signal_handler_add(_g_viewer_dbus_conn, NULL,
+                                                                                                                                       "/User/Email/StorageChange",
+                                                                                                                                       "User.Email.StorageChange",
+                                                                                                                                       "email", _on_edbus_event_email_viewer_receive, ug_data);
+
+               if (_g_viewer_signal_handler_storage == NULL) {
+                       debug_log("Failed to e_dbus_signal_handler_add()");
+                       return;
+               }
+
+               /* network */
+               if (e_dbus_request_name(_g_viewer_dbus_conn, "User.Email.NetworkStatus", 0, NULL, NULL) == NULL) {
+                       debug_log("Failed to e_dbus_request_name()");
+                       return;
+               }
+
+               if (_g_viewer_signal_handler_network != NULL) {
+                       debug_log("_g_viewer_signal_handler_network != NULL");
+               }
+
+               _g_viewer_signal_handler_network = e_dbus_signal_handler_add(_g_viewer_dbus_conn, NULL,
+                                                                                                                       "/User/Email/NetworkStatus",
+                                                                                                                       "User.Email.NetworkStatus",
+                                                                                                                       "email", _on_edbus_event_email_viewer_receive, ug_data);
+
+               if (_g_viewer_signal_handler_network == NULL) {
+                       debug_log("Failed to e_dbus_signal_handler_add()");
+                       return;
+               }
+       }
+}
+
+static void _dbus_receiver_remove(EmailViewerUGD *ug_data)
+{
+       debug_log("");
+
+       if (_g_viewer_signal_handler_storage != NULL) {
+               e_dbus_signal_handler_del(_g_viewer_dbus_conn, _g_viewer_signal_handler_storage);
+               _g_viewer_signal_handler_storage = NULL;
+       }
+
+       if (_g_viewer_signal_handler_network != NULL) {
+               e_dbus_signal_handler_del(_g_viewer_dbus_conn, _g_viewer_signal_handler_network);
+               _g_viewer_signal_handler_network = NULL;
+       }
+
+       if (e_dbus_release_name(_g_viewer_dbus_conn, "User.Email.StorageChange", NULL, NULL) == NULL) {
+               debug_critical("e_dbus_release_name to failed");
+       }
+
+       if (e_dbus_release_name(_g_viewer_dbus_conn, "User.Email.NetworkStatus", NULL, NULL) == NULL) {
+               debug_critical("e_dbus_release_name to failed");
+       }
+
+       if (_g_viewer_dbus_conn != NULL) {
+               /*e_dbus_connection_close(_g_viewer_dbus_conn);*/
+               _g_viewer_dbus_conn = NULL;
+       }
+}
+
+static void _on_edbus_event_email_viewer_receive(void *data, DBusMessage *message)
+{
+       debug_log("");
+
+       if (!_g_ug_data) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       EmailViewerUGD *ug_data = _g_ug_data;
+       EmailViewerPrivate *priv = ug_data->email_data;
+       char fail_msg[MAX_STR_LEN] = { 0, };
+       DBusError error;
+
+       if (dbus_message_is_signal(message, "User.Email.StorageChange", "email")) {
+               debug_log("User.Email.StorageChange");
+
+               int subtype = 0;
+               int data1 = 0;
+               int data2 = 0;
+               char *data3 = NULL;
+
+               dbus_error_init(&error);
+               if (dbus_message_get_args(message, &error, DBUS_TYPE_INT32, &subtype,
+                       DBUS_TYPE_INT32, &data1, DBUS_TYPE_INT32, &data2,
+                       DBUS_TYPE_STRING, &data3, DBUS_TYPE_INVALID)) {
+                       debug_log("STORE_ENABLE: subtype: %d, data1: %d, data2: %d, data3: %s", subtype, data1, data2, data3);
+
+                       switch (subtype) {
+                       case NOTI_ACCOUNT_ADD:
+                               if (get_app_paused()) {
+                                       debug_log("account added during pause status");
+
+                                       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");
+                                       }
+
+                                       if (ug_data->b_internal != 1) {
+                                               debug_log("ug_destory_me");
+                                               ug_destroy_me(ug_data->ug);
+                                       } else {
+                                               _hide_view(ug_data);
+                                       }
+                               }
+                               break;
+
+                       case NOTI_ACCOUNT_DELETE:
+                               if (get_app_paused()) {
+                                       debug_log("account deleted during pause status");
+                                       int account_id = 0;
+
+                                       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");
+                                       }
+
+                                       if (email_engine_get_default_account(&account_id)) {
+                                               if (ug_data->b_internal != 1) {
+                                                       debug_log("ug_destory_me");
+                                                       ug_destroy_me(ug_data->ug);
+                                               } else {
+                                                       _hide_view(ug_data);
+                                               }
+                                       }
+                               }
+                               break;
+
+                       case NOTI_ACCOUNT_UPDATE:
+                               if (get_app_paused()) {
+                                       debug_log("account updated during pause status");
+                               }
+                               break;
+
+                       default:
+                               debug_warning("unknown type");
+                               break;
+                       }
+               } else {
+                       debug_critical("receive data error: %s", error.message);
+                       dbus_error_free(&error);
+               }
+       } else if (dbus_message_is_signal(message, "User.Email.NetworkStatus", "email")) {
+               debug_log("");
+
+               int subtype = 0;
+               int data1 = 0;
+               char *data2 = NULL;
+               int data3 = 0;
+               int data4 = 0;
+
+               dbus_error_init(&error);
+
+               if (dbus_message_get_args(message, &error, DBUS_TYPE_INT32, &subtype,
+                       DBUS_TYPE_INT32, &data1, DBUS_TYPE_STRING, &data2,
+                       DBUS_TYPE_INT32, &data3, DBUS_TYPE_INT32, &data4, DBUS_TYPE_INVALID)) {
+                       debug_log("subtype: %d, data1: %d, data2: %s, data3: %d, data4: %d", subtype, data1, data2, data3, data4);
+                       switch (subtype) {
+
+                       case NOTI_DOWNLOAD_BODY_START:
+                               /* DATA1[mail_id] DATA2[file_id] DATA3[body_size] DATA4[received size] */
+                               debug_log("receive noti, DOWNLOAD_BODY");
+                               if (priv->mail_id == data1) {
+                                       priv->file_id = g_strdup(data2);
+                                       priv->file_size = data3;
+
+                                       if (data4 == 0) {
+                                               _set_value_down_progress(0.0);
+                                       } else {
+                                               double per = (double)data4 / (double)data3;
+                                               _set_value_down_progress(per);
+                                       }
+                               } else {
+                                       debug_log("mail_id is different");
+                                       debug_log("expected mail_id [%d], received mail_id [%d]", priv->mail_id, data1);
+                               }
+                               break;
+
+                       case NOTI_DOWNLOAD_MULTIPART_BODY:
+                               /* DATA1[mail_id] DATA2[file_id] DATA3[body_size] DATA4[received size] */
+                               debug_log("receive noti, DOWNLOAD_MULTIPART_BODY");
+                               if (priv->mail_id == data1) {
+                                       priv->file_id = g_strdup(data2);
+                                       priv->file_size = data3;
+                                       priv->multi_body = TRUE;
+
+                                       if (data4 == 0) {
+                                               _set_value_down_progress(0.0);
+                                       } else {
+                                               double per = (double)data4 / (double)data3;
+                                               _set_value_down_progress(per);
+                                       }
+                               } else {
+                                       debug_log("mail_id is different");
+                                       debug_log("expected mail_id [%d], received mail_id [%d]", priv->mail_id, data1);
+                               }
+                               break;
+
+                       case NOTI_DOWNLOAD_BODY_FINISH:
+                               /* DATA1[mail_id] DATA2[NULL] DATA3[handle_id] */
+                               debug_log("receive noti, DOWNLOAD_BODY_FINISH");
+                               if (priv->email_handle == data3 && priv->mail_id == data1) {
+                                       priv->email_handle = 0;
+
+                                       ug_data->b_load_finished = EINA_FALSE;
+
+                                       /* delete progress */
+                                       if (ug_data->pb_notify) {
+                                               _set_value_down_progress(1.0);
+                                               _destroy_down_progress_cb(NULL, NULL, NULL);
+                                       }
+
+                                       char str[128] = { 0, };
+                                       snprintf(str, sizeof(str), "%s", dgettext("sys_string", "IDS_COM_BODY_DOWNLOADED"));
+                                       /*_show_select_info(ug_data, str);*/
+                                       int ret = status_message_post(str);
+                                       if (ret)
+                                               debug_log("status_message_post failed: %d", ret);
+
+                                       /* set property */
+                                       if (viewer_get_internal_mail_info(ug_data->property, ug_data->email_data)) {
+                                               viewer_make_internal_mail(ug_data->property, ug_data->email_data);
+                                       }
+                                       /* create att and body */
+                                       if (ug_data->b_partial_body) {
+                                               int scr_x = 0;
+                                               int scr_y = 0;
+                                               int scr_w = 0;
+                                               int scr_h = 0;
+                                               elm_scroller_region_get(ug_data->scroller, &scr_x, &scr_y, &scr_w, &scr_h);
+                                               debug_log("scroller region> x[%d] y[%d] w[%d] h[%d]", scr_x, scr_y, scr_w, scr_h);
+
+                                               elm_box_unpack(ug_data->main_bx, ug_data->partial_dn_btn_bx);
+                                               if (ug_data->partial_dn_btn) {
+                                                       evas_object_del(ug_data->partial_dn_btn);
+                                                       ug_data->partial_dn_btn = NULL;
+                                               }
+                                               if (ug_data->partial_dn_btn_bx) {
+                                                       evas_object_del(ug_data->partial_dn_btn_bx);
+                                                       ug_data->partial_dn_btn_bx = NULL;
+                                               }
+
+                                               if (ug_data->property->has_html) {
+                                                       ug_data->webview_data->body_type = BODY_TYPE_HTML;
+                                                       ug_data->webview_data->uri = ug_data->property->body_uri;
+                                               } else {
+                                                       ug_data->webview_data->body_type = BODY_TYPE_TEXT;
+                                                       ug_data->webview_data->text_content = ug_data->property->body;
+                                               }
+
+                                               viewer_set_webview_content(ug_data, 1);
+
+                                               elm_object_focus_set(ug_data->ly_subject, EINA_TRUE);
+                                               elm_scroller_region_show(ug_data->scroller, scr_x, scr_y, scr_w, scr_h);
+                                       } else {
+
+                                               if (ug_data->property->has_attachment)
+                                                       ug_data->got_att = 1;
+                                               else
+                                                       ug_data->got_att = 0;
+
+                                               /* pack attachment if it exist */
+                                               if (ug_data->got_att) {
+                                                       _create_attach(ug_data);
+                                               }
+
+                                               _create_body(ug_data);
+                                       }
+                               } else {
+                                       debug_log("email_handle or mail_id is different");
+                                       debug_log("expected mail_id [%d], received mail_id [%d]", priv->mail_id, data1);
+                                       debug_log("expected email_handle [%d], received email_handle [%d]", priv->email_handle, data3);
+                               }
+                               break;
+
+                       case NOTI_DOWNLOAD_BODY_FAIL:
+                               /* DATA1[mail_id] DATA2[NULL] DATA3[handle_id] */
+                               debug_log("receive noti, DOWNLOAD_BODY_FAIL");
+                               if (priv->email_handle == data3 && priv->mail_id == data1) {
+                                       priv->email_handle = 0;
+
+                                       /* delete progress */
+                                       if (ug_data->pb_notify) {
+                                               _destroy_down_progress_cb(NULL, NULL, NULL);
+                                       }
+
+                                       char *err_msg = _get_service_fail_type(data4);
+                                       snprintf(fail_msg, sizeof(fail_msg), "%s<br>%s", _("IDS_EMAIL_POP_UNABLE_TO_DOWNLOAD"), err_msg);
+                                       _create_notify(ug_data, dgettext("sys_string", "IDS_COM_POP_WARNING"),
+                                                                       fail_msg, 1, dgettext("sys_string", "IDS_COM_SK_OK"),
+                                                                       _popup_response_cb, NULL, NULL, NULL);
+                                       g_free(err_msg);
+                               } else {
+                                       debug_log("email_handle or mail_id is different");
+                                       debug_log("expected mail_id [%d], received mail_id [%d]", priv->mail_id, data1);
+                                       debug_log("expected email_handle [%d], received email_handle [%d]", priv->email_handle, data3);
+                               }
+                               break;
+
+                       case NOTI_DOWNLOAD_ATTACH_START:
+                               /* DATA1[mail_id] DATA2[file_id] DATA3[attachment_id] DATA4[percentage] */
+                               debug_log("receive noti, DOWNLOAD_ATTACHMENT");
+                               if (priv->mail_id == data1) {
+                                       priv->att_file_id = g_strdup(data2);
+                                       priv->attachment_id = data3;
+
+                                       if (data4 == 0) {
+                                               /* Set the progressbar of particular attachment_id */
+                                               _set_value_down_progress_by_index(0.0, priv->attachment_id);
+                                       }
+                                       if (data4 > 0) {
+                                               double per = (double)data4 / 100.0;
+                                               /* Set the progressbar of particular attachment_id */
+                                               _set_value_down_progress_by_index(per, priv->attachment_id);
+                                       }
+                               } else {
+                                       debug_log("mail_id is different");
+                                       debug_log("expected mail_id [%d], received mail_id [%d]", priv->mail_id, data1);
+                               }
+                               break;
+
+                       case NOTI_DOWNLOAD_ATTACH_FINISH:
+                               /* DATA1[mail_id] DATA2[NULL] DATA3[attachment_id] */
+                               debug_log("receive noti, DOWNLOAD_ATTACH_FINISH");
+
+                               if (priv->mail_id == data1) {
+                                       int attach_index = 0;
+                                       int attachment_id = (int)data3;
+                                       debug_log("download_all_cnt [%d]", priv->download_all_cnt);
+
+                                       if (priv->download_all_cnt > 0) {
+                                               _set_value_down_progress_by_index(1.0, attachment_id);
+                                               attach_index = _update_attachment_info(ug_data, attachment_id);
+                                               if (priv->b_all_att_save) {
+                                                       _destroy_down_progress_ex((void *)attach_index, NULL, NULL);
+                                                       _save_attachment(ug_data, attach_index);
+                                                       if (priv->download_all_cnt == 0) {
+                                                               priv->b_all_att_save = FALSE;
+                                                       }
+                                               } else {
+                                                       _destroy_down_progress_ex((void *)attach_index, NULL, NULL);
+                                                       _show_attachment(ug_data, attach_index);
+                                               }
+                                       }
+                               } else {
+                                       debug_log("mail_id or attachment_id is different");
+                                       debug_log("expected mail_id [%d], received mail_id [%d]", priv->mail_id, data1);
+                               }
+                               break;
+
+                       case NOTI_DOWNLOAD_ATTACH_FAIL:
+                               /* DATA1[mail_id] DATA2[NULL] DATA3[attachment_id] */
+                               debug_log("receive noti, DOWNLOAD_ATTACH_FAIL");
+                               if (priv->mail_id == data1) {
+                                       int attach_index = _get_attachment_info_index(ug_data, data3);
+                                       debug_log("download_all_cnt[%d]", priv->download_all_cnt);
+
+                                       if (priv->download_all_cnt > 0) {
+                                               if (ug_data->progress_bar[data3] != NULL && data4 != EMAIL_ERROR_CANCELLED)
+                                                       _destroy_down_progress_ex((void *)attach_index, NULL, NULL);
+                                               else
+                                                       debug_log("Download already cancelled, No need to destroy again..!");
+
+                                               if (data4 != EMAIL_ERROR_CANCELLED && ug_data->ug_composer == NULL) {
+                                                       char *err_msg = _get_service_fail_type(data4);
+                                                       snprintf(fail_msg, sizeof(fail_msg), "%s<br>%s", _("IDS_EMAIL_POP_UNABLE_TO_DOWNLOAD"), err_msg);
+                                                       _create_notify(ug_data, dgettext("sys_string", "IDS_COM_POP_WARNING"), fail_msg, 1,
+                                                                                       dgettext("sys_string", "IDS_COM_SK_OK"),
+                                                                                       _popup_response_cb, NULL, NULL, NULL);
+                                                       g_free(err_msg);
+                                               }
+
+                                               if (priv->b_all_att_save && priv->download_all_cnt == 0) {
+                                                       priv->b_all_att_save = FALSE;
+                                               }
+                                       }
+                               } else {
+                                       debug_log("mail_id is different");
+                                       debug_log("expected mail_id [%d], received mail_id [%d]", priv->mail_id, data1);
+                               }
+                               break;
+
+                       default:
+                               debug_log("unknown type");
+                               break;
+                       }
+               } else {
+                       debug_log("receive data error: %s", error.message);
+                       dbus_error_free(&error);
+               }
+               /*return DBUS_HANDLER_RESULT_HANDLED;*/
+               return;
+       }
+       /*return DBUS_HANDLER_RESULT_HANDLED;*/
+       return;
+}
+
+static void _delete_contacts_list(EMAIL_CONTACT_LIST_INFO_S *contacts_list_item)
+{
+       debug_log("");
+
+       if (contacts_list_item) {
+#ifndef _NEW_CT_SVC_API
+               g_free(contacts_list_item->first_name);
+               contacts_list_item->first_name = NULL;
+               g_free(contacts_list_item->last_name);
+               contacts_list_item->last_name = NULL;
+#else
+               g_free(contacts_list_item->display);
+               contacts_list_item->display = NULL;
+#endif
+               g_free(contacts_list_item->email_address);
+               contacts_list_item->email_address = NULL;
+               g_free(contacts_list_item);
+               contacts_list_item = NULL;
+       }
+}
+
+static void *_contact_search_by_email(EmailViewerUGD *ug_data, const char *search_word)
+{
+       debug_log("");
+       if (!ug_data || !_g_ug_data) {
+               debug_log("data is NULL");
+               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) {
+               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);
+
+                       contacts_list_item->index = index;
+#ifndef _NEW_CT_SVC_API
+                       contacts_list_item->first_name = g_strdup(contacts_svc_value_get_str(row_info, CTS_LIST_EMAIL_CONTACT_FIRST_STR));
+                       contacts_list_item->last_name = g_strdup(contacts_svc_value_get_str(row_info, CTS_LIST_EMAIL_CONTACT_LAST_STR));
+#else
+                       contacts_list_item->display = g_strdup(contacts_svc_value_get_str(row_info, CTS_LIST_EMAIL_CONTACT_DISPLAY_STR));
+#endif
+                       contacts_list_item->email_address = g_strdup(contacts_svc_value_get_str(row_info, CTS_LIST_EMAIL_ADDR_STR));
+
+#ifndef _NEW_CT_SVC_API
+                       char *first = contacts_list_item->first_name;
+                       char *last = contacts_list_item->last_name;
+                       char *display = g_strdup(contacts_svc_value_get_str(row_info, CTS_LIST_EMAIL_CONTACT_DISPLAY_STR));
+
+                       if (!display) {
+                               if (first != NULL && last != NULL) {
+                                       if (CTS_ORDER_NAME_FIRSTLAST == contacts_svc_get_order(CTS_ORDER_OF_DISPLAY)) {
+                                               display = g_strconcat(first, " ", last, NULL);
+                                       } else {
+                                               display = g_strconcat(last, " ", first, NULL);
+                                       }
+                               } else if (first != NULL || last != NULL) {
+                                       display = (first != NULL) ? g_strdup(first) : g_strdup(last);
+                               } else {
+                                       display = g_strdup(" ");
+                               }
+                       }
+
+                       snprintf(contacts_list_item->display_name, sizeof(contacts_list_item->display_name), "%s", display);
+                       g_free(display);
+#else
+                       snprintf(contacts_list_item->display_name, sizeof(contacts_list_item->display_name), "%s", contacts_list_item->display);
+#endif
+
+               }
+
+               contacts_svc_value_free(row_info);
+               row_info = NULL;
+
+               contacts_svc_iter_remove(iter);
+       }
+
+       contacts_svc_disconnect();
+
+       return contacts_list_item;
+}
+
+static void _set_value_down_progress(double val)
+{
+       debug_log("");
+
+       if (!_g_ug_data) {
+               debug_log("data is NULL");
+               return;
+       }
+       char buf[30] = { 0, };
+       EmailViewerUGD *ug_data = _g_ug_data;
+
+       sprintf(buf, "%s: %d", dgettext("sys_string", "IDS_COM_POP_DOWNLOADING"), (int)val);
+
+       if (ug_data->pb_notify_lb) {
+               elm_progressbar_value_set(ug_data->pb_notify_lb, val);
+               elm_object_text_set(ug_data->pb_notify_lb, buf);
+       }
+}
+
+static void _set_value_down_progress_by_index(double val, int index)
+{
+       debug_log("");
+
+       if (!_g_ug_data) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       EmailViewerUGD *ug_data = _g_ug_data;
+       EmailViewerProp *prop = ug_data->property;
+
+       if (val < 0.0) {
+               debug_log("val(%f) is MINUS");
+               return;
+       }
+
+       if (index < 0 || index >= ATTACH_MAX) {
+               debug_log("index(%d) is overflowed");
+               return;
+       }
+
+       if (prop == NULL) {
+               debug_log("prop is NULL");
+               return;
+       }
+
+       if (prop->attachments == NULL) {
+               debug_log("attachments is NULL");
+               return;
+       }
+
+       int per = val * 100;
+       int attach_index = _get_attachment_info_index(ug_data, index);
+       EmailAttachmentType *info = g_list_nth_data(prop->attachments, attach_index);
+
+       if (info == NULL) {
+               debug_log("info is NULL");
+       }
+
+       if (ug_data->progress_bar[index] == NULL) {
+               debug_log("obj is NULL");
+               return;
+       }
+
+       char *pszTemp = NULL;
+       pszTemp = (char *)elm_object_style_get(ug_data->progress_bar[index]);
+
+       if (STR_INVALID(pszTemp))
+               return;
+
+       if (g_strcmp0(pszTemp, "pending_list") == 0) {
+               debug_log("pending_list so return");
+               return;
+       }
+
+       elm_progressbar_value_set(ug_data->progress_bar[index], val);
+
+       if (ug_data->progress_bar_ly[index] != NULL) {
+               char buf[30] = { 0, };
+               snprintf(buf, sizeof(buf), "%d%%", per);
+
+               Evas_Object *downloading_label2;
+               downloading_label2 = elm_label_add(ug_data->progress_bar_ly[index]);
+               elm_object_part_content_set(ug_data->progress_bar_ly[index], "elm.text.2", downloading_label2);
+               char *buf_tagged = g_strconcat("<font_size=26><align=left><color=#646464FF>", buf, "</align></font_size>", NULL);
+               elm_object_text_set(downloading_label2, buf_tagged);
+               g_free(buf_tagged);
+       }
+}
+
+static void _cancel_download_attachment(EmailViewerUGD *ug_data)
+{
+       debug_log("");
+       int i = 0;
+       gboolean is_cancel = FALSE;
+
+       if (!_g_ug_data) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       EmailViewerPrivate *priv = ug_data->email_data;
+       EmailViewerProp *prop = ug_data->property;
+
+       if (priv && priv->download_all_cnt <= 0) {
+               debug_log("No attachment download to be cancelled!");
+               return;
+       }
+
+       for (i = 0; i <= prop->att_len; i++) {
+               if (ug_data->progress_bar_ly[i]) {
+                       Evas_Object *btn = elm_object_part_content_get(ug_data->progress_bar_ly[i], "elm.icon.1");
+                       debug_log("Cancel btn for downloading attachment: %p", btn);
+                       if (btn) {
+                               evas_object_smart_callback_call(btn, "clicked", NULL);
+                               is_cancel = TRUE;
+                       }
+               }
+       }
+
+       if (is_cancel == TRUE && ug_data->ug_composer == NULL) {
+               _create_notify(ug_data, dgettext("sys_string", "IDS_COM_POP_WARNING"), _("IDS_EMAIL_POP_CANCELLING_ATTACHMENT_DOWNLOAD_ING"),
+                                               1, dgettext("sys_string", "IDS_COM_SK_OK"), _popup_response_cb,
+                                               NULL, NULL, NULL);
+       }
+}
+
+static char *_get_service_fail_type(int type)
+{
+       debug_log("");
+
+       char *ret = NULL;
+       char str[MAX_STR_LEN] = { 0, };
+
+       if (type == -174) {
+               snprintf(str, sizeof(str), "%s: %s", _("IDS_EMAIL_POP_FAILED_TO_ACTIVATE_PDP"), N_("IP full"));
+               return g_strdup(str);
+       } else if (type == -176) {
+               ret = _("IDS_EMAIL_POP_NO_SERVICE");
+               return g_strdup(ret);
+       } else if (type == -181) {
+               snprintf(str, sizeof(str), "%s: %s", _("IDS_EMAIL_POP_FAILED_TO_ACTIVATE_PDP"), N_("Transport Error"));
+               return g_strdup(str);
+       } else if (type == EMAIL_ERROR_NETWORK_TOO_BUSY) {
+               ret = _("IDS_EMAIL_POP_NETWORK_BUSY");
+               return g_strdup(ret);
+       } else if (type == EMAIL_ERROR_LOGIN_ALLOWED_EVERY_15_MINS) {
+               snprintf(str, sizeof(str), _("IDS_EMAIL_POP_YOU_CAN_ONLY_LOG_IN_ONCE_EVERY_PD_MINUTES"), 15);
+               return g_strdup(str);
+       } else if (type == EMAIL_ERROR_CONNECTION_FAILURE) {
+               ret = dgettext("sys_string", "IDS_COM_POP_CONNECTION_FAILED");
+               return g_strdup(ret);
+       } else if (type == EMAIL_ERROR_LOGIN_FAILURE) {
+               ret = _("IDS_EMAIL_POP_LOG_IN_FAILED");
+               return g_strdup(ret);
+       } else if (type == EMAIL_ERROR_AUTHENTICATE) {
+               ret = _("IDS_EMAIL_POP_AUTHENTICATION_FAILED");
+               return g_strdup(ret);
+       } else if (type == EMAIL_ERROR_CANCELLED) {
+               ret = _("IDS_EMAIL_POP_DOWNLOAD_CANCELLED");
+               return g_strdup(ret);
+       } else if (type == EMAIL_ERROR_MAIL_NOT_FOUND_ON_SERVER) {
+               ret = _("IDS_EMAIL_POP_EMAIL_DELETED_FROM_SERVER");
+               return g_strdup(ret);
+       } else if (type == EMAIL_ERROR_NO_SUCH_HOST) {
+               ret = _("IDS_EMAIL_POP_HOST_NOT_FOUND");
+               return g_strdup(ret);
+       } else if (type == EMAIL_ERROR_INVALID_SERVER) {
+               ret = _("IDS_EMAIL_POP_SERVER_NOT_AVAILABLE");
+               return g_strdup(ret);
+       } else if (type == EMAIL_ERROR_MAIL_MEMORY_FULL) {
+               ret = _("IDS_EMAIL_POP_DEVICE_STORAGE_FULL");
+               return g_strdup(ret);
+       } 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 {
+               snprintf(str, sizeof(str), "%s (%d)", dgettext("sys_string", "IDS_COM_POP_INTERNAL_ERROR"), type);
+               return g_strdup(str);
+       }
+}
+
+static Evas_Object *_load_edj(Evas_Object *parent, const char *file, const char *group)
+{
+       debug_log("");
+       Evas_Object *eo;
+       int r;
+
+       eo = elm_layout_add(parent);
+       if (eo) {
+               r = elm_layout_file_set(eo, file, group);
+               if (!r) {
+                       evas_object_del(eo);
+                       return NULL;
+               }
+
+               evas_object_size_hint_weight_set(eo, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       }
+
+       return eo;
+}
+
+/* genlist cb */
+static Eina_Bool _gl_state_get(void *data, Evas_Object *obj, const char *part)
+{
+       debug_log("");
+       return EINA_FALSE;
+}
+
+static void _gl_del(void *data, Evas_Object *obj)
+{
+       debug_log("");
+
+       if (_g_ug_data == NULL) {
+               debug_log("ug_data is NULL");
+               return;
+       }
+
+       EmailViewerUGD *ug_data = _g_ug_data;
+
+       if (ug_data->move_mailbox_list) {
+               email_free_mailbox(&ug_data->move_mailbox_list, ug_data->move_mailbox_count);
+               ug_data->move_mailbox_list = NULL;
+               ug_data->move_mailbox_count = 0;
+       }
+
+       return;
+}
+
+static char *_gl_text_get(void *data, Evas_Object *obj, const char *part)
+{
+       debug_log("");
+       email_mailbox_t *mailbox_list = NULL;
+       mailbox_list = (email_mailbox_t *) data;
+
+       if (g_strcmp0(part, "elm.text") == 0) {
+               char buf[MAX_STR_LEN] = { 0, };
+               if (mailbox_list && mailbox_list->alias) {
+                       snprintf(buf, sizeof(buf), "%s", mailbox_list->alias);
+                       return g_strdup(buf);
+               }
+       }
+
+       return NULL;
+}
+
+static Evas_Object *_gl_content_get(void *data, Evas_Object *obj, const char *part)
+{
+       debug_log("");
+
+       if (g_strcmp0(part, "elm.icon") == 0) {
+               Evas_Object *icon = elm_icon_add(obj);
+               elm_icon_file_set(icon, IMGDIR "/U01_icon_folder.png", NULL);
+               evas_object_size_hint_aspect_set(icon, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
+
+               return icon;
+       }
+
+       return NULL;
+}
+
+static void _gl_sel(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+
+       EmailViewerUGD *ug_data = _g_ug_data;
+       email_mailbox_t *mailbox_list = NULL;
+       mailbox_list = (email_mailbox_t *) data;
+       Elm_Object_Item *item = (Elm_Object_Item *)event_info;
+       elm_genlist_item_selected_set(item, EINA_FALSE);
+
+       Elm_Object_Item *git = NULL;
+       Evas_Object *gl = elm_genlist_add(ug_data->navi_bar);
+       evas_object_show(gl);
+
+       git = elm_genlist_item_append(gl, &(ug_data->itc3), NULL, NULL, ELM_GENLIST_ITEM_GROUP, NULL, NULL);
+       elm_genlist_item_select_mode_set(git, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+       elm_genlist_item_append(gl, &ug_data->itc2, NULL, git, ELM_GENLIST_ITEM_NONE, _gl_sub_upper_sel, NULL);
+
+       Evas_Object *cbar = elm_toolbar_add(ug_data->navi_bar);
+       elm_toolbar_shrink_mode_set(cbar, ELM_TOOLBAR_SHRINK_EXPAND);
+       elm_object_style_set(cbar, "naviframe");
+       evas_object_show(cbar);
+
+       elm_toolbar_item_append(cbar, NULL, _("IDS_EMAIL_SK3_MOVE_HERE"), _move_here_cb, mailbox_list);
+       elm_object_item_disabled_set(elm_toolbar_item_append(cbar, NULL, "", NULL, NULL), EINA_TRUE);
+
+       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);
+       elm_object_item_part_content_set(navi_it, "controlbar", cbar);
+       ug_data->navi_move_it2 = navi_it;
+
+       Evas_Object *move_back_btn = NULL;
+       if (ug_data->isRotate) {
+               elm_naviframe_item_title_visible_set(navi_it, EINA_FALSE);
+               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_cb2, ug_data);
+                       elm_object_item_part_content_set(navi_it, "prev_btn", move_back_btn);
+               }
+       }
+       return;
+}
+
+static char *_gl_sub_upper_text_get(void *data, Evas_Object *obj, const char *part)
+{
+       debug_log("");
+       email_mailbox_t *mailbox_list = NULL;
+       mailbox_list = (email_mailbox_t *) data;
+
+       if (g_strcmp0(part, "elm.text") == 0) {
+               char buf[MAX_STR_LEN] = { 0, };
+               snprintf(buf, sizeof(buf), "%s", _("IDS_EMAIL_MBODY_MAILBOX_LIST"));
+               return g_strdup(buf);
+       }
+
+       return NULL;
+}
+
+static Evas_Object *_gl_sub_upper_icon_get(void *data, Evas_Object *obj, const char *part)
+{
+       debug_log("");
+
+       if (g_strcmp0(part, "elm.icon") == 0) {
+               Evas_Object *icon = elm_icon_add(obj);
+               elm_icon_file_set(icon, IMGDIR "/U01_icon_upper_folder_focus.png", NULL);
+               evas_object_size_hint_aspect_set(icon, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
+
+               return icon;
+       }
+
+       return NULL;
+}
+
+static void _gl_sub_upper_sel(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+
+       EmailViewerUGD *ug_data = _g_ug_data;
+
+       Elm_Object_Item *item = (Elm_Object_Item *)event_info;
+       elm_genlist_item_selected_set(item, EINA_FALSE);
+
+       ug_data->navi_move_it2 = NULL;
+       elm_naviframe_item_pop(ug_data->navi_bar);
+
+       return;
+}
+
+static void _move_here_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+
+       if (data == NULL || _g_ug_data == NULL) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       email_mailbox_t *mailbox_list = NULL;
+       mailbox_list = (email_mailbox_t *) data;
+
+       EmailViewerUGD *ug_data = _g_ug_data;
+       int folder_id = mailbox_list->mailbox_id;
+
+       _move_email(ug_data, folder_id, FALSE);
+
+       ug_data->navi_move_it1 = NULL;
+       ug_data->navi_move_it2 = NULL;
+       elm_naviframe_item_pop_to(ug_data->navi_main_it);
+
+       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");
+       }
+
+       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 {
+               ug_destroy_me(ug_data->ug);
+       }
+}
+
+static void _move_back_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+
+       if (data == NULL || _g_ug_data == NULL) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       EmailViewerUGD *ug_data = (EmailViewerUGD *)data;
+
+       elm_naviframe_item_pop(ug_data->navi_bar);
+       ug_data->navi_move_it1 = NULL;
+       ug_data->navi_move_it2 = NULL;
+
+       /*if (ug_data->b_internal)
+               elm_layout_theme_set(ug_data->layout_main, "layout", "controlbar", "default");
+       else
+               elm_layout_theme_set(ug_data->layout_main, "layout", "application", "controlbar");*/
+}
+
+static void _move_back_cb2(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+
+       if (data == NULL || _g_ug_data == NULL) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       EmailViewerUGD *ug_data = (EmailViewerUGD *)data;
+
+       elm_naviframe_item_pop(ug_data->navi_bar);
+       ug_data->navi_move_it2 = NULL;
+}
+
+/* EOF */
diff --git a/viewer/theme/_email_default.html b/viewer/theme/_email_default.html
new file mode 100755 (executable)
index 0000000..b67e4c6
--- /dev/null
@@ -0,0 +1 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><STYLE type="text/css"> body {background-color: #f6f5ed; font-size: 16px; margin-left: 18px; margin-right: 18px; margin-top: 8px; margin-bottom: 8px;} p {font-size: 16px;} table {font-size: 16px;} </STYLE></head><body></body></html>
\ No newline at end of file
diff --git a/viewer/theme/email-viewer-theme-macro.edc b/viewer/theme/email-viewer-theme-macro.edc
new file mode 100755 (executable)
index 0000000..2fe9a25
--- /dev/null
@@ -0,0 +1,673 @@
+/*
+ * Copyright 2012  Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *    http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#define ELM_SCALE 1.0
+#define SCALE(x) (x/ELM_SCALE)
+
+#define GENLIST_PART_BG_COLOR_INC 239 239 239 255
+#define GENLIST_PART_BG_SELECTED_COLOR_INC 199 185 164 0
+#define GENLIST_PART_SELECT_ALL_BG_COLOR_INC 239 237 230 255
+#define GENLIST_PART_TEXT_COLOR_INC 0 0 0 255
+#define GENLIST_PART_TEXT_SELECTED_COLOR_INC 255 255 255 255
+#define GENLIST_PART_SUB_TEXT_COLOR_INC 108 108 108 255
+#define GENLIST_PART_BOTTOM_LINE_INC 199 199 199 255
+#define GENLIST_GROUP_PART_TEXT_COLOR_INC 108 108 108 255
+#define GENLIST_GROUP_PART_BASE_EVENT_INC \
+       part { name: "base_event"; \
+               type: RECT; \
+               repeat_events: 0; \
+               description { state: "default" 0.0; \
+                       color: 0 0 0 0; \
+               } \
+       }
+#define GENLIST_GROUP_PART_BASE_IMAGE_INC \
+       part { name: "base_image"; \
+               repeat_events: 1; \
+               description { state: "default" 0.0; \
+                       rel1.to: "rect"; \
+                       rel2.to: "rect"; \
+                       image {\
+                               normal: "01_list_group_title_bg.png"; \
+                       } \
+               } \
+       }
+#define GENLIST_GROUP_BG_COLOR_DEFAULT_INC 0 0 0 0
+#define GENLIST_GROUP_BG_COLOR_ALPHA_OFF_INC 0 0 0 0
+//color: 190 186 171 200;
+//color: 190 186 171 255;
+#define GENLIST_GROUP_LEFT_BG_COLOR_INC 210 206 191 255
+#define GENLIST_EDIT_PART_LINE_INC 187 187 187 150
+#define GENLIST_EDIT_BG_COLOR_INC 234 230 217 255
+#define GENLIST_EXPANDABLE_PART_BG_COLOR_INC GENLIST_PART_BG_COLOR_INC
+#define GENLIST_EXPANDABLE2_PART_BG_COLOR_INC 242 238 233 255
+#define GENLIST_EXPANDABLE3_PART_BG_COLOR_INC 218 212 205 255
+#define GENLIST_EXPANDABLE2_NOSHADOW_BG_COLOR_INC 242 238 233 255
+#define GENLIST_EXPANDABLE_PART_BG_IMAGE_INC \
+       part { name: "bg_image"; \
+               clip_to: "disclip"; \
+               mouse_events: 0; \
+               description { state: "default" 0.0; \
+                       image { \
+                               normal: "00_list_expandable_bg.png"; \
+                               border: 0 0 12 6; \
+                               border_scale: 1; \
+                       } \
+               } \
+               description { state: "selected" 0.0; \
+                       inherit: "default" 0.0; \
+                       image.normal: "00_list_bar_press_1x80.png"; \
+               } \
+               BEAT_GENLIST_PART_MAP_START(-90.0, 0.0, 0.0) \
+               BEAT_GENLIST_PART_MAP_FINISH(0.0, 0.0, 0.0) \
+       }
+#define GENLIST_PART_BG_EXPANDABLE3_IMAGE_INC \
+       part { name: "bg_image"; \
+               clip_to: "disclip"; \
+               mouse_events: 0; \
+               description { state: "default" 0.0; \
+                       image { \
+                               normal: "00_list_expandable_2_bg.png"; \
+                               border: 0 0 12 6; \
+                               border_scale: 1; \
+                       } \
+               } \
+               description { state: "selected" 0.0; \
+                       inherit: "default" 0.0; \
+                       image.normal: "00_list_bar_press_1x80.png"; \
+               } \
+               BEAT_GENLIST_PART_MAP_START(-90.0, 0.0, 0.0) \
+               BEAT_GENLIST_PART_MAP_FINISH(0.0, 0.0, 0.0) \
+       }
+#define GENLIST_EXPANDABLE3_PART_BG_IMAGE_INC \
+       part { name: "bg_image"; \
+               clip_to: "disclip"; \
+               mouse_events: 0; \
+               description { state: "default" 0.0; \
+                       image { \
+                               normal: "00_list_expandable_2_bg.png"; \
+                               border: 0 0 12 6; \
+                               border_scale: 1; \
+                       } \
+               } \
+               description { state: "selected" 0.0; \
+                       inherit: "default" 0.0; \
+                       image.normal: "00_list_bar_press_1x80.png"; \
+               } \
+               BEAT_GENLIST_PART_MAP_START(-90.0, 0.0, 0.0) \
+               BEAT_GENLIST_PART_MAP_FINISH(0.0, 0.0, 0.0) \
+       }
+#define GENLIST_EXPANDABLE3_NOSHADOW_PART_BG_IMAGE_INC \
+       part { name: "bg_image"; \
+               clip_to: "disclip"; \
+               mouse_events: 0; \
+               description { state: "default" 0.0; \
+                       image { \
+                               normal: "00_list_expandable_2_noshadow_bg.png"; \
+                               border: 0 0 0 6; \
+                               border_scale: 1; \
+                       } \
+               } \
+               description { state: "selected" 0.0; \
+                       inherit: "default" 0.0; \
+                       image.normal: "00_list_bar_press_1x80.png"; \
+               } \
+               BEAT_GENLIST_PART_MAP_START(-90.0, 0.0, 0.0) \
+               BEAT_GENLIST_PART_MAP_FINISH(0.0, 0.0, 0.0) \
+       }
+
+#define BEAT_GENLIST_PART_BASE( param_item_height ) \
+       part { name: "base"; \
+               type: RECT; \
+               repeat_events: 1; \
+               scale: 1; \
+               description { state: "default" 0.0; \
+                       min: 0 param_item_height; \
+                       color: GENLIST_PART_BG_COLOR_INC; \
+               } \
+               description     { state: "pressed" 0.0; \
+                       inherit: "default" 0.0; \
+                       color: 42 137 194 255; \
+               } \
+       }
+
+#define BEAT_GENLIST_PART_BASE2( param_item_height, param_item_color ) \
+       part { name: "base"; \
+               type: RECT; \
+               repeat_events: 1; \
+               scale: 1; \
+               description { state: "default" 0.0; \
+                       min: 0 param_item_height; \
+                       color: param_item_color; \
+               } \
+       }
+
+#define BEAT_GENLIST_PART_BG \
+       part { name: "bg"; \
+               type: RECT; \
+               clip_to: "disclip"; \
+               mouse_events: 0; \
+               description { state: "default" 0.0; \
+                       color: GENLIST_PART_BG_COLOR_INC; \
+               } \
+               description { state: "hide" 0.0; \
+                       inherit: "default" 0.0; \
+                       rel1 { relative: 0.025 0.0; } \
+                       rel2 { relative: 1.025 1.0; } \
+               } \
+               description { state: "hide" 0.1; \
+                       inherit: "default" 0.0; \
+                       rel1 { relative: 0.13 0.0; } \
+                       rel2 { relative: 1.13 1.0; } \
+               } \
+               description { state: "hide" 0.2; \
+                       inherit: "default" 0.0; \
+                       rel1 { relative: 0.5 0.0; } \
+                       rel2 { relative: 1.5 1.0; } \
+               } \
+               description { state: "hide" 0.3; \
+                       inherit: "default" 0.0; \
+                       rel1 { relative: 1.0 0.0; } \
+                       rel2 { relative: 2.0 1.0; } \
+               } \
+       }
+
+#define BEAT_GENLIST_PART_BG_IMAGE \
+       part { name: "bg_image"; \
+               type: RECT; \
+               clip_to: "disclip"; \
+               mouse_events: 0; \
+               description { state: "default" 0.0; \
+                       visible: 0; \
+                       color: GENLIST_PART_BG_SELECTED_COLOR_INC; \
+               } \
+               description { state: "selected" 0.0; \
+                       inherit: "default" 0.0; \
+                       visible: 1; \
+               } \
+       }
+
+#define BEAT_GENLIST_PART_BOTTOM_LINE \
+       part { name: "bottom_line"; \
+               type: RECT; \
+               clip_to: "disclip"; \
+               mouse_events: 0; \
+               description { state: "default" 0.0; \
+                       min: 0 1; \
+                       fixed: 0 1; \
+                       visible: 1; \
+                       color: GENLIST_PART_BOTTOM_LINE_INC; \
+                       rel1 { \
+                               relative: 0.0 1.0; \
+                               offset: 0 -1; \
+                       } \
+               } \
+       }
+
+#define BEAT_GENLIST_PART_BOTTOM_EFFECT_LINE \
+       part { name: "bottom_line"; \
+               type: RECT; \
+               clip_to: "disclip"; \
+               mouse_events: 0; \
+               description { state: "default" 0.0; \
+                       min: 0 1; \
+                       fixed: 0 1; \
+                       visible: 1; \
+                       color: GENLIST_PART_BOTTOM_LINE_INC; \
+                       rel1 { \
+                               relative: 0.0 1.0; \
+                               offset: 0 -1; \
+                       } \
+               } \
+               BEAT_GENLIST_PART_MAP_START(-90.0, 0.0, 0.0) \
+               BEAT_GENLIST_PART_MAP_FINISH(0.0, 0.0, 0.0) \
+       }
+
+#define BEAT_GENLIST_PART_PADDING_TOP( param_padding_size ) \
+       part { name: "elm.padding.top"; \
+               type: RECT; \
+               scale: 1; \
+               description { \
+                       state: "default" 0.0; \
+                       min: 0 param_padding_size; \
+                       fixed: 0 1; \
+                       visible: 0; \
+                       rel2.relative: 1.0 0.0; \
+                       align: 0.0 0.0; \
+               } \
+       }
+
+#define BEAT_GENLIST_PART_PADDING_TEXT_TOP( param_padding_size ) \
+       part { name: "elm.padding.text.top"; \
+               type: RECT; \
+               scale: 1; \
+               description { \
+                       state: "default" 0.0; \
+                       min: 0 param_padding_size; \
+                       fixed: 0 1; \
+                       visible: 0; \
+                       rel2.relative: 1.0 0.0; \
+                       align: 0.0 0.0; \
+               } \
+       }
+
+#define BEAT_GENLIST_PART_PADDING_BOTTOM( param_padding_size ) \
+       part { name: "elm.padding.bottom"; \
+               type: RECT; \
+               scale: 1; \
+               description { state: "default" 0.0; \
+                       min: 0 param_padding_size; \
+                       fixed: 0 1; \
+                       visible: 0; \
+                       rel1.relative: 0.0 1.0; \
+                       align: 0.0 1.0; \
+               } \
+       }
+
+#define BEAT_GENLIST_PART_PADDING_LEFT( param_padding_size ) \
+       part { name: "elm.padding.left"; \
+               type: RECT; \
+               scale: 1; \
+               description { state: "default" 0.0; \
+                       min: param_padding_size 0; \
+                       fixed: 1 0; \
+                       visible: 0; \
+                       rel2.relative: 0.0 1.0; \
+                       align: 0.0 0.0; \
+               } \
+       }
+
+#define BEAT_GENLIST_PART_PADDING_RIGHT( param_padding_size ) \
+       part { name: "elm.padding.right"; \
+               type: RECT; \
+               scale: 1; \
+               description { state: "default" 0.0; \
+                       min: param_padding_size 0; \
+                       fixed: 1 0; \
+                       visible: 0; \
+                       rel1.relative: 1.0 0.0; \
+                       align: 1.0 0.0; \
+               } \
+       }
+
+#define BEAT_GENLIST_PART_DIALOGUE_BASE( param_item_height ) \
+       part { name: "base"; \
+               type: RECT; \
+               repeat_events: 1; \
+               scale: 1; \
+               description { state: "default" 0.0; \
+                       min: 0 param_item_height; \
+                       color: 242 238 233 255; \
+               } \
+       }
+
+#define BEAT_GENLIST_PART_DIALOGUE_PADDING_RIGHT( param_padding_size ) \
+       part { name: "elm.padding.right"; \
+               type: RECT; \
+               scale: 1; \
+               description { state: "default" 0.0; \
+                       min: param_padding_size 0; \
+                       fixed: 1 0; \
+                       visible: 0; \
+                       rel1.relative: 1.0 0.0; \
+                       align: 1.0 0.0; \
+               } \
+               description { state: "editing" 0.0; \
+                       inherit: "default" 0.0; \
+                       min: 56 0; \
+                       visible: 1; \
+                       color: 242 238 233 255; \
+               } \
+       }
+
+#define BEAT_GENLIST_PART_DIALOGUE_ITEM \
+       part { name: "elm.rect.dialogue"; \
+               type: RECT; \
+               scale: 1; \
+               description { state: "default" 0.0; \
+                       min: 10 0; \
+                       fixed: 1 0; \
+                       color: 199 199 199 255; \
+                       rel2.relative: 0.0 1.0; \
+                       align: 0.0 0.0; \
+               } \
+       }
+
+#define BEAT_GENLIST_PART_SWALLOW_END( param_padding_size ) \
+       part { name: "elm.padding.left.swallow.end"; \
+               clip_to: "disclip"; \
+               type: RECT; \
+               scale: 1; \
+               description { state: "default" 0.0; \
+                       min: param_padding_size 0; \
+                       fixed: 1 0; \
+                       visible: 0; \
+                       rel1.to_x: "elm.swallow.end"; \
+                       rel2 { \
+                               relative: 0.0 1.0; \
+                               to_x: "elm.swallow.end"; \
+                       } \
+                       align: 1.0 0.5; \
+               } \
+       } \
+       part { name: "elm.swallow.end"; \
+               clip_to: "disclip"; \
+               type: SWALLOW; \
+               scale: 1; \
+               description { state: "default" 0.0; \
+                       fixed: 1 0; \
+                       align: 1.0 0.5; \
+                       rel1.to_x: "elm.padding.right"; \
+                       rel2 {\
+                               relative: 0.0 1.0; \
+                               to_x: "elm.padding.right"; \
+                       } \
+               } \
+       }
+
+#define BEAT_GENLIST_PART_DISCLIP \
+       part { name: "disclip"; \
+               type: RECT; \
+               description { state: "default" 0.0; \
+               } \
+               description { state: "disabled" 0.0; \
+                       inherit: "default" 0.0; \
+                       color: 255 255 255 64; \
+               } \
+       }
+
+#define BEAT_GENLIST_PART_LIST_PICKER_BASE( param_item_height ) \
+       part { name: "base"; \
+               type: RECT; \
+               repeat_events: 1; \
+               scale: 1; \
+               description { state: "default" 0.0; \
+                       min: 0 param_item_height; \
+                       color: 71 61 53 255; \
+               } \
+       }
+
+#define BEAT_GENLIST_PART_LIST_PICKER_BOTTOM_LINE \
+       part { name: "bottom_line"; \
+               type: RECT; \
+               clip_to: "disclip"; \
+               mouse_events: 0; \
+               description { state: "default" 0.0; \
+                       min: 0 1; \
+                       fixed: 0 1; \
+                       visible: 1; \
+                       color: 104 97 92 255; \
+                       rel1 { \
+                               relative: 0.0 1.0; \
+                               offset: 0 -1; \
+                       } \
+               } \
+       }
+
+#define GENLIST_EXPANDABLE_PART_PERSPECTIVE_POINT() \
+       part { name: "point"; \
+               type: RECT; \
+               scale: 1; \
+               description { \
+                       state: "default" 0.0; \
+                       color: 0 0 0 0; \
+                       rel1 { relative: 0.0 0.0; } \
+                       rel2 { relative: 1.0 0.0; } \
+               } \
+       }
+
+#define BEAT_GENLIST_PART_MAP_START( param_x, param_y, param_z ) \
+       description { state: "map_transition" 0.0; \
+               inherit: "default" 0.0; \
+               map { \
+                       perspective: "point"; \
+                       on: 1; \
+                       smooth: 1; \
+                       perspective_on: 1; \
+                       backface_cull: 1; \
+                       rotation { \
+                                       center: "point"; \
+                                       x: param_x; \
+                                       y: param_y; \
+                                       z: param_z; \
+                       } \
+               } \
+       } \
+       description { \
+               state: "hide" 0.0; \
+               inherit: "default" 0.0; \
+               visible: 0; \
+       }
+
+#define BEAT_GENLIST_PART_MAP_FINISH( param_x, param_y, param_z ) \
+       description { \
+               state: "map_rotate" 0.0; \
+               inherit: "default" 0.0; \
+               map { \
+                       perspective: "point"; \
+                       on: 1; \
+                       smooth: 1; \
+                       perspective_on: 1; \
+                       backface_cull: 1; \
+                       rotation { \
+                               center: "point"; \
+                               x: param_x; \
+                               y: param_y; \
+                               z: param_z; \
+                       } \
+               } \
+       } \
+
+#define BEAT_GENLIST_PART_MAP_BASE( param_item_height ) \
+       part { name: "base"; \
+               type: RECT; \
+               repeat_events: 1; \
+               scale: 1; \
+               description { state: "default" 0.0; \
+                       min: 0 param_item_height; \
+                       color: GENLIST_PART_BG_COLOR_INC; \
+               } \
+               BEAT_GENLIST_PART_MAP_START(-90.0, 0.0, 0.0) \
+               BEAT_GENLIST_PART_MAP_FINISH(0.0, 0.0, 0.0) \
+       }
+
+#define GENLIST_EXPANDABLE_PART_BASE( GE_HEIGHT, GE_COLOR ) \
+       part { name: "base"; \
+               type: RECT; \
+               repeat_events: 1; \
+               scale: 1; \
+               description { state: "default" 0.0; \
+                       min: 0 GE_HEIGHT; \
+                       color: GE_COLOR; \
+               } \
+               description { state: "selected" 0.0; \
+                       inherit: "default" 0.0; \
+                       color: GENLIST_PART_BG_SELECTED_COLOR_INC; \
+               } \
+               BEAT_GENLIST_PART_MAP_START(-90.0, 0.0, 0.0) \
+               BEAT_GENLIST_PART_MAP_FINISH(0.0, 0.0, 0.0) \
+       }
+
+#define BEAT_GENLIST_PROGRAM_MAP_ROTATE_START() \
+       name: "rotaion_transition"; \
+       signal: "flip_item"; \
+       action: STATE_SET "map_transition" 0.0; \
+       after: "rotation";
+
+#define BEAT_GENLIST_PROGRAM_MAP_ROTATE_FINISH( second ) \
+       name: "rotation"; \
+       action: STATE_SET "map_rotate" 0.0; \
+       transition: LINEAR second; \
+       after: "rotation_end";
+
+#define BEAT_GENLIST_PROGRAM_MAP_END() \
+       name: "rotation_end"; \
+       action: STATE_SET "default" 0.0;
+
+#define BEAT_GENLIST_PROGRAM_MAP_ROTATE_START2() \
+       name: "rotaion_transition2"; \
+       signal: "elm,state,contract_flip"; \
+       action: STATE_SET "map_rotate" 0.0; \
+       after: "rotation2";
+
+#define BEAT_GENLIST_PROGRAM_MAP_ROTATE_FINISH2( second ) \
+       name: "rotation2"; \
+       action: STATE_SET "map_transition" 0.0; \
+       transition: LINEAR second; \
+       after: "rotation3";
+
+#define BEAT_GENLIST_PROGRAM_MAP_END2() \
+       name: "rotation3"; \
+       action: STATE_SET "hide" 0.0;
+
+#define BEAT_GENLIST_PART_EXPANDABLE2_NOSHADOW_BASE( param_item_height ) \
+       part { name: "base"; \
+               type: RECT; \
+               repeat_events: 1; \
+               scale: 1; \
+               description { state: "default" 0.0; \
+                       min: 0 param_item_height; \
+                       color: GENLIST_EXPANDABLE2_NOSHADOW_BG_COLOR_INC; \
+               } \
+               BEAT_GENLIST_PART_MAP_START(-90.0, 0.0, 0.0) \
+               BEAT_GENLIST_PART_MAP_FINISH(0.0, 0.0, 0.0) \
+       }
+
+#define BEAT_GENLIST_PART_EXPANDABLE_SWALLOW_PADDING \
+       part { name: "elm.swallow.pad"; \
+               type: SWALLOW; \
+               description { state: "default" 0.0; \
+                       fixed: 1 0; \
+                       align: 0.0 0.5; \
+                       rel1 { \
+                               relative: 1.0 0.0; \
+                               to_x: "elm.padding.left"; \
+                       } \
+                       rel2.to_x: "elm.padding.left"; \
+               } \
+               BEAT_GENLIST_PART_MAP_START(-90.0, 0.0, 0.0) \
+               BEAT_GENLIST_PART_MAP_FINISH(0.0, 0.0, 0.0) \
+       } \
+
+#define BEAT_GENLIST_PART_PADDING_LEFT_SLIDE( param_padding_size ) \
+       part { name: "elm.padding.left"; \
+               type: RECT; \
+               scale: 1; \
+               description { \
+                       state: "default" 0.0; \
+                       min: param_padding_size 0; \
+                       fixed: 1 0; \
+                       visible: 0; \
+                       rel1 { relative: 0.0 0.0; to: "bg"; } \
+                       rel2 { relative: 0.0 1.0; to: "bg"; } \
+                       align: 0.0 0.0; \
+               } \
+       }
+
+/* only for demo */
+#define BEAT_GENLIST_PART_BUTTON( param_name, param_text_name, param_text, param_left, param_right, param_top, param_bottom ) \
+       part { name: param_name; \
+               mouse_events: 1; \
+               description { state: "default" 0.0; \
+                       visible: 1; \
+                       rel1 { relative: param_left param_top; offset: 0 0; } \
+                       rel2 { relative: param_right param_bottom; offset: -1 -1; } \
+                       image { \
+                               normal: "btn_normal.png"; \
+                               border: 10 10 10 10; \
+                               border_scale: 1; \
+                       } \
+                       image.middle: SOLID; \
+                       fill.smooth: 0; \
+               } \
+               description { state: "selected" 0.0; \
+                       inherit: "default" 0.0; \
+                       image { \
+                               normal: "btn_selected.png"; \
+                       } \
+               } \
+       } \
+       part { name: param_text_name; \
+               type: TEXT; \
+               mouse_events: 0; \
+               scale: 1; \
+               description { \
+                       align: 0.0 0.0; \
+                       state: "default" 0.0; \
+                       color: 0 0 0 255; \
+                       rel1 { relative: 0.0 0.0; to: param_name; } \
+                       rel2 { relative: 1.0 1.0; to: param_name; } \
+                       text { \
+                               text: param_text; \
+                               font: "SLP:style=Roman"; \
+                               size: 24; \
+                               min: 1 1; \
+                               align: 0.5 0.5; \
+                       } \
+               } \
+       }
+
+/* only for demo */
+#define BEAT_GENLIST_PROGRAM_BUTTON( param_name_focused, param_name_normal, param_part_name ) \
+       program { name: param_name_focused; \
+               source: param_part_name; \
+               signal: "mouse,down,1"; \
+               action: STATE_SET "selected" 0.0; \
+               target: param_part_name; \
+       } \
+       program { name: param_name_normal; \
+               source: param_part_name; \
+               signal: "mouse,up,1"; \
+               action: STATE_SET "default" 0.0; \
+               target: param_part_name; \
+       }
+
+#define BEAT_GENLIST_PROGRAM_SLIDE_WITH_AFTER( param_name, param_state, param_next ) \
+       program { name: param_name; \
+               action: STATE_SET "hide" param_state; \
+               target: "bg"; \
+               transition: LINEAR 0.3; \
+               after: param_next; \
+       }
+
+#define BEAT_GENLIST_PROGRAM_SLIDE( param_name, param_state_name, param_state_value ) \
+       program { name: param_name; \
+               action: STATE_SET param_state_name param_state_value; \
+               target: "bg"; \
+               transition: LINEAR 0.3; \
+       }
+
+#define DESC_FLIP_IMAGE( param_state_value, param_image_file_name ) \
+       description { state: "flipping" param_state_value; \
+               inherit: "default" 0.0; \
+               image { normal: param_image_file_name; } \
+       }
+
+#define DESC_TEXT_HIDE( param_state_value ) \
+       description { state: "hide" param_state_value; \
+               inherit: "default" 0.0; \
+               color: 0 0 0 (255*(1-param_state_value/0.20)); \
+       }
+
+#define BEAT_GENLIST_EDIT_PART_BASE( param_item_height ) \
+       part { name: "base"; \
+               type: RECT; \
+               repeat_events: 0; \
+               scale: 1; \
+               description { state: "default" 0.0; \
+                       min: 0 param_item_height; \
+                       color: 0 0 0 0; \
+               } \
+       }
diff --git a/viewer/theme/email-viewer-theme.edc b/viewer/theme/email-viewer-theme.edc
new file mode 100755 (executable)
index 0000000..a3e50e2
--- /dev/null
@@ -0,0 +1,1760 @@
+/*
+ * Copyright 2012  Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *    http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "email-viewer-theme-macro.edc"
+
+collections {
+//#include "email-viewer-button.edc"
+
+       group {
+               name: "layout.email.web_view";
+
+               data.item: "stacking" "above";
+               data.item: "selectraise" "on";
+
+               parts {
+                       part {
+                               name: "bg";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                                       //color: 246 245 237 255;
+                                       color: 255 255 255 255;
+                               }
+                       }
+
+                       part {
+                               name: "web_body";
+                               type: SWALLOW;
+                               scale: 1;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.5 0.0;
+                                       fixed: 0 0;
+                                       aspect: 0.0 0.0;
+                                       aspect_preference: VERTICAL;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                               }
+                       }
+               }
+       }
+
+       group {
+               name: "layout.email.no_content";
+
+               data.item: "stacking" "above";
+               data.item: "selectraise" "on";
+
+               parts {
+                       part {
+                               name: "bg";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0;}
+                                       rel2 { relative: 1.0 1.0;}
+                                       color: 239 239 239 255;
+                               }
+                       }
+
+                       part {
+                               name: "btn";
+                               type: SWALLOW;
+                               scale: 1;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.5 0.0;
+                                       fixed: 0 0;
+                                       //rel1 { relative: 0.05 0.85; }
+                                       //rel2 { relative: 0.95 0.95; }
+                                       rel1 { relative: 0.05 0.05; }
+                                       rel2 { relative: 0.95 0.1; }
+                               }
+                       }
+/*
+                       part {
+                               name: "noc";
+                               type: SWALLOW;
+                               scale: 1;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.5 0.0;
+                                       fixed: 0 0;
+                                       //rel1 { relative: 0.0 0.0; }
+                                       //rel2 { relative: 1.0 0.8; }
+                                       rel1 { relative: 0.0 0.25; }
+                                       rel2 { relative: 1.0 1.0; }
+                               }
+                       }
+*/
+               }
+       }
+
+       group { name: "layout.email.partial_download_btn";
+               parts {
+                       part { name: "bg";
+                               type: RECT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 SCALE(80.0);
+                                       color: 239 239 239 255;
+                               }
+                       }
+                       part { name: "button";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1.relative: 15/450 1/5;
+                                       rel2.relative: 435/450 4/5;
+                               }
+                       }
+               }
+       }
+
+       group
+       {
+               name: "layout.email.meeting_req_btn";
+
+               parts
+               {
+                       part
+                       {
+                               name: "rect";
+                               type: RECT;
+                               mouse_events: 0;
+
+                               description
+                               {
+                                       min: 0 SCALE(60.0);
+                                       state: "default" 0.0;
+                                       color: 0 0 0 0;
+                               }
+                       }
+
+                       part
+                       {
+                               name: "swl_accept_btn";
+                               type: SWALLOW;
+                               mouse_events: 1;
+
+                               description
+                               {
+                                       state: "default" 0.0;
+
+                                       rel1
+                                       {
+                                               to: "rect";
+                                               relative: 0.01 0.0;
+                                       }
+                                       rel2
+                                       {
+                                               to: "rect";
+                                               relative: 0.33 1.0;
+                                       }
+                               }
+                       }
+
+                       part
+                       {
+                               name: "swl_tentative_btn";
+                               type: SWALLOW;
+                               mouse_events: 1;
+
+                               description
+                               {
+                                       state: "default" 0.0;
+
+                                       rel1
+                                       {
+                                               to: "rect";
+                                               relative: 0.33 0.0;
+                                       }
+                                       rel2
+                                       {
+                                               to: "rect";
+                                               relative: 0.66 1.0;
+                                       }
+                               }
+                       }
+
+                       part
+                       {
+                               name: "swl_decline_btn";
+                               type: SWALLOW;
+                               mouse_events: 1;
+
+                               description
+                               {
+                                       state: "default" 0.0;
+
+                                       rel1
+                                       {
+                                               to: "rect";
+                                               relative: 0.66 0.0;
+                                       }
+                                       rel2
+                                       {
+                                               to: "rect";
+                                               relative: 0.99 1.0;
+                                       }
+                               }
+                       }
+               }
+       }
+
+       group {
+               name: "layout.email.detail_subject";
+
+               images {
+                       image: "00_list_bar_press_1x80.png" COMP;
+                       image: "M02_button_expand_closed.png" COMP;
+                       image: "M02_button_expand_closed_press.png" COMP;
+                       image: "M02_button_expand_opened.png" COMP;
+                       image: "M02_button_expand_opened_press.png" COMP;
+                       image: "M02_inbox_top_line.png" COMP;
+                       image: "M02_button_expand.png" COMP;
+                       image: "M02_button_expand_press.png" COMP;
+               }
+
+               parts
+               {
+                       BEAT_GENLIST_PART_BASE( SCALE(160.0) )
+                       BEAT_GENLIST_PART_BG_IMAGE
+                       BEAT_GENLIST_PART_BOTTOM_LINE
+                       BEAT_GENLIST_PART_PADDING_TOP( SCALE(26.0) )
+                       BEAT_GENLIST_PART_PADDING_BOTTOM( SCALE(10.0) )
+                       BEAT_GENLIST_PART_PADDING_LEFT( SCALE(16.0) )
+                       BEAT_GENLIST_PART_PADDING_RIGHT( SCALE(16.0) )
+
+                       part
+                       {
+                               name: "elm.topline";
+                               clip_to: "disclip";
+                               type: IMAGE;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 SCALE(10.0);
+                                       fixed: 1 1;
+                                       align: 0.0 0.5;
+                                       rel1 {
+                                               relative: 0.0 0.0;
+                                               to: "elm.padding.top";
+                                       }
+                                       rel2 {
+                                               relative: 1.0 0.0;
+                                               offset: 0 SCALE(10.0);
+                                               to: "elm.padding.top";
+                                       }
+                                       image.normal: "M02_inbox_top_line.png";
+                               }
+                       }
+
+                       part
+                       {
+                               name: "elm.text";
+                               clip_to: "disclip";
+                               type: SWALLOW;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 SCALE(40.0);
+                                       fixed: 0 1;
+                                       align: 0 0;
+                                       rel1 {
+                                               relative: 1.0 1.0;
+                                               to_x: "elm.padding.left";
+                                               to_y: "elm.padding.top";
+                                       }
+                                       rel2 {
+                                               relative: 0.0 1.0;
+                                               offset: -1*SCALE(80.0) 0;
+                                               to_x: "elm.padding.right";
+                                               to_y: "elm.padding.top";
+                                       }
+                                       color: 0 0 0 255;
+                               }
+                               description { state: "selected" 0.0;
+                                       inherit: "default" 0.0;
+                                       color: 225 225 225 255;
+                               }
+                       }
+
+                       part
+                       {
+                               name: "elm.subbox";
+                               clip_to: "disclip";
+                               type: RECT;
+                               scale: 1;
+                               description { state: "default" 0.0;
+                                       min: 0 SCALE(48.0);
+                                       fixed: 1 0;
+                                       visible: 0;
+                                       align: 0.0 0.5;
+                                       rel1 {
+                                               relative: 1.0 1.0;
+                                               offset: 0 0;
+                                               to_x: "elm.padding.left";
+                                               to_y: "elm.text";
+                                       }
+                                       rel2 {
+                                               relative: 0.0 0.0;
+                                               offset: 0 0;
+                                               to_x: "elm.padding.right";
+                                               to_y: "elm.padding.bottom";
+                                       }
+                               }
+                       }
+
+                       part
+                       {
+                               name: "elm.text.sub";
+                               clip_to: "disclip";
+                               type: TEXT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+
+                                       rel1 {
+                                               relative: 0.0 0.0;
+                                               to: "elm.subbox";
+                                       }
+                                       rel2 {
+                                               relative: 1.0 1.0;
+                                               offset: -1*SCALE(160.0) 0;
+                                               to: "elm.subbox";
+                                       }
+
+                                       color: 100 100 100 255;
+                                       text {
+                                               font: "SLP:style=Regular";
+                                               size: SCALE(36.0);
+                                               min: 0 1;
+                                               align: 0.0 0.5;
+                                       }
+                               }
+                               description {
+                                       state: "selected" 0.0;
+                                       inherit: "default" 0.0;
+                                       color: 225 225 225 255;
+                               }
+                       }
+
+                       part
+                       {
+                               name: "elm.icon.attach";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: SCALE(32.0) SCALE(32.0);
+                                       max: SCALE(32.0) SCALE(32.0);
+                                       fixed: 1 1;
+                                       align: 0.0 0.5;
+                                       visible: 1;
+
+                                       rel1 {
+                                               relative: 1.0 0.0;
+                                               offset: -1*SCALE(152.0) SCALE(8.0);
+                                               to: "elm.subbox";
+                                       }
+                                       rel2 {
+                                               relative: 1.0 1.0;
+                                               offset: -1*SCALE(120.0) -1*SCALE(8.0);
+                                               to: "elm.subbox";
+                                       }
+                               }
+                       }
+
+                       part
+                       {
+                               name: "elm.icon.sign";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: SCALE(32.0) SCALE(32.0);
+                                       max: SCALE(32.0) SCALE(32.0);
+                                       fixed: 1 1;
+                                       align: 0.0 0.5;
+                                       visible: 1;
+
+                                       rel1 {
+                                               relative: 1.0 0.0;
+                                               offset: -1*SCALE(152.0) SCALE(8.0);
+                                               to: "elm.subbox";
+                                       }
+                                       rel2 {
+                                               relative: 1.0 1.0;
+                                               offset: -1*SCALE(120.0) -1*SCALE(8.0);
+                                               to: "elm.subbox";
+                                       }
+                               }
+                       }
+
+                       part
+                       {
+                               name: "elm.icon.encrypt";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: SCALE(32.0) SCALE(32.0);
+                                       max: SCALE(32.0) SCALE(32.0);
+                                       fixed: 1 1;
+                                       align: 0.0 0.5;
+                                       visible: 1;
+
+                                       rel1 {
+                                               relative: 1.0 0.0;
+                                               offset: -1*SCALE(112.0) SCALE(8.0);
+                                               to: "elm.subbox";
+                                       }
+                                       rel2 {
+                                               relative: 1.0 1.0;
+                                               offset: -1*SCALE(80.0) -1*SCALE(8.0);
+                                               to: "elm.subbox";
+                                       }
+                               }
+                       }
+
+                       part
+                       {
+                               name: "touch_favorite";
+                               type: RECT;
+                               clip_to: "disclip";
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: SCALE(64.0) SCALE(64.0);
+                                       max: SCALE(64.0) SCALE(64.0);
+                                       fixed: 1 1;
+                                       align: 0.0 0.5;
+                                       visible: 1;
+
+                                       rel1 {
+                                               relative: 1.0 0.0;
+                                               offset: -1*SCALE(72.0) SCALE(8.0);
+                                               to: "elm.subbox";
+                                       }
+                                       rel2 {
+                                               relative: 1.0 1.0;
+                                               offset: 0 -1*SCALE(8.0);
+                                               to: "elm.subbox";
+                                       }
+                                       color: 0 0 0 0;
+                               }
+                       }
+
+                       part
+                       {
+                               name: "elm.icon.favorite";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: SCALE(64.0) SCALE(64.0);
+                                       max: SCALE(64.0) SCALE(64.0);
+                                       fixed: 1 1;
+                                       align: 0.0 0.5;
+                                       visible: 1;
+
+                                       rel1 {
+                                               relative: 1.0 0.0;
+                                               offset: -1*SCALE(72.0) SCALE(8.0);
+                                               to: "elm.subbox";
+                                       }
+                                       rel2 {
+                                               relative: 1.0 1.0;
+                                               offset: 0 -1*SCALE(8.0);
+                                               to: "elm.subbox";
+                                       }
+                               }
+                       }
+
+                       part
+                       {
+                               name: "touch_arrow";
+                               type: RECT;
+                               clip_to: "disclip";
+                               ignore_flags: ON_HOLD;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: SCALE(74.0) SCALE(74.0);
+                                       fixed: 1 1;
+                                       align: 0.5 0.5;
+                                       rel1 {
+                                               relative: 1.0 1.0;
+                                               offset: 0 0;
+                                               to_x: "elm.text";
+                                               to_y: "elm.padding.top";
+                                       }
+                                       rel2 {
+                                               relative: 0.0 1.0;
+                                               offset: 0 0;
+                                               to_x: "elm.padding.right";
+                                               to_y: "elm.text";
+                                       }
+                                       color: 0 0 0 0;
+                               }
+                       }
+
+                       part
+                       {
+                               name: "arrow";
+                               clip_to: "disclip";
+                               ignore_flags: ON_HOLD;
+                               mouse_events: 0;
+                               scale: 1;
+                               description { state: "default" 0.0;
+                                       min: SCALE(64.0) SCALE(64.0);
+                                       max: SCALE(64.0) SCALE(64.0);
+                                       fixed: 1 1;
+                                       align: 0.5 0.5;
+                                       aspect: 1.0 1.0;
+                                       rel1 {
+                                               relative: 0.5 0.5;
+                                               to: "touch_arrow";
+                                       }
+                                       rel2 {
+                                               relative: 0.5 0.5;
+                                               to: "touch_arrow";
+                                       }
+                                       image.normal: "M02_button_expand_opened.png";
+                               }
+                               description {
+                                       state: "default" 1.0;
+                                       inherit: "default" 0.0;
+                                       image.normal: "M02_button_expand_opened_press.png";
+                               }
+                               description {
+                                       state: "active" 0.0;
+                                       inherit: "default" 0.0;
+                                       image.normal: "M02_button_expand.png";
+                               }
+                               description {
+                                       state: "hide" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                               description {
+                                       state: "active" 1.0;
+                                       inherit: "default" 0.0;
+                                       image.normal: "M02_button_expand_press.png";
+                               }
+                       }
+
+                       BEAT_GENLIST_PART_DISCLIP
+               }
+               programs {
+                       // signal: elm,state,%s,active
+                       // a "check" item named %s went active
+                       // signal: elm,state,%s,passive
+                       // a "check" item named %s went passive
+                       // default is passive
+                       program {
+                               name: "go_active";
+                               signal: "elm,state,selected";
+                               source: "elm";
+                               action: STATE_SET "selected" 0.0;
+                               target: "bg_image";
+                               target: "elm.text";
+                       }
+                       program {
+                               name: "go_passive";
+                               signal: "elm,state,unselected";
+                               source: "elm";
+                               action: STATE_SET "default" 0.0;
+                               target: "bg_image";
+                               target: "elm.text";
+                               transition: LINEAR 0.1;
+                       }
+                       program {
+                               name: "go_disabled";
+                               signal: "elm,state,disabled";
+                               source: "elm";
+                               action: STATE_SET "disabled" 0.0;
+                               target: "disclip";
+                       }
+                       program {
+                               name: "go_enabled";
+                               signal: "elm,state,enabled";
+                               source: "elm";
+                               action: STATE_SET "default" 0.0;
+                               target: "disclip";
+                       }
+                       program {
+                               name: "toggle_favorite";
+                               signal: "mouse,up,1";
+                               source: "touch_favorite";
+                               action: SIGNAL_EMIT "elm,action,toggle" "elm";
+                       }
+                       program {
+                               name: "expand";
+                               signal: "mouse,up,1";
+                               source: "touch_arrow";
+                               action: SIGNAL_EMIT "elm,action,expand,toggle" "elm";
+                       }
+                       program {
+                               name: "arrow_down";
+                               signal: "mouse,down,1";
+                               source: "touch_arrow";
+                               script {
+                                       new st[31];
+                                       new Float:vl;
+                                       get_state(PART:"arrow", st, 30, vl)
+                                       if (vl == 0.0)
+                                               set_state(PART:"arrow", st, 1.0);
+                                       else
+                                               set_state(PART:"arrow", st, 0.0);
+                               }
+                       }
+                       program {
+                               name: "go_expanded";
+                               signal: "elm,state,expanded";
+                               source: "elm";
+                               action: STATE_SET "active" 0.0;
+                               target: "arrow";
+                       }
+                       program {
+                               name: "go_contracted";
+                               signal: "elm,state,contracted";
+                               source: "elm";
+                               action: STATE_SET "default" 0.0;
+                               target: "arrow";
+                       }
+                       program
+                       {
+                               name: "hide_arrow";
+                               signal: "elm,state,arrow_hidden";
+                               source: "elm";
+                               action: STATE_SET "hide" 0.0;
+                               target: "arrow";
+                       }
+               }
+       }
+
+       group {
+               name: "layout.email.to_cc";
+
+               images {
+                       image: "00_list_bar_press_1x80.png" COMP;
+               }
+               parts
+               {
+                       BEAT_GENLIST_PART_BASE( 0 )
+                       BEAT_GENLIST_PART_BG_IMAGE
+                       BEAT_GENLIST_PART_BOTTOM_LINE
+                       BEAT_GENLIST_PART_PADDING_LEFT( 1 )
+                       BEAT_GENLIST_PART_PADDING_RIGHT( 1 )
+                       BEAT_GENLIST_PART_PADDING_TOP( 1 )
+                       BEAT_GENLIST_PART_PADDING_BOTTOM( 1 )
+
+                       part {
+                               name: "elm.icon";
+                               clip_to: "disclip";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description { state: "default" 0.0;
+                                       align: 0.5 0.5;
+                                       rel1 {
+                                               relative: 1 1;
+                                               to_x: "elm.padding.left";
+                                               to_y: "elm.padding.top";
+                                       }
+                                       rel2 {
+                                               relative: 0 0;
+                                               to_x: "elm.padding.right";
+                                               to_y: "elm.padding.bottom";
+                                       }
+                               }
+                       }
+                       BEAT_GENLIST_PART_DISCLIP
+               }
+               programs {
+                       program { name: "go_active";
+                               signal: "elm,state,selected";
+                               source: "elm";
+                               action: STATE_SET "selected" 0.0;
+                               target: "bg_image";
+                       }
+                       program { name: "go_passive";
+                               signal: "elm,state,unselected";
+                               source: "elm";
+                               action: STATE_SET "default" 0.0;
+                               target: "bg_image";
+                               transition: LINEAR 0.1;
+                       }
+                       program { name: "go_disabled";
+                               signal: "elm,state,disabled";
+                               source: "elm";
+                               action: STATE_SET "disabled" 0.0;
+                               target: "disclip";
+                       }
+                       program { name: "go_enabled";
+                               signal: "elm,state,enabled";
+                               source: "elm";
+                               action: STATE_SET "default" 0.0;
+                               target: "disclip";
+                       }
+               }
+       }
+
+       group {
+               name: "layout.email.attachment_downloading";
+               images {
+                       image: "00_list_bar_press_1x80.png" COMP;
+               }
+
+               parts {
+
+                       BEAT_GENLIST_PART_BASE( SCALE(120.0) )
+                       BEAT_GENLIST_PART_BG_IMAGE
+                       BEAT_GENLIST_PART_BOTTOM_LINE
+                       BEAT_GENLIST_PART_PADDING_TOP( SCALE(5.0) )
+                       BEAT_GENLIST_PART_PADDING_BOTTOM( SCALE(5.0) )
+                       BEAT_GENLIST_PART_PADDING_LEFT( SCALE(10.0) )
+                       BEAT_GENLIST_PART_PADDING_RIGHT( SCALE(10.0) )
+
+                       part {
+                               name: "elm.icon.1";
+                               type: SWALLOW;
+                               scale: 1;
+                               description { state: "default" 0.0;
+                                       min: SCALE(160.0) SCALE(80.0);
+                                       max: SCALE(160.0) SCALE(80.0);
+                                       fixed: 1 1;
+                                       align: 1.0 0.5;
+                                       visible: 1;
+
+                                       rel1.to_x: "elm.padding.right";
+                                       rel2 {
+                                               relative: 0.0 1.0;
+                                               offset: 0 0;
+                                               to_x: "elm.padding.right";
+                                       }
+                               }
+                       }
+
+                       part
+                       {
+                               name: "elm.padding.cancel.left";
+                               type: RECT;
+                               scale: 1;
+                               description { state: "default" 0.0;
+                                       min: SCALE(30.0) 0;
+                                       fixed: 1 1;
+                                       visible: 0;
+                                       rel1.to: "elm.icon.1";
+                                       rel2 {
+                                               relative: 0.0 1.0;
+                                               to: "elm.icon.1";
+                                       }
+                               }
+                       }
+
+                       part { name: "elm.text.1";
+                               type: SWALLOW;
+                               mouse_events: 0;
+                               scale: 1;
+                               description { state: "default" 0.0;
+                                       min: 0 SCALE(20.0);
+                                       fixed: 0 1;
+                                       align: 0 0;
+                                       rel1 {
+                                               relative: 1.0 1.0;
+                                               to_x: "elm.padding.left";
+                                               to_y: "elm.padding.top";
+                                       }
+                                       rel2 {
+                                               relative: 0.0 1.0;
+                                               offset: 0 0;
+                                               to_x: "elm.padding.cancel.left";
+                                               to_y: "elm.padding.top";
+                                       }
+                                       color: GENLIST_PART_TEXT_COLOR_INC;
+                                       /*text {
+                                               font: "SLP:style=Regular";
+                                               size: 18;
+                                               min: 0 1;
+                                               align: 0.0 0.5;
+                                       }*/
+                               }
+                       }
+
+                       part { name: "elm.icon.2";
+                               type: SWALLOW;
+                               mouse_events: 0;
+                               scale: 1;
+                               description { state: "default" 0.0;
+                                       min: 0 SCALE(30.0);
+                                       fixed: 0 1;
+                                       align: 0 0;
+                                       rel1 {
+                                               relative: 1.0 1.0;
+                                               to_x: "elm.padding.left";
+                                               to_y: "elm.text.1";
+                                       }
+                                       rel2 {
+                                               relative: 0.0 1.0;
+                                               offset: 0 0;
+                                               to_x: "elm.padding.cancel.left";
+                                               to_y: "elm.padding.top";
+                                       }
+                               }
+                       }
+
+                       part { name: "elm.text.2";
+                               type: SWALLOW;
+                               mouse_events: 0;
+                               scale: 1;
+                               description { state: "default" 0.0;
+                                       min: SCALE(235.0) SCALE(20.0);
+                                       max: SCALE(235.0) SCALE(20.0);
+                                       fixed: 1 1;
+                                       align: 0 0;
+                                       rel1 {
+                                               relative: 1.0 1.0;
+                                               to_x: "elm.padding.left";
+                                               to_y: "elm.icon.2";
+                                       }
+                                       rel2 {
+                                               relative: 0.0 0.0;
+                                               offset: 0 0;
+                                               to_x: "elm.padding.cancel.left";
+                                               to_y: "elm.padding.bottom";
+                                       }
+                                       color: GENLIST_PART_TEXT_COLOR_INC;
+                                       /*text {
+                                               font: "SLP:style=Regular";
+                                               size: 18;
+                                               min: 0 1;
+                                               align: 0.0 0.5;
+                                       }*/
+                               }
+                       }
+
+                       part { name: "elm.text.3";
+                               type: SWALLOW;
+                               mouse_events: 0;
+                               scale: 1;
+                               description { state: "default" 0.0;
+                                       min: SCALE(235.0) SCALE(20.0);
+                                       max: SCALE(235.0) SCALE(20.0);
+                                       fixed: 1 1;
+                                       align: 1 0;
+                                       rel1 {
+                                               relative: 1.0 1.0;
+                                               to_x: "elm.padding.left";
+                                               to_y: "elm.icon.2";
+                                       }
+                                       rel2 {
+                                               relative: 0.0 0.0;
+                                               offset: 0 0;
+                                               to_x: "elm.padding.cancel.left";
+                                               to_y: "elm.padding.bottom";
+                                       }
+                                       color: GENLIST_PART_TEXT_COLOR_INC;
+                                       /*text {
+                                               font: "SLP:style=Regular";
+                                               size: 18;
+                                               min: 0 1;
+                                               align: 1.0 0.5;
+                                       }*/
+                               }
+                       }
+
+                       BEAT_GENLIST_PART_DISCLIP
+               }
+       }
+
+       group
+       {
+               name: "layout.email.attachment_item";
+
+               images {
+                       image: "00_list_bar_press_1x80.png" COMP;
+                       image: "M02_button_download.png" COMP;
+                       image: "M02_button_download_press.png" COMP;
+               }
+
+               parts
+               {
+                       BEAT_GENLIST_PART_BASE( SCALE(120.0) )
+                       BEAT_GENLIST_PART_BG_IMAGE
+                       BEAT_GENLIST_PART_BOTTOM_LINE
+                       BEAT_GENLIST_PART_PADDING_TOP( SCALE(20.0) )
+                       BEAT_GENLIST_PART_PADDING_BOTTOM( SCALE(20.0) )
+                       BEAT_GENLIST_PART_PADDING_LEFT( SCALE(20.0) )
+                       BEAT_GENLIST_PART_PADDING_RIGHT( SCALE(20.0) )
+
+                       part
+                       {
+                               name: "elm.icon";
+                               clip_to: "disclip";
+                               type: SWALLOW;
+                               scale: 1;
+                               description
+                               {
+                                       state: "default" 0.0;
+                                       min: SCALE(64.0) SCALE(64.0);
+                                       max: SCALE(64.0) SCALE(64.0);
+                                       fixed: 1 1;
+                                       align: 0.0 0.5;
+                                       color: 136 136 136 255;
+
+                                       rel1
+                                       {
+                                               relative: 1.0 1.0;
+                                               to_x: "elm.padding.left";
+                                               to_y: "elm.padding.top";
+                                       }
+                                       rel2
+                                       {
+                                               relative: 1.0 0.0;
+                                               offset: 0 0;
+                                               to_x: "elm.padding.left";
+                                               to_y: "elm.padding.bottom";
+                                       }
+                               }
+                       }
+
+                       part
+                       {
+                               name: "elm.padding.icon.right";
+                               type: RECT;
+                               scale: 1;
+
+                               description
+                               {
+                                       state: "default" 0.0;
+                                       min: SCALE(10.0) 0;
+                                       fixed: 1 0;
+                                       visible: 0;
+
+                                       rel1
+                                       {
+                                               relative: 1.0 0.0;
+                                               to_x: "elm.icon";
+                                       }
+                                       rel2.to_x: "elm.icon";
+                                       align: 0.0 0.0;
+                               }
+                       }
+
+                       part
+                       {
+                               name: "elm.text.rect";
+                               clip_to: "disclip";
+                               type: RECT;
+                               scale: 1;
+                               ignore_flags: ON_HOLD;
+
+                               description
+                               {
+                                       state: "default" 0.0;
+                                       align: 0 0.5;
+                                       color: 0 0 0 0;
+
+                                       rel1
+                                       {
+                                               relative: 1.0 1.0;
+                                               to_x: "elm.padding.icon.right";
+                                               to_y: "elm.padding.top";
+                                       }
+                                       rel2
+                                       {
+                                               relative: 0.0 0.0;
+                                               offset: 0 0;
+                                               to_x: "elm.padding.down.left";
+                                               to_y: "elm.padding.bottom";
+                                       }
+                               }
+                       }
+
+                       part
+                       {
+                               name: "elm.text";
+                               clip_to: "disclip";
+                               type: TEXT;
+                               scale: 1;
+                               ignore_flags: ON_HOLD;
+
+                               description
+                               {
+                                       state: "default" 0.0;
+                                       align: 0 0.5;
+                                       color: 0 0 0 255;
+
+                                       rel1
+                                       {
+                                               relative: 0.0 0.0;
+                                               to: "elm.text.rect";
+                                       }
+                                       rel2
+                                       {
+                                               relative: 1.0 1.0;
+                                               to: "elm.text.rect";
+                                       }
+                                       text
+                                       {
+                                               font: "SLP:style=Medium";
+                                               size: 35;
+                                               min: 0 0;
+                                               max: 1 0;
+                                               align: 0.0 0.5;
+                                       }
+                               }
+
+                               description
+                               {
+                                       state: "pressed" 0.0;
+                                       inherit: "default" 0.0;
+                                       color: 255 255 255 255;
+                               }
+                       }
+
+                       part
+                       {
+                               name: "elm.event.rect";
+                               clip_to: "disclip";
+                               type: RECT;
+                               mouse_events: 1;
+                               repeat_events: 1;
+
+                               description
+                               {
+                                       state: "default" 0.0;
+                                       color: 0 0 0 0;
+
+                                       rel1
+                                       {
+                                               relative: 0.0 0.0;
+                                               to: "base";
+                                       }
+                                       rel2
+                                       {
+                                               relative: 1.0 1.0;
+                                               to: "base";
+                                       }
+                                       visible: 1;
+                               }
+                       }
+
+                       part
+                       {
+                               name: "down";
+                               clip_to: "disclip";
+                               type: RECT;
+                               ignore_flags: ON_HOLD;
+                               mouse_events: 1;
+                               scale: 1;
+
+                               description
+                               {
+                                       state: "default" 0.0;
+                                       min: SCALE(64.0) SCALE(64.0);
+                                       max: SCALE(64.0) SCALE(64.0);
+                                       fixed: 1 1;
+                                       align: 1.0 0.5;
+                                       aspect: 1.0 1.0; // needed?
+
+                                       rel1.to_x: "elm.padding.right";
+                                       rel2
+                                       {
+                                               relative: 0.0 1.0;
+                                               offset: 0 0;
+                                               to_x: "elm.padding.right";
+                                       }
+                                       color: 0 0 0 0;
+                               }
+                       }
+
+                       part
+                       {
+                               name: "elm.padding.down.left";
+                               type: RECT;
+                               scale: 1;
+                               description { state: "default" 0.0;
+                                       min: SCALE(10.0) 0;
+                                       fixed: 1 0;
+                                       visible: 0;
+                                       align: 1.0 0.5;
+                                       rel1.to: "down";
+                                       rel2 {
+                                               relative: 0.0 1.0;
+                                               to: "down";
+                                       }
+                               }
+                       }
+
+                       part {
+                               name: "down_image";
+                               type: IMAGE;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "down"; }
+                                       rel2 { relative: 1.0 1.0; to: "down"; }
+                                       image.normal: "M02_button_download.png";
+                               }
+                               description {
+                                       state: "default" 1.0;
+                                       rel1 { relative: 0.0 0.0; to: "down"; }
+                                       rel2 { relative: 1.0 1.0; to: "down"; }
+                                       image.normal: "M02_button_download_press.png";
+                               }
+                       }
+
+                       BEAT_GENLIST_PART_DISCLIP
+               }
+               programs {
+                       program {
+                               name: "download_btn_down";
+                               signal: "mouse,down,1";
+                               source: "down";
+                               action: STATE_SET "default" 1.0;
+                               target: "down_image";
+                       }
+                       program {
+                               name: "download_btn_up";
+                               signal: "mouse,up,1";
+                               source: "down";
+                               action: STATE_SET "default" 0.0;
+                               target: "down_image";
+                       }
+                       program {
+                               name: "download_btn_clicked";
+                               signal: "mouse,clicked,1";
+                               source: "down";
+                               action: SIGNAL_EMIT "elm,action,download" "elm";
+                       }
+                       program {
+                               name: "go_active";
+                               signal: "elm,state,selected";
+                               source: "elm";
+                               action: STATE_SET "selected" 0.0;
+                               target: "bg_image";
+                       }
+                       program {
+                               name: "go_passive";
+                               signal: "elm,state,unselected";
+                               source: "elm";
+                               action: STATE_SET "default" 0.0;
+                               target: "bg_image";
+                               transition: LINEAR 0.1;
+                       }
+                       program {
+                               name: "go_disabled";
+                               signal: "elm,state,disabled";
+                               source: "elm";
+                               action: STATE_SET "disabled" 0.0;
+                               target: "disclip";
+                       }
+                       program {
+                               name: "go_enabled";
+                               signal: "elm,state,enabled";
+                               source: "elm";
+                               action: STATE_SET "default" 0.0;
+                               target: "disclip";
+                       }
+                       program {
+                               name: "elm.event.rect_clicked";
+                               signal: "mouse,clicked,1";
+                               source: "elm.event.rect";
+                               action: SIGNAL_EMIT "clicked" "";
+                       }
+                       program {
+                               name: "elm.event.rect_pressed";
+                               signal: "pressed";
+                               source: "elm.event.rect";
+                               action: STATE_SET "pressed" 0.0;
+                               target: "base";
+                               target: "elm.text";
+                       }
+
+                       program {
+                               name: "elm.event.rect_unpressed";
+                               signal: "unpressed";
+                               source: "elm.event.rect";
+                               action: STATE_SET "default" 0.0;
+                               target: "base";
+                               target: "elm.text";
+                       }
+               }
+       }
+
+       group {
+               name: "layout.email.attachment_head";
+
+               images {
+                       image: "00_list_bar_press_1x80.png" COMP;
+                       image: "M02_button_expand_closed.png" COMP;
+                       image: "M02_button_expand_closed_press.png" COMP;
+                       image: "M02_button_expand_opened.png" COMP;
+                       image: "M02_button_expand_opened_press.png" COMP;
+                       image: "M02_email_icon_attach.png" COMP;
+                       image: "M02_button_expand.png" COMP;
+                       image: "M02_button_expand_press.png" COMP;
+               }
+
+               parts
+               {
+                       BEAT_GENLIST_PART_BASE( SCALE(120.0) )
+                       BEAT_GENLIST_PART_BG_IMAGE
+                       BEAT_GENLIST_PART_BOTTOM_LINE
+                       BEAT_GENLIST_PART_PADDING_TOP( SCALE(20.0) )
+                       BEAT_GENLIST_PART_PADDING_BOTTOM( SCALE(10.0) )
+                       BEAT_GENLIST_PART_PADDING_LEFT( SCALE(20.0) )
+                       BEAT_GENLIST_PART_PADDING_RIGHT( SCALE(20.0) )
+
+                       part {
+                               name: "elm.icon";
+                               clip_to: "disclip";
+                               type: IMAGE;
+                               scale: 1;
+                               ignore_flags: ON_HOLD;
+                               description { state: "default" 0.0;
+                                       min: SCALE(40.0) SCALE(40.0);
+                                       max: SCALE(40.0) SCALE(40.0);
+                                       fixed: 1 1;
+                                       align: 0.0 0.5;
+                                       rel1 {
+                                               relative: 1.0 0.0;
+                                               to_x: "elm.padding.left";
+                                       }
+                                       rel2 {
+                                               offset: 0 0;
+                                               to_x: "elm.padding.left";
+                                       }
+                                       image.normal: "M02_email_icon_attach.png";
+                               }
+                       }
+                       part {
+                               name: "elm.padding.icon.right";
+                               type: RECT;
+                               scale: 1;
+                               description { state: "default" 0.0;
+                                       min: SCALE(13.0) 0;
+                                       fixed: 1 0;
+                                       visible: 0;
+                                       rel1 {
+                                               relative: 1.0 0.0;
+                                               to_x: "elm.icon";
+                                       }
+                                       rel2.to_x: "elm.icon";
+                                       align: 0.0 0.0;
+                               }
+                       }
+
+                       part
+                       {
+                               name: "touch_arrow";
+                               type: RECT;
+                               clip_to: "disclip";
+                               ignore_flags: ON_HOLD;
+                               scale: 1;
+                               description { state: "default" 0.0;
+                                       min: SCALE(74.0) SCALE(74.0);
+                                       fixed: 1 1;
+                                       align: 0.5 0.5;
+                                       rel1 {
+                                               relative: 0.5 0.5;
+                                               to: "arrow";
+                                       }
+                                       rel2 {
+                                               relative: 0.5 0.5;
+                                               to: "arrow";
+                                       }
+                                       color: 0 0 0 0;
+                               }
+                       }
+                       part
+                       {
+                               name: "arrow";
+                               clip_to: "disclip";
+                               ignore_flags: ON_HOLD;
+                               mouse_events: 0;
+                               scale: 1;
+                               description { state: "default" 0.0;
+                                       min: SCALE(64.0) SCALE(64.0);
+                                       max: SCALE(64.0) SCALE(64.0);
+                                       fixed: 1 1;
+                                       align: 1.0 0.5;
+                                       aspect: 1.0 1.0; // needed?
+                                       rel1.to_x: "elm.padding.right";
+                                       rel2 {
+                                               relative: 0.0 1.0;
+                                               offset: 0 0;
+                                               to_x: "elm.padding.right";
+                                       }
+                                       image.normal: "M02_button_expand_opened.png";
+                               }
+                               description { state: "default" 1.0;
+                                       inherit: "default" 0.0;
+                                       image.normal: "M02_button_expand_opened_press.png";
+                               }
+                               description { state: "active" 0.0;
+                                       inherit: "default" 0.0;
+                                       image.normal: "M02_button_expand.png";
+                               }
+                               description { state: "active" 1.0;
+                                       inherit: "default" 0.0;
+                                       image.normal: "M02_button_expand_press.png";
+                               }
+                       }
+                       part
+                       {
+                               name: "elm.padding.arrow.left";
+                               type: RECT;
+                               scale: 1;
+                               description { state: "default" 0.0;
+                                       min: SCALE(5.0) 0;
+                                       fixed: 1 0;
+                                       visible: 0;
+                                       align: 1.0 0.5;
+                                       rel1.to: "arrow";
+                                       rel2 {
+                                               relative: 0.0 1.0;
+                                               to: "arrow";
+                                       }
+                               }
+                       }
+
+                       part
+                       {
+                               name: "elm.text";
+                               clip_to: "disclip";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 SCALE(30.0);
+                                       fixed: 0 1;
+                                       align: 0 0;
+                                       rel1 {
+                                               relative: 1.0 1.0;
+                                               to_x: "elm.padding.icon.right";
+                                               to_y: "elm.padding.top";
+                                       }
+                                       rel2 {
+                                               relative: 0.0 1.0;
+                                               offset: 0 0;
+                                               to_x: "elm.padding.arrow.left";
+                                               to_y: "elm.padding.top";
+                                       }
+                                       color: 0 0 0 255;
+                                       /*text {
+                                               font: "SLP:style=Roman";
+                                               size: 26;
+                                               min: 0 1;
+                                               align: 0.0 0.5;
+                                       }*/
+                               }
+                               description { state: "selected" 0.0;
+                                       inherit: "default" 0.0;
+                                       color: 225 225 225 255;
+                               }
+                       }
+
+                       part
+                       {
+                               name: "elm.text.sub";
+                               clip_to: "disclip";
+                               type: TEXT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 {
+                                               relative: 1.0 1.0;
+                                               to_x: "elm.padding.icon.right";
+                                               to_y: "elm.text";
+                                       }
+                                       rel2 {
+                                               relative: 0.0 0.0;
+                                               offset: 0 0;
+                                               to_x: "elm.padding.arrow.left";
+                                               to_y: "elm.padding.bottom";
+                                       }
+                                       color: 0 0 0 255;
+                                       text {
+                                               font: "SLP:style=Medium";
+                                               size: SCALE(32.0);
+                                               min: 0 1;
+                                               align: 0.0 0.5;
+                                       }
+                               }
+                               description {
+                                       state: "selected" 0.0;
+                                       inherit: "default" 0.0;
+                                       color: 225 225 225 255;
+                               }
+                       }
+                       BEAT_GENLIST_PART_DISCLIP
+               }
+               programs {
+                       // signal: elm,state,%s,active
+                       // a "check" item named %s went active
+                       // signal: elm,state,%s,passive
+                       // a "check" item named %s went passive
+                       // default is passive
+                       program {
+                               name: "go_active";
+                               signal: "elm,state,selected";
+                               source: "elm";
+                               action: STATE_SET "selected" 0.0;
+                               target: "bg_image";
+                               target: "elm.text";
+                       }
+                       program {
+                               name: "go_passive";
+                               signal: "elm,state,unselected";
+                               source: "elm";
+                               action: STATE_SET "default" 0.0;
+                               target: "bg_image";
+                               target: "elm.text";
+                               transition: LINEAR 0.1;
+                       }
+                       program {
+                               name: "go_disabled";
+                               signal: "elm,state,disabled";
+                               source: "elm";
+                               action: STATE_SET "disabled" 0.0;
+                               target: "disclip";
+                       }
+                       program {
+                               name: "go_enabled";
+                               signal: "elm,state,enabled";
+                               source: "elm";
+                               action: STATE_SET "default" 0.0;
+                               target: "disclip";
+                       }
+                       program {
+                               name: "expand";
+                               signal: "mouse,up,1";
+                               source: "touch_arrow";
+                               action: SIGNAL_EMIT "elm,action,expand,toggle" "elm";
+                       }
+                       program {
+                               name: "arrow_down";
+                               signal: "mouse,down,1";
+                               source: "touch_arrow";
+                               script {
+                                       new st[31];
+                                       new Float:vl;
+                                       get_state(PART:"arrow", st, 30, vl)
+                                       if (vl == 0.0)
+                                               set_state(PART:"arrow", st, 1.0);
+                                       else
+                                               set_state(PART:"arrow", st, 0.0);
+                               }
+                       }
+                       program {
+                               name: "go_expanded";
+                               signal: "elm,state,expanded";
+                               source: "elm";
+                               action: STATE_SET "active" 0.0;
+                               target: "arrow";
+                       }
+                       program {
+                               name: "go_contracted";
+                               signal: "elm,state,contracted";
+                               source: "elm";
+                               action: STATE_SET "default" 0.0;
+                               target: "arrow";
+                       }
+                       program {
+                               name: "save_all";
+                               signal: "mouse,up,1";
+                               source: "elm.icon";
+                               action: SIGNAL_EMIT "att,icon,save,all" "";
+                       }
+               }
+       }
+
+       /*group {
+               name: "layout.email.subject_nbeat";
+
+               images {
+                       image: "00_list_bar_press_1x80.png" COMP;
+                       image: "M02_button_expand_closed.png" COMP;
+                       image: "M02_button_expand_closed_press.png" COMP;
+                       image: "M02_button_expand_opened.png" COMP;
+                       image: "M02_button_expand_opened_press.png" COMP;
+               }
+
+               styles {
+                       style { name: "genlist_textblock_sub_style";
+                               base: "font=SLP:style=Regular font_size=24 color=#6C6C6C wrap=char text_class=list_item";
+                               tag: "br" "\n";
+                               tag: "ps" "ps";
+                               tag: "tab" "\t";
+                       }
+                       style { name: "genlist_textblock_sub_selected_style";
+                               base: "font=SLP:style=Regular font_size=24 color=#FFFFFF wrap=char text_class=list_item";
+                               tag: "br" "\n";
+                               tag: "ps" "ps";
+                               tag: "tab" "\t";
+                       }
+               }
+               parts {
+                       part { name: "base";
+                               type: RECT;
+                               repeat_events: 1;
+                               description { state: "default" 0.0;
+                                       color: 249 249 249 255;
+                               }
+                       }
+                       BEAT_GENLIST_PART_BG_IMAGE
+                       BEAT_GENLIST_PART_BOTTOM_LINE
+                       BEAT_GENLIST_PART_PADDING_TOP( 10 )
+                       BEAT_GENLIST_PART_PADDING_BOTTOM( 10 )
+                       BEAT_GENLIST_PART_PADDING_LEFT( 20 )
+                       BEAT_GENLIST_PART_PADDING_RIGHT( 10 )
+                       BEAT_GENLIST_PART_DIALOGUE_ITEM
+
+                       part
+                       {
+                               name: "touch_arrow";
+                               type: RECT;
+                               clip_to: "disclip";
+                               ignore_flags: ON_HOLD;
+                               scale: 1;
+                               description { state: "default" 0.0;
+                                       min: 70 80;
+                                       fixed: 1 1;
+                                       align: 0.5 0.5;
+                                       rel1 {
+                                               relative: 0.5 0.5;
+                                               to: "arrow";
+                                       }
+                                       rel2 {
+                                               relative: 0.5 0.5;
+                                               to: "arrow";
+                                       }
+                                       color: 0 0 0 0;
+                               }
+                       }
+                       part
+                       {
+                               name: "arrow";
+                               clip_to: "disclip";
+                               ignore_flags: ON_HOLD;
+                               mouse_events: 0;
+                               scale: 1;
+                               description { state: "default" 0.0;
+                                       min: 40 40;
+                                       max: 40 40;
+                                       fixed: 1 1;
+                                       align: 1.0 0.5;
+                                       aspect: 1.0 1.0; // needed?
+                                       rel1.to_x: "elm.padding.right";
+                                       rel2 {
+                                               relative: 0.0 1.0;
+                                               offset: 0 0;
+                                               to_x: "elm.padding.right";
+                                       }
+                                       image.normal: "M02_button_expand_closed.png";
+                               }
+                               description { state: "default" 1.0;
+                                       inherit: "default" 0.0;
+                                       image.normal: "M02_button_expand_closed_press.png";
+                               }
+                               description { state: "active" 0.0;
+                                       inherit: "default" 0.0;
+                                       image.normal: "M02_button_expand_opened.png";
+                               }
+                               description { state: "active" 1.0;
+                                       inherit: "default" 0.0;
+                                       image.normal: "M02_button_expand_opened_press.png";
+                               }
+                       }
+
+                       part
+                       {
+                               name: "elm.padding.arrow.left";
+                               type: RECT;
+                               scale: 1;
+                               description { state: "default" 0.0;
+                                       min: 5 0;
+                                       fixed: 1 0;
+                                       visible: 0;
+                                       align: 1.0 0.5;
+                                       rel1.to: "arrow";
+                                       rel2 {
+                                               relative: 0.0 1.0;
+                                               to: "arrow";
+                                       }
+                               }
+                       }
+
+                       part { name: "elm.text.1";
+                               clip_to: "disclip";
+                               type: TEXTBLOCK;
+                               mouse_events: 0;
+                               scale: 1;
+                               description { state: "default" 0.0;
+                                       rel1 {
+                                               relative: 1.0 1.0;
+                                               to_x: "elm.padding.left";
+                                               to_y: "elm.padding.top";
+                                       }
+                                       rel2 {
+                                               relative: 0.0 1.0;
+                                               offset: 0 0;
+                                               to_x: "elm.padding.arrow.left";
+                                               to_y: "elm.padding.top";
+                                       }
+                                       text {
+                                               style: "genlist_textblock_sub_style";
+                                               min: 0 1;
+                                               align: 0.0 0.5;
+                                       }
+                               }
+                               description { state: "selected" 0.0;
+                                       inherit: "default" 0.0;
+                                       text.style: "genlist_textblock_sub_selected_style";
+                               }
+                       }
+
+                       part { name: "elm.text.2";
+                               clip_to: "disclip";
+                               type: TEXT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description { state: "default" 0.0;
+                                       min: 0 38;
+                                       fixed: 0 1;
+                                       align: 0 0;
+                                       rel1 {
+                                               relative: 1.0 1.0;
+                                               to_x: "elm.padding.left";
+                                               to_y: "elm.text.1";
+                                       }
+                                       rel2 {
+                                               relative: 0.0 0.0;
+                                               offset: 0 0;
+                                               to_x: "elm.padding.arrow.left";
+                                               to_y: "elm.padding.bottom";
+                                       }
+                                       color: GENLIST_PART_TEXT_COLOR_INC;
+                                       text {
+                                               font: "SLP:style=Regular";
+                                               size: 20;
+                                               min: 0 1;
+                                               align: 0.0 0.5;
+                                       }
+                               }
+                               description { state: "selected" 0.0;
+                                       inherit: "default" 0.0;
+                                       color: GENLIST_PART_TEXT_SELECTED_COLOR_INC;
+                               }
+                       }
+
+                       BEAT_GENLIST_PART_DISCLIP
+               }
+               programs {
+                       // signal: elm,state,%s,active
+                       // a "check" item named %s went active
+                       // signal: elm,state,%s,passive
+                       // a "check" item named %s went passive
+                       // default is passive
+                       program { name: "go_active";
+                               signal: "elm,state,selected";
+                               source: "elm";
+                               action: STATE_SET "selected" 0.0;
+                               target: "bg_image";
+                               target: "elm.text.1";
+                               target: "elm.text.2";
+                       }
+                       program { name: "go_passive";
+                               signal: "elm,state,unselected";
+                               source: "elm";
+                               action: STATE_SET "default" 0.0;
+                               target: "bg_image";
+                               target: "elm.text.1";
+                               target: "elm.text.2";
+                               transition: LINEAR 0.1;
+                       }
+                       program { name: "go_disabled";
+                               signal: "elm,state,disabled";
+                               source: "elm";
+                               action: STATE_SET "disabled" 0.0;
+                               target: "disclip";
+                       }
+                       program { name: "go_enabled";
+                               signal: "elm,state,enabled";
+                               source: "elm";
+                               action: STATE_SET "default" 0.0;
+                               target: "disclip";
+                       }
+                       program {
+                               name: "expand";
+                               signal: "mouse,up,1";
+                               source: "touch_arrow";
+                               action: SIGNAL_EMIT "elm,action,expand,toggle" "elm";
+                       }
+                       program {
+                               name: "arrow_down";
+                               signal: "mouse,down,1";
+                               source: "touch_arrow";
+                               script {
+                                       new st[31];
+                                       new Float:vl;
+                                       get_state(PART:"arrow", st, 30, vl)
+                                       if (vl == 0.0)
+                                               set_state(PART:"arrow", st, 1.0);
+                                       else
+                                               set_state(PART:"arrow", st, 0.0);
+                               }
+                       }
+                       program {
+                               name: "go_expanded";
+                               signal: "elm,state,expanded";
+                               source: "elm";
+                               action: STATE_SET "active" 0.0;
+                               target: "arrow";
+                       }
+                       program {
+                               name: "go_contracted";
+                               signal: "elm,state,contracted";
+                               source: "elm";
+                               action: STATE_SET "default" 0.0;
+                               target: "arrow";
+                       }
+               }
+       }*/
+
+}