Fix build errors.
authorJaeyun Jeong <jyjeong@samsung.com>
Fri, 26 Oct 2012 06:09:17 +0000 (15:09 +0900)
committerJaeyun Jeong <jyjeong@samsung.com>
Fri, 26 Oct 2012 06:09:17 +0000 (15:09 +0900)
Change-Id: I4297d5fe7de1e60351f76a5f1ab4f382cec15140

13 files changed:
common/CMakeLists.txt
common/msg-ui-bundle.h
common/msg-ui-common-utility.c
composer/include/msg-ui-composer-data.h
composer/src/ui-composer/msg-ui-composer-body-callback.c
composer/src/ui-composer/msg-ui-composer-main.c
composer/src/util/msg-ui-composer-util.c
composer/src/util/msg-ui-composer-util.h
main/CMakeLists.txt
main/message.c
org.tizen.message.manifest [new file with mode: 0755]
packaging/org.tizen.message.spec
thread/src/msg-ui-thread-main.c

index 1292e0d..27438e3 100755 (executable)
@@ -19,7 +19,7 @@ pkg_check_modules(pkgs REQUIRED
        appsvc
        bundle
        capi-appfw-application contacts-service
-       dlog drm-client drm-trusted
+       dlog drm-client
        elementary ecore ecore-x ecore-input ecore-imf ecore-file eina
        glib-2.0
        heynoti
@@ -31,13 +31,13 @@ pkg_check_modules(pkgs REQUIRED
        vconf
        syspopup-caller
        capi-media-sound-manager
+       capi-system-info
        capi-system-system-settings
        capi-media-metadata-extractor
        capi-media-image-util
        capi-media-player
        status
        libexif
-       tapi
 )
 
 FOREACH(flag ${pkgs_CFLAGS})
index 7f3ce8c..69e32fa 100755 (executable)
 #define MSG_BUNDLE_KEY_ATTACHFILE              "ATTACHFILE"
 #define MSG_BUNDLE_KEY_SUBJECT                 "SUBJECT"
 #define MSG_BUNDLE_KEY_BODY                    "BODY"
-#define MSG_BUNDLE_KEY_FORWARD                 "FORWARD"
 #define MSG_BUNDLE_KEY_RESEND                  "RESEND"
 #define MSG_BUNDLE_KEY_DELETE_MSG              "delete_msg"
 #define MSG_BUNDLE_KEY_RECIPIENT               "recipient"
 #define MSG_BUNDLE_KEY_NUMBER_INDEX            "number/index"
 #define MSG_BUNDLE_KEY_INDEX           "index"
+#define MSG_BUNDLE_KEY_REFRESH_CONV            "refresh_conv"
+#define MSG_BUNDLE_KEY_MESSAGE_BOX             "messagebox"
+#define MSG_BUNDLE_KEY_INDICATOR_MODE          "indicator_mode"
 
 #define MSG_BUNDLE_KEY_REQUEST_TYPE            "request_type"
 #define MSG_BUNDLE_KEY_FILE_TYPE               "file_type"
 #define MSG_BUNDLE_VALUE_FILE_URI              "file"
 #define MSG_BUNDLE_VALUE_NEW_MSG               "new_msg"
 #define MSG_BUNDLE_VALUE_MSG_ID                        "msg_id"
-#define MSG_BUNDLE_VALUE_CREATE_MSG            "create_msg"
 #define MSG_BUNDLE_VALUE_INTERNAL              "internal"
+#define MSG_BUNDLE_VALUE_EDIT                  "edit"
+#define MSG_BUNDLE_VALUE_FORWARD               "forward"
+#define MSG_BUNDLE_VALUE_NORMAL                        "normal"
 
 #define MSG_BUNDLE_VALUE_IMAGE                 "IMAGE"
 #define MSG_BUNDLE_VALUE_VIDEO                 "VIDEO"
 #define MSG_BUNDLE_VALUE_MULTI_FILE            "MULTI_FILE"
 #define MSG_BUNDLE_VALUE_OTHERS                "OTHERS"
 #define MSG_BUNDLE_VALUE_FILE                  "file"
+#define MSG_BUNDLE_VALUE_SELECT                "select"
 #define MSG_BUNDLE_VALUE_SELECT_MULTIPLE       "select-multiple"
 
 #define MSG_BUNDLE_VALUE_GET                   "get"
 
-#define MSG_BUNDLE_VALUE_NORMAL                        "normal"
-#define MSG_BUNDLE_VALUE_EDIT                  "edit"
 #define MSG_BUNDLE_VALUE_SEARCH_MODE                   "search_mode"
 #define MSG_BUNDLE_VALUE_NO_CONTENT                    "no_content"
 
 
 #define MSG_BUNDLE_VALUE_SPAM_SETTING  "spam_setting"
 
+#define MSG_BUNDLE_VALUE_MSGBOX_PROTECTED      "protected_msgbox"
+#define MSG_BUNDLE_VALUE_MSGBOX_SPAM   "spam_msgbox"
+
+#define MSG_BUNDLE_VALUE_INDICATOR             "indicator"
+#define MSG_BUNDLE_VALUE_NO_INDICATOR          "no_indicator"
+
 #endif /* __MSG_BUNDLE_H__ */
 
index d71747b..df95b24 100755 (executable)
@@ -220,7 +220,7 @@ char *msg_common_get_date_text(const char* locale, char* skeleton, void* time)
        return strdup(formattedString);
 }
 
-char *msg_common_get_display_date(const char* locale, char* bestPattern, time_t *msg_t)
+char *msg_common_get_display_date(const char* locale, char* bestPattern, char* yearPattern, time_t *msg_t)
 {
        struct tm msg_time, cur_time;
        time_t cur_t;
@@ -236,20 +236,20 @@ char *msg_common_get_display_date(const char* locale, char* bestPattern, time_t
        msg_day = (msg_time.tm_year - 1900) * 365 + msg_time.tm_yday + (msg_time.tm_year - 1900 - 1) / 4;
        cur_day = (cur_time.tm_year - 1900) * 365 + cur_time.tm_yday + (cur_time.tm_year - 1900 - 1) / 4;
 
-       diffday = cur_day - msg_day;
+       if (msg_time.tm_year - cur_time.tm_year != 0)
+               date_str = msg_common_get_formatted_date(locale, yearPattern, msg_t);
+       else
+               date_str = msg_common_get_formatted_date(locale, bestPattern, msg_t);
 
+       diffday = cur_day - msg_day;
        if (diffday == 0)
-               snprintf(msg_date_buf, sizeof(msg_date_buf), "%s", dgettext("sys_string", "IDS_COM_BODY_TODAY"));
+               snprintf(msg_date_buf, sizeof(msg_date_buf), "%s (%s)", dgettext("sys_string", "IDS_COM_BODY_TODAY"), date_str);
        else if (diffday == 1)
-               snprintf(msg_date_buf, sizeof(msg_date_buf), "%s", dgettext("sys_string", "IDS_COM_BODY_YESTERDAY"));
-       else {
-               date_str = msg_common_get_formatted_date(locale, bestPattern, msg_t);
-               if (date_str) {
-                       strncpy(msg_date_buf, date_str, sizeof(msg_date_buf) - 1);
-                       free(date_str);
-               }
-       }
+               snprintf(msg_date_buf, sizeof(msg_date_buf), "%s (%s)", dgettext("sys_string", "IDS_COM_BODY_YESTERDAY"), date_str);
+       else
+               strncpy(msg_date_buf, date_str, sizeof(msg_date_buf) - 1);
 
+       free(date_str);
        return strdup(msg_date_buf);
 }
 
@@ -413,35 +413,34 @@ MSG_BOOL msg_common_is_valid_email_addr(const char *address)
        MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
        MSG_UI_RETVM_IF(MSG_UI_LEVEL_ERR, address == NULL, FALSE, "address is NULL");
 
-       const char *pszOneChar = address;
-       MSG_BOOL bIsPrefixStringCorrect = FALSE;
-       MSG_BOOL bIsSurfixStringCorrect = FALSE;
-       MSG_BOOL bIsExistAt = FALSE;
-
-       for (; *pszOneChar != '\0'; ++pszOneChar) {
-               if (bIsExistAt == FALSE) {
-                       if (isalnum(*pszOneChar) || *pszOneChar == '.' || *pszOneChar == '_' || *pszOneChar == '-') {
-                               bIsPrefixStringCorrect = TRUE;
-                               continue;
-                       } else if (*pszOneChar == '@') {
-                               if (bIsPrefixStringCorrect == FALSE)
-                                       return FALSE;
-                               else
-                                       bIsExistAt = TRUE;
-                       } else {
+       char *token1 = NULL;
+       char *token2 = NULL;
+
+       MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "address = %s", address);
+
+       token1 = strchr(address, '@');
+       if (!token1) {
+               MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "address has no @");
                                return FALSE;
                        }
-               } else {
-                       if (isalnum(*pszOneChar) || *pszOneChar == '.' || *pszOneChar == '_' || *pszOneChar == '-') {
-                               bIsSurfixStringCorrect = TRUE;
-                               continue;
-                       } else {
+
+       if (strchr(&token1[1], '@')) {
+               MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "address cannot have two more @");
                                return FALSE;
                        }
+
+       token2 = strchr(token1, '.');
+       if (!token2) {
+               MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "there's no . character");
+               return FALSE;
                }
+
+       if ((token2 == token1 + 1) || (*(token2 + 1) == '\0')) {
+               MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "address type should be \'xxx.xxx\'");
+               return FALSE;
        }
 
-       return (bIsPrefixStringCorrect) && (bIsSurfixStringCorrect) && (bIsExistAt);
+       return TRUE;
 }
 
 MSG_BOOL msg_common_is_connected_call(void)
@@ -488,6 +487,9 @@ MSG_BOOL msg_common_get_font_size(int *index, int *font_size)
        }
 
        switch (*index) {
+       case MSG_APP_FONT_SIZE_INDEX_GIANT :
+               *font_size = MSG_APP_FONT_SIZE_GIANT;
+               break;
        case MSG_APP_FONT_SIZE_INDEX_HUGE :
                *font_size = MSG_APP_FONT_SIZE_HUGE;
                break;
@@ -500,9 +502,6 @@ MSG_BOOL msg_common_get_font_size(int *index, int *font_size)
        case MSG_APP_FONT_SIZE_INDEX_SMALL :
                *font_size = MSG_APP_FONT_SIZE_SMALL;
                break;
-       case MSG_APP_FONT_SIZE_INDEX_TINY :
-               *font_size = MSG_APP_FONT_SIZE_TINY;
-               break;
        case MSG_APP_FONT_SIZE_INDEX_SYSTEM_FONT :
        default :
                *font_size = MSG_APP_FONT_SIZE_NORMAL;
@@ -532,6 +531,83 @@ MSG_BOOL msg_common_set_font_size(int index)
        return TRUE;
 }
 
+MSG_BOOL msg_common_increase_font_size()
+{
+       MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+
+       int index = -1;
+       int increase = -1;
+       if (vconf_get_int(VCONFKEY_MSG_APP_FONT_SIZE, &index) < 0) {
+               MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "vconf_get_int(font_size) is failed !!");
+               return FALSE;
+       } else {
+               MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "font size = %d", index);
+       }
+
+       switch (index) {
+       case MSG_APP_FONT_SIZE_INDEX_GIANT :
+               break;
+       case MSG_APP_FONT_SIZE_INDEX_HUGE :
+               increase = MSG_APP_FONT_SIZE_INDEX_GIANT;
+               break;
+       case MSG_APP_FONT_SIZE_INDEX_LARGE :
+               increase = MSG_APP_FONT_SIZE_INDEX_HUGE;
+               break;
+       case MSG_APP_FONT_SIZE_INDEX_NORMAL :
+               increase = MSG_APP_FONT_SIZE_INDEX_LARGE;
+               break;
+       case MSG_APP_FONT_SIZE_INDEX_SMALL :
+               increase = MSG_APP_FONT_SIZE_INDEX_NORMAL;
+               break;
+       default :
+               increase = MSG_APP_FONT_SIZE_NORMAL;
+               break;
+       }
+       if (increase != -1)
+               msg_common_set_font_size(increase);
+
+       return TRUE;
+}
+
+MSG_BOOL msg_common_decrease_font_size()
+{
+       MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+
+       int index = -1;
+       int decrease = -1;
+       if (vconf_get_int(VCONFKEY_MSG_APP_FONT_SIZE, &index) < 0) {
+               MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "vconf_get_int(font_size) is failed !!");
+               return FALSE;
+       } else {
+               MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "font size = %d", index);
+       }
+
+       switch (index) {
+       case MSG_APP_FONT_SIZE_INDEX_GIANT :
+               decrease = MSG_APP_FONT_SIZE_INDEX_HUGE;
+               break;
+       case MSG_APP_FONT_SIZE_INDEX_HUGE :
+               decrease = MSG_APP_FONT_SIZE_INDEX_LARGE;
+               break;
+       case MSG_APP_FONT_SIZE_INDEX_LARGE :
+               decrease = MSG_APP_FONT_SIZE_INDEX_NORMAL;
+               break;
+       case MSG_APP_FONT_SIZE_INDEX_NORMAL :
+               decrease = MSG_APP_FONT_SIZE_INDEX_SMALL;
+               break;
+       case MSG_APP_FONT_SIZE_INDEX_SMALL :
+               break;
+       default :
+               decrease = MSG_APP_FONT_SIZE_NORMAL;
+               break;
+       }
+       if (decrease != -1)
+               msg_common_set_font_size(decrease);
+
+       return TRUE;
+
+}
+
 MSG_BOOL msg_common_apply_font_size(const char *widget_name, Evas_Object *obj)
 {
        MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
@@ -923,3 +999,112 @@ const char *msg_common_get_file_icon(const char *filepath)
 
        return icon_path;
 }
