Meged with lastest mailbox/account codes
authorKim Jinho <jinho912.kim@samsung.com>
Thu, 6 Dec 2012 10:23:44 +0000 (19:23 +0900)
committerKim Jinho <jinho912.kim@samsung.com>
Thu, 6 Dec 2012 10:23:44 +0000 (19:23 +0900)
18 files changed:
account/include/email-account-folder.h
account/include/email-account.h
account/src/email-account-folder.c
account/src/email-account.c
common/include/email-common-types.h
common/include/email-utils.h
common/src/email-utils.c
mailbox/include/email-mailbox-list.h
mailbox/include/email-mailbox.h
mailbox/src/email-mailbox-controlbar.c
mailbox/src/email-mailbox-item.c
mailbox/src/email-mailbox-list.c
mailbox/src/email-mailbox-noti-mgr.c
mailbox/src/email-mailbox-search.c
mailbox/src/email-mailbox-sweep.c
mailbox/src/email-mailbox.c
mailbox/theme/email-mailbox-theme.edc
main/email.c

index a118eff..ffcf2fb 100755 (executable)
@@ -26,6 +26,7 @@ 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);
+void refresh_account_ug(EmailAccountUGD *ug_data);
 
 
 #endif /* __email_account_folder_H__ */
index 941360f..6a655c4 100755 (executable)
 #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_UPDATE IMGDIR"/00_icon_refresh.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"
 
@@ -144,18 +138,17 @@ struct ug_data {
        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 *sync_progress;
+       Evas_Object *ctxpopup;
 
        Evas_Object *gl;
        gint n_account_list;
-       gint end_key_event;
        Elm_Object_Item *item[2];
-       Evas_Object *control_bar;
+       Evas_Object *toolbar_more_btn;
+       Evas_Object *toolbar_btn;
 
        int all_read_count;
        int all_unread_count;
@@ -175,6 +168,8 @@ struct ug_data {
        int folder_id;
        int ug_mode;
        int mailbox_type;
+       gboolean b_foldersync;
+       gboolean no_refresh;
 
        int folder_mode;
        int emf_handle;
@@ -182,7 +177,6 @@ struct ug_data {
        Elm_Object_Item *it;
        Evas_Object *entry;
        Evas_Object *popup;
-       Evas_Object *conformant;
        Elm_Object_Item *move_from_item;
 
        Evas_Object *select_info;
index 6d30ec0..6865c97 100755 (executable)
@@ -32,7 +32,13 @@ 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 create_edit_control_option(EmailAccountUGD * ug_data);
+static Evas_Object *_create_toolbar_btn(Evas_Object *parent, const char *text, Evas_Smart_Cb func, void *data);
+static Evas_Object *_create_toolbar_more_btn(Evas_Object *parent, Evas_Smart_Cb func, void *data);
+static void _move_ctxpopup(Evas_Object *ctxpopup, Evas_Object *win);
+static void _more_toolbar_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+static void _dismissed_cb(void *data, Evas_Object *obj, void *event_info);
+static void _unset_controlbar_content(EmailAccountUGD * ug_data);
 
 static void _refresh_account_list(void *data);
 static gboolean _check_duplicated_node(GNode *node, gpointer data);
@@ -42,6 +48,9 @@ static void _update_all_account_cb(void *data, Evas_Object *obj, void *event_inf
 
 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 Evas_Object *_gl_icon_get_for_subitem(void *data, Evas_Object *obj, const char *part);
+static Evas_Object *_gl_icon_get_for_leafitem(void *data, Evas_Object *obj, const char *part);
+static void _folder_icon_clicked_cb(void *data, Evas_Object *obj, void *event_info);
 
 static void _gl_del(void *data, Evas_Object *obj);
 static char *_gl_label_get(void *data, Evas_Object *obj, const char *part);
@@ -119,6 +128,11 @@ static Elm_Genlist_Item_Class itc_subtree2;
 
 extern bool g_isRotate;
 
+#define FOLDER_ICON_PLUS_FOLDER_LIST IMGDIR"/folder_plus.png"
+#define FOLDER_ICON_MINUS_FOLDER_LIST IMGDIR"/folder_minus.png"
+#define FOLDER_ICON_FOLDER_LIST IMGDIR"/folder.png"
+
+
 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 },
@@ -151,7 +165,6 @@ Evas_Object *create_fullview(EmailAccountUGD *ug_data)
        }
        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);
@@ -203,11 +216,11 @@ Evas_Object *create_fullview(EmailAccountUGD *ug_data)
 #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"));
+       elm_object_item_text_set(ug_data->navibar_item, _("IDS_EMAIL_HEADER_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");
+       elm_object_style_set(ug_data->update_button, "naviframe/title_icon");
        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);
@@ -216,6 +229,13 @@ Evas_Object *create_fullview(EmailAccountUGD *ug_data)
        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);
 
+       //sync progress on Title Right
+       ug_data->sync_progress = elm_progressbar_add(ug_data->navi_bar);
+       elm_object_style_set(ug_data->sync_progress, "list_process");
+       evas_object_size_hint_align_set(ug_data->sync_progress, EVAS_HINT_FILL, 0.5);
+       evas_object_size_hint_weight_set(ug_data->sync_progress, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       elm_progressbar_pulse(ug_data->sync_progress, EINA_TRUE);
+
 #endif
 
        /* contents */
@@ -223,17 +243,7 @@ Evas_Object *create_fullview(EmailAccountUGD *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
-       {
+       if(ug_data->account_id != 0) {
                _create_controlbar(ug_data);
        }
 
@@ -283,20 +293,18 @@ static void _create_controlbar(EmailAccountUGD * ug_data)
 
        _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);
+               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);
+               create_edit_control_option(ug_data);
                break;
        default:
                break;
@@ -306,9 +314,17 @@ static void _create_controlbar(EmailAccountUGD * ug_data)
 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;
+
+       if (ug_data->toolbar_more_btn) {
+               debug_log("ug_data->toolbar_more_btn : %p", ug_data->toolbar_more_btn);
+               elm_object_item_part_content_unset(ug_data->navibar_item, "toolbar_more_btn");
+               evas_object_del(ug_data->toolbar_more_btn);
+               ug_data->toolbar_more_btn = NULL;
+       }
+       if (ug_data->toolbar_btn) {
+               elm_object_item_part_content_unset(ug_data->navibar_item, "toolbar_button1");
+               evas_object_del(ug_data->toolbar_btn);
+               ug_data->toolbar_btn = NULL;
        }
 }
 
@@ -330,39 +346,86 @@ static void _delete_selection_info(EmailAccountUGD * ug_data)
 static Evas_Object *create_control_option(EmailAccountUGD * ug_data)
 {
        debug_log("");
-       Evas_Object *cbar;
+       Evas_Object *more_btn, *btn;
 
-       cbar = elm_toolbar_add(ug_data->navi_bar);
-       elm_toolbar_shrink_mode_set(cbar, ELM_TOOLBAR_SHRINK_EXPAND);
-       elm_object_style_set(cbar, "naviframe");
+       more_btn = _create_toolbar_more_btn(ug_data->navi_bar, _more_toolbar_clicked_cb, ug_data);
+       elm_object_item_part_content_set(ug_data->navibar_item, "toolbar_more_btn", more_btn);
+       ug_data->toolbar_more_btn = more_btn;
 
-       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);
+       btn = _create_toolbar_btn(ug_data->navi_bar, _("IDS_EMAIL_SK_CREATE_FOLDER"), _folder_create_cb, ug_data);
+       elm_object_item_part_content_set(ug_data->navibar_item, "toolbar_button1", btn);
+       ug_data->toolbar_btn = btn;
 
-       elm_object_item_part_content_set(ug_data->navibar_item, "controlbar", cbar);
+       return NULL;
+}
 
-       return cbar;
+static void create_edit_control_option(EmailAccountUGD * ug_data)
+{
+       debug_log("");
+
+       _delete_controlbar(ug_data);
 }
 
-static Evas_Object *create_edit_control_option(EmailAccountUGD * ug_data)
+static Evas_Object *_create_toolbar_more_btn(Evas_Object *parent, Evas_Smart_Cb func, void *data)
+{
+       Evas_Object *btn = elm_button_add(parent);
+       if (!btn) return NULL;
+       elm_object_style_set(btn, "naviframe/more/default");
+       evas_object_smart_callback_add(btn, "clicked", func, data);
+       return btn;
+}
+static Evas_Object *_create_toolbar_btn(Evas_Object *parent, const char *text, Evas_Smart_Cb func, void *data)
+{
+       Evas_Object *btn = elm_button_add(parent);
+       if (!btn) return NULL;
+       elm_object_style_set(btn, "naviframe/toolbar/default");
+       elm_object_text_set(btn, text);
+       evas_object_smart_callback_add(btn, "clicked", func, data);
+       return btn;
+}
+static void _more_toolbar_clicked_cb(void *data, Evas_Object *obj, void *event_info)
 {
        debug_log("");
-       Evas_Object *cbar;
+       EmailAccountUGD *ug_data = (EmailAccountUGD *)data;
+
+       ug_data->ctxpopup = elm_ctxpopup_add(ug_data->navi_bar);
+       evas_object_smart_callback_add(ug_data->ctxpopup, "dismissed", _dismissed_cb, ug_data);
 
-       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_ctxpopup_item_append(ug_data->ctxpopup, dgettext("sys_string", "IDS_COM_SK_DELETE"), NULL, _folder_delete_cb, ug_data);
+       elm_ctxpopup_item_append(ug_data->ctxpopup, _("IDS_EMAIL_SK_MOVE"), NULL, _folder_move_cb, ug_data);
+       elm_ctxpopup_item_append(ug_data->ctxpopup, dgettext("sys_string", "IDS_COM_SK_RENAME"), NULL, _folder_rename_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_DELETE, dgettext("sys_string", "IDS_COM_SK_DELETE"), _popup_delfolder_cb, ug_data);
+       _move_ctxpopup(ug_data->ctxpopup, obj);
+       evas_object_show(ug_data->ctxpopup);
+}
+
+static void _move_ctxpopup(Evas_Object *ctxpopup, Evas_Object *win)
+{
+       Evas_Coord x, y, w, h;
 
-       elm_object_item_part_content_set(ug_data->navibar_item, "controlbar", cbar);
+       evas_object_geometry_get(win, &x, &y, &w, &h);
+       evas_object_move(ctxpopup, x + (w / 2), y);
 
-       return cbar;
 }
+static void _dismissed_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       EmailAccountUGD *ug_data = (EmailAccountUGD *)data;
+       evas_object_del(ug_data->ctxpopup);
+       ug_data->ctxpopup = NULL;
+}
+static void _unset_controlbar_content(EmailAccountUGD * ug_data)
+{
+       debug_log("");
 
+       if (ug_data->toolbar_more_btn) {
+               elm_object_item_part_content_unset(ug_data->navibar_item, "toolbar_more_btn");
+               evas_object_hide(ug_data->toolbar_more_btn);
+       }
+       if (ug_data->toolbar_btn) {
+               elm_object_item_part_content_unset(ug_data->navibar_item, "toolbar_button1");
+               evas_object_hide(ug_data->toolbar_btn);
+       }
+}
 void _create_folder_view(EmailAccountUGD *ug_data)
 {
        debug_log("");
@@ -571,7 +634,8 @@ void _create_folder_view(EmailAccountUGD *ug_data)
                        return;
                }
 
-               itc_item.item_style = "dialogue/2text.2icon/expandable";
+               //itc_item.item_style = "dialogue/2text.2icon/expandable";
+               itc_item.item_style = "dialogue/2text.1icon/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;
@@ -839,6 +903,89 @@ FINISH:
        return g_strdup(tmp);
 }
 
+static Evas_Object *_gl_icon_get_for_subitem(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;
+
+       if (!strcmp(part, "elm.icon") || !strcmp(part, "elm.icon.1"))
+       {
+               Evas_Object *icon = elm_icon_add(obj);
+               elm_icon_file_set(icon, FOLDER_ICON_PLUS_FOLDER_LIST, NULL);
+               evas_object_smart_callback_add(icon, "clicked", _folder_icon_clicked_cb, data);
+               evas_object_propagate_events_set(icon, EINA_FALSE);
+               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(%s) is invalid", part);
+       }
+
+       return NULL;
+}
+static Evas_Object *_gl_icon_get_for_leafitem(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;
+
+       if (!strcmp(part, "elm.icon") || !strcmp(part, "elm.icon.1"))
+       {
+               Evas_Object *icon = elm_icon_add(obj);
+               elm_icon_file_set(icon, FOLDER_ICON_FOLDER_LIST, NULL);
+               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(%s) is invalid", part);
+       }
+
+       return NULL;
+}
 static Evas_Object *_gl_icon_get(void *data, Evas_Object *obj, const char *part)
 {
        debug_log("");
@@ -901,36 +1048,9 @@ static Evas_Object *_gl_icon_get(void *data, Evas_Object *obj, const char *part)
        {
                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);
+               elm_icon_file_set(icon, alist->account_info->logo_icon_path, NULL);
+               debug_log("logo_icon_path:%s", alist->account_info->logo_icon_path);
 
-               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;
@@ -994,16 +1114,18 @@ static void _gl_exp(void *data, Evas_Object *obj, void *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.item_style = "1text.1/expandable_n_depth";
+       itc_subtree.item_style = "1text.1icon.2";
        itc_subtree.func.text_get = _gl_label_get_for_subitem;
-       itc_subtree.func.content_get = _gl_icon_get;
+       itc_subtree.func.content_get = _gl_icon_get_for_subitem;
        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.item_style = "1text.2/expandable_n_depth";
+       itc_subtree2.item_style = "1text.1icon.2";
        itc_subtree2.func.text_get = _gl_label_get_for_subitem;
-       itc_subtree2.func.content_get = _gl_icon_get;
+       itc_subtree2.func.content_get = _gl_icon_get_for_leafitem;
        itc_subtree2.func.state_get = _gl_state_get;
        itc_subtree2.func.del = _gl_del;
        itc_subtree2.decorate_all_item_style = NULL;
@@ -1094,7 +1216,24 @@ static void _gl_exp(void *data, Evas_Object *obj, void *event_info)
                }
        }
 }
+static void _folder_icon_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       Item_Data *item_data = (Item_Data *)data;
+       Eina_Bool expanded = EINA_FALSE;
+
+       if (item_data->it)
+               elm_genlist_item_selected_set(item_data->it, EINA_FALSE);
+       expanded = elm_genlist_item_expanded_get(item_data->it);
+       elm_genlist_item_expanded_set(item_data->it, !expanded);
+
+       if (expanded) {
+               elm_icon_file_set(obj, FOLDER_ICON_PLUS_FOLDER_LIST, NULL);
+       } else {
+               elm_icon_file_set(obj, FOLDER_ICON_MINUS_FOLDER_LIST, NULL);
+       }
 
+}
 static void _gl_sel(void *data, Evas_Object *obj, void *event_info)
 {
        debug_log("");
@@ -1189,14 +1328,11 @@ static void _gl_sel(void *data, Evas_Object *obj, void *event_info)
                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_TYPE, EMAIL_BUNDLE_VAL_SINGLE_ACCOUNT);
                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);
@@ -1338,14 +1474,11 @@ static void _gl_exp_sel(void *data, Evas_Object *obj, void *event_info)
                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_TYPE, EMAIL_BUNDLE_VAL_SINGLE_ACCOUNT);
                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);
@@ -1437,11 +1570,6 @@ void _finish_folder_view(void *data, Evas_Object *obj, void *event_info)
 
        /* 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);
 
@@ -1466,7 +1594,35 @@ static void _update_all_account_cb(void *data, Evas_Object *obj, void *event_inf
        else // UG_MODE_FULLVIEW
        {
                if (!elm_genlist_decorate_mode_get(ug_data->gl)) {
-                       _refresh_folder_view(ug_data);
+
+                       if (EMAIL_SERVER_TYPE_IMAP4 == GET_ACCOUNT_SERVER_TYPE(ug_data->account_id)) {
+                               int handle;
+                               int err_code = 0;
+                               err_code = email_sync_imap_mailbox_list(ug_data->account_id, &handle);
+
+                               if (err_code < 0) {
+                                       debug_log("email_sync_imap_mailbox_list failed");
+                                       _refresh_folder_view(ug_data);
+                               }
+                               else {
+                                       debug_log("email_sync_imap_mailbox_list succeed : handle[%d]\n", handle);
+                                       ug_data->b_foldersync = true; //Ignore the notification(ADD, DELETE, ..)
+                                       ug_data->emf_handle = handle;
+                                       ug_data->no_refresh = false; //Screen refresh is needed
+                                       Evas_Object * sync_button = elm_object_item_part_content_get(ug_data->navibar_item, "title_right_btn");
+                                       if (sync_button == ug_data->update_button)
+                                       {
+                                               debug_log("create sync progress");
+                                               elm_object_item_part_content_unset(ug_data->navibar_item, "title_right_btn");
+                                               evas_object_hide(ug_data->update_button);
+                                               elm_object_item_part_content_set(ug_data->navibar_item, "title_right_btn", ug_data->sync_progress);
+                                               evas_object_show(ug_data->sync_progress);
+                                       }
+                               }
+
+                       } else {
+                               _refresh_folder_view(ug_data);
+                       }
                } else {
                        if(ACC_FOLDER_CREATE == ug_data->folder_mode)
                        {
@@ -1711,14 +1867,11 @@ static void _open_allacc_boxtype(void *data, Evas_Object *obj, void *event_info)
        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_TYPE, EMAIL_BUNDLE_VAL_ALL_ACCOUNT);
        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);
 
@@ -1944,10 +2097,14 @@ static void _folder_create_cb(void *data, Evas_Object *obj, void *event_info)
        if (!elm_genlist_decorate_mode_get(genlist)) {
                ug_data->folder_mode = ACC_FOLDER_CREATE;
 
+               if(ug_data->emf_handle != EMAIL_HANDLE_INVALID && ug_data->b_foldersync) {
+                       _stop_emf_job(ug_data, ug_data->emf_handle);
+                       ug_data->no_refresh = true;
+               }
+
                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);
+               _unset_controlbar_content(ug_data);
 
                /* Set reorder and edit mode */
                elm_genlist_reorder_mode_set(genlist, EINA_TRUE);
@@ -1968,10 +2125,6 @@ static void _folder_create_cb(void *data, Evas_Object *obj, void *event_info)
                /* 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);
@@ -1984,6 +2137,7 @@ static void _folder_create_cb(void *data, Evas_Object *obj, void *event_info)
                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);
        }
 
 }
@@ -1995,13 +2149,22 @@ static void _folder_delete_cb(void *data, Evas_Object *obj, void *event_info)
        //int account_id = ug_data->account_id;
        Evas_Object *genlist = ug_data->gl;
 
+       if (ug_data->ctxpopup) {
+               evas_object_del(ug_data->ctxpopup);
+               ug_data->ctxpopup = NULL;
+       }
+
+
        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");
+               if(ug_data->emf_handle != EMAIL_HANDLE_INVALID && ug_data->b_foldersync) {
+                       _stop_emf_job(ug_data, ug_data->emf_handle);
+                       ug_data->no_refresh = true;
+               }
 
-               elm_object_item_part_content_unset(ug_data->navibar_item, "controlbar");
-               evas_object_hide(ug_data->control_bar);
+               edje_object_signal_emit(_EDJ(ug_data->ly), "elm,bg,show,edit_mode", "elm");
+               _unset_controlbar_content(ug_data);
 
                /* Set reorder and edit mode */
                elm_genlist_reorder_mode_set(genlist, EINA_TRUE);
@@ -2022,10 +2185,6 @@ static void _folder_delete_cb(void *data, Evas_Object *obj, void *event_info)
                /* 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);
@@ -2051,13 +2210,22 @@ static void _folder_move_cb(void *data, Evas_Object *obj, void *event_info)
        //int account_id = ug_data->account_id;
        Evas_Object *genlist = ug_data->gl;
 
+       if (ug_data->ctxpopup) {
+               evas_object_del(ug_data->ctxpopup);
+               ug_data->ctxpopup = NULL;
+       }
+
        if (!elm_genlist_decorate_mode_get(genlist)) {
                ug_data->folder_mode = ACC_FOLDER_MOVE_FROM;
 
+               if(ug_data->emf_handle != EMAIL_HANDLE_INVALID && ug_data->b_foldersync) {
+                       _stop_emf_job(ug_data, ug_data->emf_handle);
+                       ug_data->no_refresh = true;
+               }
+
                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);
+               _unset_controlbar_content(ug_data);
 
                /* Set reorder and edit mode */
                elm_genlist_reorder_mode_set(genlist, EINA_TRUE);