+
+int msg_common_add_block_number(msg_handle_t msgHandle, const char *address)
+{
+       D_ENTER;
+       msg_error_t err = MSG_SUCCESS;
+       msg_struct_t filter = msg_create_struct(MSG_STRUCT_FILTER);
+
+       msg_set_int_value(filter, MSG_FILTER_TYPE_INT, MSG_FILTER_BY_ADDRESS_SAME);
+       msg_set_str_value(filter, MSG_FILTER_VALUE_STR, (char *)address, DEF_MAX_FILTER_LEN);
+
+       err = msg_add_filter(msgHandle, filter);
+       if (err != MSG_SUCCESS) {
+               D_EMSG("failed to add filter");
+               msg_release_struct(&filter);
+               return err;
+       }
+
+       if (filter)
+               msg_release_struct(&filter);
+
+       D_LEAVE;
+       return err;
+}
+
+int msg_common_delete_block_number(msg_handle_t msgHandle, const char *address)
+{
+       D_ENTER;
+
+       MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, !msgHandle || !address, false);
+
+       msg_struct_list_s filter_list = {0,};
+       msg_error_t err = MSG_SUCCESS;
+
+       err = msg_get_filter_list(msgHandle, &filter_list);
+
+       if (err != MSG_SUCCESS) {
+               D_EMSG("Getting filter list fail");
+               return err;
+       }
+
+       if (filter_list.nCount == 0) {
+               D_EMSG("filter count is 0");
+               msg_release_list_struct(&filter_list);
+               return MSG_ERR_UNKNOWN;
+       }
+
+       int i = 0;
+       int filter_type = -1;
+       int filter_id = -1;
+       char filter_address[DEF_BUF_LEN] = {0,};
+
+       for (i=0; i<filter_list.nCount; i++) {
+               msg_get_int_value(filter_list.msg_struct_info[i], MSG_FILTER_TYPE_INT, &filter_type);
+               if (filter_type == MSG_FILTER_BY_ADDRESS_SAME) {
+                       msg_get_str_value(filter_list.msg_struct_info[i], MSG_FILTER_VALUE_STR, filter_address, sizeof(filter_address));
+                       if (strncmp(filter_address, address, sizeof(filter_address)) == 0) {
+                               msg_get_int_value(filter_list.msg_struct_info[i], MSG_FILTER_ID_INT, &filter_id);
+                               break;
+                       }
+               }
+       }
+
+       if (filter_id != -1)
+               msg_delete_filter(msgHandle, filter_id);
+
+       msg_release_list_struct(&filter_list);
+       return err;
+}
+
+int msg_common_check_block_number(msg_handle_t msgHandle, const char *address, bool *result)
+{
+       D_ENTER;
+       MSG_UI_RETVM_IF(MSG_UI_LEVEL_ERR, !msgHandle || !address, FALSE, "NULL_POINTER");
+
+       msg_struct_list_s filter_list = {0,};
+       msg_error_t err = MSG_SUCCESS;
+
+       err = msg_get_filter_list(msgHandle, &filter_list);
+
+       if (err != MSG_SUCCESS) {
+               D_EMSG("Getting filter list fail");
+               return err;
+       }
+
+       if (filter_list.nCount == 0) {
+               *result = false;
+       } else {
+               bool isFound = false;
+               int i = 0;
+               int filter_type = -1;
+               char filter_address[DEF_BUF_LEN] = {0,};
+               for (i=0; i<filter_list.nCount; i++) {
+                       msg_get_int_value(filter_list.msg_struct_info[i], MSG_FILTER_TYPE_INT, &filter_type);
+                       if (filter_type == MSG_FILTER_BY_ADDRESS_SAME) {
+                               msg_get_str_value(filter_list.msg_struct_info[i], MSG_FILTER_VALUE_STR, filter_address, sizeof(filter_address));
+
+                               if (strncmp(filter_address, address, sizeof(filter_address)) == 0) {
+                                       isFound = true;
+                                       break;
+                               }
+                       }
+               }
+               *result = isFound;
+       }
+
+       msg_release_list_struct(&filter_list);
+       return err;
+}
+
index d7f6732..3952e27 100755 (executable)
@@ -470,7 +470,6 @@ typedef struct _MSG_COMPOSER_DATA_S {
 
        /*message handler*/
        msg_handle_t msg_handle;
-       void *tapi_handle;
 
        /*module data*/
        SUBJECT_S sub_data;
@@ -525,7 +524,6 @@ typedef struct _MSG_COMPOSER_DATA_S {
 
        Ecore_Thread *attach_thread;
        Ecore_Job *job_thread_end;
-       Ecore_Timer *flight_mode_timer;
 
        Elm_Theme *th;
 
index b1c0d14..9b29467 100755 (executable)
-/*\r
- * Copyright 2012  Samsung Electronics Co., Ltd\r
- *\r
- * Licensed under the Flora License, Version 1.0 (the "License");\r
- * you may not use this file except in compliance with the License.\r
- * You may obtain a copy of the License at\r
- *\r
- *    http://www.tizenopensource.org/license\r
- *\r
- * Unless required by applicable law or agreed to in writing, software\r
- * distributed under the License is distributed on an "AS IS" BASIS,\r
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- * See the License for the specific language governing permissions and\r
- * limitations under the License.\r
- */\r
-\r
-\r
- /* includes */\r
-#include "msg-ui-composer-body.h"\r
-#include "msg-ui-composer-recipient.h"\r
-#include "msg-ui-composer-main.h"\r
-#include "msg-ui-composer-body-page.h"\r
-#include "msg-ui-composer-body-callback.h"\r
-#include "msg-ui-composer-common.h"\r
-#include "msg-ui-composer-attachment.h"\r
-#include "msg-ui-composer-subject.h"\r
-#include "msg-ui-composer-message.h"\r
-#include "msg-ui-composer-popup.h"\r
-#include "msg-ui-composer-util.h"\r
-#include "msg-ui-composer-external.h"\r
-#include "syspopup_caller.h"\r
-#include <tapi_common.h>\r
-#include <ITapiModem.h>\r
-\r
-/*==================================================================================================\r
-*                                                              FUNCTION IMPLEMENTATIONS\r
-*==================================================================================================*/\r
-static void __add_list_popup_clicked_cb(void *data, Evas_Object *obj, void *event_info)\r
-{\r
-       D_ENTER;\r
-\r
-       if (!data || !event_info) {\r
-               D_EMSG("invalid argument, argument data is NULL");\r
-               return;\r
-       }\r
-\r
-       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;\r
-\r
-       if (cd->add_menu_clicked)\r
-               return;\r
-\r
-       Elm_Object_Item *item = (Elm_Object_Item *)event_info;\r
-       elm_list_item_selected_set(item, EINA_FALSE);\r
-\r
-       const char *label = elm_object_item_text_get(item);\r
-       if (!label) {\r
-               D_EMSG("label is NULL !!");\r
-               return;\r
-       }\r
-\r
-       cd->add_menu_clicked = true;\r
-\r
-       MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "label = %s", label);\r
-       if (cd->isAppControl) {\r
-               if (!g_strcmp0(label, MSGC_STR_SUBJECT)) {\r
-                       msg_ui_composer_add_subject(cd);\r
-               } else {\r
-                       D_EMSG("Unknown Menu List Item");\r
-               }\r
-       } else {\r
-               if (!g_strcmp0(label, MSGC_STR_SUBJECT)) {\r
-                       msg_ui_composer_add_subject(cd);\r
-               } else if (!g_strcmp0(label, MSGC_STR_GALLERY)) {\r
-                       msg_ui_composer_external_call(cd, COMPOSER_EXT_TYPE_GALLERY, NULL);\r
-               } else if (!g_strcmp0(label, MSGC_STR_MYFILE)) {\r
-                       msg_ui_composer_external_call(cd, COMPOSER_EXT_TYPE_MYFILE, NULL);\r
-               } else if (!g_strcmp0(label, _MSGSTR("IDS_MSGC_BODY_TAKE_PICTURE"))) {\r
-                       msg_ui_composer_external_call(cd, COMPOSER_EXT_TYPE_CAMERA, NULL);\r
-               } else if (!g_strcmp0(label, _MSGSTR("IDS_MSGC_BODY_CAPTURE_VIDEO"))) {\r
-                       msg_ui_composer_external_call(cd, COMPOSER_EXT_TYPE_CAMCORDER, NULL);\r
-               } else if (!g_strcmp0(label, MSGC_STR_CONTACT)) {\r
-                       msg_ui_composer_external_call(cd, COMPOSER_EXT_TYPE_NAMECARD, NULL);\r
-               } else if (!g_strcmp0(label, _SYSSTR("IDS_COM_BODY_CALENDAR"))) {\r
-                       msg_ui_composer_external_call(cd, COMPOSER_EXT_TYPE_CALENDAR, NULL);\r
-               } else if (!g_strcmp0(label, _SYSSTR("IDS_COM_BODY_MEMO"))) {\r
-                       msg_ui_composer_external_call(cd, COMPOSER_EXT_TYPE_MEMO, NULL);\r
-               } else {\r
-                       D_EMSG("Unknown Menu List Item");\r
-               }\r
-       }\r
-\r
-       MSGC_EVAS_OBJECT_DEL(cd->add_popup);\r
-       cd->add_button_clicked = false;\r
-       cd->add_menu_clicked = false;\r
-       D_LEAVE;\r
-}\r
-\r
-static void __add_list_popup_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info)\r
-{\r
-       D_ENTER;\r
-\r
-       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;\r
-       D_MSG_RETM_IF(cd == NULL, "composer data is NULL");\r
-       MSGC_EVAS_OBJECT_DEL(cd->add_popup);\r
-       cd->add_button_clicked = false;\r
-       cd->add_menu_clicked = false;\r
-\r
-       D_LEAVE;\r
-}\r
-\r
-static void __add_list_popup_show(void *data)\r
-{\r
-       D_ENTER;\r
-\r
-       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;\r
-       Evas_Object *popup = NULL;\r
-       Evas_Object *list = NULL;\r
-       int count = 0;\r
-       int list_padding = 4;\r
-\r
-\r
-       list = elm_list_add(cd->main_window);\r
-       D_MSG_RETM_IF(list == NULL, "list is NULL");\r
-       elm_list_mode_set(list, ELM_LIST_EXPAND);\r
-\r
-       Elm_Object_Item *item = NULL;\r
-\r
-       if (cd->isAppControl) {\r
-                       item = elm_list_item_append(list, MSGC_STR_SUBJECT, NULL, NULL, __add_list_popup_clicked_cb, data);\r
-               ++count;\r
-               if (cd->isSubject)\r
-                       elm_object_item_disabled_set(item, EINA_TRUE);\r
-\r
-       } else {\r
-               if (!cd->isSubject) {\r
-                       elm_list_item_append(list, MSGC_STR_SUBJECT, NULL, NULL, __add_list_popup_clicked_cb, data);\r
-                       ++count;\r
-               }\r
-\r
-               elm_list_item_append(list, MSGC_STR_GALLERY, NULL, NULL, __add_list_popup_clicked_cb, data);\r
-               ++count;\r
-               elm_list_item_append(list, _MSGSTR("IDS_MSGC_BODY_TAKE_PICTURE"), NULL, NULL, __add_list_popup_clicked_cb, data);\r
-               ++count;\r
-               elm_list_item_append(list, _MSGSTR("IDS_MSGC_BODY_CAPTURE_VIDEO"), NULL, NULL, __add_list_popup_clicked_cb, data);\r
-               ++count;\r
-               elm_list_item_append(list, MSGC_STR_MYFILE, NULL, NULL, __add_list_popup_clicked_cb, data);\r
-               ++count;\r
-               elm_list_item_append(list, MSGC_STR_CONTACT, NULL, NULL, __add_list_popup_clicked_cb, data);\r
-               ++count;\r
-               elm_list_item_append(list, _SYSSTR("IDS_COM_BODY_CALENDAR"), NULL, NULL, __add_list_popup_clicked_cb, data);\r
-               ++count;\r
-               elm_list_item_append(list, _SYSSTR("IDS_COM_BODY_MEMO"), NULL, NULL, __add_list_popup_clicked_cb, data);\r
-               ++count;\r
-       }\r
-\r
-       elm_list_go(list);\r
-\r
-       if (count >= 4) {\r
-               count = 4;\r
-\r
-               int popup_height = MSGC_POPUP_LIST_H * count + list_padding;\r
-               evas_object_size_hint_max_set(list, -1, popup_height * elm_scale_get());\r
-       }\r
-\r
-       popup = msg_ui_composer_list_popup_create(cd, _SYSSTR("IDS_COM_POP_ATTACH"), list, "min_menustyle");\r
-\r
-       Evas_Object *btn1 = elm_button_add(popup);\r
-       elm_object_style_set(btn1, "popup_button/default");\r
-       elm_object_text_set(btn1, MSGC_STR_BUTTON_CLOSE);\r
-       elm_object_part_content_set(popup, "button1", btn1);\r
-       evas_object_smart_callback_add(btn1, "clicked", __add_list_popup_btn_clicked_cb, cd);\r
-\r
-       cd->add_popup = popup;\r
-\r
-       D_LEAVE;\r
-}\r
-\r
-static void __msgc_show_bubble_view(void *data, msg_thread_id_t tid)\r
-{\r
-       D_ENTER;\r
-       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;\r
-       D_MSG_RETM_IF(cd == NULL, "cd is NULL");\r
-\r
-       /* show indicator area */\r
-       elm_layout_theme_set(cd->base, "layout", "application", "default");\r
-       elm_win_indicator_mode_set(cd->main_window, ELM_WIN_INDICATOR_SHOW);\r
-\r
-       msg_ui_composer_change_bubble_view(cd);\r
-\r
-       if (tid <= 0) {\r
-               D_EMSG("Can not find tid = %d !!", tid);\r
-               msg_ui_composer_message_destroy();\r
-               ug_destroy_me(cd->ug);\r
-\r
-               return;\r
-       }\r
-\r
-       msg_ui_composer_bubble_data_set(cd, tid);\r
-       msg_ui_bubble_start_view(cd->bubble_data);\r
-       msg_ui_composer_navi_title_set((void *)cd);\r
-\r
-       /* set recipient list for bubble composer */\r
-       msg_ui_composer_recipient_set_recipient_list(cd, tid);\r
-\r
-       D_LEAVE;\r
-}\r
-\r
-static void __nosim_popup_delete_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)\r
-{\r
-       D_ENTER;\r
-\r
-       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;\r
-       D_MSG_RETM_IF(cd == NULL, "Composer data is NULL");\r
-\r
-       if (cd->msg_ug_mode == MSG_UG_MODE_ONLY_COMPOSER)\r
-               ug_destroy_me(cd->ug);\r
-\r
-       D_LEAVE;\r
-}\r
-\r
-void msg_ui_composer_body_make_and_send_message(void *data)\r
-{\r
-       D_ENTER;\r
-       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;\r
-       D_MSG_RETM_IF(cd == NULL, "Composer Data is NULL");\r
-       msg_thread_id_t tid = 0;\r
-\r
-       /*Make message*/\r
-       msg_ui_composer_message_init();\r
-\r
-       if (msg_ui_composer_recipient_read_data(cd) != COMPOSER_RETURN_SUCCESS) {\r
-               D_EMSG("Make recipient data Error");\r
-               goto error_return;\r
-       }\r
-\r
-       if (__msg_ui_composer_body_read_data(cd) != COMPOSER_RETURN_SUCCESS) {\r
-               D_EMSG("Make body data Error");\r
-               goto error_return;\r
-       }\r
-\r
-       /*Send message*/\r
-       COMPOSER_RETURN_TYPE_E ret = msg_ui_composer_message_make_and_send(cd->msg_handle, &tid);\r
-\r
-       /* reset region info */\r
-       MSG_COMPOSER_BODY_S *body_data = &cd->body_data;\r
-       body_data->region_order = COMPOSER_REGION_ORDER_UNDETERMINDED;\r
-\r
-       if (ret == COMPOSER_RETURN_SUCCESS) {\r
-               D_MSG("Send Success");\r
-\r
-               if (cd->msg_ug_mode == MSG_UG_MODE_ONLY_COMPOSER || cd->composer_mode == MSG_COMPOSER_MODE_FORWARD) {\r
-                       ug_destroy_me(cd->ug);\r
-               } else if (cd->msg_ug_mode == MSG_UG_MODE_FULL_COMPOSER) {\r
-                       __msgc_show_bubble_view(cd, tid);\r
-                       msg_ui_composer_clear(cd);\r
-               } else {\r
-                       msg_ui_composer_clear(cd);\r
-               }\r
-\r
-               cd->composer_mode = MSG_COMPOSER_MODE_NORMAL;\r
-\r
-                                       } else {\r
-               if (ret == COMPOSER_RETURN_NO_SIM) {\r
-                       D_EMSG("Send Fail : NO SIM");\r
-                       Evas_Object *popup = msg_ui_composer_status_popup_show(cd, MSGC_STR_POP_NOSIM, 1);\r
-\r
-                       if (cd->msg_ug_mode == MSG_UG_MODE_ONLY_COMPOSER || cd->composer_mode == MSG_COMPOSER_MODE_FORWARD) {\r
-                               evas_object_event_callback_add(popup, EVAS_CALLBACK_DEL, __nosim_popup_delete_cb, cd);\r
-                       } else if (cd->msg_ug_mode == MSG_UG_MODE_FULL_COMPOSER) {\r
-                               __msgc_show_bubble_view(cd, tid);\r
-                       }\r
-\r
-                       msg_ui_composer_clear(cd);\r
-               } else {\r
-                       D_EMSG("Send Fail : Unable Send");\r
-                       if ((cd->msg_ug_mode == MSG_UG_MODE_ONLY_COMPOSER || cd->composer_mode == MSG_COMPOSER_MODE_FORWARD))\r
-                               ug_destroy_me(cd->ug);\r
-                       else\r
-                               msg_ui_composer_status_popup_show(cd, MSGC_STR_POP_UNABLE_SEND, COMPOSER_STATUS_POPUP_DEFAULT_TIME);\r
-                                       }\r
-\r
-               cd->composer_mode = MSG_COMPOSER_MODE_NORMAL;\r
-\r
-               goto error_return;\r
-       }\r
-\r
-       msg_ui_composer_message_destroy();\r
-       D_LEAVE;\r
-       return;\r
-\r
-error_return:\r
-       msg_ui_composer_message_destroy();\r
-\r
-       if (cd->send_button)\r
-               elm_object_disabled_set(cd->send_button, EINA_FALSE);\r
-\r
-       D_LEAVE;\r
-}\r
-\r
-static void __msgc_flight_mode_tapi_cb(TapiHandle *handle, int result, void *data, void *user_data)\r
-{\r
-       D_ENTER;\r
-       bool is_success = false;\r
-\r
-       switch (result) {\r
-       case TAPI_POWER_FLIGHT_MODE_RESP_ON:\r
-               D_MSG("TAPI_POWER_FLIGHT_MODE_RESP_ON");\r
-               break;\r
-\r
-       case TAPI_POWER_FLIGHT_MODE_RESP_OFF:\r
-               D_MSG("TAPI_POWER_FLIGHT_MODE_RESP_OFF");\r
-               is_success = true;\r
-               break;\r
-\r
-       case TAPI_POWER_FLIGHT_MODE_RESP_FAIL:\r
-               D_MSG("TAPI_POWER_FLIGHT_MODE_RESP_FAIL");\r
-               break;\r
-\r
-       case TAPI_POWER_FLIGHT_MODE_RESP_MAX:\r
-               D_MSG("TAPI_POWER_FLIGHT_MODE_RESP_MAX");\r
-               break;\r
-       default:\r
-               D_MSG("result = %d", result);\r
-               break;\r
-       }\r
-\r
-       if (!is_success)\r
-               D_EMSG("flight mode off is failed");\r
-\r
-       D_LEAVE;\r
-}\r
-\r
-static Eina_Bool __msgc_flight_mode_enabled_check_timer_cb(void *data)\r
-{\r
-       D_MSG_RETVM_IF(data == NULL, ECORE_CALLBACK_CANCEL, "data is NULL");\r
-       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;\r
-\r
-       int network_status = -1;\r
-       static int count = 0;\r
-       bool ret = false;\r
-\r
-       if (count >= 100) {     /* 0.5 sec * 100 = 50 sec */\r
-               D_EMSG("self time expiration");\r
-               MSGC_EVAS_OBJECT_DEL(cd->progress_popup);\r
-               goto return_end;\r
-                       }\r
-\r
-       ++count;\r
-\r
-       /* check if call network is enabled - to send message l*/\r
-       ret = msg_composer_get_network_status(&network_status);\r
-       if (ret == true) {\r
-               if (network_status == VCONFKEY_TELEPHONY_SVCTYPE_NONE ||\r
-                               network_status == VCONFKEY_TELEPHONY_SVCTYPE_NOSVC ||\r
-                               network_status == VCONFKEY_TELEPHONY_SVCTYPE_EMERGENCY ||\r
-                               network_status == VCONFKEY_TELEPHONY_SVCTYPE_SEARCH) {\r
-                       D_MSG("Cannot send message - check again");\r
-                       return ECORE_CALLBACK_RENEW;\r
-               }\r
-       } else {\r
-               D_EMSG("msg_composer_get_network_status is failed");\r
-               return ECORE_CALLBACK_RENEW;\r
-       }\r
-\r
-       MSGC_EVAS_OBJECT_DEL(cd->progress_popup);\r
-\r
-       D_MSG("try to send message");\r
-       msg_ui_composer_body_send_btn_clicked_cb(cd, NULL, NULL);\r
-\r
-return_end:\r
-\r
-       count = 0;\r
-       cd->flight_mode_timer = NULL;\r
-\r
-       return ECORE_CALLBACK_CANCEL;\r
-}\r
-\r
-static void __flight_mode_popup_ok_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info)\r
-{\r
-       D_ENTER;\r
-       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;\r
-       D_MSG_RETM_IF(cd == NULL, "composer data is NULL");\r
-\r
-       Evas_Object *check = (Evas_Object *)evas_object_data_get(cd->custom_popup, "check_box");\r
-\r
-       if (elm_check_state_get(check)) {\r
-               /* set flight mode off*/\r
-               if (msg_composer_set_flight_mode(cd->tapi_handle, TAPI_POWER_FLIGHT_MODE_LEAVE, __msgc_flight_mode_tapi_cb, NULL) == false) {\r
-                       D_EMSG("msg_composer_set_flight_mode is failed");\r
-               } else {\r
-                       /* show progress popup */\r
-                       MSGC_EVAS_OBJECT_DEL(cd->progress_popup);\r
-                       cd->progress_popup = msg_ui_composer_progress_popup_show(cd, _MSGSTR("Disabling Flight mode"));\r
-\r
-                       /* give focus to back btn to hide keypad */\r
-                       elm_object_focus_set(cd->back_btn, EINA_TRUE);\r
-\r
-                       if (cd->flight_mode_timer) {\r
-                               ecore_timer_del(cd->flight_mode_timer);\r
-                               cd->flight_mode_timer = NULL;\r
-                       }\r
-                       cd->flight_mode_timer = ecore_timer_add(0.5, __msgc_flight_mode_enabled_check_timer_cb, cd);\r
-               }\r
-       } else {\r
-               D_MSG("checkbox is not checked");\r
-       }\r
-\r
-       MSGC_EVAS_OBJECT_DEL(cd->custom_popup);\r
-\r
-       if (cd->send_button)\r
-               elm_object_disabled_set(cd->send_button, EINA_FALSE);\r
-\r
-       D_LEAVE;\r
-}\r
-\r
-static void __flight_mode_popup_cancel_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info)\r
-{\r
-       D_ENTER;\r
-       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;\r
-       D_MSG_RETM_IF(cd == NULL, "composer data is NULL");\r
-\r
-       MSGC_EVAS_OBJECT_DEL(cd->custom_popup);\r
-\r
-       if (cd->send_button)\r
-               elm_object_disabled_set(cd->send_button, EINA_FALSE);\r
-\r
-       D_LEAVE;\r
-}\r
-\r
-void msg_ui_composer_body_send_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info)\r
-{\r
-       D_ENTER;\r
-       D_MSG_RETM_IF(data == NULL, "Composer Data is NULL");\r
-\r
-       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;\r
-\r
-       if (cd->send_button)\r
-               elm_object_disabled_set(cd->send_button, EINA_TRUE);\r
-\r
-       /* check flight mode */\r
-       int flight_mode = 0;\r
-       if (msg_composer_get_flight_mode(&flight_mode) && flight_mode) {\r
-               /*get tapi handle */\r
-               if (!cd->tapi_handle)\r
-                       cd->tapi_handle = (void *)tel_init(NULL);\r
-\r
-               if (!cd->tapi_handle) {\r
-                       D_EMSG("tel_init is failed");\r
-       } else {\r
-                       /* show popup */\r
-                       Evas_Object *popup = NULL;\r
-                       Evas_Object *btn1 = NULL;\r
-                       Evas_Object *btn2 = NULL;\r
-                       char *popup_msg = _MSGSTR("Unable to send messages while Flight mode is enabled. Disable Flight mode and try again");\r
-                       char *checkbox_msg = _MSGSTR("Disable Flight mode");\r
-\r
-                       MSGC_EVAS_OBJECT_DEL(cd->custom_popup);\r
-\r
-                       popup = msg_ui_composer_checkbox_popup_create(cd, NULL, popup_msg, checkbox_msg);\r
-\r
-                       btn1 = msg_ui_composer_popup_button_create(popup, _SYSSTR("IDS_COM_SK_OK"));\r
-                       elm_object_part_content_set(popup, "button1", btn1);\r
-                       evas_object_smart_callback_add(btn1, "clicked", __flight_mode_popup_ok_btn_clicked_cb, cd);\r
-                       btn2 = msg_ui_composer_popup_button_create(popup, _SYSSTR("IDS_COM_SK_CANCEL"));\r
-                       elm_object_part_content_set(popup, "button2", btn2);\r
-                       evas_object_smart_callback_add(btn2, "clicked", __flight_mode_popup_cancel_btn_clicked_cb, cd);\r
-\r
-                       cd->custom_popup = popup;\r
-\r
-                       elm_object_focus_set(popup, EINA_TRUE);\r
-               }\r
-\r
-               return;\r
-       }\r
-\r
-       /*Check recipient available sending*/\r
-       RECIPIENT_S *rd = cd->recipient;\r
-       if (rd) {\r
-               /*add recipient, if entry text exist*/\r
-               Evas_Object *entry = elm_multibuttonentry_entry_get(rd->mbe);\r
-               char *entry_txt = elm_entry_markup_to_utf8(elm_entry_entry_get(entry));\r
-               if (entry_txt) {\r
-                       if (strlen(entry_txt) > 0) {\r
-                               if (NULL == elm_multibuttonentry_item_append(rd->mbe, entry_txt, NULL, NULL)) {\r
-                                       g_free(entry_txt);\r
-\r
-                                       if (cd->send_button)\r
-                                               elm_object_disabled_set(cd->send_button, EINA_FALSE);\r
-\r
-                                       return;\r
-                               }\r
-                       }\r
-                       g_free(entry_txt);\r
-               }\r
-\r
-               /*check recipient count is zero*/\r
-               if (msg_ui_composer_recipient_count_get(rd) == 0) {\r
-                       D_EMSG("there is no recipient");\r
-                       //msg_ui_composer_common_tickernoti(cd, COMPOSER_TICKERNOTI_NO_RECIPIENT);\r
-\r
-                       /* change focus to recipient */\r
-                       if (cd->msg_ug_mode == MSG_UG_MODE_ONLY_COMPOSER || cd->msg_ug_mode == MSG_UG_MODE_FULL_COMPOSER)\r
-                               msg_ui_composer_recipient_focus_set(cd->recipient);\r
-\r
-                       if (cd->send_button)\r
-                               elm_object_disabled_set(cd->send_button, EINA_FALSE);\r
-\r
-                       return;\r
-               }\r
-       }\r
-\r
-       msg_ui_composer_body_make_and_send_message(cd);\r
-\r
-       D_LEAVE;\r
-       return;\r
-}\r
-\r
-void msg_ui_composer_body_add_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info)\r
-{\r
-       D_ENTER;\r
-\r
-       if (!data) {\r
-               MSG_UI_DEBUG(MSG_UI_LEVEL_ASSERT, "[ASSERT] error data is NULL");\r
-               return;\r
-       }\r
-\r
-       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;\r
-\r
-       if (cd->add_button_clicked)\r
-               return;\r
-\r
-       cd->add_button_clicked = true;\r
-       __add_list_popup_show(cd);\r
-\r
-       D_LEAVE;\r
-}\r
-\r
-void msg_ui_composer_body_entry_maxlength_reached_cb(void *data, Evas_Object *obj, void *event_info)\r
-{\r
-       D_ENTER;\r
-       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;\r
-       D_MSG_RETM_IF(cd == NULL, "Composer Data is NULL");\r
-\r
-       msg_ui_composer_common_tickernoti(cd, COMPOSER_TICKERNOTI_MAXLENGHT_CHAR);\r
-\r
-       D_LEAVE;\r
-}\r
-\r
-void msg_ui_composer_body_entry_changed_cb(void *data, Evas_Object *obj, void *event_info)\r
-{\r
-       D_ENTER;\r
-       D_MSG_RETM_IF(data == NULL, "Composer Data is NULL");\r
-       D_MSG_RETM_IF(obj == NULL, "entry obj is NULL");\r
-\r
-       MSG_COMPOSER_VIEW_DATA_S *cd = data;\r
-       MSG_COMPOSER_BODY_PAGE_S *page_data = NULL;\r
-\r
-       page_data = evas_object_data_get(obj, "page_data");\r
-       if (page_data == NULL)\r
-               return;\r
-\r
-       char *body_text = elm_entry_markup_to_utf8(elm_entry_entry_get(obj));\r
-       if (body_text == NULL)\r
-               return;\r
-\r
-       int text_len = strlen(body_text);\r
-       if (text_len <= 0) {\r
-               page_data->text_info.encode = COMPOSER_CHAR_ENCODE_UNICODE;\r
-               page_data->text_info.char_count = 0;\r
-       } else {\r
-               unsigned char ucs2_text[COMPOSER_MMS_TEXT_MAX_CHAR*2] = {0,};\r
-               int ucs2_len = msg_ui_composer_convert_UTF8ToUCS2(ucs2_text, sizeof(ucs2_text), body_text, text_len);\r
-               page_data->text_info.encode = msg_ui_composer_body_entry_char_count(cd, ucs2_text, ucs2_len, &page_data->text_info.char_count);\r
-       }\r
-       g_free(body_text);\r
-\r
-       msg_ui_composer_message_type_check_and_change(cd);\r
-\r
-       msg_ui_composer_body_info_area_update(cd);\r
-\r
-       if (msg_ui_composer_common_is_send_possible(cd)) {\r
-               elm_object_disabled_set(cd->send_button, EINA_FALSE);\r
-               msg_ui_composer_body_update_send_btn_icon(cd, false);\r
-       } else {\r
-               elm_object_disabled_set(cd->send_button, EINA_TRUE);\r
-               msg_ui_composer_body_update_send_btn_icon(cd, true);\r
-       }\r
-\r
-       D_LEAVE;\r
-}\r
-\r
-void msg_ui_composer_body_entry_press_cb(void *data, Evas_Object *obj, void *event_info)\r
-{\r
-       D_ENTER;\r
-       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;\r
-       D_MSG_RETM_IF(cd == NULL, "Composer Data is NULL");\r
-\r
-       if (msg_ui_composer_recipient_addr_type_get(cd->recipient) == COMPOSER_RECP_ADDR_INVALID) {\r
-               elm_entry_context_menu_disabled_set(obj, EINA_TRUE);\r
-               elm_entry_magnifier_disabled_set(obj, EINA_TRUE);\r
-       } else {\r
-               elm_entry_context_menu_disabled_set(obj, EINA_FALSE);\r
-               elm_entry_magnifier_disabled_set(obj, EINA_FALSE);\r
-       }\r
-\r
-       D_LEAVE;\r
-}\r
-\r
-void msg_ui_composer_body_entry_clicked_cb(void *data, Evas_Object *obj, void *event_info)\r
-{\r
-       D_ENTER;\r
-       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;\r
-       D_MSG_RETM_IF(cd == NULL, "Composer Data is NULL");\r
-\r
-       int attach_count = msg_ui_composer_get_attach_count(cd);\r
-\r
-       if (attach_count > 1)\r
-               msg_ui_composer_contract_attach_list(cd);\r
-\r
-       D_LEAVE;\r
-}\r
-\r
-void msg_ui_composer_body_entry_unfocused_cb(void *data, Evas_Object *obj, void *event_info)\r
-{\r
-       D_ENTER;\r
-\r
-       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;\r
-       D_MSG_RETM_IF(cd == NULL, "Composer Data is NULL");\r
-\r
-       if (cd->msg_type == COMPOSER_MSG_TYPE_MMS) {\r
-               MSG_COMPOSER_BODY_S *body_data = &cd->body_data;\r
-\r
-               int page_count = body_data->page_count;\r
-\r
-               if (page_count == 1) {\r
-                       D_MSG("There is 1 page !!!");\r
-               } else {\r
-                       MSG_COMPOSER_BODY_PAGE_S *page_data = evas_object_data_get(obj, "page_data");\r
-                       if (page_data == NULL) {\r
-                               D_EMSG("page_data is NULL");\r
-                       } else {\r
-                               /* hide delete button */\r
-                               D_MSG("hide delete button");\r
-                               edje_object_signal_emit(_EDJ(page_data->upper_layout), "hide.delete", "*");\r
-                       }\r
-               }\r
-       }\r
-\r
-       D_LEAVE;\r
-}\r
-\r
-void msg_ui_composer_body_entry_focused_cb(void *data, Evas_Object *obj, void *event_info)\r
-{\r
-       D_ENTER;\r
-\r
-       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;\r
-       D_MSG_RETM_IF(cd == NULL, "Composer Data is NULL");\r
-\r
-       if (msg_ui_composer_recipient_addr_type_get(cd->recipient) == COMPOSER_RECP_ADDR_INVALID) {\r
-               /* if focused_cb is called twice becuase of double click, move focus to popup */\r
-               if (msg_ui_composer_popup_exist(cd))\r
-                       msg_ui_composer_popup_focus(cd);\r
-\r
-               return;\r
-       }\r
-\r
-       if (cd->msg_type == COMPOSER_MSG_TYPE_MMS) {\r
-               MSG_COMPOSER_BODY_S *body_data = &cd->body_data;\r
-\r
-               Eina_List *page_list = body_data->page_list;\r
-               int page_count = body_data->page_count;\r
-\r
-               if (page_count == 1) {\r
-                       D_MSG("page NO.1 focused !!!");\r
-                       cd->current_edit_entry = 0;\r
-               } else {\r
-                       MSG_COMPOSER_BODY_PAGE_S *page_data = NULL;\r
-                       int i = 0;\r
-\r
-                       for (i = 0; i < page_count; i++) {\r
-                               page_data = (MSG_COMPOSER_BODY_PAGE_S *)eina_list_nth(page_list, i);\r
-                               if (page_data->entry == obj) {\r
-                                       D_MSG("page NO.[%d]/[%d] focused !!!", i + 1, page_count);\r
-                                       cd->current_edit_entry = i;\r
-                                       break;\r
-                               }\r
-                       }\r
-                       page_data = evas_object_data_get(obj, "page_data");\r
-                       if (page_data == NULL) {\r
-                               D_EMSG("page_data is NULL");\r
-                       } else {\r
-                               /* show delete button */\r
-                               D_MSG("show delete button");\r
-                               edje_object_signal_emit(_EDJ(page_data->upper_layout), "show.delete", "*");\r
-                       }\r
-               }\r
-       } else if (cd->msg_type == COMPOSER_MSG_TYPE_SMS) {\r
-               cd->current_edit_entry = 0;\r
-       } else {\r
-               D_MSG("message composer invalid message type");\r
-       }\r
-\r
-       msg_ui_composer_last_focused_entry_set(data, obj);\r
-\r
-       if (cd->msg_type == COMPOSER_MSG_TYPE_MMS)\r
-               msg_ui_composer_toolbar_top_update(cd);\r
-\r
-       D_LEAVE;\r
-}\r
-\r
-void msg_ui_composer_body_page_del_btn_down_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)\r
-{\r
-       D_ENTER;\r
-       D_MSG_RETM_IF(obj == NULL, "obj is NULL");\r
-       elm_icon_file_set(obj, MSGC_IMG_DEL_BTN_PRESS_ICON, NULL);\r
-}\r
-\r
-void msg_ui_composer_body_page_del_btn_up_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)\r
-{\r
-       D_ENTER;\r
-       D_MSG_RETM_IF(obj == NULL, "obj is NULL");\r
-       elm_icon_file_set(obj, MSGC_IMG_PAGE_DEL_ICON, NULL);\r
-}\r
-\r
-void msg_ui_composer_body_page_del_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info)\r
-{\r
-       D_ENTER;\r
-\r
-       if (!data) {\r
-               MSG_UI_DEBUG(MSG_UI_LEVEL_ASSERT, "[ASSERT] Callback data is NULL");\r
-               return;\r
-       }\r
-\r
-       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;\r
-       Evas_Object *layout = evas_object_data_get(obj, "layout");\r
-\r
-       msg_ui_composer_mms_body_remove_page(cd, layout);\r
-\r
-       msg_ui_composer_message_type_check_and_change(cd);\r
-\r
-       msg_ui_composer_body_info_area_update(cd);\r
-\r
-       /* in invalid recipient case, give focus to other widget to call verify_cb of recipient */\r
-       if (msg_ui_composer_last_focus_is_recipient(cd)) {\r
-               const char *recipient = msg_ui_composer_recipient_entry_text_get(cd->recipient);\r
-\r
-               if (recipient && recipient[0] != '\0') {\r
-                       if (!msg_ui_composer_recipient_vaild_check(recipient))\r
-                               elm_object_focus_set(cd->back_btn, EINA_TRUE);\r
-               }\r
-       }\r
-       D_LEAVE;\r
-}\r
-\r
-static void __msg_ui_composer_body_launch_media_item(void *data, Evas_Object *obj)\r
-{\r
-       D_ENTER;\r
-       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;\r
-       D_MSG_RETM_IF(cd == NULL, "Composer Data is NULL");\r
-       D_MSG_RETM_IF(obj == NULL, "obj is NULL");\r
-\r
-       Evas_Object *layout = NULL;\r
-       MSG_COMPOSER_BODY_PAGE_S *page_data = NULL;\r
-       MSG_COMPOSER_BODY_S *body_data = &cd->body_data;\r
-       Eina_List *page_list = body_data->page_list;\r
-       int page_count = body_data->page_count;\r
-       int i = 0;\r
-       char file_path[COMPOSER_FILEPATH_LEN_MAX + 1] = {0, };\r
-\r
-       layout = evas_object_data_get(obj, "layout");\r
-\r
-       if (!layout || !page_list) {\r
-               D_EMSG("Invalid data layout = %x, page_list = %x", layout, page_list);\r
-               return;\r
-       }\r
-\r
-       for (i = 0; i < page_count; i++) {\r
-               page_data = (MSG_COMPOSER_BODY_PAGE_S *)eina_list_nth(page_list, i);\r
-\r
-               if (!page_data) {\r
-                       D_EMSG("page data is NULL !!!");\r
-                       return;\r
-               }\r
-\r
-               if (page_data->sound_item == layout) {\r
-                       strncpy(file_path, page_data->sound_file_path, COMPOSER_FILEPATH_LEN_MAX);\r
-                       break;\r
-               } else if (page_data->image_item == layout) {\r
-                       strncpy(file_path, page_data->image_file_path, COMPOSER_FILEPATH_LEN_MAX);\r
-                       break;\r
-               }\r
-       }\r
-\r
-       if (file_path[0] != '\0')\r
-               msg_ui_composer_external_call(cd, COMPOSER_EXT_TYPE_COMMON, file_path);\r
-\r
-       D_LEAVE;\r
-}\r
-\r
-void msg_ui_composer_body_media_layout_clicked_cb(void *data, Evas_Object *obj, const char *emission, const char *source)\r
-{\r
-       D_ENTER;\r
-       D_MSG_RETM_IF(data == NULL, "data is NULL");\r
-       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;\r
-\r
-       __msg_ui_composer_body_launch_media_item(cd, obj);\r
-\r
-       D_LEAVE;\r
-}\r
-\r
-void msg_ui_composer_body_media_thumb_icon_clicked_cb(void *data, Evas_Object *obj, void *event_info)\r
-{\r
-       D_ENTER;\r
-       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;\r
-       D_MSG_RETM_IF(cd == NULL, "Composer Data is NULL");\r
-\r
-       if (!cd->is_default_body_size)\r
-               __msg_ui_composer_body_launch_media_item(cd, obj);\r
-\r
-       D_LEAVE;\r
-}\r
-\r
-void msg_ui_composer_body_media_del_btn_down_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)\r
-{\r
-       D_ENTER;\r
-       D_MSG_RETM_IF(obj == NULL, "obj is NULL");\r
-       int media_type = 0;\r
-\r
-       media_type = (int)evas_object_data_get(obj, "media_type");\r
-       D_MSG("media_type = %d", media_type);\r
-\r
-       if (media_type == COMPOSER_MEDIA_TYPE_AUDIO)\r
-               elm_icon_file_set(obj, MSGC_IMG_DEL_BTN_PRESS_ICON, NULL);\r
-       else\r
-               elm_icon_file_set(obj, MSGC_IMG_INSERT_DEL_PRESS_ICON, NULL);\r
-}\r
-\r
-void msg_ui_composer_body_media_del_btn_up_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)\r
-{\r
-       D_ENTER;\r
-       D_MSG_RETM_IF(obj == NULL, "obj is NULL");\r
-       int media_type = 0;\r
-\r
-       media_type = (int)evas_object_data_get(obj, "media_type");\r
-\r
-       if (media_type == COMPOSER_MEDIA_TYPE_AUDIO)\r
-               elm_icon_file_set(obj, MSGC_SOUND_INSERT_DEL_ICON, NULL);\r
-       else\r
-               elm_icon_file_set(obj, MSGC_IMG_INSERT_DEL_ICON, NULL);\r
-}\r
-\r
-void msg_ui_composer_body_media_del_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info)\r
-{\r
-       D_ENTER;\r
-\r
-       if (!data || !obj) {\r
-               MSG_UI_DEBUG(MSG_UI_LEVEL_ASSERT, "[ASSERT] NULL pointer error");\r
-               return;\r
-       }\r
-\r
-       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;\r
-       MSG_COMPOSER_BODY_S *body_data = &cd->body_data;\r
-       MSG_COMPOSER_BODY_PAGE_S *page_data = NULL;\r
-       Eina_List *page_list = body_data->page_list;\r
-       int page_count = body_data->page_count;\r
-       int body_length = 0;\r
-\r
-       if (!cd->is_default_body_size) {\r
-               Evas_Object *delete_layout = (Evas_Object *)evas_object_data_get(obj, "layout");\r
-\r
-               int i = 0;\r
-\r
-               for (i = 0; i < page_count; i++) {\r
-                       page_data = (MSG_COMPOSER_BODY_PAGE_S *)eina_list_nth(page_list, i);\r
-\r
-                       if (!page_data) {\r
-                               MSG_UI_DEBUG(MSG_UI_LEVEL_ASSERT, "[ASSERT] page data is NULL !!!");\r
-                               return;\r
-                       }\r
-\r
-                       if (page_data->sound_item == delete_layout) {\r
-                               msg_ui_composer_mms_insert_item_remove(cd, delete_layout, COMPOSER_MEDIA_TYPE_AUDIO);\r
-\r
-                               char *body_text = elm_entry_markup_to_utf8(elm_entry_entry_get(page_data->entry));\r
-                               if (!body_text)\r
-                                       return;\r
-\r
-                               body_length = strlen(body_text);\r
-\r
-                               if (body_length == 0 && !page_data->is_image_item)\r
-                                       msg_ui_composer_mms_body_remove_page(cd, page_data->layout);\r
-\r
-                               g_free(body_text);\r
-\r
-                               break;\r
-                       } else if (page_data->image_item == delete_layout) {\r
-\r
-                               char *body_text = elm_entry_markup_to_utf8(elm_entry_entry_get(page_data->entry));\r
-                               if (!body_text)\r
-                                       return;\r
-\r
-                               body_length = strlen(body_text);\r
-\r
-                               if (page_data->isVideo) {\r
-                                       msg_ui_composer_mms_insert_item_remove(cd, delete_layout, COMPOSER_MEDIA_TYPE_VIDEO);\r
-                               } else {\r
-                                       msg_ui_composer_mms_insert_item_remove(cd, delete_layout, COMPOSER_MEDIA_TYPE_IMAGE);\r
-                               }\r
-\r
-                               if (body_length == 0 && !page_data->is_sound_item)\r
-                                       msg_ui_composer_mms_body_remove_page(cd, page_data->layout);\r
-\r
-                               g_free(body_text);\r
-                               break;\r
-                       }\r
-               }\r
-\r
-               msg_ui_composer_message_type_check_and_change(cd);\r
-       }\r
-\r
-       /* in invalid recipient case, give focus to other widget to call verify_cb of recipient */\r
-       if (msg_ui_composer_last_focus_is_recipient(cd)) {\r
-               const char *recipient = msg_ui_composer_recipient_entry_text_get(cd->recipient);\r
-\r
-               if (recipient && recipient[0] != '\0') {\r
-                       if (!msg_ui_composer_recipient_vaild_check(recipient))\r
-                               elm_object_focus_set(cd->back_btn, EINA_TRUE);\r
-               }\r
-       }\r
-\r
-       D_LEAVE;\r
-}\r
-\r
-void msg_ui_composer_body_body_layout_resize_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)\r
+/*
+ * Copyright 2012  Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *    http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+ /* includes */
+#include "msg-ui-composer-body.h"
+#include "msg-ui-composer-recipient.h"
+#include "msg-ui-composer-main.h"
+#include "msg-ui-composer-body-page.h"
+#include "msg-ui-composer-body-callback.h"
+#include "msg-ui-composer-common.h"
+#include "msg-ui-composer-attachment.h"
+#include "msg-ui-composer-subject.h"
+#include "msg-ui-composer-message.h"
+#include "msg-ui-composer-popup.h"
+#include "msg-ui-composer-util.h"
+#include "msg-ui-composer-external.h"
+#include "syspopup_caller.h"
+
+/*==================================================================================================
+*                                                              FUNCTION IMPLEMENTATIONS
+*==================================================================================================*/
+static void __add_list_popup_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+
+       if (!data || !event_info) {
+               D_EMSG("invalid argument, argument data is NULL");
+               return;
+       }
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+
+       if (cd->add_menu_clicked)
+               return;
+
+       Elm_Object_Item *item = (Elm_Object_Item *)event_info;
+       elm_list_item_selected_set(item, EINA_FALSE);
+
+       const char *label = elm_object_item_text_get(item);
+       if (!label) {
+               D_EMSG("label is NULL !!");
+               return;
+       }
+
+       cd->add_menu_clicked = true;
+
+       MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "label = %s", label);
+       if (cd->isAppControl) {
+               if (!g_strcmp0(label, MSGC_STR_SUBJECT)) {
+                       msg_ui_composer_add_subject(cd);
+               } else {
+                       D_EMSG("Unknown Menu List Item");
+               }
+       } else {
+               if (!g_strcmp0(label, MSGC_STR_SUBJECT)) {
+                       msg_ui_composer_add_subject(cd);
+               } else if (!g_strcmp0(label, MSGC_STR_GALLERY)) {
+                       msg_ui_composer_external_call(cd, COMPOSER_EXT_TYPE_GALLERY, NULL);
+               } else if (!g_strcmp0(label, MSGC_STR_MYFILE)) {
+                       msg_ui_composer_external_call(cd, COMPOSER_EXT_TYPE_MYFILE, NULL);
+               } else if (!g_strcmp0(label, _MSGSTR("IDS_MSGC_BODY_TAKE_PICTURE"))) {
+                       msg_ui_composer_external_call(cd, COMPOSER_EXT_TYPE_CAMERA, NULL);
+               } else if (!g_strcmp0(label, _MSGSTR("IDS_MSGC_BODY_CAPTURE_VIDEO"))) {
+                       msg_ui_composer_external_call(cd, COMPOSER_EXT_TYPE_CAMCORDER, NULL);
+               } else if (!g_strcmp0(label, MSGC_STR_CONTACT)) {
+                       msg_ui_composer_external_call(cd, COMPOSER_EXT_TYPE_NAMECARD, NULL);
+               } else if (!g_strcmp0(label, _SYSSTR("IDS_COM_BODY_CALENDAR"))) {
+                       msg_ui_composer_external_call(cd, COMPOSER_EXT_TYPE_CALENDAR, NULL);
+               } else if (!g_strcmp0(label, _SYSSTR("IDS_COM_BODY_MEMO"))) {
+                       msg_ui_composer_external_call(cd, COMPOSER_EXT_TYPE_MEMO, NULL);
+               } else {
+                       D_EMSG("Unknown Menu List Item");
+               }
+       }
+
+       MSGC_EVAS_OBJECT_DEL(cd->add_popup);
+       cd->add_button_clicked = false;
+       cd->add_menu_clicked = false;
+       D_LEAVE;
+}
+
+static void __add_list_popup_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       D_MSG_RETM_IF(cd == NULL, "composer data is NULL");
+       MSGC_EVAS_OBJECT_DEL(cd->add_popup);
+       cd->add_button_clicked = false;
+       cd->add_menu_clicked = false;
+
+       D_LEAVE;
+}
+
+static void __add_list_popup_show(void *data)
+{
+       D_ENTER;
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       Evas_Object *popup = NULL;
+       Evas_Object *list = NULL;
+       int count = 0;
+       int list_padding = 4;
+
+
+       list = elm_list_add(cd->main_window);
+       D_MSG_RETM_IF(list == NULL, "list is NULL");
+       elm_list_mode_set(list, ELM_LIST_EXPAND);
+
+       Elm_Object_Item *item = NULL;
+
+       if (cd->isAppControl) {
+                       item = elm_list_item_append(list, MSGC_STR_SUBJECT, NULL, NULL, __add_list_popup_clicked_cb, data);
+               ++count;
+               if (cd->isSubject)
+                       elm_object_item_disabled_set(item, EINA_TRUE);
+
+       } else {
+               if (!cd->isSubject) {
+                       elm_list_item_append(list, MSGC_STR_SUBJECT, NULL, NULL, __add_list_popup_clicked_cb, data);
+                       ++count;
+               }
+
+               elm_list_item_append(list, MSGC_STR_GALLERY, NULL, NULL, __add_list_popup_clicked_cb, data);
+               ++count;
+               elm_list_item_append(list, _MSGSTR("IDS_MSGC_BODY_TAKE_PICTURE"), NULL, NULL, __add_list_popup_clicked_cb, data);
+               ++count;
+               elm_list_item_append(list, _MSGSTR("IDS_MSGC_BODY_CAPTURE_VIDEO"), NULL, NULL, __add_list_popup_clicked_cb, data);
+               ++count;
+               elm_list_item_append(list, MSGC_STR_MYFILE, NULL, NULL, __add_list_popup_clicked_cb, data);
+               ++count;
+               elm_list_item_append(list, MSGC_STR_CONTACT, NULL, NULL, __add_list_popup_clicked_cb, data);
+               ++count;
+               elm_list_item_append(list, _SYSSTR("IDS_COM_BODY_CALENDAR"), NULL, NULL, __add_list_popup_clicked_cb, data);
+               ++count;
+               elm_list_item_append(list, _SYSSTR("IDS_COM_BODY_MEMO"), NULL, NULL, __add_list_popup_clicked_cb, data);
+               ++count;
+       }
+
+       elm_list_go(list);
+
+       if (count >= 4) {
+               count = 4;
+
+               int popup_height = MSGC_POPUP_LIST_H * count + list_padding;
+               evas_object_size_hint_max_set(list, -1, popup_height * elm_scale_get());
+       }
+
+       popup = msg_ui_composer_list_popup_create(cd, _SYSSTR("IDS_COM_POP_ATTACH"), list, "min_menustyle");
+
+       Evas_Object *btn1 = elm_button_add(popup);
+       elm_object_style_set(btn1, "popup_button/default");
+       elm_object_text_set(btn1, MSGC_STR_BUTTON_CLOSE);
+       elm_object_part_content_set(popup, "button1", btn1);
+       evas_object_smart_callback_add(btn1, "clicked", __add_list_popup_btn_clicked_cb, cd);
+
+       cd->add_popup = popup;
+
+       D_LEAVE;
+}
+
+static void __msgc_show_bubble_view(void *data, msg_thread_id_t tid)
 {
        D_ENTER;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       D_MSG_RETM_IF(cd == NULL, "cd is NULL");
+
+       /* show indicator area */
+       elm_layout_theme_set(cd->base, "layout", "application", "default");
+       elm_win_indicator_mode_set(cd->main_window, ELM_WIN_INDICATOR_SHOW);
+
+       msg_ui_composer_change_bubble_view(cd);
+
+       if (tid <= 0) {
+               D_EMSG("Can not find tid = %d !!", tid);
+               msg_ui_composer_message_destroy();
+               ug_destroy_me(cd->ug);
+
+               return;
+       }
+
+       msg_ui_composer_bubble_data_set(cd, tid);
+       msg_ui_bubble_start_view(cd->bubble_data);
+       msg_ui_composer_navi_title_set((void *)cd);
+
+       /* set recipient list for bubble composer */
+       msg_ui_composer_recipient_set_recipient_list(cd, tid);
+
+       D_LEAVE;
+}
+
+static void __nosim_popup_delete_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       D_MSG_RETM_IF(cd == NULL, "Composer data is NULL");
+
+       if (cd->msg_ug_mode == MSG_UG_MODE_ONLY_COMPOSER)
+               ug_destroy_me(cd->ug);
+
+       D_LEAVE;
+}
+
+void msg_ui_composer_body_make_and_send_message(void *data)
+{
+       D_ENTER;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       D_MSG_RETM_IF(cd == NULL, "Composer Data is NULL");
+       msg_thread_id_t tid = 0;
+
+       /*Make message*/
+       msg_ui_composer_message_init();
+
+       if (msg_ui_composer_recipient_read_data(cd) != COMPOSER_RETURN_SUCCESS) {
+               D_EMSG("Make recipient data Error");
+               goto error_return;
+       }
+
+       if (__msg_ui_composer_body_read_data(cd) != COMPOSER_RETURN_SUCCESS) {
+               D_EMSG("Make body data Error");
+               goto error_return;
+       }
+
+       /*Send message*/
+       COMPOSER_RETURN_TYPE_E ret = msg_ui_composer_message_make_and_send(cd->msg_handle, &tid);
+
+       /* reset region info */
+       MSG_COMPOSER_BODY_S *body_data = &cd->body_data;
+       body_data->region_order = COMPOSER_REGION_ORDER_UNDETERMINDED;
 
-       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;\r
-       D_MSG_RETM_IF(cd == NULL, "Composer Data is NULL");\r
-       Evas_Coord x = 0;\r
+       if (ret == COMPOSER_RETURN_SUCCESS) {
+               D_MSG("Send Success");
+
+               if (cd->msg_ug_mode == MSG_UG_MODE_ONLY_COMPOSER || cd->composer_mode == MSG_COMPOSER_MODE_FORWARD) {
+                       ug_destroy_me(cd->ug);
+               } else if (cd->msg_ug_mode == MSG_UG_MODE_FULL_COMPOSER) {
+                       __msgc_show_bubble_view(cd, tid);
+                       msg_ui_composer_clear(cd);
+               } else {
+                       msg_ui_composer_clear(cd);
+               }
+
+               cd->composer_mode = MSG_COMPOSER_MODE_NORMAL;
+
+                                       } else {
+               if (ret == COMPOSER_RETURN_NO_SIM) {
+                       D_EMSG("Send Fail : NO SIM");
+                       Evas_Object *popup = msg_ui_composer_status_popup_show(cd, MSGC_STR_POP_NOSIM, 1);
+
+                       if (cd->msg_ug_mode == MSG_UG_MODE_ONLY_COMPOSER || cd->composer_mode == MSG_COMPOSER_MODE_FORWARD) {
+                               evas_object_event_callback_add(popup, EVAS_CALLBACK_DEL, __nosim_popup_delete_cb, cd);
+                       } else if (cd->msg_ug_mode == MSG_UG_MODE_FULL_COMPOSER) {
+                               __msgc_show_bubble_view(cd, tid);
+                       }
+
+                       msg_ui_composer_clear(cd);
+               } else {
+                       D_EMSG("Send Fail : Unable Send");
+                       if ((cd->msg_ug_mode == MSG_UG_MODE_ONLY_COMPOSER || cd->composer_mode == MSG_COMPOSER_MODE_FORWARD))
+                               ug_destroy_me(cd->ug);
+                       else
+                               msg_ui_composer_status_popup_show(cd, MSGC_STR_POP_UNABLE_SEND, COMPOSER_STATUS_POPUP_DEFAULT_TIME);
+                                       }
+
+               cd->composer_mode = MSG_COMPOSER_MODE_NORMAL;
+
+               goto error_return;
+       }
+
+       msg_ui_composer_message_destroy();
+       D_LEAVE;
+       return;
+
+error_return:
+       msg_ui_composer_message_destroy();
+
+       if (cd->send_button)
+               elm_object_disabled_set(cd->send_button, EINA_FALSE);
+
+       D_LEAVE;
+}
+
+void msg_ui_composer_body_send_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "Composer Data is NULL");
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+
+       if (cd->send_button)
+               elm_object_disabled_set(cd->send_button, EINA_TRUE);
+
+       /*Check recipient available sending*/
+       RECIPIENT_S *rd = cd->recipient;
+       if (rd) {
+               /*add recipient, if entry text exist*/
+               Evas_Object *entry = elm_multibuttonentry_entry_get(rd->mbe);
+               char *entry_txt = elm_entry_markup_to_utf8(elm_entry_entry_get(entry));
+               if (entry_txt) {
+                       if (strlen(entry_txt) > 0) {
+                               if (NULL == elm_multibuttonentry_item_append(rd->mbe, entry_txt, NULL, NULL)) {
+                                       g_free(entry_txt);
+
+                                       if (cd->send_button)
+                                               elm_object_disabled_set(cd->send_button, EINA_FALSE);
+
+                                       return;
+                               }
+                       }
+                       g_free(entry_txt);
+               }
+
+               /*check recipient count is zero*/
+               if (msg_ui_composer_recipient_count_get(rd) == 0) {
+                       D_EMSG("there is no recipient");
+                       //msg_ui_composer_common_tickernoti(cd, COMPOSER_TICKERNOTI_NO_RECIPIENT);
+
+                       /* change focus to recipient */
+                       if (cd->msg_ug_mode == MSG_UG_MODE_ONLY_COMPOSER || cd->msg_ug_mode == MSG_UG_MODE_FULL_COMPOSER)
+                               msg_ui_composer_recipient_focus_set(cd->recipient);
+
+                       if (cd->send_button)
+                               elm_object_disabled_set(cd->send_button, EINA_FALSE);
+
+                       return;
+               }
+       }
+
+       msg_ui_composer_body_make_and_send_message(cd);
+
+       D_LEAVE;
+       return;
+}
+
+void msg_ui_composer_body_add_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+
+       if (!data) {
+               MSG_UI_DEBUG(MSG_UI_LEVEL_ASSERT, "[ASSERT] error data is NULL");
+               return;
+       }
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+
+       if (cd->add_button_clicked)
+               return;
+
+       cd->add_button_clicked = true;
+       __add_list_popup_show(cd);
+
+       D_LEAVE;
+}
+
+void msg_ui_composer_body_entry_maxlength_reached_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       D_MSG_RETM_IF(cd == NULL, "Composer Data is NULL");
+
+       msg_ui_composer_common_tickernoti(cd, COMPOSER_TICKERNOTI_MAXLENGHT_CHAR);
+
+       D_LEAVE;
+}
+
+void msg_ui_composer_body_entry_changed_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "Composer Data is NULL");
+       D_MSG_RETM_IF(obj == NULL, "entry obj is NULL");
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = data;
+       MSG_COMPOSER_BODY_PAGE_S *page_data = NULL;
+
+       page_data = evas_object_data_get(obj, "page_data");
+       if (page_data == NULL)
+               return;
+
+       char *body_text = elm_entry_markup_to_utf8(elm_entry_entry_get(obj));
+       if (body_text == NULL)
+               return;
+
+       int text_len = strlen(body_text);
+       if (text_len <= 0) {
+               page_data->text_info.encode = COMPOSER_CHAR_ENCODE_UNICODE;
+               page_data->text_info.char_count = 0;
+       } else {
+               unsigned char ucs2_text[COMPOSER_MMS_TEXT_MAX_CHAR*2] = {0,};
+               int ucs2_len = msg_ui_composer_convert_UTF8ToUCS2(ucs2_text, sizeof(ucs2_text), body_text, text_len);
+               page_data->text_info.encode = msg_ui_composer_body_entry_char_count(cd, ucs2_text, ucs2_len, &page_data->text_info.char_count);
+       }
+       g_free(body_text);
+
+       msg_ui_composer_message_type_check_and_change(cd);
+
+       msg_ui_composer_body_info_area_update(cd);
+
+       if (msg_ui_composer_common_is_send_possible(cd)) {
+               elm_object_disabled_set(cd->send_button, EINA_FALSE);
+               msg_ui_composer_body_update_send_btn_icon(cd, false);
+       } else {
+               elm_object_disabled_set(cd->send_button, EINA_TRUE);
+               msg_ui_composer_body_update_send_btn_icon(cd, true);
+       }
+
+       D_LEAVE;
+}
+
+void msg_ui_composer_body_entry_press_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       D_MSG_RETM_IF(cd == NULL, "Composer Data is NULL");
+
+       if (msg_ui_composer_recipient_addr_type_get(cd->recipient) == COMPOSER_RECP_ADDR_INVALID) {
+               elm_entry_context_menu_disabled_set(obj, EINA_TRUE);
+               elm_entry_magnifier_disabled_set(obj, EINA_TRUE);
+       } else {
+               elm_entry_context_menu_disabled_set(obj, EINA_FALSE);
+               elm_entry_magnifier_disabled_set(obj, EINA_FALSE);
+       }
+
+       D_LEAVE;
+}
+
+void msg_ui_composer_body_entry_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       D_MSG_RETM_IF(cd == NULL, "Composer Data is NULL");
+
+       int attach_count = msg_ui_composer_get_attach_count(cd);
+
+       if (attach_count > 1)
+               msg_ui_composer_contract_attach_list(cd);
+
+       D_LEAVE;
+}
+
+void msg_ui_composer_body_entry_unfocused_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       D_MSG_RETM_IF(cd == NULL, "Composer Data is NULL");
+
+       if (cd->msg_type == COMPOSER_MSG_TYPE_MMS) {
+               MSG_COMPOSER_BODY_S *body_data = &cd->body_data;
+
+               int page_count = body_data->page_count;
+
+               if (page_count == 1) {
+                       D_MSG("There is 1 page !!!");
+               } else {
+                       MSG_COMPOSER_BODY_PAGE_S *page_data = evas_object_data_get(obj, "page_data");
+                       if (page_data == NULL) {
+                               D_EMSG("page_data is NULL");
+                       } else {
+                               /* hide delete button */
+                               D_MSG("hide delete button");
+                               edje_object_signal_emit(_EDJ(page_data->upper_layout), "hide.delete", "*");
+                       }
+               }
+       }
+
+       D_LEAVE;
+}
+
+void msg_ui_composer_body_entry_focused_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       D_MSG_RETM_IF(cd == NULL, "Composer Data is NULL");
+
+       if (msg_ui_composer_recipient_addr_type_get(cd->recipient) == COMPOSER_RECP_ADDR_INVALID) {
+               /* if focused_cb is called twice becuase of double click, move focus to popup */
+               if (msg_ui_composer_popup_exist(cd))
+                       msg_ui_composer_popup_focus(cd);
+
+               return;
+       }
+
+       if (cd->msg_type == COMPOSER_MSG_TYPE_MMS) {
+               MSG_COMPOSER_BODY_S *body_data = &cd->body_data;
+
+               Eina_List *page_list = body_data->page_list;
+               int page_count = body_data->page_count;
+
+               if (page_count == 1) {
+                       D_MSG("page NO.1 focused !!!");
+                       cd->current_edit_entry = 0;
+               } else {
+                       MSG_COMPOSER_BODY_PAGE_S *page_data = NULL;
+                       int i = 0;
+
+                       for (i = 0; i < page_count; i++) {
+                               page_data = (MSG_COMPOSER_BODY_PAGE_S *)eina_list_nth(page_list, i);
+                               if (page_data->entry == obj) {
+                                       D_MSG("page NO.[%d]/[%d] focused !!!", i + 1, page_count);
+                                       cd->current_edit_entry = i;
+                                       break;
+                               }
+                       }
+                       page_data = evas_object_data_get(obj, "page_data");
+                       if (page_data == NULL) {
+                               D_EMSG("page_data is NULL");
+                       } else {
+                               /* show delete button */
+                               D_MSG("show delete button");
+                               edje_object_signal_emit(_EDJ(page_data->upper_layout), "show.delete", "*");
+                       }
+               }
+       } else if (cd->msg_type == COMPOSER_MSG_TYPE_SMS) {
+               cd->current_edit_entry = 0;
+       } else {
+               D_MSG("message composer invalid message type");
+       }
+
+       msg_ui_composer_last_focused_entry_set(data, obj);
+
+       if (cd->msg_type == COMPOSER_MSG_TYPE_MMS)
+               msg_ui_composer_toolbar_top_update(cd);
+
+       D_LEAVE;
+}
+
+void msg_ui_composer_body_page_del_btn_down_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(obj == NULL, "obj is NULL");
+       elm_icon_file_set(obj, MSGC_IMG_DEL_BTN_PRESS_ICON, NULL);
+}
+
+void msg_ui_composer_body_page_del_btn_up_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(obj == NULL, "obj is NULL");
+       elm_icon_file_set(obj, MSGC_IMG_PAGE_DEL_ICON, NULL);
+}
+
+void msg_ui_composer_body_page_del_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+
+       if (!data) {
+               MSG_UI_DEBUG(MSG_UI_LEVEL_ASSERT, "[ASSERT] Callback data is NULL");
+               return;
+       }
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       Evas_Object *layout = evas_object_data_get(obj, "layout");
+
+       msg_ui_composer_mms_body_remove_page(cd, layout);
+
+       msg_ui_composer_message_type_check_and_change(cd);
+
+       msg_ui_composer_body_info_area_update(cd);
+
+       /* in invalid recipient case, give focus to other widget to call verify_cb of recipient */
+       if (msg_ui_composer_last_focus_is_recipient(cd)) {
+               const char *recipient = msg_ui_composer_recipient_entry_text_get(cd->recipient);
+
+               if (recipient && recipient[0] != '\0') {
+                       if (!msg_ui_composer_recipient_vaild_check(recipient))
+                               elm_object_focus_set(cd->back_btn, EINA_TRUE);
+               }
+       }
+       D_LEAVE;
+}
+
+static void __msg_ui_composer_body_launch_media_item(void *data, Evas_Object *obj)
+{
+       D_ENTER;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       D_MSG_RETM_IF(cd == NULL, "Composer Data is NULL");
+       D_MSG_RETM_IF(obj == NULL, "obj is NULL");
+
+       Evas_Object *layout = NULL;
+       MSG_COMPOSER_BODY_PAGE_S *page_data = NULL;
+       MSG_COMPOSER_BODY_S *body_data = &cd->body_data;
+       Eina_List *page_list = body_data->page_list;
+       int page_count = body_data->page_count;
+       int i = 0;
+       char file_path[COMPOSER_FILEPATH_LEN_MAX + 1] = {0, };
+
+       layout = evas_object_data_get(obj, "layout");
+
+       if (!layout || !page_list) {
+               D_EMSG("Invalid data layout = %x, page_list = %x", layout, page_list);
+               return;
+       }
+
+       for (i = 0; i < page_count; i++) {
+               page_data = (MSG_COMPOSER_BODY_PAGE_S *)eina_list_nth(page_list, i);
+
+               if (!page_data) {
+                       D_EMSG("page data is NULL !!!");
+                       return;
+               }
+
+               if (page_data->sound_item == layout) {
+                       strncpy(file_path, page_data->sound_file_path, COMPOSER_FILEPATH_LEN_MAX);
+                       break;
+               } else if (page_data->image_item == layout) {
+                       strncpy(file_path, page_data->image_file_path, COMPOSER_FILEPATH_LEN_MAX);
+                       break;
+               }
+       }
+
+       if (file_path[0] != '\0')
+               msg_ui_composer_external_call(cd, COMPOSER_EXT_TYPE_COMMON, file_path);
+
+       D_LEAVE;
+}
+
+void msg_ui_composer_body_media_layout_clicked_cb(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+
+       __msg_ui_composer_body_launch_media_item(cd, obj);
+
+       D_LEAVE;
+}
+
+void msg_ui_composer_body_media_thumb_icon_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       D_MSG_RETM_IF(cd == NULL, "Composer Data is NULL");
+
+       if (!cd->is_default_body_size)
+               __msg_ui_composer_body_launch_media_item(cd, obj);
+
+       D_LEAVE;
+}
+
+void msg_ui_composer_body_media_del_btn_down_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(obj == NULL, "obj is NULL");
+       int media_type = 0;
+
+       media_type = (int)evas_object_data_get(obj, "media_type");
+       D_MSG("media_type = %d", media_type);
+
+       if (media_type == COMPOSER_MEDIA_TYPE_AUDIO)
+               elm_icon_file_set(obj, MSGC_IMG_DEL_BTN_PRESS_ICON, NULL);
+       else
+               elm_icon_file_set(obj, MSGC_IMG_INSERT_DEL_PRESS_ICON, NULL);
+}
+
+void msg_ui_composer_body_media_del_btn_up_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(obj == NULL, "obj is NULL");
+       int media_type = 0;
+
+       media_type = (int)evas_object_data_get(obj, "media_type");
+
+       if (media_type == COMPOSER_MEDIA_TYPE_AUDIO)
+               elm_icon_file_set(obj, MSGC_SOUND_INSERT_DEL_ICON, NULL);
+       else
+               elm_icon_file_set(obj, MSGC_IMG_INSERT_DEL_ICON, NULL);
+}
+
+void msg_ui_composer_body_media_del_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+
+       if (!data || !obj) {
+               MSG_UI_DEBUG(MSG_UI_LEVEL_ASSERT, "[ASSERT] NULL pointer error");
+               return;
+       }
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       MSG_COMPOSER_BODY_S *body_data = &cd->body_data;
+       MSG_COMPOSER_BODY_PAGE_S *page_data = NULL;
+       Eina_List *page_list = body_data->page_list;
+       int page_count = body_data->page_count;
+       int body_length = 0;
+
+       if (!cd->is_default_body_size) {
+               Evas_Object *delete_layout = (Evas_Object *)evas_object_data_get(obj, "layout");
+
+               int i = 0;
+
+               for (i = 0; i < page_count; i++) {
+                       page_data = (MSG_COMPOSER_BODY_PAGE_S *)eina_list_nth(page_list, i);
+
+                       if (!page_data) {
+                               MSG_UI_DEBUG(MSG_UI_LEVEL_ASSERT, "[ASSERT] page data is NULL !!!");
+                               return;
+                       }
+
+                       if (page_data->sound_item == delete_layout) {
+                               msg_ui_composer_mms_insert_item_remove(cd, delete_layout, COMPOSER_MEDIA_TYPE_AUDIO);
+
+                               char *body_text = elm_entry_markup_to_utf8(elm_entry_entry_get(page_data->entry));
+                               if (!body_text)
+                                       return;
+
+                               body_length = strlen(body_text);
+
+                               if (body_length == 0 && !page_data->is_image_item)
+                                       msg_ui_composer_mms_body_remove_page(cd, page_data->layout);
+
+                               g_free(body_text);
+
+                               break;
+                       } else if (page_data->image_item == delete_layout) {
+
+                               char *body_text = elm_entry_markup_to_utf8(elm_entry_entry_get(page_data->entry));
+                               if (!body_text)
+                                       return;
+
+                               body_length = strlen(body_text);
+
+                               if (page_data->isVideo) {
+                                       msg_ui_composer_mms_insert_item_remove(cd, delete_layout, COMPOSER_MEDIA_TYPE_VIDEO);
+                               } else {
+                                       msg_ui_composer_mms_insert_item_remove(cd, delete_layout, COMPOSER_MEDIA_TYPE_IMAGE);
+                               }
+
+                               if (body_length == 0 && !page_data->is_sound_item)
+                                       msg_ui_composer_mms_body_remove_page(cd, page_data->layout);
+
+                               g_free(body_text);
+                               break;
+                       }
+               }
+
+               msg_ui_composer_message_type_check_and_change(cd);
+       }
+
+       /* in invalid recipient case, give focus to other widget to call verify_cb of recipient */
+       if (msg_ui_composer_last_focus_is_recipient(cd)) {
+               const char *recipient = msg_ui_composer_recipient_entry_text_get(cd->recipient);
+
+               if (recipient && recipient[0] != '\0') {
+                       if (!msg_ui_composer_recipient_vaild_check(recipient))
+                               elm_object_focus_set(cd->back_btn, EINA_TRUE);
+               }
+       }
+
+       D_LEAVE;
+}
+
+void msg_ui_composer_body_body_layout_resize_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+       D_MSG_RETM_IF(cd == NULL, "Composer Data is NULL");
+       Evas_Coord x = 0;
        Evas_Coord y = 0;
        Evas_Coord w = 0;
        Evas_Coord h = 0;
 
-       evas_object_geometry_get(obj, &x, &y, &w, &h);\r
-       D_MSG("body layout height = %d", h);\r
+       evas_object_geometry_get(obj, &x, &y, &w, &h);
+       D_MSG("body layout height = %d", h);
 
        cd->ly_body_h = h;
 
-       if (h >= COMPOSER_ENOUGH_TEXT_RENDERING_BODY_HEIGHT)\r
+       if (h >= COMPOSER_ENOUGH_TEXT_RENDERING_BODY_HEIGHT)
                msg_ui_composer_body_info_area_update(cd);
        else
                edje_object_part_text_set(_EDJ(cd->ly_body), "text.char_count", "");
-\r
+
        D_LEAVE;
-}\r
-\r
-void msg_ui_composer_body_body_layout_clicked_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)\r
-{\r
-       D_ENTER;\r
-       D_MSG_RETM_IF(data == NULL, "data is NULL");\r
-       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;\r
-\r
-       msg_ui_composer_body_focus_set(cd, 0);\r
-\r
-       evas_object_event_callback_del(cd->body_box, EVAS_CALLBACK_MOUSE_UP, msg_ui_composer_body_body_layout_clicked_cb);\r
-\r
-       cd->is_default_body_size = false;\r
-\r
-       D_LEAVE;\r
-}\r
-\r
+}
+
+void msg_ui_composer_body_body_layout_clicked_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+       D_ENTER;
+       D_MSG_RETM_IF(data == NULL, "data is NULL");
+       MSG_COMPOSER_VIEW_DATA_S *cd = (MSG_COMPOSER_VIEW_DATA_S *)data;
+
+       msg_ui_composer_body_focus_set(cd, 0);
+
+       evas_object_event_callback_del(cd->body_box, EVAS_CALLBACK_MOUSE_UP, msg_ui_composer_body_body_layout_clicked_cb);
+
+       cd->is_default_body_size = false;
+
+       D_LEAVE;
+}
+
index 44fb748..0e09782 100755 (executable)
@@ -16,8 +16,6 @@
 
 /* includes*/
 #include <Ecore_X.h>