@@ -2110,10 +2278,6 @@ static void _folder_move_cb(void *data, Evas_Object *obj, void *event_info)
                        /* 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);
@@ -2144,6 +2308,11 @@ static void _folder_rename_cb(void *data, Evas_Object *obj, void *event_info)
        //int account_id = ug_data->account_id;
        Evas_Object *genlist = ug_data->gl;
 
+       if (ug_data->ctxpopup) {
+               evas_object_del(ug_data->ctxpopup);
+               ug_data->ctxpopup = NULL;
+       }
+
        if (!elm_genlist_decorate_mode_get(genlist)) {
        debug_log("");
 
@@ -2151,14 +2320,12 @@ static void _folder_rename_cb(void *data, Evas_Object *obj, void *event_info)
                ug_data->checked_count = 0;
 //             _refresh_folder_view(ug_data);
 //             genlist = ug_data->gl;
-
-       debug_log("");
+               if(ug_data->emf_handle != EMAIL_HANDLE_INVALID && ug_data->b_foldersync) {
+                       _stop_emf_job(ug_data, ug_data->emf_handle);
+                       ug_data->no_refresh = true;
+               }
 
                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);
@@ -2168,7 +2335,7 @@ static void _folder_rename_cb(void *data, Evas_Object *obj, void *event_info)
                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_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);
 
@@ -2182,11 +2349,6 @@ static void _folder_rename_cb(void *data, Evas_Object *obj, void *event_info)
 
                /* 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);
@@ -2272,10 +2434,6 @@ static void _popup_delfolder_cb(void *data, Evas_Object *obj, void *event_info)
 
        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);
@@ -2359,7 +2517,12 @@ static void _create_con_cb(void *data, Evas_Object *obj, void *event_info)
        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)));
+       gchar* utf8_str = elm_entry_markup_to_utf8(elm_object_text_get(alist->ug_data->entry));
+       if (utf8_str) {
+               strcpy(arg1, utf8_str);
+               g_free(utf8_str);
+               utf8_str = NULL;
+       }
        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);
@@ -2399,7 +2562,6 @@ static void _popup_newfolder_cb(void *data, Evas_Object *obj, void *event_info)
        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);
@@ -2416,25 +2578,13 @@ static void _popup_newfolder_cb(void *data, Evas_Object *obj, void *event_info)
        }
        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);
+       //conformant removed
+       popup = elm_popup_add(alist->ug_data->ly);
 //     elm_object_style_set(popup, "customstyle");
 //     evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
 
@@ -2511,7 +2661,12 @@ static void _rename_con_cb(void *data, Evas_Object *obj, void *event_info)
        int 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)));
+       gchar* utf8_str = elm_entry_markup_to_utf8(elm_object_text_get(alist->ug_data->entry));
+       if (utf8_str) {
+               strcpy(arg1, utf8_str);
+               g_free(utf8_str);
+               utf8_str = NULL;
+       }
        strcpy(arg2, email_util_strrtrim(arg1));
 
        parent_path = email_util_get_parent_folder(mlist->mailbox_name);
@@ -2552,7 +2707,6 @@ static void _popup_rename_cb(void *data, Evas_Object *obj, void *event_info)
        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);
@@ -2573,25 +2727,13 @@ static void _popup_rename_cb(void *data, Evas_Object *obj, void *event_info)
        }
        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);
+       // conformant removed
+       popup = elm_popup_add(alist->ug_data->ly);
 //     elm_object_style_set(popup, "customstyle");
 //     evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
 
@@ -2700,14 +2842,7 @@ static void _move_con_cb(void *data, Evas_Object *obj, void *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);
-               }
+               _popup_progress_cb(alist->ug_data, obj, event_info);
        }
 }
 
@@ -2736,10 +2871,6 @@ static void _popup_movefolder_cb(void *data, Evas_Object *obj, void *event_info)
                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);
@@ -2801,7 +2932,7 @@ static void _popup_movefolder_cb(void *data, Evas_Object *obj, void *event_info)
 
        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);
+       elm_object_text_set(notify, popup_text);
 
        Evas_Object *btn1 = elm_button_add(notify);
        elm_object_style_set(btn1, "popup_button/default");
@@ -2817,6 +2948,9 @@ static void _popup_movefolder_cb(void *data, Evas_Object *obj, void *event_info)
        alist->ug_data->popup = notify;
 
        evas_object_show(notify);
+       FREE(popup_text);
+       g_free(to_string);
+       g_free(from_string);
 }
 
 static void _back_button_cb(void *data, Evas_Object *obj, void *event_info)
@@ -2826,10 +2960,6 @@ static void _back_button_cb(void *data, Evas_Object *obj, void *event_info)
 
        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;
@@ -2875,10 +3005,6 @@ static void _popup_destroy_cb(void *data, Evas_Object *obj, void *event_info)
 
        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;
@@ -2898,10 +3024,6 @@ static void _popup_success_cb(void *data, Evas_Object *obj, void *event_info)
        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;
@@ -2963,7 +3085,6 @@ static void _popup_success_cb(void *data, Evas_Object *obj, void *event_info)
        if (ret) {
                debug_log("fail to status_message_post() : %d\n", ret);
        }
-       _finish_folder_view(data, obj, event_info);
 #endif
 }
 
@@ -2980,10 +3101,6 @@ static void _popup_fail_cb(void *data, Evas_Object *obj, void *event_info)
        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;
@@ -3063,10 +3180,6 @@ static void _popup_progress_cb(void *data, Evas_Object *obj, void *event_info)
 //     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;
@@ -3124,10 +3237,6 @@ static void _cancel_button_cb(void *data, Evas_Object *obj, void *event_info)
 
        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;
@@ -3159,6 +3268,59 @@ static void _cancel_button_cb(void *data, Evas_Object *obj, void *event_info)
        elm_object_style_set(btn, buf);
 }*/
 
+void refresh_account_ug(EmailAccountUGD *ug_data)
+{
+       debug_log("");
+       if (!ug_data) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       if(ug_data->ug_mode == ACC_UG_ACCOUNT_VIEW) {
+               debug_log("refresh account view");
+               Elm_Object_Item *it;
+               if(ug_data->gl) {
+                       it = elm_genlist_first_item_get(ug_data->gl);
+                       elm_genlist_item_update(it);
+                       debug_log("update list");
+                       while (it) {
+                               it = elm_genlist_item_next_get(it);
+                               elm_genlist_item_update(it);
+                               debug_log("update list");
+                       }
+               }
+       } else if (ug_data->ug_mode == ACC_UG_FOLDER_VIEW) {
+               debug_log("refresh folder view, folder_mode : %d", ug_data->folder_mode);
+
+               if(ug_data->ctxpopup) {
+                       evas_object_del(ug_data->ctxpopup);
+                       ug_data->ctxpopup = NULL;
+               }
+               _create_controlbar(ug_data);
+
+               switch (ug_data->folder_mode) {
+               case ACC_FOLDER_NONE:
+                       elm_object_item_text_set(ug_data->navibar_item, _("IDS_EMAIL_HEADER_FOLDERS"));
+                       break;
+               case ACC_FOLDER_CREATE:
+               case ACC_FOLDER_RENAME:
+                       elm_object_item_text_set(ug_data->navibar_item, _("IDS_EMAIL_HEADER_SELECT_FOLDER_ABB"));
+                       break;
+               case ACC_FOLDER_DELETE:
+                       elm_object_item_text_set(ug_data->navibar_item, N_("Select delete folder"));
+                       break;
+               case ACC_FOLDER_MOVE_TO:
+                       elm_object_item_text_set(ug_data->navibar_item, N_("Select location folder"));
+                       break;
+               case ACC_FOLDER_MOVE_FROM:
+                       elm_object_item_text_set(ug_data->navibar_item, N_("Select move folder"));
+                       break;
+               default:
+                       break;
+               }
+       }
+}
+
 void _dbus_receiver_setup(EmailAccountUGD *ug_data)
 {
        debug_log("");
@@ -3289,69 +3451,50 @@ static void _edbus_event_account_receive(void *local_data, DBusMessage *message)
                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)) {
+                               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);
+                       if(ug_data->b_foldersync) {
+                               debug_log("folder sync is progressing. ignore the mailbox storage changes");
+                       } else {
+                               int account_id = 0;
+                               switch (subtype) {
+                               //folder list updating is here in case of native account
+                               case NOTI_MAILBOX_ADD:
+                                       account_id = data1;
+                                       debug_log("NOTI_MAILBOX_ADD, account_id [%d]", account_id);
+                                       debug_log("Native account folder added.");
+                                       _finish_folder_view(ug_data, NULL, NULL);
+                                       break;
+
+                               case NOTI_MAILBOX_DELETE:
+                                       account_id = data1;
+                                       debug_log("NOTI_MAILBOX_DELETE");
+                                       _finish_folder_view(ug_data, NULL, NULL);
+                                       break;
+
+                               case NOTI_MAILBOX_UPDATE:
+                                       account_id = data1;
+                                       debug_log("NOTI_MAILBOX_UPDATE");
+                                       _finish_folder_view(ug_data, NULL, NULL);
+                                       break;
+                               case NOTI_MAILBOX_RENAME:
+                                       account_id = data1;
+                                       debug_log("NOTI_MAILBOX_RENAME");
+                                       _finish_folder_view(ug_data, NULL, NULL);
+                                       break;
+
+                               case NOTI_MAILBOX_RENAME_FAIL:
+                                       account_id = data1;
+                                       debug_log("NOTI_MAILBOX_RENAME_FAIL");
+                                       _finish_folder_view(ug_data, NULL, NULL);
+                                       break;
+
+                               default:
+                                       debug_log("Uninterested notification");
+                                       break;
                                }
-                               break;
-
-                       case NOTI_MAILBOX_RENAME:
-                               account_id = data1;
-                               //In case of native email-service, rename notification is handled here
-                               debug_log("NOTI_MAILBOX_RENAME");
-                               _popup_success_cb(ug_data, NULL, NULL);
-
-                               break;
-
-                       case NOTI_MAILBOX_RENAME_FAIL:
-                               account_id = data1;
-                               debug_log("NOTI_MAILBOX_RENAME_FAIL");
-                               _popup_fail_cb(ug_data, NULL, NULL);
-
-                               break;
-
-                       default:
-                               debug_log("Uninterested notification");
-                               break;
                        }
                }
                else {
@@ -3377,10 +3520,10 @@ static void _edbus_event_account_receive(void *local_data, DBusMessage *message)
                        int account_id = 0;
                        int email_handle = 0;
                        int err_msg = 0;
+                       account_id = data1;
 
                        switch (subtype) {
-                       // EAS
-                               account_id = data1;
+                       // popup handling is here. 
                                email_handle = data3;
                                err_msg = data4;
 
index f70751d..5829de8 100755 (executable)
@@ -62,7 +62,9 @@ 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);
+static void _email_account_timezone_change_cb(keynode_t *key, void *data);
 
+static void _stop_emf_job(EmailAccountUGD *ug_data, int handle);
 /* other cb */
 static void _add_account_cb(void *data, Evas_Object *obj, void *event_info);
 
@@ -134,6 +136,8 @@ static void *on_create(ui_gadget_h ug, enum ug_mode mode, service_h service, voi
 
        _get_icu_formatter();
 
+       email_register_timezone_changed_callback(_email_account_timezone_change_cb, ug_data);
+
        if (mode == UG_MODE_FULLVIEW)   // folder view
        {
                /* DBUS */
@@ -198,6 +202,9 @@ static void on_destroy(ui_gadget_h ug, service_h service, void *priv)
 
        if (ug_data->ug_mode == ACC_UG_FOLDER_VIEW)     // folder view
        {
+               if(ug_data->emf_handle != EMAIL_HANDLE_INVALID) {
+                       _stop_emf_job(ug_data, ug_data->emf_handle);
+               }
                /* DBUS */
                _remove_dbus_receiver(ug_data);
 
@@ -207,6 +214,8 @@ static void on_destroy(ui_gadget_h ug, service_h service, void *priv)
 
        _destroy_view(ug_data);
 
+       email_deregister_timezone_changed_callback(_email_account_timezone_change_cb);
+
        email_engine_finalize();
 
        _close_icu_formatter();
@@ -226,6 +235,7 @@ static void on_message(ui_gadget_h ug, service_h msg, service_h service, void *p
 static void on_event(ui_gadget_h ug, enum ug_event event, service_h service, void *priv)
 {
        debug_log("");
+       EmailAccountUGD *ug_data = (EmailAccountUGD *)priv;
 
        switch (event) {
        case UG_EVENT_LOW_MEMORY:
@@ -235,6 +245,7 @@ static void on_event(ui_gadget_h ug, enum ug_event event, service_h service, voi
        case UG_EVENT_LANG_CHANGE:
                /*bindtextdomain(PACKAGE, LOCALEDIR);
                textdomain(PACKAGE);*/
+               refresh_account_ug(ug_data);
                break;
        case UG_EVENT_ROTATE_PORTRAIT:
                debug_log("UG_EVENT_ROTATE_PORTRAIT");
@@ -332,8 +343,7 @@ static Evas_Object *create_frameview(EmailAccountUGD * ug_data)
                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_size_hint_weight_set(ug_data->ly, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
        evas_object_show(ug_data->ly);
 
        elm_object_part_content_set(ug_data->ly, "elm.swallow.bg", ug_data->bg);
@@ -362,7 +372,6 @@ static void _win_profile_changed_cb(void *data, Evas_Object *obj, void *event)
                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);
 }
 
@@ -513,10 +522,6 @@ void _destroy_view(EmailAccountUGD *ug_data)
        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;
@@ -608,6 +613,7 @@ static char *_gl_label_get_for_4text(void *data, Evas_Object *obj, const char *p
                        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);
+                       email_free_mailbox(&mailbox, 1);
                }
                return g_strdup(buf);
        } else if (!strcmp(part, "elm.text.3")) {
@@ -745,36 +751,9 @@ static Evas_Object *_gl_icon_get(void *data, Evas_Object *obj, const char *part)
        {
                Evas_Object *icon = elm_icon_add(obj);
 
-               // setting/include/email-setting.h
-               typedef enum {
-                       HOTMAIL = 1,
-                       GMAIL,
-                       YAHOOMAIL,
-                       AOL,
-                       OTHERS
-               } AccountInfo;
+               elm_icon_file_set(icon, alist->account_info->logo_icon_path, NULL);
+               debug_log("logo_icon_path:%s", alist->account_info->logo_icon_path);
 
-               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;
@@ -864,11 +843,8 @@ void _open_mail_list(void *data, Evas_Object *obj, void *event_info)
        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_TYPE, EMAIL_BUNDLE_VAL_ALL_ACCOUNT);
        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);
 
@@ -903,14 +879,11 @@ static void _open_all_emails(void *data, Evas_Object *obj, void *event_info)
        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_TYPE, EMAIL_BUNDLE_VAL_ALL_ACCOUNT);
        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);
 
@@ -924,6 +897,7 @@ 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;
+       int ret;
 
        elm_genlist_item_selected_set(item, 0);
 
@@ -934,9 +908,14 @@ static void _add_account_cb(void *data, Evas_Object *obj, void *event_info)
                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);
+       ret = service_add_extra_data(service, EMAIL_BUNDLE_KEY_ACCOUNT_TYPE, EMAIL_BUNDLE_VAL_ADD_ACCOUNT);
+       debug_log("service_add_extra_data: %d", ret);
+
+       ret = ug_send_result(ug_data->ug, service);
+       debug_log("ug_send_result: %d", ret);
+
+       ret = service_destroy(service);
+       debug_log("service_destroy: %d", ret);
 }
 
 static void layout_cb(ui_gadget_h ug, enum ug_mode mode, void *priv)
@@ -956,7 +935,6 @@ static void layout_cb(ui_gadget_h ug, enum ug_mode mode, void *priv)
        switch (mode) {
        case UG_MODE_FULLVIEW:
                evas_object_size_hint_weight_set(base, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-               elm_win_resize_object_add(win, base);
                evas_object_show(base);
                break;
 
@@ -972,25 +950,7 @@ static void result_cb(ui_gadget_h ug, service_h service, void *priv)
        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);
+//     EmailAccountUGD *ug_data = (EmailAccountUGD *) priv;
 }
 
 static void destroy_cb(ui_gadget_h ug, void *priv)
@@ -1122,6 +1082,56 @@ static void _get_date_text_with_formatter(time_t time, char *formatted_str)
        debug_log("formatted time: %s", formatted_str);
 }
 
+static void _email_account_timezone_change_cb(keynode_t *key, void *data)
+{
+       debug_log("");
+       EmailAccountUGD *ug_data;
+       ug_data = (EmailAccountUGD *)data;
+       Elm_Object_Item *it;
+
+       char *timezone_id = NULL;
+       UChar utimezone_id[512] = {0,};
+       UErrorCode status = U_ZERO_ERROR;
+
+       timezone_id = vconf_get_str(VCONFKEY_SETAPPL_TIMEZONE_ID);
+
+       if (!timezone_id)
+               return;
+
+       u_uastrcpy(utimezone_id, timezone_id);
+
+       ucal_setDefaultTimeZone(utimezone_id, &status);
+
+       if (U_FAILURE(status))
+               return;
+
+       _close_icu_formatter();
+       _get_icu_formatter();
+
+       if(ug_data->gl) {
+               it = elm_genlist_first_item_get(ug_data->gl);
+               elm_genlist_item_update(it);
+               while (it) {
+                       it = elm_genlist_item_next_get(it);
+                       elm_genlist_item_update(it);
+               }
+       }
+}
+static void _stop_emf_job(EmailAccountUGD *ug_data, int handle)
+{
+       debug_log("");
+       if (!ug_data) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       gint account_id = ug_data->account_id;
+
+       debug_log("stop job - handle (%d)", handle);
+       email_engine_stop_working(account_id, handle);
+
+       ug_data->emf_handle = EMAIL_HANDLE_INVALID;
+}
 #if 0
 static int _emf_account_init(EmailAccountUGD *ug_data)
 {
index 4a2f185..4f8e15f 100755 (executable)
@@ -32,8 +32,8 @@
 #define DIR_DEFAULT_EMAIL_STORAGE      "/opt/usr/data"
 
 /* define bundle key */
+#define EMAIL_BUNDLE_KEY_ACCOUNT_TYPE          "ACCOUNT_TYPE"
 #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 UG_NAME_CONTACT                        "contacts-tabui-efl"
 
 /* define bundle value */
+#define EMAIL_BUNDLE_VAL_ALL_ACCOUNT                   "ALL_ACCOUNT"
+#define EMAIL_BUNDLE_VAL_SINGLE_ACCOUNT                "SINGLE_ACCOUNT"
+#define EMAIL_BUNDLE_VAL_ADD_ACCOUNT                   "ADD_ACCOUNT"
+
 #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"
index 5b64ad4..01f024f 100755 (executable)
@@ -142,6 +142,14 @@ int email_attachments_save_file(const gchar *path, gchar *newpath, gboolean(*cop
 int email_open_icu_pattern_generator(void);
 int email_close_icu_pattern_generator(void);
 
+void email_icu_mutex_init(void);
+void email_icu_mutex_lock(void);
+void email_icu_mutex_unlock(void);
+void email_icu_mutex_destroy(void);
+
+int email_register_timezone_changed_callback(void *func, void *data);
+int email_deregister_timezone_changed_callback(void *func);
+
 gboolean email_drm_file_is_right(const gchar *path);
 gboolean email_drm_file_forward_lock_check(const gchar *path);
 
index 747d5af..b10c2c5 100755 (executable)
 #include <errno.h>
 #include <drm_client.h>
 #include <drm_client_types.h>
+#include <pthread.h>
 
 #include "email-utils.h"
 
+static pthread_mutex_t icu_mutex = PTHREAD_MUTEX_INITIALIZER;
 char *icu_locale = NULL;
 static UDateTimePatternGenerator *icu_pattern_generator = NULL;
 static UDateFormat *icu_formatter_hmm = NULL;
@@ -453,6 +455,8 @@ int email_get_group_title_str(const time_t req_time, gchar **group_title,
        struct tm req_tm;
        memcpy(&req_tm, dummy, sizeof(struct tm));
 
+       email_icu_mutex_lock();
+
        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);
@@ -534,7 +538,7 @@ int email_get_group_title_str(const time_t req_time, gchar **group_title,
                groupIndex = EMAIL_GROUP_OLDER;
                *group_date = NULL;
        }
-
+       email_icu_mutex_unlock();
        /*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);*/
@@ -560,6 +564,7 @@ char *email_get_str_datetime(const time_t req_time)
 
        /*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);*/
+       email_icu_mutex_lock();
 
        char *datetime = ({
                        char *_ret_str = NULL;
@@ -575,6 +580,7 @@ char *email_get_str_datetime(const time_t req_time)
                                _ret_str = email_get_date_text_with_formatter(icu_formatter_MMMd, (void *)&req_time);
                        _ret_str;
                });
+       email_icu_mutex_unlock();
 
        return datetime;
 }
@@ -586,8 +592,10 @@ char *email_get_date_text(const char *locale, char *skeleton, void *time)
        UChar customSkeleton[64] = { 0, };
        int skeletonLength = strlen(skeleton);
 
+       email_icu_mutex_lock();
        u_uastrncpy(customSkeleton, skeleton, skeletonLength);
        _generate_best_pattern(locale, customSkeleton, formattedString, time);
+       email_icu_mutex_unlock();
        return g_strdup(formattedString);
 }
 
@@ -611,7 +619,30 @@ char *email_get_date_text_with_formatter(UDateFormat *formatter, void *time)
        u_austrncpy(formattedString, formatted, 128);
        return g_strdup(formattedString);
 }