-#include <tapi_common.h>
-#include <TapiUtility.h>
 
 #include "msg-ui-composer-main.h"
 #include "msg-ui-composer-recipient.h"
@@ -1177,12 +1175,6 @@ COMPOSER_RETURN_TYPE_E msg_ui_composer_destroy(MSG_COMPOSER_VIEW_DATA_S *cd)
                D_EMSG("Fail to unregister vconf CB with [%s]", VCONFKEY_MSG_APP_FONT_SIZE);
        }
 
-       if (!cd->tapi_handle) {
-               if (tel_deinit(cd->tapi_handle) != TAPI_API_SUCCESS)
-                       D_EMSG("tel_deinit is failed");
-               cd->tapi_handle = NULL;
-       }
-
        if(cd->job_thread_end) {
                D_PRINT("----- Job Delete -----");
                ecore_job_del(cd->job_thread_end);
@@ -1201,11 +1193,6 @@ COMPOSER_RETURN_TYPE_E msg_ui_composer_destroy(MSG_COMPOSER_VIEW_DATA_S *cd)
                cd->last_focus_idler = NULL;
        }
 
-       if (cd->flight_mode_timer) {
-               ecore_timer_del(cd->flight_mode_timer);
-               cd->flight_mode_timer = NULL;
-       }
-
        if (cd->popup_conform) {
                evas_object_del(cd->popup_conform);
                cd->popup_conform = NULL;
index e5812b1..abba533 100755 (executable)
 #include <contacts-svc.h>
 #include <image_util.h>
 #include <libexif/exif-data.h>
-#include <tapi_common.h>
-#include <TapiUtility.h>
-#include <TelPower.h>
-#include <ITapiModem.h>
-#include <vconf.h>
 
 #include "msg-ui-composer-data.h"
 #include "msg-ui-composer-util.h"
@@ -520,59 +515,6 @@ char *msg_composer_create_working_dir(void)
        return NULL;
 }
 
-bool msg_composer_get_network_status(int *network_status)
-{
-       D_ENTER;
-       D_MSG_RETVM_IF(network_status == NULL, false, "param is NULL");
-
-       int svc_type = -1;
-
-       if (vconf_get_int(VCONFKEY_TELEPHONY_SVCTYPE, &svc_type) < 0) {
-               D_EMSG("vconf_get_int(svc_type) is failed !!");
-               return false;
-       } else {
-               D_MSG("network_status = %d", svc_type);
-               *network_status = svc_type;
-       }
-
-               return true;
-}
-
-bool msg_composer_get_flight_mode(int *flight_mode)
-{
-       D_ENTER;
-       D_MSG_RETVM_IF(flight_mode == NULL, false, "uri is NULL");
-
-       if (vconf_get_bool(VCONFKEY_TELEPHONY_FLIGHT_MODE, flight_mode) < 0) {
-               D_EMSG("vconf_get_int(flight_mode) is failed !!");
-               return false;
-       } else {
-               D_MSG("flight_mode = %d", *flight_mode);
-       }
-
-       D_LEAVE;
-       return true;
-}
-
-bool msg_composer_set_flight_mode(void *handle, int type, void *callback, void *user_data)
-{
-       D_ENTER;
-       D_MSG_RETVM_IF(handle == NULL, false, "handle is NULL");
-       TapiHandle *tapi_handle = (TapiHandle *)handle;
-       tapi_response_cb cb = (tapi_response_cb)callback;
-       tapi_power_flight_mode_type_t flight_mode_type = (tapi_power_flight_mode_type_t)type;
-       int err = TAPI_API_SUCCESS;
-
-       err = tel_set_flight_mode(tapi_handle, flight_mode_type, cb, user_data);
-       if (err != TAPI_API_SUCCESS) {
-               D_EMSG("tel_set_flight_mode is failed");
-               return false;
-       }
-
-       D_LEAVE;
-       return true;
-}
-
 Eina_List *make_tokenize_list(const char *ori_string, const char *sep)
 {
        D_ENTER;
index d2ec3cc..f01c6a1 100755 (executable)
@@ -80,10 +80,6 @@ bool msg_composer_get_vcf_file_by_index(int index, char *strpath, int sizepath);
 
 char *msg_composer_create_working_dir(void);
 
-bool msg_composer_get_network_status(int *network_status);
-bool msg_composer_get_flight_mode(int *flight_mode);
-bool msg_composer_set_flight_mode(void *handle, int type, void *callback, void *user_data);
-
 void convert_ps_to_br(char *input);
 Eina_List *make_tokenize_list(const char *ori_string, const char *sep);
 int remove_space(const char *src, char *dest, int dest_size);
index 71c92eb..c3fdcca 100755 (executable)
@@ -67,9 +67,6 @@ INSTALL(DIRECTORY ${CMAKE_SOURCE_COMMON_DIR}/data/image/ DESTINATION ${IMGDIR} F
 INSTALL(DIRECTORY DESTINATION ${DATADIR})
 #INSTALL(FILES ${CMAKE_SOURCE_MAIN_DIR}/${PROJECT_NAME}.ini DESTINATION share/process-info/ )
 
-#Install license file.
-INSTALL(FILES ${CMAKE_SOURCE_DIR}/LICENSE DESTINATION /usr/share/license RENAME ${PKGNAME})
-
 #EDJ file.
 ADD_CUSTOM_TARGET(${THREAD_GENLIST}.edj
                 COMMAND edje_cc -id ${CMAKE_SOURCE_COMMON_DIR}/data/edc_image
index 0100cbe..0812a24 100755 (executable)
@@ -19,6 +19,7 @@
 #include <ui-gadget.h>
 #include <ui-gadget-module.h>
 #include <sound_manager.h>
+#include <system_info.h>
 
 #include "msg-ui-thread-main.h"
 #include "msg-ui-common-utility.h"
@@ -734,6 +735,7 @@ void destroy_cb(ui_gadget_h ug, void *priv)
        }
 
        if (ad->layout_main) {
+               PMSG_THREAD_DATA pData = (PMSG_THREAD_DATA)ad->thread_data;
                PMSG_THREAD_LIST_DATA pListData = NULL;
 
                pListData = msg_ui_thread_get_current_list();
diff --git a/org.tizen.message.manifest b/org.tizen.message.manifest
new file mode 100755 (executable)
index 0000000..19f89de
--- /dev/null
@@ -0,0 +1,18 @@
+<manifest>\r
+       <define>\r
+               <domain name="org.tizen.message" policy="restricted" />\r
+               <provide>\r
+                       <label name="org.tizen.message::vconf"/>\r
+               </provide>\r
+       </define>\r
+       <assign>\r
+               <filesystem path="/opt/share/packages/org.tizen.message.xml" label="_" />\r
+               <filesystem path="/opt/share/applications/org.tizen.message.desktop" label="_" />\r
+               <filesystem path="/opt/share/applications/org.tizen.msg-ui-class0.desktop" label="_" />\r
+               <filesystem path="/opt/share/applications/org.tizen.msg-composer-efl.desktop" label="_" />\r
+               <filesystem path="/opt/share/icons/default/small/org.tizen.message.png" label="_" />\r
+       </assign>\r
+       <request>\r
+               <domain name="org.tizen.message"/>\r
+       </request>\r
+</manifest>\r
index cd7ebe1..a773537 100755 (executable)
@@ -10,12 +10,16 @@ Requires(post): /usr/bin/vconftool
 BuildRequires:  pkgconfig(appsvc)
 BuildRequires:  pkgconfig(bundle)
 BuildRequires:  pkgconfig(capi-appfw-application)
+BuildRequires:  pkgconfig(capi-media-metadata-extractor)
 BuildRequires:  pkgconfig(capi-media-sound-manager)
 BuildRequires:  pkgconfig(capi-system-info)
+BuildRequires:  pkgconfig(capi-system-system-settings)
+BuildRequires:  pkgconfig(capi-media-metadata-extractor)
+BuildRequires:  pkgconfig(capi-media-image-util)
+BuildRequires:  pkgconfig(capi-media-player)
 BuildRequires:  pkgconfig(contacts-service)
 BuildRequires:  pkgconfig(dlog)
 BuildRequires:  pkgconfig(drm-client)
-BuildRequires:  pkgconfig(devman_haptic)
 BuildRequires:  pkgconfig(elementary)
 BuildRequires:  pkgconfig(ecore)
 BuildRequires:  pkgconfig(ecore-x)
@@ -30,13 +34,11 @@ BuildRequires:  pkgconfig(msg-service)
 BuildRequires:  pkgconfig(mm-common)
 BuildRequires:  pkgconfig(mm-player)
 BuildRequires:  pkgconfig(mm-session)
-BuildRequires:  pkgconfig(mmutil-jpeg)
-BuildRequires:  pkgconfig(mmutil-imgp)
-BuildRequires:  pkgconfig(mm-fileinfo)
-BuildRequires:  pkgconfig(utilX)
-BuildRequires:  pkgconfig(ui-gadget-1)
 BuildRequires:  pkgconfig(syspopup-caller)
 BuildRequires:  pkgconfig(status)
+BuildRequires:  pkgconfig(ui-gadget-1)
+BuildRequires:  pkgconfig(utilX)
+BuildRequires:  pkgconfig(libexif)
 BuildRequires:  libug-contacts-devel
 BuildRequires:  cmake
 BuildRequires:  edje-tools
@@ -64,12 +66,15 @@ rm -rf %{buildroot}
 
 %post
 vconftool set -t int db/private/org.tizen.message/font_size 0 -u 5000
+vconftool set -t int db/private/org.tizen.message/mdm_status 0 -u 5000
+vconftool set -t bool db/private/org.tizen.message/use_volume_key 0 -u 5000
 #mkdir -p %{buildroot}/opt/apps/org.tizen.message/data
 chown -R 5000:5000 /opt/apps/org.tizen.message/data
 mkdir -p /opt/ug/bin
 ln -sf /usr/bin/ug-client /opt/ug/bin/msg-composer-efl
 
 %files
+%manifest %{name}.manifest
 %defattr(-,root,root,-)
 /opt/apps/org.tizen.message/bin/message
 /opt/apps/org.tizen.message/lib/*
index 9c8b619..97bf779 100755 (executable)
@@ -702,6 +702,7 @@ void msg_ui_thread_reset_thread_view(void *data, service_h service)
        if (!data)
                return;
 
+       PMSG_THREAD_DATA pData = (PMSG_THREAD_DATA)data;
        PMSG_THREAD_LIST_DATA pListData = NULL;
 
        pListData = msg_ui_thread_get_current_list();