+void email_icu_mutex_init(void)
+{
+       debug_log("");
+       pthread_mutex_init(&icu_mutex, NULL);
+
+}
+void email_icu_mutex_lock(void)
+{
+       debug_log("");
+       pthread_mutex_lock(&icu_mutex);
+
+}
+void email_icu_mutex_unlock(void)
+{
+       debug_log("");
+       pthread_mutex_unlock(&icu_mutex);
+
+}
+void email_icu_mutex_destroy(void)
+{
+       debug_log("");
+       pthread_mutex_destroy(&icu_mutex);
 
+}
 int email_open_icu_pattern_generator(void)
 {
        debug_log("");
@@ -1079,4 +1110,24 @@ char* email_util_get_parent_folder(char *s)
        }
 }
 
+int email_register_timezone_changed_callback(void *func, void *data)
+{
+       debug_log("");
+       if (vconf_notify_key_changed(VCONFKEY_SYSTEM_TIME_CHANGED, func, data) < 0) {
+               debug_log("vconf callback registration(VCONFKEY_SYSTEM_TIME_CHANGED) is failed");
+               return -1;
+       }
+
+       return 0;
+}
+
+int email_deregister_timezone_changed_callback(void *func)
+{
+       debug_log("");
+       if (vconf_ignore_key_changed(VCONFKEY_SYSTEM_TIME_CHANGED, func) < 0) {
+               debug_log("vconf callback removal(VCONFKEY_SYSTEM_TIME_CHANGED) is failed");
+               return -1;
+       }
+       return 0;
+}
 /* EOF */
index c489443..50ef88c 100755 (executable)
@@ -51,6 +51,7 @@ void _make_account_mail_list(void *data);
 gint _compare_sort_rule_by_viewtype(gconstpointer a, gconstpointer b);
 void _update_item_in_view_cb(void *data, Ecore_Thread *thd, void* msg_data);
 void _refresh_mailbox(EmailMailboxUGD *mailbox_ugd);
+void _refresh_mailbox_fullview(EmailMailboxUGD *mailbox_ugd);
 void _make_mail_list(EmailMailboxUGD *mailbox_ugd, const EmailSearchData *search_data);
 void _delete_selection_info(EmailMailboxUGD *mailbox_ugd);
 void _create_mail_list(EmailMailboxUGD *mailbox_ugd);
@@ -72,5 +73,7 @@ void _add_mail_list_n_data(EmailMailboxUGD *mailbox_ugd, email_mail_list_item_t*
 void _remove_get_more_progress_item(EmailMailboxUGD *mailbox_ugd);
 email_mail_list_item_t *_mailbox_get_mail_list_by_mailbox_type(int account_id, int mailbox_type, int sort_type, int thread_id, EmailSearchType search_type, const EmailSearchData *search_data, int *mail_count);
 email_mail_list_item_t *_mailbox_get_mail_list_by_mailbox_id(int account_id, int mailbox_id, int sort_type, int thread_id, EmailSearchType search_type, const EmailSearchData *search_data, int *mail_count);
+void reset_get_more_progress_callback_status(EmailMailboxUGD *mailbox_ugd);
+
 
 #endif /* __DEF_EMAIL_MAILBOX_LIST_H_ */
index df9cc73..bf6d2f3 100755 (executable)
@@ -59,8 +59,8 @@
 #define ICON_MARKUNREAD IMGDIR"/M02_controlbar_icon_mark_as_unread.png"
 #define ICON_CANCEL IMGDIR"/M02_controlbar_icon_cancel.png"
 #define ICON_COMPOSE IMGDIR"/M02_controlbar_icon_compose.png"
-#define ICON_UPDATE IMGDIR"/M02_controlbar_icon_update.png"
-#define ICON_FOLDERS IMGDIR"/M02_email_icon_title_folders.png"
+#define ICON_UPDATE IMGDIR"/00_icon_refresh.png"
+#define ICON_FOLDERS IMGDIR"/00_icon_folder.png"
 #define ICON_SORTBY IMGDIR"/M02_controlbar_icon_sort_by.png"
 #define ICON_VIEWMODE IMGDIR"/M02_controlbar_icon_view_mode.png"
 #define ICON_MORE IMGDIR"/M02_controlbar_icon_more.png"
@@ -102,7 +102,7 @@ typedef struct {
        int mailbox_type;
        gboolean is_attachment;
        gboolean is_seen;
-       email_mail_status_t is_sending_now;
+       email_mail_status_t mail_status;
        gboolean is_body_download;
        gint mail_id;
        gint account_id;
@@ -236,9 +236,6 @@ struct ug_data {
        Evas_Object *win_main;
        Evas_Object *layout_main;
        Evas_Object *panes;
-       Evas_Object *gen_list_index;
-       Evas_Object *effect_account_ly;
-       Evas_Object *effect_composer_ly;
 
        EmailMailboxViewType view_type;
        EmailMailboxViewType previous_view;
@@ -246,32 +243,28 @@ struct ug_data {
        Evas_Object *ly;
        Evas_Object *check;
        Evas_Object *navi_bar;
-       Evas_Object *controlbar_seg;
-       Evas_Object *controlbar_btns;
-       Evas_Object *prev_controlbar;
+       Evas_Object *controlbar_more_btn;
+       Evas_Object *controlbar_lbtn;
+       Evas_Object *controlbar_rbtn;
        Evas_Object *no_content;
        Evas_Object *no_content_sender;
-       Elm_Theme *theme;
+       Evas_Object *no_content_thread;
        Elm_Object_Item *navibar_item[EMAIL_VIEW_MAX];
        Evas_Object *navi_title_ly;
        Evas_Object *sp_icon;
        Evas_Object *title_arrow;
-       Evas_Object *content_edit;
        Evas_Object *searchbar_en;
-       Elm_Object_Item *load_more_button;
        Elm_Object_Item *edit_button;
-       //Elm_Object_Item *edit_cancel_button;
        Evas_Object *folder_button;
        Evas_Object *update_button;
        Evas_Object *sync_progress;
        Elm_Object_Item *delete_all_button;
        Evas_Object *ctxpopup;
+       Evas_Object *passwd_popup;
+       Evas_Object *password_entry;
        GList *important_list;
-       Elm_Object_Item *date_tab;
        Evas_Object *selectioninfo_layout;
        Evas_Object *sub_layout[EMAIL_VIEW_MAX];
-       Evas_Object *move_button;
-       Evas_Object *block_button;
        Evas_Object *search_layout;
        Evas_Object *searchbar_layout;
        Evas_Object *searchbar_area;
@@ -294,30 +287,24 @@ struct ug_data {
        GList *selected_list;                   /* revised, used to move the mails selected in previous view */
        GList *delete_mail_list;
        GList *noti_Q;
-       gboolean need_sync;
        gint sort_type_index;
-       gint from_width;
        gint account_id;
        gint thread_id;
        gint thread_mail_count;
        gint total_count;
-       gint date_type;
        gint chk_cnt;
        gint unread_cnt;
        EmailSortType sort_type;
-       gboolean refresh;
-       gboolean bhour;
-       gchar *search_text;
        guint index;
+       char *str_password;
+       gint sync_needed_mailbox_id; //password changed case
+       gint sync_needed_account_id;
        char *address;
        gchar *display_name;
-       guint add_item_id;
        gint mailbox_id;
        email_mailbox_type_e mailbox_type;
        gchar *folder_alias;
        gchar *user_email;
-       gint uid;
-       gint cur_container_type;
        gint initial_run;
        gint b_thread_list;
        gint main_w;
@@ -331,14 +318,10 @@ struct ug_data {
        gboolean b_advanced_search_view;
        int emf_handle;
        E_DBus_Connection *edbus_conn;
-       gchar *prev_group_title;
-       //email_sender_list *sender_list;
-       //gint sender_cnt;
        EmailMailboxMode mode;
 
        /* index for mail list when mailbox receive email from emailservice */
        gint download_idx;
-       Elm_Object_Item *after_item;
        Evas_Object *base;
        ui_gadget_h ug;
        struct ug_cbs cbs;
@@ -349,9 +332,6 @@ struct ug_data {
        ui_gadget_h ug_setting;
        ui_gadget_h ug_document;
        int viewer_refresh;
-       int viewer_effect;
-       Evas_Object *temp_ly;
-       bool viewer_loading;
        Evas_Object *split_nocontent;
        GList *list_data[EMAIL_VIEW_MAX];
        int create_progress_part;
@@ -437,6 +417,7 @@ struct ug_data {
 
 void _update_navigationbar_title(EmailMailboxUGD *mailbox_ugd);
 ui_gadget_h create_composer_ug(char *ug_name, service_h service, void *data);
+ui_gadget_h create_setting_ug(char *ug_name, service_h service, void *data);
 void layout_composer_cb(ui_gadget_h ug, enum ug_mode mode, void *priv);
 void result_composer_cb(ui_gadget_h ug, service_h service, void *priv);
 void _stop_emf_job(EmailMailboxUGD *mailbox_ugd, int handle, gboolean change_download_label_in_panel);
@@ -450,5 +431,6 @@ void _open_email_body(gint uid, Elm_Object_Item *item);
 void _create_email_no_content_view(EmailMailboxUGD *mailbox_ugd);
 void _reset_refer_item_and_idx(EmailMailboxUGD *mailbox_ugd);
 email_sort_type_t _mailbox_conv_sort_type(EmailSortType sort_type);
+void mailbox_create_password_changed_popup(void *data);
 
 #endif                         /* __DEF_email-mailbox_H__ */
index d253306..66f4ded 100755 (executable)
@@ -47,11 +47,12 @@ extern int ug_pushed;
 static Evas_Object *create_control_option(EmailMailboxUGD *ad);
 static Evas_Object *create_edit_control_option(EmailMailboxUGD *ad);
 static void _viewby_cb(void *data, Evas_Object *obj, void *event_info);
+static void _more_toolbar_clicked_cb(void *data, Evas_Object *obj, void *event_info);
 static void _delete_all_emails_cb(void *data, Evas_Object *obj, void *event_info);
-static void _document_search_cb(void *data, Evas_Object *obj, void *event_info);
 static void _delete_mail_cb(void *data, Evas_Object *obj, void *event_info);
 static void _block_mail_cb(void *data, Evas_Object *obj, void *event_info);
 static void _markunread_mail_cb(void *data, Evas_Object *obj, void *event_info);
+static void _markread_mail_cb(void *data, Evas_Object *obj, void *event_info);
 static void _compose_toolbar_clicked_cb(void *data, Evas_Object *obj, void *event_info);
 static ui_gadget_h create_document_ug(char *ug_name, service_h service, void *data);
 static void _popup_response_cb(void *data, Evas_Object *obj, void *event_info);
@@ -59,7 +60,10 @@ static void destroy_document_cb(ui_gadget_h ug, void *priv);
 static void _radio_cb(void *data, Evas_Object *obj, void *event_info);
 static void _move_ctxpopup(Evas_Object *ctxpopup, Evas_Object *win);
 static void _move_mail_cb(void *data, Evas_Object *obj, void *event_info);
+static void _add_account_cb(void *data, Evas_Object *obj, void *event_info);
 
+static Evas_Object *_create_toolbar_more_btn(Evas_Object *parent, Evas_Smart_Cb func, void *data);
+static Evas_Object *_create_toolbar_btn(Evas_Object *parent, const char *text, Evas_Smart_Cb func, void *data);
 
 static void destroy_document_cb(ui_gadget_h ug, void *priv)
 {
@@ -116,6 +120,11 @@ static void _block_mail_cb(void *data, Evas_Object *obj, void *event_info)
        Eina_List *list = edit_list;
        int checked_count = eina_list_count(list);
 
+       if (mailbox_ugd->ctxpopup) {
+               evas_object_del(mailbox_ugd->ctxpopup);
+               mailbox_ugd->ctxpopup = NULL;
+       }
+
        if (checked_count <= 0) return;
 
        for (i = 0; i < checked_count; i++) {
@@ -217,6 +226,11 @@ static void _markunread_mail_cb(void *data, Evas_Object *obj, void *event_info)
        Eina_List *list = edit_list;
        int checked_count = eina_list_count(list);
 
+       if (mailbox_ugd->ctxpopup) {
+               evas_object_del(mailbox_ugd->ctxpopup);
+               mailbox_ugd->ctxpopup = NULL;
+       }
+
        if (checked_count <= 0) return;
 
        for (i = 0; i < checked_count; i++) {
@@ -268,9 +282,80 @@ static void _markunread_mail_cb(void *data, Evas_Object *obj, void *event_info)
 
 }
 
+static void _markread_mail_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+
+       if (data == NULL) {
+               debug_log("data == NULL");
+               return;
+       }
+
+       EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data;
+       int i = 0, mark_count = 0;
+
+       Eina_List *list = edit_list;
+       int checked_count = eina_list_count(list);
+
+       if (mailbox_ugd->ctxpopup) {
+               evas_object_del(mailbox_ugd->ctxpopup);
+               mailbox_ugd->ctxpopup = NULL;
+       }
+
+       if (checked_count <= 0) return;
+
+       for (i = 0; i < checked_count; i++) {
+               Eina_List *nth_list = eina_list_nth_list(list, i);
+
+               list_data *ld = eina_list_data_get(nth_list);
+
+               //make it unread state in all cases
+               int err = email_set_flags_field(ld->account_id, &(ld->mail_id), 1, EMAIL_FLAGS_SEEN_FIELD, 1, 1);
+               if (err != EMAIL_ERROR_NONE)
+                       debug_log("email_set_flags_field - err(%d)", err);
+
+               mark_count++;
+       }
+
+       /* check count */
+       if (mark_count > 0) {
+               debug_log("mail mark unread count: %d", mark_count);
+       }
+
+       mailbox_ugd->view_type = mailbox_ugd->previous_view;
+
+       edit_list = eina_list_free(edit_list);
+
+       //evas_object_smart_callback_add(mailbox_ugd->searchbar_en, "focused", _searchbar_entry_focus_cb, mailbox_ugd);
+       //evas_object_smart_callback_add(mailbox_ugd->searchbar_en, "unfocused", _searchbar_entry_unfocus_cb, mailbox_ugd);
+
+       elm_genlist_decorate_mode_set(mailbox_ugd->gl[mailbox_ugd->view_type], EINA_FALSE);
+       elm_genlist_reorder_mode_set(mailbox_ugd->gl[mailbox_ugd->view_type], EINA_FALSE);
+       elm_genlist_select_mode_set(mailbox_ugd->gl[mailbox_ugd->view_type], ELM_OBJECT_SELECT_MODE_DEFAULT);
+       b_editmode = false;
+       elm_object_disabled_set(mailbox_ugd->folder_button, EINA_FALSE);
+       _update_navigationbar_title(mailbox_ugd);
+
+       if (mailbox_ugd->isRotate == true) {
+               email_rotate_landscape(mailbox_ugd);
+               /*
+               if (mailbox_ugd->current_rotmode == APP_DEVICE_ORIENTATION_270)
+                       on_event(NULL, UG_EVENT_ROTATE_LANDSCAPE, NULL, mailbox_ugd);
+               else
+                       on_event(NULL, UG_EVENT_ROTATE_LANDSCAPE_UPSIDEDOWN, NULL, mailbox_ugd);
+               */
+       } else {
+               elm_object_part_content_set(mailbox_ugd->search_layout, "searchbar", mailbox_ugd->searchbar_layout);
+               edje_object_signal_emit(_EDJ(mailbox_ugd->search_layout), "show_searchbar", "search");
+       }
+
+       _refresh_mailbox(mailbox_ugd);
+
+}
 
 static void _dismissed_cb(void *data, Evas_Object *obj, void *event_info)
 {
+       debug_log("");
        EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data;
        evas_object_del(mailbox_ugd->ctxpopup);
        mailbox_ugd->ctxpopup = NULL;
@@ -367,69 +452,56 @@ static void _popup_response_cb(void *data, Evas_Object *obj, void *event_info)
        }
 }
 
-static void _document_search_cb(void *data, Evas_Object *obj, void *event_info)
+static void _more_toolbar_clicked_cb(void *data, Evas_Object *obj, void *event_info)
 {
        debug_log("");
-
        EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data;
-       RETURN_IF_FAIL(mailbox_ugd != NULL);
 
-       if (mailbox_ugd->ctxpopup) {
-               evas_object_del(mailbox_ugd->ctxpopup);
-               mailbox_ugd->ctxpopup = NULL;
-       }
+       mailbox_ugd->ctxpopup = elm_ctxpopup_add(mailbox_ugd->navi_bar);
+       evas_object_smart_callback_add(mailbox_ugd->ctxpopup, "dismissed", _dismissed_cb, mailbox_ugd);
 
-       if (mailbox_ugd->ug_document) {
-               debug_log("Document UG is already launched");
-               return;
-       }
+       if (mailbox_ugd->view_type == EMAIL_VIEW_EDIT) {
+               int i = 0;
+               bool read_mail_exist = false;
+               Eina_List *list = edit_list;
+               int checked_count = eina_list_count(list);
 
-       gint account_id = mailbox_ugd->account_id;
-       RETURN_IF_FAIL(account_id > 0);
+               if (checked_count <= 0) return;
 
-       email_account_t *account = NULL;
-       int err = email_get_account(account_id, EMAIL_ACC_GET_OPT_OPTIONS, &account);
-       if (err != EMAIL_ERROR_NONE || !account) {
-               debug_warning("email_get_account acct(%d) - err(%d) or acct NULL(%p)", account_id, err, account);
-               if(account) email_free_account(&account, 1);
-               return;
-       }
+               for (i = 0; i < checked_count; i++) {
+                       Eina_List *nth_list = eina_list_nth_list(list, i);
+                       list_data *ld = eina_list_data_get(nth_list);
 
-       int account_svc_id = account->account_svc_id;
-       debug_log("account id: %d, accountd_svc_id: %d", account_id, account_svc_id);
-       if(account) email_free_account(&account, 1);
+                       if (ld->is_seen)
+                               read_mail_exist = true;
+               }
 
-       char s_account_id[14] = { 0, };
-       snprintf(s_account_id, sizeof(s_account_id), "%d", account_svc_id);
+               if (read_mail_exist)
+                       elm_ctxpopup_item_append(mailbox_ugd->ctxpopup, _("IDS_EMAIL_OPT_MARK_AS_UNREAD"), NULL, _markunread_mail_cb, mailbox_ugd);
+               else
+                       elm_ctxpopup_item_append(mailbox_ugd->ctxpopup, _("IDS_EMAIL_OPT_MARK_AS_READ"), NULL, _markread_mail_cb, mailbox_ugd);
 
-       service_h service;
-       if (SERVICE_ERROR_NONE != service_create(&service))
-       {
-               debug_log("creating service handle failed");
-               return;
-       }
+               elm_ctxpopup_item_append(mailbox_ugd->ctxpopup, _("IDS_EMAIL_SK_BLOCK"), NULL, _block_mail_cb, mailbox_ugd);
 
-       service_add_extra_data(service, EMAIL_BUNDLE_KEY_ACCOUNT_ID, s_account_id);
-       mailbox_ugd->ug_document = create_document_ug(UG_NAME_EMAIL_DOCUMENT, service, mailbox_ugd);
+               if (mailbox_ugd->isRotate)
+                       elm_ctxpopup_item_append(mailbox_ugd->ctxpopup, dgettext("sys_string", "IDS_COM_BODY_MOVE"), NULL, _move_mail_cb, mailbox_ugd);
+       } else {
 
-       service_destroy(service);
+               elm_ctxpopup_item_append(mailbox_ugd->ctxpopup, _("IDS_EMAIL_OPT_DELETE_ALL"), NULL, _delete_all_emails_cb, mailbox_ugd);
+               elm_ctxpopup_item_append(mailbox_ugd->ctxpopup, _("IDS_EMAIL_HEADER_ADD_ACCOUNT"), NULL, _add_account_cb, mailbox_ugd);
+       }
+
+       _move_ctxpopup(mailbox_ugd->ctxpopup, obj);
+       evas_object_show(mailbox_ugd->ctxpopup);
 }
 
 static void _move_ctxpopup(Evas_Object *ctxpopup, Evas_Object *win)
 {
-       Evas_Coord w, h;
-       int degree = elm_win_rotation_get(win);
-       evas_object_geometry_get(win, NULL, NULL, &w, &h);
-
-       if(degree == 90) {
-               evas_object_move(ctxpopup, w - touch_y, touch_x);
-       } else if (degree == 180) {
-               evas_object_move(ctxpopup, w - touch_x, h - touch_y);
-       } else if (degree == -90) {
-               evas_object_move(ctxpopup, touch_y, h - touch_x);
-       } else {
-               evas_object_move(ctxpopup, touch_x, touch_y);
-       }
+       Evas_Coord x, y, w, h;
+
+       evas_object_geometry_get(win, &x, &y, &w, &h);
+       evas_object_move(ctxpopup, x + (w / 2), y);
+
 }
 
 static void _gl_viewby_popup_sel(void *data, Evas_Object *obj, void *event_info)
@@ -598,6 +670,12 @@ static void _viewby_cb(void *data, Evas_Object *obj, void *event_info)
        EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data;
        Elm_Object_Item *item;
        Evas_Object *genlist;
+
+       if (mailbox_ugd->ctxpopup) {
+               evas_object_del(mailbox_ugd->ctxpopup);
+               mailbox_ugd->ctxpopup = NULL;
+       }
+
        mailbox_ugd->viewby_popup = elm_popup_add(mailbox_ugd->win_main);
 #ifdef _POPUP_WITH_LIST
        elm_object_style_set(mailbox_ugd->viewby_popup, "min_menustyle");
@@ -660,6 +738,27 @@ static void _viewby_cb(void *data, Evas_Object *obj, void *event_info)
 #endif
        evas_object_show(mailbox_ugd->viewby_popup);
 }
+static void _add_account_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data;
+
+       if (mailbox_ugd->ctxpopup) {
+               evas_object_del(mailbox_ugd->ctxpopup);
+               mailbox_ugd->ctxpopup = NULL;
+       }
+
+       service_h service;
+       if (SERVICE_ERROR_NONE != service_create(&service))
+       {
+               debug_log("creating service handle failed");
+               return;
+       }
+
+       service_add_extra_data(service, EMAIL_BUNDLE_KEY_VIEW_TYPE, EMAIL_BUNDLE_VAL_VIEW_SELECT_ACCOUNT);
+       mailbox_ugd->ug_setting = create_setting_ug(UG_NAME_EMAIL_SETTING, service, mailbox_ugd);
+       service_destroy(service);
+}
 
 void _create_controlbar(EmailMailboxUGD *mailbox_ugd)
 {
@@ -667,8 +766,6 @@ void _create_controlbar(EmailMailboxUGD *mailbox_ugd)
 
        _delete_selection_info(mailbox_ugd);
 
-       elm_object_item_part_content_unset(mailbox_ugd->navibar_item[mailbox_ugd->view_type], "controlbar");
-
        _delete_controlbar(mailbox_ugd);
 
        switch (mailbox_ugd->view_type) {
@@ -678,10 +775,10 @@ void _create_controlbar(EmailMailboxUGD *mailbox_ugd)
        case EMAIL_VIEW_RECIPIENT:
        case EMAIL_VIEW_ATTACHMENTS:
        case EMAIL_VIEW_PRIORITY:
-               mailbox_ugd->controlbar_btns = create_control_option(mailbox_ugd);
+               create_control_option(mailbox_ugd);
                break;
        case EMAIL_VIEW_EDIT:
-               mailbox_ugd->controlbar_btns = create_edit_control_option(mailbox_ugd);
+               create_edit_control_option(mailbox_ugd);
                break;
        default:
                break;
@@ -691,14 +788,23 @@ void _create_controlbar(EmailMailboxUGD *mailbox_ugd)
 void _delete_controlbar(EmailMailboxUGD *mailbox_ugd)
 {
        debug_log("");
-       if (mailbox_ugd->controlbar_btns) {
-               evas_object_del(mailbox_ugd->controlbar_btns);
-               mailbox_ugd->controlbar_btns = NULL;
-               //mailbox_ugd->update_button = NULL;
-               //mailbox_ugd->edit_button = NULL;
-               //mailbox_ugd->edit_cancel_button = NULL;
+
+       if (mailbox_ugd->controlbar_more_btn) {
+               elm_object_item_part_content_unset(mailbox_ugd->navibar_item[mailbox_ugd->view_type], "toolbar_more_btn");
+               evas_object_del(mailbox_ugd->controlbar_more_btn);
+               mailbox_ugd->controlbar_more_btn = NULL;
                mailbox_ugd->delete_all_button = NULL;
        }
+       if (mailbox_ugd->controlbar_lbtn) {
+               elm_object_item_part_content_unset(mailbox_ugd->navibar_item[mailbox_ugd->view_type], "toolbar_button1");
+               evas_object_del(mailbox_ugd->controlbar_lbtn);
+               mailbox_ugd->controlbar_lbtn = NULL;
+       }
+       if (mailbox_ugd->controlbar_rbtn) {
+               elm_object_item_part_content_unset(mailbox_ugd->navibar_item[mailbox_ugd->view_type], "toolbar_button2");
+               evas_object_del(mailbox_ugd->controlbar_rbtn);
+               mailbox_ugd->controlbar_rbtn = NULL;
+       }
 }
 
 static void _compose_toolbar_clicked_cb(void *data, Evas_Object *obj, void *event_info)
@@ -766,65 +872,70 @@ static void _compose_toolbar_clicked_cb(void *data, Evas_Object *obj, void *even
 static Evas_Object *create_control_option(EmailMailboxUGD *mailbox_ugd)
 {
        debug_log("");
-       Evas_Object *control_bar;
-
-       control_bar = elm_toolbar_add(mailbox_ugd->navi_bar);
-       elm_toolbar_shrink_mode_set(control_bar, ELM_TOOLBAR_SHRINK_EXPAND);
-
-       elm_toolbar_item_append(control_bar, ICON_COMPOSE, _("IDS_EMAIL_SK_COMPOSE"),
-                                                               _compose_toolbar_clicked_cb, mailbox_ugd);
+       Evas_Object *more_btn, *btn1, *btn2;
 
-       elm_toolbar_item_append(control_bar, ICON_SORTBY, _("IDS_EMAIL_SK_SORT_BY"),
-                       _viewby_cb, mailbox_ugd);
+       more_btn = _create_toolbar_more_btn(mailbox_ugd->navi_bar, _more_toolbar_clicked_cb, mailbox_ugd);
+       elm_object_item_part_content_set(mailbox_ugd->navibar_item[mailbox_ugd->view_type], "toolbar_more_btn", more_btn);
+       mailbox_ugd->controlbar_more_btn = more_btn;
 
-       elm_toolbar_item_append(control_bar, ICON_DELETE_ALL, _("IDS_EMAIL_SK_DELETE_ALL"),
-                       _delete_all_emails_cb, mailbox_ugd);
+       btn1 = _create_toolbar_btn(mailbox_ugd->navi_bar, _("IDS_EMAIL_SK_COMPOSE"), _compose_toolbar_clicked_cb, mailbox_ugd);
+       elm_object_item_part_content_set(mailbox_ugd->navibar_item[mailbox_ugd->view_type], "toolbar_button1", btn1);
+       mailbox_ugd->controlbar_lbtn = btn1;
 
+       btn2 = _create_toolbar_btn(mailbox_ugd->navi_bar, _("IDS_EMAIL_SK_SORT_BY"), _viewby_cb, mailbox_ugd);
+       elm_object_item_part_content_set(mailbox_ugd->navibar_item[mailbox_ugd->view_type], "toolbar_button2", btn2);
+       mailbox_ugd->controlbar_rbtn = btn2;
 
-       elm_object_item_part_content_set(mailbox_ugd->navibar_item[mailbox_ugd->view_type], "controlbar", control_bar);
-
-       return control_bar;
+       return NULL;
+}
+static Evas_Object *_create_toolbar_more_btn(Evas_Object *parent, Evas_Smart_Cb func, void *data)
+{
+       Evas_Object *btn = elm_button_add(parent);
+       if (!btn) return NULL;
+       elm_object_style_set(btn, "naviframe/more/default");
+       evas_object_smart_callback_add(btn, "clicked", func, data);
+       return btn;
+}
+static Evas_Object *_create_toolbar_btn(Evas_Object *parent, const char *text, Evas_Smart_Cb func, void *data)
+{
+       Evas_Object *btn = elm_button_add(parent);
+       if (!btn) return NULL;
+       elm_object_style_set(btn, "naviframe/toolbar/default");
+       elm_object_text_set(btn, text);
+       evas_object_smart_callback_add(btn, "clicked", func, data);
+       return btn;
 }
-
 
 static Evas_Object *create_edit_control_option(EmailMailboxUGD *mailbox_ugd)
 {
        debug_log("");
-       Evas_Object *control_bar;
 
-       email_mailbox_type_e mbox_type = EMAIL_MAILBOX_TYPE_NONE;
-       mbox_type = GET_MAILBOX_TYPE(mailbox_ugd->mailbox_id);
+       //email_mailbox_type_e mbox_type = EMAIL_MAILBOX_TYPE_NONE;
+       //mbox_type = GET_MAILBOX_TYPE(mailbox_ugd->mailbox_id);
 
-       g_delete_button = NULL;
-       g_move_button = NULL;
-       g_block_button = NULL;
-       g_markunread_button = NULL;
+       Evas_Object *delete_btn, *move_btn, *more_btn;
 
-       control_bar = elm_toolbar_add(mailbox_ugd->navi_bar);
-       elm_toolbar_shrink_mode_set(control_bar, ELM_TOOLBAR_SHRINK_EXPAND);
+       more_btn = _create_toolbar_more_btn(mailbox_ugd->navi_bar, _more_toolbar_clicked_cb, mailbox_ugd);
+       elm_object_item_part_content_set(mailbox_ugd->navibar_item[mailbox_ugd->previous_view], "toolbar_more_btn", more_btn);
+       mailbox_ugd->controlbar_more_btn = more_btn;
 
-       g_delete_button = elm_toolbar_item_append(control_bar, ICON_DELETE,
-                                               dgettext("sys_string", "IDS_COM_SK_DELETE"), _delete_mail_cb, mailbox_ugd);
+       delete_btn = _create_toolbar_btn(mailbox_ugd->navi_bar, dgettext("sys_string", "IDS_COM_SK_DELETE"), _delete_mail_cb, mailbox_ugd);
+       elm_object_item_part_content_set(mailbox_ugd->navibar_item[mailbox_ugd->previous_view], "toolbar_button1", delete_btn);
+       mailbox_ugd->controlbar_lbtn = delete_btn;
 
-       if (mailbox_ugd->mode != EMAIL_MAILBOX_MODE_ALL && mbox_type != EMAIL_MAILBOX_TYPE_OUTBOX && mbox_type != EMAIL_MAILBOX_TYPE_DRAFT)
-       {
-               g_move_button = elm_toolbar_item_append(control_bar, ICON_MOVE,
-                                               dgettext("sys_string", "IDS_COM_BODY_MOVE"), _move_mail_cb, mailbox_ugd);
-       }
-       if (mbox_type != EMAIL_MAILBOX_TYPE_DRAFT && mbox_type != EMAIL_MAILBOX_TYPE_OUTBOX &&
-                       mbox_type != EMAIL_MAILBOX_TYPE_SPAMBOX && mbox_type != EMAIL_MAILBOX_TYPE_SENTBOX)
-       {
-               g_block_button = elm_toolbar_item_append(control_bar, ICON_BLOCK,
-                                               _("IDS_EMAIL_SK_BLOCK"), _block_mail_cb, mailbox_ugd);
+       if (!mailbox_ugd->isRotate) {
+               move_btn = _create_toolbar_btn(mailbox_ugd->navi_bar, dgettext("sys_string", "IDS_COM_BODY_MOVE"), _move_mail_cb, mailbox_ugd);
+               elm_object_item_part_content_set(mailbox_ugd->navibar_item[mailbox_ugd->previous_view], "toolbar_button2", move_btn);
+               mailbox_ugd->controlbar_rbtn = move_btn;
        }
 
-       g_markunread_button = elm_toolbar_item_append(control_bar, ICON_MARKUNREAD,
-                                               _("IDS_EMAIL_OPT_MARK_AS_UNREAD"), _markunread_mail_cb, mailbox_ugd);
+       return NULL;
 
-//     mailbox_ugd->edit_cancel_button = elm_toolbar_item_append(control_bar, ICON_CANCEL,
-//                                                     NULL/*dgettext("sys_string", "IDS_COM_SK_CANCEL")*/, _edit_back_cb, mailbox_ugd);
+}
 
-       return control_bar;
+static void _timeout_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       evas_object_del(obj);
 }
 
 static void _move_mail_cb(void *data, Evas_Object *obj, void *event_info)
@@ -847,6 +958,15 @@ static void _move_mail_cb(void *data, Evas_Object *obj, void *event_info)
                EINA_LIST_FOREACH(list, cur, ld) {
                        if (first_account_id != ld->account_id) {
                                debug_log("first_account_id : %d, account_id : %d", first_account_id, ld->account_id);
+
+                               Evas_Object *popup = elm_popup_add(mailbox_ugd->win_main);
+                               evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+                               elm_object_text_set(popup,"Unable to move emails from multiple accounts at once");
+                               evas_object_smart_callback_add(popup, "block,clicked", _block_clicked_cb, NULL);
+                               elm_popup_timeout_set(popup, 3.0);
+                               evas_object_smart_callback_add(popup, "timeout", _timeout_cb, NULL);
+                               evas_object_show(popup);
+
                                return;
                        }
                }
index de59baf..ebdae4b 100755 (executable)
@@ -64,8 +64,8 @@ static Eina_Bool _create_mailbox_list_view(void *data)
        email_movefolder_list *move_folder = (email_movefolder_list *) calloc(mailbox_count, sizeof(email_movefolder_list));
 
        for (i = 0; i < mailbox_count; ++i) {
-
-               if (mailbox_list[i].mailbox_type != EMAIL_MAILBOX_TYPE_OUTBOX &&
+               if (mailbox_list[i].mailbox_id != mailbox_ugd->mailbox_id &&
+                       mailbox_list[i].mailbox_type != EMAIL_MAILBOX_TYPE_OUTBOX &&
                        mailbox_list[i].mailbox_type != EMAIL_MAILBOX_TYPE_SENTBOX &&
                        mailbox_list[i].mailbox_type != EMAIL_MAILBOX_TYPE_DRAFT &&
                        mailbox_list[i].mailbox_type != EMAIL_MAILBOX_TYPE_TRASH &&
@@ -73,11 +73,22 @@ static Eina_Bool _create_mailbox_list_view(void *data)
                        mailbox_list[i].mailbox_type != EMAIL_MAILBOX_TYPE_SEARCH_RESULT) {
                        debug_log("mailbox_name: [%s], mailbox_alias: [%s] ", mailbox_list[i].mailbox_name, mailbox_list[i].alias);
 
-                       if (g_strcmp0(mailbox_list[i].alias, "[Gmail]")) {
+                       if (g_strcmp0(mailbox_list[i].alias, "[Gmail]") && !mailbox_list[i].no_select) {
                                move_folder[i].mailbox_list = &mailbox_list[i];
                                move_folder[i].mailbox_ugd = mailbox_ugd;
                                elm_genlist_item_append(genlist, &itc_mailbox, &move_folder[i], NULL, ELM_GENLIST_ITEM_NONE, _mailbox_list_item_clicked, NULL);
+                       } else {
+                               move_folder[i].mailbox_list = &mailbox_list[i];
+                               move_folder[i].mailbox_ugd = mailbox_ugd;
+                               Elm_Object_Item *item = elm_genlist_item_append(genlist, &itc_mailbox, &move_folder[i], NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+                               elm_object_item_disabled_set(item, EINA_TRUE);
                        }
+
+               } else {
+                       move_folder[i].mailbox_list = &mailbox_list[i];
+                       move_folder[i].mailbox_ugd = mailbox_ugd;
+                       Elm_Object_Item *item = elm_genlist_item_append(genlist, &itc_mailbox, &move_folder[i], NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+                       elm_object_item_disabled_set(item, EINA_TRUE);
                }
        }
        mailbox_ugd->move_folder_list = move_folder;
@@ -174,6 +185,13 @@ static void _mailbox_list_move_cancel_cb(void *data, Evas_Object *obj, void *eve
        _stop_emf_job(mailbox_ugd, mailbox_ugd->emf_handle, true);
        elm_naviframe_item_pop(mailbox_ugd->navi_bar);
 
+       if(mailbox_ugd->selected_list) {
+               g_list_free(mailbox_ugd->selected_list);
+               mailbox_ugd->selected_list = NULL;
+       }
+       email_free_mailbox(&(mailbox_ugd->move_folder_list->mailbox_list), mailbox_ugd->move_folder_cnt);
+       FREE(mailbox_ugd->move_folder_list);
+
        if (_g_move_lock) {
                _g_move_lock = false;
        }
index c40d527..9d364f9 100755 (executable)
@@ -30,6 +30,7 @@ Eina_List *edit_list = NULL;
 gboolean list_lock = false;
 char *group_title[EMAIL_GROUP_MAX][2];
 static bool b_first_time_after_get_more = false;
+static bool b_enable_get_more = false;
 static Elm_Object_Item *g_get_more_progress_item;
 static Elm_Genlist_Item_Class itc_get_more_progress;
 Elm_Object_Item *g_selected_item;
@@ -303,6 +304,7 @@ static void _add_get_more_progress_item(EmailMailboxUGD *mailbox_ugd)
        debug_log("");
 
        evas_object_smart_callback_del(mailbox_ugd->gl[mailbox_ugd->view_type], "edge,bottom", _get_more_clicked_cb);
+       b_enable_get_more = false;
 
        itc_get_more_progress.item_style = "1text.1icon.2";
        itc_get_more_progress.func.text_get = _gl_get_more_btn_text_get;
@@ -323,6 +325,7 @@ static void _add_get_more_progress_item(EmailMailboxUGD *mailbox_ugd)
        elm_genlist_item_bring_in(g_get_more_progress_item, ELM_GENLIST_ITEM_SCROLLTO_IN);
 
        evas_object_smart_callback_add(mailbox_ugd->gl[mailbox_ugd->view_type], "edge,bottom", _get_more_clicked_cb, mailbox_ugd);
+       b_enable_get_more = true;
 
        debug_leave();
 }
@@ -365,7 +368,7 @@ static Evas_Object *_create_progress_part_in_outbox(list_data *ld, Evas_Object *
                return NULL;
        }
 
-       switch(ld->is_sending_now) {
+       switch(ld->mail_status) {
                case EMAIL_MAIL_STATUS_SENDING: {
                        /* Since mail send is in progress,
                        add a process icon to the entry in mail list view */
@@ -416,7 +419,7 @@ static Evas_Object *_create_progress_part_in_outbox(list_data *ld, Evas_Object *
                }
 
                default:
-                       debug_critical("unexpected sending status of an email in Outbox - sending_status [%d]", ld->is_sending_now);
+                       debug_critical("unexpected sending status of an email in Outbox - sending_status [%d]", ld->mail_status);
                        break;
        }
 
@@ -434,7 +437,7 @@ static void _realized_cb(void *data, Evas_Object *obj, void *event_info)
                return;
 
        list_data *ld = (list_data*)elm_object_item_data_get(item);
-       switch(ld->is_sending_now) {
+       switch(ld->mail_status) {
        case EMAIL_MAIL_STATUS_SENDING:
        case EMAIL_MAIL_STATUS_SEND_WAIT:
                if(ld->item)
@@ -450,27 +453,6 @@ static void _realized_cb(void *data, Evas_Object *obj, void *event_info)
        default:
                break;
        }
-
-       if (ld->thread_count > 0 && ld->mailbox_ugd->b_thread_list)
-       {               // Thread 1 case, should show thread_count(UX request)
-               if(ld->mailbox_ugd->view_type == EMAIL_VIEW_DATE
-                               || (ld->mailbox_ugd->previous_view == EMAIL_VIEW_DATE && (ld->mailbox_ugd->view_type == EMAIL_VIEW_SEARCH
-                               || ld->mailbox_ugd->view_type == EMAIL_VIEW_EDIT)))
-                               elm_object_item_signal_emit(ld->item, "elm,state,num", "elm");
-       }
-       if (ld->is_attachment == true) {
-               elm_object_item_signal_emit(ld->item, "elm,state,attach", "elm");
-       }
-#if 0  // priority icon position is the same with the lastverb icon position
-       if(ld->priority != EMAIL_OPTION_PRIORITY_NORMAL) {
-               elm_object_item_signal_emit(ld->item, "elm,state,priority", "elm");
-       }
-#endif
-
-       if( ld->priority == EMAIL_OPTION_PRIORITY_HIGH || ld->reply_flag || ld->forward_flag) {
-               elm_object_item_signal_emit(ld->item, "elm,state,lastverb", "elm");
-       }
-
        if (ld->is_seen == true) {
                elm_object_item_signal_emit(ld->item, "elm,state,read", "elm");
        } else {
@@ -550,9 +532,10 @@ static Evas_Object *_gl_mail_item_content_get(void *data, Evas_Object *obj, cons
                return NULL;
        }
 
+       Evas_Object *icon = NULL;
        list_data *ld = (list_data *)data;
 
-       if (!g_strcmp0(source, "elm.icon.colorbar")) {
+       if (!g_strcmp0(source, "elm.swallow.colorbar")) {
                Evas_Object *small_rect = evas_object_rectangle_add(evas_object_evas_get(obj));
                evas_object_size_hint_fill_set(small_rect, EVAS_HINT_FILL, EVAS_HINT_FILL);
 
@@ -563,76 +546,69 @@ static Evas_Object *_gl_mail_item_content_get(void *data, Evas_Object *obj, cons
 
                evas_object_color_set(small_rect, r, g, b, a);
                return (void *)small_rect;
-
-       } else if (!g_strcmp0(source, "elm.icon.important")) {
-               if(ld->followup_flag > EMAIL_FLAG_FLAGED)
-               {
-                       ld->flag_ic = elm_icon_add(obj);
-                       evas_object_event_callback_add(ld->flag_ic, EVAS_CALLBACK_MOUSE_DOWN, _item_followup_flag_touched_cb, data);
-
-                       switch(ld->followup_flag)
-                       {
-                               case EMAIL_FLAG_TASK_STATUS_CLEAR:
-                                       elm_icon_file_set(ld->flag_ic, IMGDIR "/M02_email_Flag_Clear.png", NULL);
-                                       break;
-                               case EMAIL_FLAG_TASK_STATUS_ACTIVE:
-                                       elm_icon_file_set(ld->flag_ic, IMGDIR "/M02_email_Flag_Active.png", NULL);
-                                       break;
-                               case EMAIL_FLAG_TASK_STATUS_COMPLETE:
-                                       elm_icon_file_set(ld->flag_ic, IMGDIR "/M02_email_Flag_Complete.png", NULL);
-                                       break;
-                       }
-                       elm_icon_resizable_set(ld->flag_ic, 0, 1);
-                       evas_object_image_smooth_scale_set(ld->flag_ic, 0);
-                       //evas_object_propagate_events_set(flag_ic, EINA_FALSE);
-                       return ld->flag_ic;
-               }
-               else
-               {
-                       ld->important = elm_check_add(obj);
-                       elm_check_state_pointer_set(ld->important, (Eina_Bool *)&ld->imp_sel);
-                       elm_object_style_set(ld->important, "favorite/extended");
-                       evas_object_smart_callback_add(ld->important, "changed", _important_status_changed_cb, data);
-                       evas_object_propagate_events_set(ld->important, EINA_FALSE);
-                       return ld->important;
-               }
-
-       } else if (!g_strcmp0(source, "elm.icon.important.touch")) {
-               if(ld->followup_flag > EMAIL_FLAG_FLAGED)
-               {
-                       Evas_Object *small_rect = evas_object_rectangle_add(evas_object_evas_get(obj));
-                       evas_object_size_hint_fill_set(small_rect, EVAS_HINT_FILL, EVAS_HINT_FILL);
-                       evas_object_color_set(small_rect, 0, 0, 0, 0);
-
-                       evas_object_event_callback_add(small_rect, EVAS_CALLBACK_MOUSE_DOWN, _item_followup_flag_touched_cb, data);
-                       evas_object_propagate_events_set(small_rect, EINA_FALSE);
-                       return small_rect;
-               }
-       }
-
-       else if (!g_strcmp0(source, "elm.icon.checkbox")) {
+       } else if (!g_strcmp0(source, "elm.icon.1")) {
                ld->check = elm_check_add(obj);
                elm_check_state_pointer_set(ld->check, (Eina_Bool *)&ld->chksel);
                evas_object_smart_callback_add(ld->check, "changed", _item_check_changed_cb, data);
                evas_object_propagate_events_set(ld->check, EINA_FALSE);
                return ld->check;
-       }
-
-       else if(!g_strcmp0(source, "elm.icon.checkbox.touch")) {
-               Evas_Object *small_rect = evas_object_rectangle_add(evas_object_evas_get(obj));
-               evas_object_size_hint_fill_set(small_rect, EVAS_HINT_FILL, EVAS_HINT_FILL);
-               evas_object_color_set(small_rect, 0, 0, 0, 0);
-               evas_object_event_callback_add(small_rect, EVAS_CALLBACK_MOUSE_DOWN, _item_check_touched_cb, data);
-               evas_object_propagate_events_set(small_rect, EINA_FALSE);
+       } else if(!g_strcmp0(source, "elm.icon.2")){
+               if(ld->priority == EMAIL_OPTION_PRIORITY_HIGH) {
+                       icon = elm_icon_add(obj);
+                       elm_icon_file_set(icon, IMGDIR "/M02_email_icon_priority.png", NULL);
+                       elm_icon_resizable_set(icon, 0, 0);
+                       evas_object_image_smooth_scale_set(icon, 0);
+                       evas_object_show(icon);
+                       return (void *)icon;
+               } else if(ld->reply_flag) {
+                       icon = elm_icon_add(obj);
+                       elm_icon_file_set(icon, IMGDIR "/M02_email_icon_reply.png", NULL);
+                       elm_icon_resizable_set(icon, 0, 0);
+                       evas_object_image_smooth_scale_set(icon, 0);
+                       evas_object_show(icon);
+                       return (void *)icon;
+               } else if (ld->forward_flag) {
+                       icon = elm_icon_add(obj);
+                       elm_icon_file_set(icon, IMGDIR "/M02_email_icon_forward.png", NULL);
+                       elm_icon_resizable_set(icon, 0, 0);
+                       evas_object_image_smooth_scale_set(icon, 0);
+                       evas_object_show(icon);
+                       return (void *)icon;
+               }
+       } else if(!g_strcmp0(source, "elm.icon.3")) {
+               Evas_Object *box = elm_box_add(obj);
+               evas_object_size_hint_align_set(box, EVAS_HINT_FILL, EVAS_HINT_FILL);
+               evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+               elm_box_horizontal_set(box, EINA_TRUE);
+               elm_box_padding_set(box, 10, 0);
+
+               ld->important = elm_check_add(obj);
+               elm_check_state_pointer_set(ld->important, (Eina_Bool *)&ld->imp_sel);
+               elm_object_style_set(ld->important, "favorite/extended");
+               evas_object_smart_callback_add(ld->important, "changed", _important_status_changed_cb, data);
+               evas_object_propagate_events_set(ld->important, EINA_FALSE);
+               evas_object_size_hint_min_set(ld->important, 80, 60);
+               evas_object_show(ld->important);
+               elm_box_pack_end(box, ld->important);
 
-               return small_rect;
-       }
 
-       else if(!g_strcmp0(source, "elm.icon.num")){
+               if(ld->is_attachment == true)
+               {
+                       icon = elm_icon_add(obj);
+                       elm_icon_file_set(icon, IMGDIR "/M02_email_icon_attach.png", NULL);
+                       evas_object_size_hint_min_set(icon, 35, 35);
+                       evas_object_show(icon);
+                       elm_box_pack_start(box, icon);
+               }
 
-       }
+               icon = evas_object_rectangle_add(evas_object_evas_get(obj));
+               evas_object_color_set(icon, 0, 0, 0, 0);
+               evas_object_size_hint_min_set(icon, 6, 16);
+               evas_object_show(icon);
+               elm_box_pack_start(box, icon);
 
-       else if (!g_strcmp0(source, "elm.slide.swallow.1")) {
+               return box;
+       } else if (!g_strcmp0(source, "elm.slide.swallow.1")) {
                /* First button of Sweep Menu */
                if (NULL == ld->mailbox_ugd) {
                        debug_critical(" ld->mailbox_ugd [%p] ", ld->mailbox_ugd);
@@ -663,8 +639,7 @@ static Evas_Object *_gl_mail_item_content_get(void *data, Evas_Object *obj, cons
                {
                        return _create_sweep_forward_button(obj,ld);
                }
-       }
-       else if (!g_strcmp0(source, "elm.slide.swallow.3")) {
+       } else if (!g_strcmp0(source, "elm.slide.swallow.3")) {
                /* 3rd button of Sweep Menu */
                if (NULL == ld->mailbox_ugd) {
                        debug_critical(" ld->mailbox_ugd [%p] ", ld->mailbox_ugd);
@@ -687,8 +662,7 @@ static Evas_Object *_gl_mail_item_content_get(void *data, Evas_Object *obj, cons
                } else {
                        return _create_sweep_read_unread_button(obj,ld);
                }
-       }
-       else if (!g_strcmp0(source, "elm.slide.swallow.4")) {
+       } else if (!g_strcmp0(source, "elm.slide.swallow.4")) {
                /* 4th button of Sweep Menu */
                if (NULL == ld->mailbox_ugd) {
                        debug_critical(" ld->mailbox_ugd [%p] ", ld->mailbox_ugd);
@@ -703,8 +677,7 @@ static Evas_Object *_gl_mail_item_content_get(void *data, Evas_Object *obj, cons
                {
                        return _create_sweep_delete_button(obj, ld);
                }
-       }
-       else if (0 == g_strcmp0(source, "elm.swallow.outbox.progress")) {
+       } else if (!g_strcmp0(source, "elm.swallow.outbox.progress")) {
 
                Evas_Object *outbox_progress_part = NULL;
 
@@ -717,18 +690,6 @@ static Evas_Object *_gl_mail_item_content_get(void *data, Evas_Object *obj, cons
                }
                return (void *)outbox_progress_part;
        }
-       else if(!g_strcmp0(source, "elm.icon.attach"))
-       {
-               if(ld->is_attachment == true)
-               {
-                       Evas_Object *ic = elm_icon_add(obj);
-                       elm_icon_file_set(ic, IMGDIR "/M02_email_icon_attach.png", NULL);
-                       elm_icon_resizable_set(ic, 0, 0);
-                       evas_object_image_smooth_scale_set(ic, 0);
-                       evas_object_show(ic);
-                       return (void *)ic;
-               }
-       }
 #if 0  // support low priority message, priority icon postion is changed
        else if(!g_strcmp0(source, "elm.icon.priority"))
        {
@@ -752,44 +713,7 @@ static Evas_Object *_gl_mail_item_content_get(void *data, Evas_Object *obj, cons
                }
        }
 #endif
-       else if(!g_strcmp0(source, "elm.icon.lastverb"))
-       {
-               if(ld->priority == EMAIL_OPTION_PRIORITY_HIGH) {
-                       Evas_Object *ic = elm_icon_add(obj);
-                       elm_icon_file_set(ic, IMGDIR "/M02_email_icon_priority.png", NULL);
-                       elm_icon_resizable_set(ic, 0, 0);
-                       evas_object_image_smooth_scale_set(ic, 0);
-                       evas_object_show(ic);
-                       return (void *)ic;
-               } else  if(ld->reply_flag || ld->forward_flag)  {
-                       Evas_Object *ic = elm_icon_add(obj);
 
-                       if(ld->reply_flag == true)
-                               elm_icon_file_set(ic, IMGDIR "/M02_email_icon_reply.png", NULL);
-                       else
-                               elm_icon_file_set(ic, IMGDIR "/M02_email_icon_forward.png", NULL);
-                       elm_icon_resizable_set(ic, 0, 0);
-                       evas_object_image_smooth_scale_set(ic, 0);
-                       evas_object_show(ic);
-                       return (void *)ic;
-               }
-       }
-#if 0
-       else if(!g_strcmp0(source, "elm.icon.appointment"))
-       {
-               if(ld->priority == 1)
-               {
-                       if(ld->item)
-                               edje_object_signal_emit((Evas_Object *)elm_genlist_item_object_get(ld->item), "elm,state,priority", "elm");
-                       Evas_Object *ic = elm_icon_add(obj);
-                       elm_icon_file_set(ic, IMGDIR "/05_email_icon_attach_30x30.png", NULL);
-                       elm_icon_resizable_set(ic, 0, 0);
-                       evas_object_image_smooth_scale_set(ic, 0);
-                       evas_object_show(ic);
-                       return (void *)ic;
-               }
-       }
-#endif
        return NULL;
 }
 
@@ -807,13 +731,13 @@ static char *_gl_mail_item_text_get(void *data, Evas_Object *obj, const char *pa
                debug_warning("mailbox_ugd is NULL");
                return NULL;
        }
-       if (!g_strcmp0(part, "elm.text.subject")) {
+       if (!g_strcmp0(part, "elm.text.1")) {
                char title[SUBJECT_LEN + TAG_LEN*2 + 1] = {0}; /* two tags can be inserted */
                strncat(title, ld->title, SUBJECT_LEN + TAG_LEN); /* search tag may be contained */
-               strcat(title, "</>");
+               //strcat(title, "</>");
                return g_strdup(title);
 
-       } else if (!g_strcmp0(part, "elm.text.name")) {
+       } else if (!g_strcmp0(part, "elm.text.2")) {
                /*
                if (ld->from == NULL) {
                        debug_log("from is NULL");
@@ -842,7 +766,7 @@ static char *_gl_mail_item_text_get(void *data, Evas_Object *obj, const char *pa
                                return g_strdup(ld->alias);
                }
 
-       } else if (!g_strcmp0(part, "elm.text.date")) {
+       } else if (!g_strcmp0(part, "elm.text.3")) {
 
                if (ld->timeordate == NULL) {
                        debug_log("timeordate is NULL");
@@ -853,7 +777,7 @@ static char *_gl_mail_item_text_get(void *data, Evas_Object *obj, const char *pa
                        return g_strdup("");
                else
                        return g_strdup(ld->timeordate);
-       } else if (!g_strcmp0(part, "elm.text.preview")) {
+       } else if (!g_strcmp0(part, "elm.text.4")) {
                if (ld->preview_body == NULL) {
                        debug_log("preview text is NULL");
                        return NULL;
@@ -863,10 +787,6 @@ static char *_gl_mail_item_text_get(void *data, Evas_Object *obj, const char *pa
 
        } else if (!g_strcmp0(part, "elm.slide.text.1")) {      /* Subject is to be displayed in Sweep Menu. ld->title stores Subject of email */
                return g_strdup(ld->title);
-       } else if(!g_strcmp0(part,"elm.text.num")) {
-               char thread_cnt[10] = { 0, };
-               sprintf(thread_cnt, "%d", ld->thread_count);
-               return g_strdup(thread_cnt);
        } else {
                debug_log("");
                return NULL;
@@ -967,8 +887,7 @@ void mailbox_create_list_view(EmailMailboxUGD *mailbox_ugd)
        }
 
        /* Set genlist item class */
-       mailbox_ugd->itc1.item_style = "4text.8icon";
-
+       mailbox_ugd->itc1.item_style = "email.list";
        mailbox_ugd->itc1.func.text_get = _gl_mail_item_text_get;
        mailbox_ugd->itc1.func.content_get = _gl_mail_item_content_get;
        mailbox_ugd->itc1.func.state_get = NULL;
@@ -994,7 +913,7 @@ void mailbox_create_list_view(EmailMailboxUGD *mailbox_ugd)
        elm_object_style_set(gl, "handler");
        elm_genlist_block_count_set(gl, BLOCK_COUNT);
        elm_genlist_homogeneous_set(gl, EINA_TRUE);
-       elm_genlist_mode_set(gl, ELM_LIST_COMPRESS);
+       //elm_genlist_mode_set(gl, ELM_LIST_COMPRESS); //genlist is updated when rotate event is detected(Resize)
        elm_genlist_select_mode_set(gl, ELM_OBJECT_SELECT_MODE_ALWAYS);
 
        evas_object_size_hint_align_set(gl, EVAS_HINT_FILL, EVAS_HINT_FILL);
@@ -1010,6 +929,7 @@ void mailbox_create_list_view(EmailMailboxUGD *mailbox_ugd)
        {
 
                evas_object_smart_callback_add(gl, "edge,bottom", _get_more_clicked_cb, mailbox_ugd);
+               b_enable_get_more = true;
        }
 
        evas_object_show(gl);
@@ -1088,13 +1008,13 @@ void _item_check_changed_cb(void *data, Evas_Object *obj, void *event_info)
        list_data *ld = (list_data *)data;
 
        if (ld != NULL) {
-               if (ld->is_sending_now == EMAIL_MAIL_STATUS_SENDING || ld->is_sending_now == EMAIL_MAIL_STATUS_SEND_WAIT) {
+               if (ld->mail_status == EMAIL_MAIL_STATUS_SENDING || ld->mail_status == EMAIL_MAIL_STATUS_SEND_WAIT) {
                        debug_log("email being sent selected - unselect it");
                        elm_check_state_set(ld->check, EINA_FALSE);
                        return;
                }
+               _process_item_check_changed_cb(ld);
        }
-       _process_item_check_changed_cb(ld);
 }
 
 void _item_check_touched_cb(void *data, Evas * evas, Evas_Object *obj, void *event_info)
@@ -1146,7 +1066,6 @@ static void _process_item_check_changed_cb(list_data *ld)
                evas_object_hide(mailbox_ugd->searchbar_layout);
 
                _create_controlbar(mailbox_ugd);
-               elm_object_item_part_content_set(mailbox_ugd->navibar_item[mailbox_ugd->previous_view], "controlbar", mailbox_ugd->controlbar_btns);
                elm_object_disabled_set(mailbox_ugd->folder_button, EINA_TRUE);
        }
        else if(cnt <= 0)
@@ -1208,8 +1127,8 @@ static void _list_item_clicked(void *data, Evas_Object *obj, void *event_info)
 
                if ((mbox->mailbox_type == EMAIL_MAILBOX_TYPE_DRAFT
                                || (mbox->mailbox_type == EMAIL_MAILBOX_TYPE_OUTBOX
-                               && (ld->is_sending_now == EMAIL_MAIL_STATUS_SEND_CANCELED
-                               || ld->is_sending_now == EMAIL_MAIL_STATUS_SEND_FAILURE)))
+                               && (ld->mail_status == EMAIL_MAIL_STATUS_SEND_CANCELED
+                               || ld->mail_status == EMAIL_MAIL_STATUS_SEND_FAILURE)))
                                && email_engine_check_body_download(ld->mail_id)) {
 
                        if (ld->mailbox_ugd->ug_composer) {
@@ -1544,7 +1463,7 @@ list_data *make_list_data(email_mail_list_item_t* mail_info, const EmailSearchDa
        ld->is_body_download = mail_info->body_download_status;
        ld->account_id = mail_info->account_id;
        ld->imp_sel = mail_info->flags_flagged_field;
-       ld->is_sending_now = mail_info->save_status;
+       ld->mail_status = mail_info->save_status;
        ld->mailbox_id = mail_info->mailbox_id;
        ld->preview_body = STRNDUP(mail_info->preview_text, MAX_PREVIEW_TEXT_LENGTH - 1);
        ld->reply_flag = mail_info->flags_answered_field;
@@ -1567,12 +1486,33 @@ list_data *make_list_data(email_mail_list_item_t* mail_info, const EmailSearchDa
        debug_log("alias: %s", ld->alias);
 
        if(mailbox_ugd->mode == EMAIL_MAILBOX_MODE_MAILBOX &&
-               (ld->mailbox_type == EMAIL_MAILBOX_TYPE_OUTBOX ||
-               ld->mailbox_type == EMAIL_MAILBOX_TYPE_SENTBOX ||
-               ld->mailbox_type == EMAIL_MAILBOX_TYPE_DRAFT)) {
+               (mailbox_ugd->mailbox_type == EMAIL_MAILBOX_TYPE_OUTBOX ||
+               mailbox_ugd->mailbox_type == EMAIL_MAILBOX_TYPE_SENTBOX ||
+               mailbox_ugd->mailbox_type == EMAIL_MAILBOX_TYPE_DRAFT)) {
                /* recipient display name from email alais */
+               email_address_info_list_t *addrs_info_list = NULL;
+               email_address_info_t *addrs_info = NULL;
+               email_get_address_info_list(ld->mail_id, &addrs_info_list);
+
+               if(addrs_info_list) {
+                       if(addrs_info_list->to) {
+                               addrs_info = g_list_nth_data(addrs_info_list->to, 0);
+                       }
+
+                       if(addrs_info) {
+                               if (addrs_info->display_name)
+                                       ld->recipient = STRNDUP(addrs_info->display_name, RECIPIENT_LEN - 1);
+                               else
+                                       ld->recipient = STRNDUP(addrs_info->address, RECIPIENT_LEN - 1);
+                       }
+                       email_free_address_info_list(&addrs_info_list);
+               } else {
+                       ld->recipient = STRNDUP(dgettext("sys_string", "IDS_COM_BODY_NO_NAME"), RECIPIENT_LEN - 1);
+               }
+               /*
                UTF8_VALIDATE(mail_info->email_address_recipient, RECIPIENT_LEN - 1);
                ld->recipient = GET_NAME_FROM_ALIAS(mail_info->email_address_recipient, RECIPIENT_LEN - 1);
+               */
                debug_log("info->recipient: %s", ld->recipient);
        } else {
                /* sender display name from email alias */
@@ -2268,7 +2208,6 @@ void _edit_back_cb(void *data, Evas_Object *obj, void *event_info)
 
        if (mailbox_ugd->view_type == EMAIL_VIEW_EDIT && mailbox_ugd->isRotate == true)
        {
-               elm_object_item_part_content_unset(mailbox_ugd->navibar_item[mailbox_ugd->view_type], "controlbar");
                _delete_controlbar(mailbox_ugd);
                email_maillist_select_info(mailbox_ugd);
        }
@@ -2456,6 +2395,23 @@ void _refresh_mailbox(EmailMailboxUGD *mailbox_ugd)
        _create_mail_list(mailbox_ugd);
 }
 
+void _refresh_mailbox_fullview(EmailMailboxUGD *mailbox_ugd)
+{
+       debug_log("");
+       _refresh_mailbox(mailbox_ugd);
+       _update_navigationbar_title(mailbox_ugd);
+
+       if(mailbox_ugd->ctxpopup) {
+               evas_object_del(mailbox_ugd->ctxpopup);
+               mailbox_ugd->ctxpopup = NULL;
+       }
+
+       if (mailbox_ugd->view_type == EMAIL_VIEW_EDIT)
+       {
+               email_maillist_select_info(mailbox_ugd);
+       }
+}
+
 void _create_mail_list(EmailMailboxUGD *mailbox_ugd)
 {
        debug_log("");
@@ -2652,17 +2608,22 @@ void _make_account_mail_list(void *data)
                mailbox_ugd->mailbox_type = GET_MAILBOX_TYPE(mailbox_ugd->mailbox_id);
 
                email_account_t *account;
-               email_get_account(mailbox_ugd->account_id, EMAIL_ACC_GET_OPT_DEFAULT, &account);
-               elm_icon_file_set(mailbox_ugd->sp_icon, account->logo_icon_path, NULL);
+               int err = 0;
+               err = email_get_account(mailbox_ugd->account_id, EMAIL_ACC_GET_OPT_DEFAULT, &account);
+               if (err == EMAIL_ERROR_NONE) {
+                       elm_icon_file_set(mailbox_ugd->sp_icon, account->logo_icon_path, NULL);
+               }
 
                elm_object_part_text_set(mailbox_ugd->navi_title_ly, "txt_sub", mailbox_ugd->user_email);
 
-               if(account) email_free_account(&account, 1);
+               if (account) {
+                       elm_icon_file_set(mailbox_ugd->sp_icon, account->logo_icon_path, NULL);
+                       email_free_account(&account, 1);
+               }
        }
 
        if (mailbox_ugd->isRotate == false) {
                _create_controlbar(mailbox_ugd);
-               elm_object_item_part_content_set(mailbox_ugd->navibar_item[mailbox_ugd->view_type], "controlbar", mailbox_ugd->controlbar_btns);
        }
        _refresh_mailbox(mailbox_ugd);
 
@@ -2939,7 +2900,7 @@ void _worker_get_move_mail_list_cb(void* data, Ecore_Thread *thd)
                                                debug_log("idx: [%d]", *idx);
                                                ld = _find_mailinfo_by_mailid(*idx, mailbox_ugd->list_data[vt]);
                                                if(ld) {
-                                                       ld->is_sending_now = EMAIL_MAIL_STATUS_SENT;
+                                                       ld->mail_status = EMAIL_MAIL_STATUS_SENT;
                                                        delete_ret_t *ret = MEM_ALLOC(ret, 1);
                                                        if(!ret) return;
                                                        *ret = (delete_ret_t) {ld, *idx};
@@ -3356,4 +3317,27 @@ static void reset_busy_cb(void *data, Evas *e, Evas_Object *o, void *info)
        is_main_thread_busy = false;
 }
 
+void reset_get_more_progress_callback_status(EmailMailboxUGD *mailbox_ugd)
+{
+       debug_log("");
+
+       if ((mailbox_ugd->view_type == EMAIL_VIEW_DATE
+               && mailbox_ugd->mode == EMAIL_MAILBOX_MODE_ALL) ||
+               (mailbox_ugd->view_type == EMAIL_VIEW_DATE
+                && mailbox_ugd->mode == EMAIL_MAILBOX_MODE_MAILBOX
+                && EMAIL_SERVER_TYPE_ACTIVE_SYNC != GET_ACCOUNT_SERVER_TYPE(mailbox_ugd->account_id)
+                && GET_MAILBOX_TO_GETMORE(mailbox_ugd->mailbox_id) > 0))
+       {
+               if(b_enable_get_more == false) {
+                       evas_object_smart_callback_add(mailbox_ugd->gl[mailbox_ugd->view_type], "edge,bottom", _get_more_clicked_cb, mailbox_ugd);
+                       b_enable_get_more = true;
+               }
 
+       } else {
+               if(b_enable_get_more) {
+                       evas_object_smart_callback_del(mailbox_ugd->gl[mailbox_ugd->view_type], "edge,bottom", _get_more_clicked_cb);
+                       b_enable_get_more = false;
+               }
+       }
+
+}
index e0cb85f..c74a521 100755 (executable)
@@ -504,11 +504,17 @@ static void _edbus_event_mailbox_receive(void *local_data, DBusMessage *message)
                                                default:
                                                        break;
                                        }
-                                       elm_segment_control_item_selected_set(mailbox_ugd->date_tab, EINA_TRUE);
                                        _update_navigationbar_title(mailbox_ugd);
                                        mailbox_make_date_mail_list(mailbox_ugd);
                                        _sync_all_folder(mailbox_ugd);
-
+                                       Evas_Object * sync_button = elm_object_part_content_get(mailbox_ugd->navi_title_ly, "right_btn");
+                                       if (sync_button == mailbox_ugd->update_button)
+                                       {
+                                               elm_object_part_content_unset(mailbox_ugd->navi_title_ly, "right_btn");
+                                               evas_object_hide(mailbox_ugd->update_button);
+                                               elm_object_part_content_set(mailbox_ugd->navi_title_ly, "right_btn", mailbox_ugd->sync_progress);
+                                               evas_object_show(mailbox_ugd->sync_progress);
+                                       }
                                }
                                break;
 
@@ -643,7 +649,7 @@ static void _edbus_event_mailbox_receive(void *local_data, DBusMessage *message)
                                                        email_mail_list_item_t* mail_info = NULL;
                                                        mail_info = get_mail_info(mailid);
                                                        if(!mail_info) break;
-                                                       ld->is_sending_now = mail_info->save_status;
+                                                       ld->mail_status = mail_info->save_status;
                                                        elm_genlist_item_update(ld->item);
                                                        FREE(mail_info);
                                                }
@@ -766,16 +772,41 @@ static void _edbus_event_mailbox_receive(void *local_data, DBusMessage *message)
 
                        case NOTI_DOWNLOAD_FINISH:
                        case NOTI_DOWNLOAD_FAIL:
-                               if (email_check_account_list(data1)) {
+                               if (email_check_account_list(data1) || data1 == 0) {
+
+                                       if(data1 == 0) {
+                                               /* free list */
+                                               debug_log("Sync finished when account_id = 0(All inbox case)");
+                                               int *data = NULL;
+                                               EINA_LIST_FREE(g_account_list, data) {
+                                                       g_free(data);
+                                               }
+                                       }
                                        _remove_get_more_progress_item(mailbox_ugd);
 
                                        if (mailbox_ugd->sync_progress == elm_object_part_content_get(mailbox_ugd->navi_title_ly, "right_btn"))
                                        {
+                                               debug_log("2222222222222222222222222");
                                                elm_object_part_content_unset(mailbox_ugd->navi_title_ly, "right_btn");
                                                evas_object_hide(mailbox_ugd->sync_progress);
                                                elm_object_part_content_set(mailbox_ugd->navi_title_ly, "right_btn", mailbox_ugd->update_button);
                                                evas_object_show(mailbox_ugd->update_button);
                                        }
+
+                                       if(subtype == NOTI_DOWNLOAD_FAIL && (data4 == EMAIL_ERROR_LOGIN_FAILURE || data4 == EMAIL_ERROR_AUTHENTICATE)) {
+                                               int mailbox_id = 0;
+                                               if(data2)
+                                                       mailbox_id = atoi(data2);
+
+                                               debug_log("error : %d, account_id = %d, mailbox_id = %d", data4, data1, mailbox_id);
+                                               mailbox_ugd->sync_needed_mailbox_id = mailbox_id;
+                                               mailbox_ugd->sync_needed_account_id = data1;
+                                               mailbox_create_password_changed_popup(mailbox_ugd);
+                                       }
+                               }
+                               else
+                               {
+                                       debug_log("1111111111111111111");
                                }
                                break;
 
index 1971f16..03cba67 100755 (executable)
@@ -300,8 +300,6 @@ static void _searchby_ctxpopup_cb(void *data, Evas_Object *obj, void *event_info
        {
                elm_icon_file_set(searchby_icon, IMGDIR"/M02_email_icon_popup_advanced_press.png", NULL);
        }
-       else
-               goto CLEANUP;
 
        elm_icon_resizable_set(searchby_icon, 0, 0);
        evas_object_image_smooth_scale_set(searchby_icon, 0);
@@ -562,17 +560,17 @@ static Eina_Bool _mailbox_create_search_criteria_view(int search_type, void *dat
 
        //should be replaced with new string
        if ( search_type == EMAIL_SEARCH_ADVANCED ) {
-               navi_item = elm_naviframe_item_push(mailbox_ugd->navi_bar, N_("Advanced search"), btn_back, NULL, genlist_for_search, NULL);
+               navi_item = elm_naviframe_item_push(mailbox_ugd->navi_bar, _("IDS_EMAIL_OPT_ADVANCED"), btn_back, NULL, genlist_for_search, NULL);
        } else if ( search_type == EMAIL_SEARCH_DATE ) {
                navi_item = elm_naviframe_item_push(mailbox_ugd->navi_bar, N_("Date range"), btn_back, NULL, genlist_for_search, NULL);
        }
 
        btn_ok = elm_button_add(mailbox_ugd->navi_bar);
-       _mailbox_advanced_view_create_controlbar_button(btn_ok, dgettext("sys_string", "IDS_COM_SK_OK"), "naviframe/title/default", _mailbox_advanced_search_start_cb, data);
+       _mailbox_advanced_view_create_controlbar_button(btn_ok, dgettext("sys_string", "IDS_COM_SK_OK"), NULL, _mailbox_advanced_search_start_cb, data);
        elm_object_item_part_content_set(navi_item, "title_left_btn", btn_ok);
 
        btn_cancel = elm_button_add(mailbox_ugd->navi_bar);
-       _mailbox_advanced_view_create_controlbar_button(btn_cancel, dgettext("sys_string", "IDS_COM_SK_CANCEL"), "naviframe/title/default", _mailbox_advanced_search_cancel_cb, data);
+       _mailbox_advanced_view_create_controlbar_button(btn_cancel, dgettext("sys_string", "IDS_COM_SK_CANCEL"), NULL, _mailbox_advanced_search_cancel_cb, data);
        elm_object_item_part_content_set(navi_item, "title_right_btn", btn_cancel);
 
        elm_object_item_signal_emit(mailbox_ugd->navibar_item[mailbox_ugd->view_type], "elm,state,controlbar,close", "");
@@ -598,7 +596,7 @@ static void _mailbox_advanced_view_create_controlbar_button(Evas_Object *btn, ch
 {
        EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data;
 
-       elm_object_style_set(btn, style);
+       //elm_object_style_set(btn, style);
        evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
        evas_object_size_hint_align_set(btn, EVAS_HINT_FILL, 0.5);
        elm_object_text_set(btn, label);
@@ -633,9 +631,9 @@ static void _mailbox_advanced_search_start_cb(void *data, Evas_Object *obj, void
        struct tm tm_from;
        struct tm tm_to;
 
-       elm_naviframe_item_pop(mailbox_ugd->navi_bar);
-
        if (mailbox_ugd) {
+               elm_naviframe_item_pop(mailbox_ugd->navi_bar);
+
                search_info = mailbox_ugd->adv_search_info;
 
                if (search_info)
@@ -709,6 +707,9 @@ static void _mailbox_create_list_view_for_advanced_search(void *data, int search
                                ELM_GENLIST_ITEM_NONE, _gl_advanced_search_sel_cb, &item_data[i]);
        } else if (search_type == EMAIL_SEARCH_DATE) {
                item_data = (mailbox_search_list_item *)calloc(2, sizeof(mailbox_search_list_item));
+       } else {
+               debug_log("invalid search_type parameter : %d", search_type);
+               return;
        }
 
        /* Date From*/
index a2d7489..d3466f5 100755 (executable)
@@ -32,21 +32,18 @@ static void _popup_response_sweep_delete_ok_cb(void *data, Evas_Object *obj, voi
 
 Evas_Object* _create_sweep_delete_button(Evas_Object* parent,list_data* ld)
 {
-
+       debug_enter();
        Evas_Object *button = elm_button_add(parent);
        elm_object_style_set(button, "sweep/delete");
 
-       if(ld->thread_count > 1 && ld->mailbox_ugd->b_thread_list) {
-               elm_object_text_set(button, dgettext("sys_string", "IDS_COM_BODY_DELETE_ALL"));
-       }
-       else{
+       if (ld) {
                elm_object_text_set(button, dgettext("sys_string", "IDS_COM_SK_DELETE"));
-       }
 
-       evas_object_smart_callback_add(button, "clicked", _sweep_delete_cb, ld);
+               evas_object_smart_callback_add(button, "clicked", _sweep_delete_cb, ld);
 
-       if (ld != NULL && (ld->is_sending_now == EMAIL_MAIL_STATUS_SENDING || ld->is_sending_now == EMAIL_MAIL_STATUS_SEND_WAIT))
-               elm_object_disabled_set(button,EINA_TRUE);
+               if (ld->mail_status == EMAIL_MAIL_STATUS_SENDING || ld->mail_status == EMAIL_MAIL_STATUS_SEND_WAIT)
+                       elm_object_disabled_set(button,EINA_TRUE);
+       }
 
        return button;
 
@@ -54,20 +51,22 @@ Evas_Object* _create_sweep_delete_button(Evas_Object* parent,list_data* ld)
 
 Evas_Object* _create_sweep_read_unread_button(Evas_Object* parent,list_data* ld)
 {
-
+       debug_enter();
        Evas_Object *button = elm_button_add(parent);
        elm_object_style_set(button, "sweep/multiline");
-       if (ld->is_seen == false)
-               elm_object_text_set(button, _("IDS_EMAIL_OPT_MARK_AS_READ"));
-       else
-               elm_object_text_set(button, _("IDS_EMAIL_OPT_MARK_AS_UNREAD"));
-
-       evas_object_smart_callback_add(button, "clicked", _sweep_mark_as_read_unread_cb, ld);
-
-       if ((ld != NULL && (ld->is_sending_now == EMAIL_MAIL_STATUS_SENDING || ld->is_sending_now == EMAIL_MAIL_STATUS_SEND_WAIT))
-               || (ld->thread_count > 1 && ld->mailbox_ugd->b_thread_list))
-       {
-               elm_object_disabled_set(button,EINA_TRUE);
+       if (ld) {
+               if (ld->is_seen == false)
+                       elm_object_text_set(button, _("IDS_EMAIL_OPT_MARK_AS_READ"));
+               else
+                       elm_object_text_set(button, _("IDS_EMAIL_OPT_MARK_AS_UNREAD"));
+
+               evas_object_smart_callback_add(button, "clicked", _sweep_mark_as_read_unread_cb, ld);
+
+               if ((ld->mail_status == EMAIL_MAIL_STATUS_SENDING || ld->mail_status == EMAIL_MAIL_STATUS_SEND_WAIT)
+                       || (ld->thread_count > 1 && ld->mailbox_ugd->b_thread_list))
+               {
+                       elm_object_disabled_set(button,EINA_TRUE);
+               }
        }
 
        return button;
@@ -75,13 +74,13 @@ Evas_Object* _create_sweep_read_unread_button(Evas_Object* parent,list_data* ld)
 
 Evas_Object* _create_sweep_move_button(Evas_Object* parent,list_data* ld)
 {
-
+       debug_enter();
        Evas_Object *button = elm_button_add(parent);
        elm_object_style_set(button, "sweep/multiline");
        elm_object_text_set(button, dgettext("sys_string", "IDS_COM_BODY_MOVE"));
        evas_object_smart_callback_add(button, "clicked", _sweep_move_cb, ld);
 
-       if (ld != NULL && (ld->is_sending_now == EMAIL_MAIL_STATUS_SENDING || ld->is_sending_now == EMAIL_MAIL_STATUS_SEND_WAIT))
+       if (ld != NULL && (ld->mail_status == EMAIL_MAIL_STATUS_SENDING || ld->mail_status == EMAIL_MAIL_STATUS_SEND_WAIT))
                elm_object_disabled_set(button,EINA_TRUE);
 
        return button;
@@ -89,13 +88,13 @@ Evas_Object* _create_sweep_move_button(Evas_Object* parent,list_data* ld)
 
 Evas_Object* _create_sweep_reply_button(Evas_Object* parent,list_data* ld)
 {
-
+       debug_enter();
        Evas_Object *button = elm_button_add(parent);
        elm_object_style_set(button, "sweep/multiline");
        elm_object_text_set(button, dgettext("sys_string", "IDS_COM_SK_REPLY"));
        evas_object_smart_callback_add(button, "clicked", _sweep_reply_cb, ld);
 
-       if (ld != NULL && (ld->is_sending_now == EMAIL_MAIL_STATUS_SENDING || ld->is_sending_now == EMAIL_MAIL_STATUS_SEND_WAIT))
+       if (ld != NULL && (ld->mail_status == EMAIL_MAIL_STATUS_SENDING || ld->mail_status == EMAIL_MAIL_STATUS_SEND_WAIT))
                elm_object_disabled_set(button,EINA_TRUE);
 
        return button;
@@ -104,13 +103,13 @@ Evas_Object* _create_sweep_reply_button(Evas_Object* parent,list_data* ld)
 
 Evas_Object* _create_sweep_forward_button(Evas_Object* parent,list_data* ld)
 {
-
+       debug_enter();
        Evas_Object *button = elm_button_add(parent);
        elm_object_style_set(button, "sweep/multiline");
        elm_object_text_set(button, dgettext("sys_string", "IDS_COM_BODY_FORWARD"));
        evas_object_smart_callback_add(button, "clicked", _sweep_forward_cb, ld);
 
-       if (ld != NULL && (ld->is_sending_now == EMAIL_MAIL_STATUS_SENDING || ld->is_sending_now == EMAIL_MAIL_STATUS_SEND_WAIT))
+       if (ld != NULL && (ld->mail_status == EMAIL_MAIL_STATUS_SENDING || ld->mail_status == EMAIL_MAIL_STATUS_SEND_WAIT))
                elm_object_disabled_set(button,EINA_TRUE);
 
        return button;
index 55049e3..3788ce8 100755 (executable)
@@ -49,6 +49,7 @@ static void _create_all_emails_view(Evas_Object *parent, EmailMailboxUGD *mailbo
 static Evas_Object *_create_navigation_layout(Evas_Object *parent);
 static void _account_cb(void *data, Evas_Object *obj, void *event_info);
 static void _folder_cb(void *data, Evas_Object *obj, void *event_info);
+static void _add_account(void *data);
 //static void _process_mailview_back(EmailMailboxUGD *mailbox_ugd);
 //static char *_gl_text_get(void *data, Evas_Object *obj, const char *part);
 //static Evas_Object *_gl_content_get(void *data, Evas_Object *obj, const char *part);
@@ -86,9 +87,12 @@ static void on_key_event(ui_gadget_h ug, enum ug_key_event event, service_h serv
 /* ui-gadget prototype declaration                                                     */
 /* ============================================================*/
 static Evas_Object *create_fullview(Evas_Object *parent, EmailMailboxUGD *mailbox_ugd);
+static void layout_setting_cb(ui_gadget_h ug, enum ug_mode mode, void *priv);
 static void layout_account_cb(ui_gadget_h ug, enum ug_mode mode, void *priv);
 static void layout_viewer_cb(ui_gadget_h ug, enum ug_mode mode, void *priv);
+static void result_setting_cb(ui_gadget_h ug, service_h service, void *priv);
 static void result_cb(ui_gadget_h ug, service_h service, void *priv);
+static void destroy_setting_cb(ui_gadget_h ug, void *priv);
 static void destroy_viewer_cb(ui_gadget_h ug, void *priv);
 static void destroy_composer_cb(ui_gadget_h ug, void *priv);
 static ui_gadget_h create_account_ug(char *ug_name, service_h service, void *data);
@@ -96,12 +100,24 @@ static ui_gadget_h create_folder_ug(char *ug_name, service_h service, void *data
 static ui_gadget_h create_viewer_ug(char *ug_name, service_h service, void *data);
 static void result_viewer_cb(ui_gadget_h ug, service_h service, void *priv);
 
+static void _email_mailbox_timezone_change_cb(keynode_t *key, void *data);
+
 
 #define THREADID_MASK          0xFFFF
 #define MAILID_MASK            (THREADID_MASK << 16)
 #define MAX_UTF8_CHAR_SIZE 7
 
 
+void _sync_folder_with_new_password(int account_id, int mailbox_id, void *data);
+static void _mailbox_change_password_popup_canceled_cb(void *data, Evas_Object *obj, void *event_info);
+static void _mailbox_change_password_popup_ok_cb(void *data, Evas_Object *obj, void *event_info);
+static void _mailbox_update_account_password(void *data);
+static void _password_eraser_clicked_cb(void *data, Evas_Object *obj, const char *emission, const char *source);
+static void _password_entry_unfocused_cb(void *data, Evas_Object *obj, void *event_info);
+static void _password_entry_focused_cb(void *data, Evas_Object *obj, void *event_info);
+static void _password_entry_changed_cb(void *data, Evas_Object *obj, void *event_info);
+
+
 #if 0
 struct timeval before_time;
 struct timeval after_time;
@@ -169,6 +185,9 @@ static Evas_Object *create_fullview(Evas_Object *parent, EmailMailboxUGD *mailbo
                mailbox_ugd->view_type = EMAIL_VIEW_DATE;
                _create_all_emails_view(parent, mailbox_ugd);
        }
+
+       elm_object_signal_emit(mailbox_ugd->panes, "elm,panes,unpair", "");
+
        return mailbox_ugd->ly;
 }
 
@@ -242,6 +261,9 @@ static void *on_create(ui_gadget_h ug, enum ug_mode mode, service_h service, voi
                mailbox_ugd->base = NULL;
        }
 
+       email_register_timezone_changed_callback(_email_mailbox_timezone_change_cb, mailbox_ugd);
+
+
        return mailbox_ugd->layout_main;
 }
 
@@ -299,6 +321,8 @@ static void on_destroy(ui_gadget_h ug, service_h service, void *priv)
        /*elm_theme_extension_del(mailbox_ugd->theme, THEME_PATH);
        elm_theme_free(mailbox_ugd->theme);*/
 
+       email_deregister_timezone_changed_callback(_email_mailbox_timezone_change_cb);
+
        _remove_dbus_receiver(mailbox_ugd);
 
        int ret = e_dbus_shutdown();
@@ -476,6 +500,7 @@ static void on_event(ui_gadget_h ug, enum ug_event event, service_h service, voi
        case UG_EVENT_LOW_BATTERY:
                break;
        case UG_EVENT_LANG_CHANGE:
+               _refresh_mailbox_fullview(mailbox_ugd);
                break;
 
        case UG_EVENT_ROTATE_PORTRAIT:
@@ -556,17 +581,14 @@ static void _mailbox_rotate_to_potrait(void *data, int angle)
 
        debug_log("view type = %d, previous_view = %d", mailbox_ugd->view_type, mailbox_ugd->previous_view);
 
-       elm_object_item_part_content_unset(mailbox_ugd->navibar_item[mailbox_ugd->view_type], "controlbar");
-       _create_controlbar(mailbox_ugd);
-       if (mailbox_ugd->view_type == EMAIL_VIEW_EDIT)
-       {
-               elm_object_item_part_content_set(mailbox_ugd->navibar_item[mailbox_ugd->previous_view], "controlbar", mailbox_ugd->controlbar_btns);
-       }
-       else
-       {
-               elm_object_item_part_content_set(mailbox_ugd->navibar_item[mailbox_ugd->view_type], "controlbar", mailbox_ugd->controlbar_btns);
+       if(mailbox_ugd->passwd_popup) {
+               evas_object_del(mailbox_ugd->passwd_popup);
+               mailbox_ugd->passwd_popup = NULL;
        }
 
+       //elm_object_item_part_content_unset(mailbox_ugd->navibar_item[mailbox_ugd->view_type], "controlbar");
+       _create_controlbar(mailbox_ugd);
+
        elm_win_rotation_with_resize_set(mailbox_ugd->win_main, angle);
 
        if (!evas_object_visible_get(mailbox_ugd->navi_title_ly)) {
@@ -598,6 +620,8 @@ static void _mailbox_rotate_to_potrait(void *data, int angle)
        {
                email_maillist_select_info(mailbox_ugd);
        }
+
+       elm_object_signal_emit(mailbox_ugd->panes, "elm,panes,unpair", "");
 }
 
 
@@ -610,6 +634,11 @@ static void _mailbox_rotate_to_landscape(void *data, int angle)
 
        debug_log("view type = %d, previous_view = %d", mailbox_ugd->view_type, mailbox_ugd->previous_view);
 
+       if(mailbox_ugd->passwd_popup) {
+               evas_object_del(mailbox_ugd->passwd_popup);
+               mailbox_ugd->passwd_popup = NULL;
+       }
+
        if (elm_panes_content_left_size_get(mailbox_ugd->panes) == 1.0) {
                if(mailbox_ugd->b_advanced_search_view) {
                        debug_log("advanced search view exists. should be removed");
@@ -639,12 +668,10 @@ static void _mailbox_rotate_to_landscape(void *data, int angle)
        if (mailbox_ugd->view_type == EMAIL_VIEW_EDIT)
        {
                _create_controlbar(mailbox_ugd);
-               elm_object_item_part_content_set(mailbox_ugd->navibar_item[mailbox_ugd->previous_view], "controlbar", mailbox_ugd->controlbar_btns);
                email_maillist_select_info(mailbox_ugd);
        }
        else
        {
-               elm_object_item_part_content_unset(mailbox_ugd->navibar_item[mailbox_ugd->view_type], "controlbar");
                _delete_controlbar(mailbox_ugd);
        }
 
@@ -675,6 +702,8 @@ static void _mailbox_rotate_to_landscape(void *data, int angle)
                destroy_account_cb(mailbox_ugd->ug_account, mailbox_ugd);
        }
 
+
+       elm_object_signal_emit(mailbox_ugd->panes, "elm,panes,pair", "");
 }
 
 static void on_key_event(ui_gadget_h ug, enum ug_key_event event, service_h service, void *priv)
@@ -738,6 +767,31 @@ UG_MODULE_API void UG_MODULE_EXIT(struct ug_module_ops *ops)
        FREE(ugd);
 }
 
+static void layout_setting_cb(ui_gadget_h ug, enum ug_mode mode, void *priv)
+{
+       debug_log("");
+       Evas_Object *base;
+       EmailMailboxUGD *ugd;
+
+       if (!ug || !priv)
+               return;
+
+       ugd = (EmailMailboxUGD *)priv;
+
+       base = ug_get_layout(ug);
+       if (!base)
+               return;
+
+       switch (mode) {
+       case UG_MODE_FULLVIEW:
+               evas_object_size_hint_weight_set(base, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+               evas_object_show(base);
+               break;
+       default:
+               break;
+       }
+}
+
 static void layout_account_cb(ui_gadget_h ug, enum ug_mode mode, void *priv)
 {
        debug_log("");
@@ -764,7 +818,6 @@ static void layout_account_cb(ui_gadget_h ug, enum ug_mode mode, void *priv)
        switch (mode) {
        case UG_MODE_FULLVIEW:
                evas_object_size_hint_weight_set(base, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-               elm_win_resize_object_add(ugd->win_main, base);
                evas_object_show(base);
                break;
 
@@ -814,7 +867,6 @@ void layout_composer_cb(ui_gadget_h ug, enum ug_mode mode, void *priv)
        switch (mode) {
        case UG_MODE_FULLVIEW:
                evas_object_size_hint_weight_set(base, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-               elm_win_resize_object_add(ugd->win_main, base);
                evas_object_show(base);
                break;
        default:
@@ -841,7 +893,7 @@ static void layout_viewer_cb(ui_gadget_h ug, enum ug_mode mode, void *priv)
        ugd->viewer_ly = base;
 
        switch (mode) {
-       case UG_MODE_FULLVIEW:
+       case UG_MODE_FRAMEVIEW:
                evas_object_size_hint_weight_set(base, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
                ug_disable_effect(ug);
                evas_object_show(base);
@@ -851,10 +903,35 @@ static void layout_viewer_cb(ui_gadget_h ug, enum ug_mode mode, void *priv)
        }
 }
 
+void result_setting_cb(ui_gadget_h ug, service_h service, void *priv)
+{
+       EmailMailboxUGD *mailbox_ugd;
+       debug_log("");
+
+       if (NULL == ug || NULL == priv) {
+               return;
+       }
+
+       mailbox_ugd = (EmailMailboxUGD *)priv;
+
+       if (ug == mailbox_ugd->ug_setting) {
+               char *val = NULL;
+               service_get_extra_data(service, EMAIL_BUNDLE_KEY_REFRESH_ACCOUNT, &val);
+               if (STR_VALID(val)) {
+                       if (g_strcmp0(val, EMAIL_BUNDLE_KEY_REFRESH_ACCOUNT) == 0) {
+                               ug_destroy(mailbox_ugd->ug_setting);
+                               mailbox_ugd->ug_setting = NULL;
+                       }
+                       g_free(val);
+               }
+       }
+}
+
 static void result_cb(ui_gadget_h ug, service_h service, void *priv)
 {
        debug_log("");
        EmailMailboxUGD *mailbox_ugd;
+       int ret;
 
        if (!ug || !priv)
                return;
@@ -868,14 +945,23 @@ static void result_cb(ui_gadget_h ug, service_h service, void *priv)
 
        ug_pushed = false;
        char *account_id = NULL;
-       char *c_is_null = NULL;
+       char *type = NULL;
        char *mailbox_type = NULL;
 
-       service_get_extra_data(service, EMAIL_BUNDLE_KEY_ACCOUNT_ID, &(account_id));
-       service_get_extra_data(service, EMAIL_BUNDLE_KEY_IS_NULL, &(c_is_null));
+       if (mailbox_ugd->ug_account)
+               destroy_account_cb(mailbox_ugd->ug_account, mailbox_ugd);
+
+       ret = service_get_extra_data(service, EMAIL_BUNDLE_KEY_ACCOUNT_TYPE, &type);
+       debug_log("service_get_extra_data: %d", ret);
+
+       if (g_strcmp0(type, EMAIL_BUNDLE_VAL_ALL_ACCOUNT) == 0) {
+               debug_log("EMAIL_BUNDLE_VAL_ALL_ACCOUNT");
+
+               ret = service_get_extra_data(service, EMAIL_BUNDLE_KEY_ACCOUNT_ID, &account_id);
+               debug_log("service_get_extra_data: %d", ret);
+
+               mailbox_ugd->account_id = (gint) atoi(account_id);
 
-       mailbox_ugd->account_id = (gint) atoi(account_id);
-       if (atoi(c_is_null)) {
                if (mailbox_ugd->account_id != 0) {
                        email_mailbox_t *mailbox = NULL;
                        int e = email_get_mailbox_by_mailbox_type(mailbox_ugd->account_id, EMAIL_MAILBOX_TYPE_INBOX, &mailbox);
@@ -883,52 +969,62 @@ static void result_cb(ui_gadget_h ug, service_h service, void *priv)
                        if( e == EMAIL_ERROR_NONE && mailbox ) {
                                debug_log("email_get_mailbox_by_mailbox_type : account_id(%d) type(INBOX) - err(%d) or mailbox is NULL(%p)", mailbox_ugd->account_id, e, mailbox);
 
-                               service_get_extra_data(service, EMAIL_BUNDLE_KEY_USER_EMAIL, &(mailbox_ugd->user_email));
+                               ret = service_get_extra_data(service, EMAIL_BUNDLE_KEY_USER_EMAIL, &(mailbox_ugd->user_email));
+                               debug_log("service_get_extra_data: %d", ret);
+
                                mailbox_ugd->mode = EMAIL_MAILBOX_MODE_MAILBOX;
                                mailbox_ugd->mailbox_id = mailbox->mailbox_id;
                                mailbox_ugd->mailbox_type = EMAIL_MAILBOX_TYPE_INBOX;
                                mailbox_ugd->folder_alias = g_strdup(mailbox->alias);
-                               debug_log("account_id: [%d], mailbox_id: [%d], folder_alias[%s], user_email: [%s]",
+                               debug_log("account_id(%d), mailbox_id(%d), folder_alias(%s), user_email(%s)",
                                                mailbox_ugd->account_id, mailbox_ugd->mailbox_id, mailbox_ugd->folder_alias, mailbox_ugd->user_email);
 
                                email_free_mailbox(&mailbox, 1);
                        }
-               }
-               else
-               {
-                       service_get_extra_data(service, EMAIL_BUNDLE_KEY_MAILBOX_TYPE, &(mailbox_type));
+               } else {
+                       ret = service_get_extra_data(service, EMAIL_BUNDLE_KEY_MAILBOX_TYPE, &(mailbox_type));
+                       debug_log("service_get_extra_data: %d", ret);
+
                        mailbox_ugd->mailbox_type = (gint) atoi(mailbox_type);
                        mailbox_ugd->mode = EMAIL_MAILBOX_MODE_ALL;
-                       debug_log("account_id: [%d], mailbox_type: [%d]", mailbox_ugd->account_id, mailbox_ugd->mailbox_type);
+                       debug_log("account_id(%d), mailbox_type(%d)", mailbox_ugd->account_id, mailbox_ugd->mailbox_type);
                }
-       }
-       else
-       {
+
+               reset_get_more_progress_callback_status(mailbox_ugd);
+               _make_account_mail_list(mailbox_ugd);
+       } else if (g_strcmp0(type, EMAIL_BUNDLE_VAL_SINGLE_ACCOUNT) == 0) {
+               debug_log("EMAIL_BUNDLE_VAL_SINGLE_ACCOUNT");
+
                char *mailbox_id = NULL;
-               service_get_extra_data(service, EMAIL_BUNDLE_KEY_MAILBOX, &(mailbox_id));
-               if (mailbox_id)
-               {
+               ret = service_get_extra_data(service, EMAIL_BUNDLE_KEY_ACCOUNT_ID, &account_id);
+               debug_log("service_get_extra_data: %d", ret);
+               ret = service_get_extra_data(service, EMAIL_BUNDLE_KEY_MAILBOX, &(mailbox_id));
+               debug_log("service_get_extra_data: %d", ret);
+               ret = service_get_extra_data(service, EMAIL_BUNDLE_KEY_MAILBOX_ALIAS, &(mailbox_ugd->folder_alias));
+               debug_log("service_get_extra_data: %d", ret);
+               ret = service_get_extra_data(service, EMAIL_BUNDLE_KEY_USER_EMAIL, &(mailbox_ugd->user_email));
+               debug_log("service_get_extra_data: %d", ret);
+
+               mailbox_ugd->account_id = (gint) atoi(account_id);
+               if (mailbox_id) {
                        mailbox_ugd->mailbox_id = (int)atoi(mailbox_id);
                        g_free(mailbox_id);
-               }
-               else
+               } else
                        debug_critical("failure on getting mailbox_id");
-
-               service_get_extra_data(service, EMAIL_BUNDLE_KEY_MAILBOX_ALIAS, &(mailbox_ugd->folder_alias));
-               service_get_extra_data(service, EMAIL_BUNDLE_KEY_USER_EMAIL, &(mailbox_ugd->user_email));
                mailbox_ugd->mode = EMAIL_MAILBOX_MODE_MAILBOX;
-               debug_log("account_id: [%d], mailbox_id: [%d], folder_alias[%s], user_email: [%s]",
+               debug_log("account_id[%d], mailbox_id[%d], folder_alias(%s), user_email(%s)",
                        mailbox_ugd->account_id, mailbox_ugd->mailbox_id, mailbox_ugd->folder_alias, mailbox_ugd->user_email);
-       }
-       if (mailbox_ugd->ug_account) {
-               destroy_account_cb(mailbox_ugd->ug_account, mailbox_ugd);
-       }
-       ug_pushed = false;
 
-       _make_account_mail_list(mailbox_ugd);
+               reset_get_more_progress_callback_status(mailbox_ugd);
+               _make_account_mail_list(mailbox_ugd);
+       } else if (g_strcmp0(type, EMAIL_BUNDLE_VAL_ADD_ACCOUNT) == 0) {
+               debug_log("EMAIL_BUNDLE_VAL_ADD_ACCOUNT");
+
+               _add_account(mailbox_ugd);
+       }
 
+       g_free(type);
        g_free(account_id);
-       g_free(c_is_null);
        g_free(mailbox_type);
 }
 
@@ -982,6 +1078,23 @@ void result_composer_cb(ui_gadget_h ug, service_h service, void *priv)
        mailbox_ugd = priv;
 }
 
+static void destroy_setting_cb(ui_gadget_h ug, void *priv)
+{
+       debug_log("");
+
+       if (!ug || !priv)
+               return;
+
+       EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)priv;
+
+       if (ug == mailbox_ugd->ug_setting) {
+               ug_destroy(mailbox_ugd->ug_setting);
+               mailbox_ugd->ug_setting = NULL;
+       }
+
+       return;
+}
+
 void destroy_account_cb(ui_gadget_h ug, void *priv)
 {
        debug_log("");
@@ -1063,6 +1176,23 @@ static void destroy_viewer_cb(ui_gadget_h ug, void *priv)
        ug_destroy(ug);
 }
 
+ui_gadget_h create_setting_ug(char *ug_name, service_h service, void *data)
+{
+       debug_log("");
+       ui_gadget_h ug;
+       struct ug_cbs cbs = { 0, };
+       EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data;
+
+       cbs.layout_cb = layout_setting_cb;
+       cbs.result_cb = result_setting_cb;
+       cbs.destroy_cb = destroy_setting_cb;
+       cbs.priv = mailbox_ugd;
+       mailbox_ugd->cbs = cbs;
+
+       ug = ug_create(mailbox_ugd->ug, ug_name, UG_MODE_FULLVIEW, service, &mailbox_ugd->cbs);
+
+       return ug;
+}
 
 ui_gadget_h create_composer_ug(char *ug_name, service_h service, void *data)
 {
@@ -1137,7 +1267,7 @@ static ui_gadget_h create_viewer_ug(char *ug_name, service_h service, void *data
        if (mailbox_ugd->viewer_refresh == 0) {
                mailbox_ugd->viewer_refresh = 1;
 
-               mailbox_ugd->ug_viewer = ug_create(mailbox_ugd->ug, ug_name, UG_MODE_FULLVIEW, service, &cbs);
+               mailbox_ugd->ug_viewer = ug_create(mailbox_ugd->ug, ug_name, UG_MODE_FRAMEVIEW, service, &cbs);
        } else {
                ug_send_message(mailbox_ugd->ug_viewer, service);
        }
@@ -1277,6 +1407,25 @@ void _sync_curr_folder(EmailMailboxUGD *mailbox_ugd, int mailbox_id)
        g_account_list = eina_list_append(g_account_list, _account_id);
 
 }
+void _sync_folder_with_new_password(int account_id, int mailbox_id, void *data)
+{
+       debug_log("");
+       EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data;
+       int handle = 0;
+       gboolean res = FALSE;
+
+       _stop_emf_job(mailbox_ugd, mailbox_ugd->emf_handle, true);
+
+       res = email_engine_sync_folder(account_id, mailbox_id, &handle);
+       debug_log("handle: %d", handle);
+
+       mailbox_ugd->emf_handle = handle;
+
+       int *_account_id = (int *)calloc(1, sizeof(int));
+       *_account_id = account_id;
+       g_account_list = eina_list_append(g_account_list, _account_id);
+
+}
 
 void _sync_all_folder(EmailMailboxUGD *mailbox_ugd)
 {
@@ -1367,7 +1516,8 @@ static void _create_view(EmailMailboxUGD *mailbox_ugd)
                elm_layout_file_set(mailbox_ugd->sub_layout[mailbox_ugd->view_type], THEME_PATH, "layout.email.mailbox.hd");
        else
                elm_layout_file_set(mailbox_ugd->sub_layout[mailbox_ugd->view_type], THEME_PATH, "layout.email.mailbox");
-       mailbox_create_searchbar(mailbox_ugd);
+       // TODO: remove mailbox_ugd->searchbar_layout later
+       //mailbox_create_searchbar(mailbox_ugd);
 
        /* create genlist */
        mailbox_create_list_view(mailbox_ugd);
@@ -1402,7 +1552,7 @@ static void _create_view(EmailMailboxUGD *mailbox_ugd)
 
        //Title Left Button
        mailbox_ugd->folder_button = elm_button_add(mailbox_ugd->navi_bar);
-       elm_object_style_set(mailbox_ugd->folder_button, "naviframe/title/default");
+       elm_object_style_set(mailbox_ugd->folder_button, "naviframe/title_icon");
        Evas_Object *folder_icon = elm_icon_add(mailbox_ugd->folder_button);
        elm_icon_file_set(folder_icon, ICON_FOLDERS, NULL);
        elm_icon_resizable_set(folder_icon, 1, 1);
@@ -1413,7 +1563,7 @@ static void _create_view(EmailMailboxUGD *mailbox_ugd)
 
        //Title Right Button for update
        mailbox_ugd->update_button = elm_button_add(mailbox_ugd->navi_bar);
-       elm_object_style_set(mailbox_ugd->update_button, "naviframe/title/default");
+       elm_object_style_set(mailbox_ugd->update_button, "naviframe/title_icon");
        Evas_Object *update_icon = elm_icon_add(mailbox_ugd->update_button);
        elm_icon_file_set(update_icon, ICON_UPDATE, NULL);
        elm_icon_resizable_set(update_icon, 1, 1);
@@ -1449,7 +1599,6 @@ static void _create_view(EmailMailboxUGD *mailbox_ugd)
        elm_icon_file_set(mailbox_ugd->title_arrow, ICON_CLOSE, NULL);
 
        _create_controlbar(mailbox_ugd);
-       elm_object_item_part_content_set(mailbox_ugd->navibar_item[mailbox_ugd->view_type], "controlbar", mailbox_ugd->controlbar_btns);
 
        evas_object_show(mailbox_ugd->ly);
 }
@@ -1471,7 +1620,6 @@ static void _win_profile_changed_cb(void *data, Evas_Object *obj, void *event)
                elm_layout_theme_set(mailbox_ugd->layout_main, "layout", "application", "default");
 
        evas_object_size_hint_weight_set(mailbox_ugd->layout_main, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-       elm_win_resize_object_add(mailbox_ugd->win_main, mailbox_ugd->layout_main);
        evas_object_show(mailbox_ugd->layout_main);
 }
 
@@ -1761,11 +1909,24 @@ static void _folder_cb(void *data, Evas_Object *obj, void *event_info)
        return;
 }
 
+static void _add_account(void *data)
+{
+       debug_log("");
 
+       int ret;
+       service_h service;
+       EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data;
 
+       if (SERVICE_ERROR_NONE != service_create(&service)) {
+               debug_log("creating service handle failed");
+               return;
+       }
 
+       ret = service_add_extra_data(service, EMAIL_BUNDLE_KEY_VIEW_TYPE, EMAIL_BUNDLE_VAL_VIEW_SELECT_ACCOUNT);
+       debug_log("service_add_extra_data: %d", ret);
 
-
+       mailbox_ugd->ug_setting = create_setting_ug(UG_NAME_EMAIL_SETTING, service, mailbox_ugd);
+}
 
 static void _process_update(EmailMailboxUGD *mailbox_ugd)
 {
@@ -1861,29 +2022,76 @@ void _update_navigationbar_title(EmailMailboxUGD *mailbox_ugd)
 
                elm_icon_file_set(mailbox_ugd->sp_icon, ICON_TITLE_ALL_ACC, NULL);
 
+               switch(mailbox_ugd->mailbox_type)
+               {
+               case EMAIL_MAILBOX_TYPE_INBOX:
                {
                        elm_object_item_text_set(mailbox_ugd->navibar_item[mailbox_ugd->view_type], _("IDS_EMAIL_BODY_INBOX"));
                        elm_object_part_text_set(mailbox_ugd->navi_title_ly, "txt_title", _("IDS_EMAIL_BODY_INBOX"));
-                       elm_object_part_text_set(mailbox_ugd->navi_title_ly, "txt_sub", _("IDS_EMAIL_HEADER_ALL_ACCOUNTS"));
+               }
+               break;
+               case EMAIL_MAILBOX_TYPE_SENTBOX:
+               {
+                       elm_object_item_text_set(mailbox_ugd->navibar_item[mailbox_ugd->view_type], _("IDS_EMAIL_BODY_SENTBOX"));
+                       elm_object_part_text_set(mailbox_ugd->navi_title_ly, "txt_title", _("IDS_EMAIL_BODY_SENTBOX"));
+               }
+               break;
+               case EMAIL_MAILBOX_TYPE_TRASH:
+               {
+                       elm_object_item_text_set(mailbox_ugd->navibar_item[mailbox_ugd->view_type], _("IDS_EMAIL_BODY_TRASH"));
+                       elm_object_part_text_set(mailbox_ugd->navi_title_ly, "txt_title", _("IDS_EMAIL_BODY_TRASH"));
+               }
+               break;
+               case EMAIL_MAILBOX_TYPE_DRAFT:
+               {
+                       elm_object_item_text_set(mailbox_ugd->navibar_item[mailbox_ugd->view_type], _("IDS_EMAIL_BODY_DRAFTS"));
+                       elm_object_part_text_set(mailbox_ugd->navi_title_ly, "txt_title", _("IDS_EMAIL_BODY_DRAFTS"));
+               }
+               break;
+               case EMAIL_MAILBOX_TYPE_SPAMBOX:
+               {
+                       elm_object_item_text_set(mailbox_ugd->navibar_item[mailbox_ugd->view_type], _("IDS_EMAIL_BODY_SPAMBOX"));
+                       elm_object_part_text_set(mailbox_ugd->navi_title_ly, "txt_title", _("IDS_EMAIL_BODY_SPAMBOX"));
+               }
+               break;
+               case EMAIL_MAILBOX_TYPE_OUTBOX:
+               {
+                       elm_object_item_text_set(mailbox_ugd->navibar_item[mailbox_ugd->view_type], N_("Outbox"));
+                       elm_object_part_text_set(mailbox_ugd->navi_title_ly, "txt_title", N_("Outbox"));
+               }
+               break;
+               case EMAIL_MAILBOX_TYPE_FLAGGED:
+               {
+                       elm_object_item_text_set(mailbox_ugd->navibar_item[mailbox_ugd->view_type], _("IDS_EMAIL_OPT_FAVOURITES"));
+                       elm_object_part_text_set(mailbox_ugd->navi_title_ly, "txt_title", _("IDS_EMAIL_OPT_FAVOURITES"));
+               }
+               break;
+               default:
+               {
+                       elm_object_item_text_set(mailbox_ugd->navibar_item[mailbox_ugd->view_type], _("IDS_EMAIL_BODY_INBOX"));
+                       elm_object_part_text_set(mailbox_ugd->navi_title_ly, "txt_title", _("IDS_EMAIL_BODY_INBOX"));
+               }
+               break;
+               }
+               elm_object_part_text_set(mailbox_ugd->navi_title_ly, "txt_sub", _("IDS_EMAIL_HEADER_ALL_ACCOUNTS"));
 
-                       if (mailbox_ugd->isRotate == false) {
-                               _create_controlbar(mailbox_ugd);
-                               elm_object_item_part_content_set(mailbox_ugd->navibar_item[mailbox_ugd->view_type], "controlbar", mailbox_ugd->controlbar_btns);
-                       }
+               if (mailbox_ugd->isRotate == false) {
+                       _create_controlbar(mailbox_ugd);
                }
        } else {
-               _create_controlbar(mailbox_ugd);
+               if (mailbox_ugd->isRotate == false) {
+                       _create_controlbar(mailbox_ugd);
+               }
                elm_object_item_text_set(mailbox_ugd->navibar_item[mailbox_ugd->view_type], mailbox_ugd->folder_alias);
                elm_object_part_text_set(mailbox_ugd->navi_title_ly, "txt_title", mailbox_ugd->folder_alias);
                elm_object_part_text_set(mailbox_ugd->navi_title_ly, "txt_sub", mailbox_ugd->user_email);
 
                email_account_t *account;
                email_get_account(mailbox_ugd->account_id, 0, &account);
-               elm_icon_file_set(mailbox_ugd->sp_icon, account->logo_icon_path, NULL);
-               if(account) email_free_account(&account, 1);
-
-               elm_object_item_part_content_set(mailbox_ugd->navibar_item[mailbox_ugd->view_type], "controlbar", mailbox_ugd->controlbar_btns);
-
+               if (account) {
+                       elm_icon_file_set(mailbox_ugd->sp_icon, account->logo_icon_path, NULL);
+                       email_free_account(&account, 1);
+               }
        }
 }
 
@@ -1929,3 +2137,213 @@ email_sort_type_t _mailbox_conv_sort_type(EmailSortType sort_type)
 
        return email_svc_sort_type;
 }
+
+static void _email_mailbox_timezone_change_cb(keynode_t *key, void *data)
+{
+       debug_log("");
+       EmailMailboxUGD *mailbox_ugd;
+       mailbox_ugd = (EmailMailboxUGD *)data;
+
+       _refresh_mailbox(mailbox_ugd);
+}
+
+static void _mailbox_change_password_popup_ok_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log();
+       EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data;
+
+       if (elm_entry_is_empty(mailbox_ugd->password_entry))
+       {
+               debug_log("password is NULL");
+               if(mailbox_ugd->passwd_popup) {
+                       debug_log("delete popup");
+                       evas_object_del(mailbox_ugd->passwd_popup);
+                       mailbox_ugd->passwd_popup = NULL;
+               }
+               return;
+       }
+       mailbox_ugd->str_password = g_strdup(elm_entry_entry_get(mailbox_ugd->password_entry));
+       debug_log("str_password : %s", mailbox_ugd->str_password);
+
+       _mailbox_update_account_password(data);
+
+       if(mailbox_ugd->passwd_popup) {
+               debug_log("delete popup");
+               evas_object_del(mailbox_ugd->passwd_popup);
+               mailbox_ugd->passwd_popup = NULL;
+       }
+
+}
+
+static void _mailbox_change_password_popup_canceled_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log();
+       EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data;
+       if(mailbox_ugd->passwd_popup) {
+               evas_object_del(mailbox_ugd->passwd_popup);
+               mailbox_ugd->passwd_popup = NULL;
+       }
+       mailbox_ugd->sync_needed_account_id = -1;
+       mailbox_ugd->sync_needed_mailbox_id = -1;
+}
+
+static void _password_entry_changed_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       if (!data || !obj) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       if (elm_object_focus_get(data)) {
+               if (elm_entry_is_empty(obj))
+                       elm_object_signal_emit(data, "elm,state,eraser,hide", "elm");
+               else
+                       elm_object_signal_emit(data, "elm,state,eraser,show", "elm");
+       }
+}
+
+static void _password_entry_focused_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       if (!data || !obj) {
+               debug_log("data is NULL");
+               return;
+       }
+       if (!elm_entry_is_empty(obj))
+               elm_object_signal_emit(data, "elm,state,eraser,show", "elm");
+       elm_object_signal_emit(data, "elm,state,guidetext,hide", "elm");
+}
+
+static void _password_entry_unfocused_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       debug_log("");
+       if (!data || !obj) {
+               debug_log("data is NULL");
+               return;
+       }
+       if (elm_entry_is_empty(obj))
+               elm_object_signal_emit(data, "elm,state,guidetext,show", "elm");
+       elm_object_signal_emit(data, "elm,state,eraser,hide", "elm");
+}
+
+static void _password_eraser_clicked_cb(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+       debug_log("");
+       if (!data || !obj) {
+               debug_log("data is NULL");
+               return;
+       }
+
+       elm_entry_entry_set(data, "");
+}
+
+static void _mailbox_update_account_password(void *data)
+{
+       debug_log("");
+       EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data;
+       int err = EMAIL_ERROR_NONE;
+       email_account_t *account_info = NULL;
+
+       err = email_engine_get_account_full_data(mailbox_ugd->sync_needed_account_id, &account_info);
+
+       if( err != EMAIL_ERROR_NONE || !account_info) {
+               debug_log("fail to get account info - err(%d)", err);
+       }
+       FREE(account_info->incoming_server_password);
+       account_info->incoming_server_password = strdup(mailbox_ugd->str_password);
+
+       if((err = email_update_account(mailbox_ugd->sync_needed_account_id, account_info)) != EMAIL_ERROR_NONE) {
+               debug_log("fail to update account - err(%d)", err);
+       } else {
+               _sync_folder_with_new_password(mailbox_ugd->sync_needed_account_id, mailbox_ugd->sync_needed_mailbox_id, data);
+       }
+
+       if (account_info) {
+               email_free_account(&account_info, 1);
+       }
+       mailbox_ugd->sync_needed_account_id = -1;
+       mailbox_ugd->sync_needed_mailbox_id = -1;
+       FREE(mailbox_ugd->str_password);
+}
+
+void mailbox_create_password_changed_popup(void *data)
+{
+       debug_enter();
+       Evas_Object *label;
+       Evas_Object *popup;
+       Evas_Object *entry_layout, *layout, *entry;
+       Evas_Object *btn1, *btn2;
+       EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data;
+       EmailAccountInfo *account_info = NULL;
+
+       if(mailbox_ugd->passwd_popup) {
+               evas_object_del(mailbox_ugd->passwd_popup);
+               mailbox_ugd->passwd_popup = NULL;
+       }
+
+       popup = elm_popup_add(mailbox_ugd->layout_main);
+       mailbox_ugd->passwd_popup = popup;
+       label = elm_label_add(popup);
+       elm_object_style_set(label, "popup/default");
+       elm_label_line_wrap_set(label, ELM_WRAP_MIXED);
+       elm_object_text_set(label, N_("Server password has been changed. Input the changed password."));
+       evas_object_size_hint_weight_set(label, EVAS_HINT_EXPAND, 0.0);
+       evas_object_size_hint_align_set(label, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(label);
+
+       layout = elm_layout_add(popup);
+       elm_layout_file_set(layout, THEME_PATH, "email/popup/entryview");
+
+       entry_layout = elm_layout_add(popup);
+       elm_layout_theme_set(entry_layout, "layout", "editfield", "title");
+
+       entry = elm_entry_add(popup);
+       elm_entry_scrollable_set(entry, EINA_TRUE); // Make entry as scrollable single line.
+       elm_entry_single_line_set(entry, EINA_TRUE);
+       elm_entry_input_panel_return_key_disabled_set(entry, EINA_TRUE);
+       elm_entry_password_set(entry, 1);
+       elm_entry_cnp_mode_set(entry, ELM_CNP_MODE_PLAINTEXT);
+       mailbox_ugd->password_entry = entry;
+       evas_object_smart_callback_add(entry, "changed", _password_entry_changed_cb, entry_layout);
+       evas_object_smart_callback_add(entry, "focused", _password_entry_focused_cb, entry_layout);
+       evas_object_smart_callback_add(entry, "unfocused", _password_entry_unfocused_cb, entry_layout);
+
+
+       elm_object_part_content_set(entry_layout, "elm.swallow.content", entry);
+       debug_log("mailbox_ugd->sync_needed_account_id %d", mailbox_ugd->sync_needed_account_id);
+       if (email_engine_get_account_info(mailbox_ugd->sync_needed_account_id, &account_info)) {
+               if (account_info && account_info->email_address) {
+                       debug_log("account_info->email_address : %s", account_info->email_address);
+                       elm_object_part_text_set(entry_layout, "elm.text", account_info->email_address);
+               }
+               if (account_info)
+                       email_engine_free_account_info(&account_info);
+       }
+
+       elm_object_part_text_set(layout, "elm.guidetext", dgettext("sys_string", "IDS_COM_BODY_PASSWORD"));
+       elm_object_signal_callback_add(entry_layout, "elm,eraser,clicked", "elm", NULL, entry);
+       elm_object_signal_callback_add(entry_layout, "elm,eraser,clicked", "elm", _password_eraser_clicked_cb, entry);
+       evas_object_show(entry_layout);
+
+       elm_object_part_content_set(layout, "elm.swallow.content", label);
+       elm_object_part_content_set(layout, "elm.swallow.entry", entry_layout);
+
+       evas_object_show(layout);
+       elm_object_content_set(popup, layout);
+
+
+       btn1 = elm_button_add(popup);
+       elm_object_style_set(btn1, "popup_button/default");
+       elm_object_text_set(btn1, dgettext("sys_string", "IDS_COM_SK_OK"));
+       elm_object_part_content_set(popup, "button1", btn1);
+       evas_object_smart_callback_add(btn1, "clicked", _mailbox_change_password_popup_ok_cb, data);
+       btn2 = elm_button_add(popup);
+       elm_object_style_set(btn2, "popup_button/default");
+       elm_object_text_set(btn2, dgettext("sys_string", "IDS_COM_SK_CANCEL"));
+       elm_object_part_content_set(popup, "button2", btn2);
+       evas_object_smart_callback_add(btn2, "clicked", _mailbox_change_password_popup_canceled_cb, data);
+
+       evas_object_show(popup);
+}
+
index fcd334a..86c95fa 100755 (executable)
@@ -357,7 +357,7 @@ group { name: "horizontal_bottom_64";
                                description
                                {
                                        state: "default" 0.0;
-                                       min: 0 69;
+                                       min: 0 106;
                                        fixed: 1 1;
                                        align: 0.0 0.0;
                                        visible: 1;
@@ -594,7 +594,7 @@ group { name: "horizontal_bottom_64";
                                        state: "default" 0.0;
                                        rel1 { relative: (16/440) 0.0; to: "title_area";}
                                        rel2 { relative: (424/440) (52/88); to: "title_area";}
-                                       color : 249 249 249 255;
+                                       color : 59 115 182 255;
                                        text { font: "SLP:style=Medium";
                                                size: 40;
                                                min: 0 0;
@@ -714,9 +714,9 @@ group { name: "horizontal_bottom_64";
                                                to_x: "sub_right_icon";
                                                to_y: "bottom_padding";
                                        }
-                                       color : 249 249 249 255;
+                                       color : 59 115 182 255;
                                        text { font: "SLP:style=Medium";
-                                               size: 32;
+                                               size: 24;
                                                min: 0 0;
                                                max: 1 0;
                                                align: 0.0 0.5;
@@ -753,7 +753,7 @@ group { name: "horizontal_bottom_64";
 
                        part {
                                name: "seperator1";
-                               type: IMAGE;
+                               type: SWALLOW;
                                scale: 1;
                                description {
                                        state: "default" 0.0;
@@ -771,7 +771,7 @@ group { name: "horizontal_bottom_64";
                                                to_x: "right_btn";
                                                to_y: "bottom_padding";
                                        }
-                                       image.normal: "00_winset_title_line.png";
+                                       //image.normal: "00_winset_title_line.png";
                                }
                        }
 
@@ -800,7 +800,7 @@ group { name: "horizontal_bottom_64";
 
                        part {
                                name: "seperator2";
-                               type: IMAGE;
+                               type: SWALLOW;
                                scale: 1;
                                description {
                                        state: "default" 0.0;
@@ -818,7 +818,7 @@ group { name: "horizontal_bottom_64";
                                                to_x: "left_btn";
                                                to_y: "bottom_padding";
                                        }
-                                       image.normal: "00_winset_title_line.png";
+                                       //image.normal: "00_winset_title_line.png";
                                }
                        }
 
@@ -904,7 +904,7 @@ group { name: "horizontal_bottom_64";
                                type: RECT;
                                description { state: "default" 0.0;
                                color: 0 0 0 153;
-                               min: 0 1127;            //213; height(1280) - (indicator(50)+Navi(108)+frameview(909)+10) +5
+                               min: 0 1124;            //213; height(1280) - (indicator(50)+Navi(111)+frameview(909)+10) +5
                                max: 9999 213;
                                fixed: 1 1;
                                visible: 1;
@@ -2661,5 +2661,108 @@ group { name: "horizontal_bottom_64";
                }
       }
    }
+   group { name: "email/popup/entryview";
+      parts{
+         part { name: "pad_t";
+            scale : 1;
+            mouse_events: 0;
+            repeat_events: 1;
+            description { state: "default" 0.0;
+               align: 0.5 0.0;
+               min: 0 14;
+               fixed: 0 1;
+               rel1 {
+                  relative: 1.0 0.0;
+                  to_x: "pad_l";
+               }
+               rel2 {
+                  relative: 0.0 0.0;
+                  to_x: "pad_r";
+               }
+            }
+         }
+         part { name: "pad_l";
+            scale: 1;
+            description { state: "default" 0.0;
+               min : 10 0;
+               fixed: 1 0;
+               rel1 {
+                  relative: 0.0 0.0;
+               }
+               rel2 {
+                  relative: 0.0 1.0;
+               }
+               align: 0.0 0.0;
+            }
+         }
+         part { name: "pad_r";
+            scale: 1;
+            description { state: "default" 0.0;
+               min : 10 0;
+               fixed: 1 0;
+               rel1 {
+                  relative: 1.0 0.0;
+               }
+               rel2 {
+                  relative: 1.0 1.0;
+               }
+               align: 1.0 0.0;
+            }
+         }
+         part{ name:"elm.swallow.content";
+            type: SWALLOW;
+            scale : 1;
+            description { state: "default" 0.0;
+               min: 600 0;
+               align: 0.5 0.5;
+               fixed: 1 0;
+               rel1 {
+                  relative: 0.5 1.0;
+                  to: "pad_t";
+               }
+               rel2 {
+                  relative: 0.5 0.0;
+                  to: "pad_b";
+               }
+            }
+         }
+         part { name: "pad_b";
+            scale : 1;
+            mouse_events: 0;
+            repeat_events: 1;
+            description { state: "default" 0.0;
+               align: 0.5 1.0;
+                  min: 0 95;
+               fixed: 0 1;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to_x: "pad_l";
+               }
+               rel2 {
+                  relative: 0.0 1.0;
+                  to_x: "pad_r";
+               }
+            }
+         }
+         part { name: "elm.swallow.entry";
+            type: SWALLOW;
+            scale : 1;
+            mouse_events: 1;
+            repeat_events: 1;
+            description { state: "default" 0.0;
+               align: 0.0 0.0;
+               fixed: 1 1;
+               rel1 {
+                  relative: 0.0 0.0;
+                  to: "pad_b";
+               }
+               rel2 {
+                  relative: 1.0 1.0;
+                  to: "pad_b";
+               }
+            }
+         }
+      }
+   }
 }
 
index 4eac120..25ca0ef 100755 (executable)
@@ -84,6 +84,7 @@ 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 _email_timezone_change_cb(keynode_t *key, void *data);
 
 
 static void layout_cb(ui_gadget_h ug, enum ug_mode mode, void *priv)
@@ -321,9 +322,13 @@ static bool app_create(void *data)
 
        UG_INIT_EFL(ad->win_main, UG_OPT_INDICATOR_ENABLE);
 
+       email_icu_mutex_init();
        /* icu */
        email_open_icu_pattern_generator();
 
+       //Register timezone changed callback
+       email_register_timezone_changed_callback(_email_timezone_change_cb, NULL);
+
        return true;
 }
 
@@ -333,6 +338,11 @@ static int app_terminate(void *data)
 
        set_app_terminated();
 
+       //email_close_icu_pattern_generator();
+       email_deregister_timezone_changed_callback(_email_timezone_change_cb);
+
+       email_icu_mutex_destroy();
+
        email_engine_finalize_force();
 
        int ret = e_dbus_shutdown();
@@ -1116,5 +1126,34 @@ static void popup_response_cb(void *data, Evas_Object *obj, void *event_info)
        debug_log("");
        elm_exit();
 }
+static void _email_timezone_change_cb(keynode_t *key, void *data)
+{
+       debug_log("");
+
+       char *timezone_id = NULL;
+       UChar utimezone_id[512] = {0,};
+       UErrorCode status = U_ZERO_ERROR;
+
+       timezone_id = vconf_get_str(VCONFKEY_SETAPPL_TIMEZONE_ID);
+
+       if (!timezone_id)
+               return;
+
+       u_uastrcpy(utimezone_id, timezone_id);
+
+       ucal_setDefaultTimeZone(utimezone_id, &status);
+
+       if (U_FAILURE(status))
+               return;
+
+       email_icu_mutex_lock();
+
+       email_close_icu_pattern_generator();
+       email_open_icu_pattern_generator();
+
+       email_icu_mutex_unlock();
+
+       debug_leave();
+}
 
 /* EOF */